@anansi/core 0.18.13 → 0.18.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/CHANGELOG.md CHANGED
@@ -3,6 +3,18 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ### [0.18.15](https://github.com/ntucker/anansi/compare/@anansi/core@0.18.14...@anansi/core@0.18.15) (2024-01-21)
7
+
8
+ ### 📦 Package
9
+
10
+ * Update all non-major dependencies ([#2293](https://github.com/ntucker/anansi/issues/2293)) ([55919d6](https://github.com/ntucker/anansi/commit/55919d636064761ccccee0c626009004b8022de7))
11
+
12
+ ### [0.18.14](https://github.com/ntucker/anansi/compare/@anansi/core@0.18.13...@anansi/core@0.18.14) (2023-12-30)
13
+
14
+ ### 📦 Package
15
+
16
+ * Update all non-major dependencies ([#2269](https://github.com/ntucker/anansi/issues/2269)) ([98a1174](https://github.com/ntucker/anansi/commit/98a11740da919b61ba6abed6a56cc52f8caae58d))
17
+
6
18
  ### [0.18.13](https://github.com/ntucker/anansi/compare/@anansi/core@0.18.12...@anansi/core@0.18.13) (2023-12-09)
7
19
 
8
20
  ### 📦 Package
package/dist/client.js CHANGED
@@ -219,7 +219,7 @@ function dataClientSpout(options = {}) {
219
219
  ...nextProps,
220
220
  app: /*#__PURE__*/external_react_default().createElement(CacheProvider, {
221
221
  initialState: data,
222
- managers: options == null ? void 0 : options.getManagers == null ? void 0 : options.getManagers(),
222
+ managers: options == null || options.getManagers == null ? void 0 : options.getManagers(),
223
223
  __self: this,
224
224
  __source: {
225
225
  fileName: _jsxFileName,
@@ -333,4 +333,4 @@ const appSpout = app => props => Promise.resolve({
333
333
  module.exports = __webpack_exports__;
334
334
  /******/ })()
335
335
  ;
336
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,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Q0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNELE9BQU87TUFBRSxJQUFJLE1BQU0xQyxJQUFJLENBQUM7UUFBRSxHQUFHQyxLQUFLO1FBQUVRO01BQWUsQ0FBQyxDQUFDLENBQUM7TUFBRUE7SUFBZSxDQUFDO0VBQzFFLENBQUM7QUFDSDtBQUVBLFNBQVNzQyxhQUFhQSxDQUFDRCxFQUFxQixFQUFFSixHQUFXLEVBQUU7RUFDekQsSUFBSUksRUFBRSxDQUFDSSxJQUFJLEtBQUtDLFNBQVMsRUFBRTtJQUN6QnZDLE9BQU8sQ0FBQ0MsS0FBSyxDQUNWLElBQUc2QixHQUFJLHdEQUNWLENBQUM7RUFDSDtFQUNBLE9BQU9JLEVBQUUsWUFBRkEsRUFBRSxDQUFFSSxJQUFJLEdBQUdFLElBQUksQ0FBQ0MsS0FBSyxDQUFDUCxFQUFFLG9CQUFGQSxFQUFFLENBQUVJLElBQUksQ0FBQyxHQUFHQyxTQUFTO0FBQ3BEOztBQ25DQSxNQUFNRyxRQUFRLEdBQ1gzRCxHQUFnQixJQUNtQk0sS0FBUSxJQUMxQ00sT0FBTyxDQUFDcUMsT0FBTyxDQUFDO0VBQUUsR0FBRzNDLEtBQUs7RUFBRU47QUFBSSxDQUFDLENBQUM7QUFFdEMsMENBQWUyRCxRQUFROztBQ0xtQztBQUNNO0FBQ0k7QUFDUjtBQUNKIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwiQGRhdGEtY2xpZW50L3JlYWN0XCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvZW5zdXJlIGNodW5rIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9nZXQgbWluaS1jc3MgY2h1bmsgZmlsZW5hbWUiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9wdWJsaWNQYXRoIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvcmVxdWlyZSBjaHVuayBsb2FkaW5nIiwid2VicGFjazovL0BhbmFuc2kvY29yZS9leHRlcm5hbCBjb21tb25qcyBcInJlYWN0LWRvbS9jbGllbnRcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvZmxvb2RTcG91dHMudHN4Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9zcG91dHMvZG9jdW1lbnQudHN4Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS9leHRlcm5hbCBjb21tb25qcyBcInJlYWN0XCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwiQGRhdGEtY2xpZW50L3JlZHV4XCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9kYXRhQ2xpZW50LnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJAYW5hbnNpL3JvdXRlclwiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS9leHRlcm5hbCBjb21tb25qcyBcImhpc3RvcnlcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL3JvdXRlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9qc29uLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL2FwcC50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkBkYXRhLWNsaWVudC9yZWFjdFwiKTsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuLy8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbl9fd2VicGFja19yZXF1aXJlX18ubSA9IF9fd2VicGFja19tb2R1bGVzX187XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5mID0ge307XG4vLyBUaGlzIGZpbGUgY29udGFpbnMgb25seSB0aGUgZW50cnkgY2h1bmsuXG4vLyBUaGUgY2h1bmsgbG9hZGluZyBmdW5jdGlvbiBmb3IgYWRkaXRpb25hbCBjaHVua3Ncbl9fd2VicGFja19yZXF1aXJlX18uZSA9IChjaHVua0lkKSA9PiB7XG5cdHJldHVybiBQcm9taXNlLmFsbChPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmYpLnJlZHVjZSgocHJvbWlzZXMsIGtleSkgPT4ge1xuXHRcdF9fd2VicGFja19yZXF1aXJlX18uZltrZXldKGNodW5rSWQsIHByb21pc2VzKTtcblx0XHRyZXR1cm4gcHJvbWlzZXM7XG5cdH0sIFtdKSk7XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy51ID0gKGNodW5rSWQpID0+IHtcblx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG5cdHJldHVybiBcIlwiICsgY2h1bmtJZCArIFwiLmNodW5rLmpzXCI7XG59OyIsIi8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5taW5pQ3NzRiA9IChjaHVua0lkKSA9PiB7XG5cdC8vIHJldHVybiB1cmwgZm9yIGZpbGVuYW1lcyBiYXNlZCBvbiB0ZW1wbGF0ZVxuXHRyZXR1cm4gdW5kZWZpbmVkO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5wID0gXCIvXCI7IiwiLy8gbm8gYmFzZVVSSVxuXG4vLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGNodW5rc1xuLy8gXCIxXCIgbWVhbnMgXCJsb2FkZWRcIiwgb3RoZXJ3aXNlIG5vdCBsb2FkZWQgeWV0XG52YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuXHQwOiAxXG59O1xuXG4vLyBubyBvbiBjaHVua3MgbG9hZGVkXG5cbnZhciBpbnN0YWxsQ2h1bmsgPSAoY2h1bmspID0+IHtcblx0dmFyIG1vcmVNb2R1bGVzID0gY2h1bmsubW9kdWxlcywgY2h1bmtJZHMgPSBjaHVuay5pZHMsIHJ1bnRpbWUgPSBjaHVuay5ydW50aW1lO1xuXHRmb3IodmFyIG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcblx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubVttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG5cdFx0fVxuXHR9XG5cdGlmKHJ1bnRpbWUpIHJ1bnRpbWUoX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cdGZvcih2YXIgaSA9IDA7IGkgPCBjaHVua0lkcy5sZW5ndGg7IGkrKylcblx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZHNbaV1dID0gMTtcblxufTtcblxuLy8gcmVxdWlyZSgpIGNodW5rIGxvYWRpbmcgZm9yIGphdmFzY3JpcHRcbl9fd2VicGFja19yZXF1aXJlX18uZi5yZXF1aXJlID0gKGNodW5rSWQsIHByb21pc2VzKSA9PiB7XG5cdC8vIFwiMVwiIGlzIHRoZSBzaWduYWwgZm9yIFwiYWxyZWFkeSBsb2FkZWRcIlxuXHRpZighaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdKSB7XG5cdFx0aWYodHJ1ZSkgeyAvLyBhbGwgY2h1bmtzIGhhdmUgSlNcblx0XHRcdGluc3RhbGxDaHVuayhyZXF1aXJlKFwiLi9cIiArIF9fd2VicGFja19yZXF1aXJlX18udShjaHVua0lkKSkpO1xuXHRcdH0gZWxzZSBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPSAxO1xuXHR9XG59O1xuXG4vLyBubyBleHRlcm5hbCBpbnN0YWxsIGNodW5rXG5cbi8vIG5vIEhNUlxuXG4vLyBubyBITVIgbWFuaWZlc3QiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInJlYWN0LWRvbS9jbGllbnRcIik7IiwiaW1wb3J0IHsgaHlkcmF0ZVJvb3QgfSBmcm9tICdyZWFjdC1kb20vY2xpZW50JztcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gZmxvb2RTcG91dHMoXG4gIHNwb3V0czogKHByb3BzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikgPT4gUHJvbWlzZTx7XG4gICAgYXBwOiBKU1guRWxlbWVudDtcbiAgfT4sXG4gIHsgcm9vdElkID0gJ2FuYW5zaS1yb290JyB9OiB7IHJvb3RJZD86IHN0cmluZyB9ID0ge30sXG4pIHtcbiAgY29uc3QgeyBhcHAgfSA9IGF3YWl0IHNwb3V0cyh7fSk7XG5cbiAgaHlkcmF0ZVJvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQocm9vdElkKSA/PyBkb2N1bWVudCwgYXBwKTtcbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZG9jdW1lbnRTcG91dChvcHRpb25zOiB7XG4gIGhlYWQ/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHRpdGxlOiBzdHJpbmc7XG59KTogQ2xpZW50U3BvdXQge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICByZXR1cm4gbmV4dFByb3BzO1xuICB9O1xufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcIkBkYXRhLWNsaWVudC9yZWR1eFwiKTsiLCJpbXBvcnQgeyB0eXBlIE1hbmFnZXIgfSBmcm9tICdAZGF0YS1jbGllbnQvcmVhY3QnO1xuaW1wb3J0IHsgaW5pdGlhbFN0YXRlIH0gZnJvbSAnQGRhdGEtY2xpZW50L3JlZHV4JztcblxuaW1wb3J0IHR5cGUgeyBDbGllbnRTcG91dCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkYXRhQ2xpZW50U3BvdXQoXG4gIG9wdGlvbnM6IHtcbiAgICBnZXRNYW5hZ2Vycz86ICgpID0+IE1hbmFnZXJbXTtcbiAgfSA9IHt9LFxuKTogQ2xpZW50U3BvdXQ8eyBnZXRJbml0aWFsRGF0YTogKGtleTogc3RyaW5nKSA9PiBQcm9taXNlPGFueT4gfT4ge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG4gICAgY29uc3QgW2RhdGEsIHsgQ2FjaGVQcm92aWRlciB9XSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICAgIHByb3BzLmdldEluaXRpYWxEYXRhKCdkYXRhY2xpZW50JykuY2F0Y2goZSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ0RhdGEgQ2xpZW50IGluaXRpYWwgZGF0YSBjb3VsZCBub3QgbG9hZDonLCBlKTtcbiAgICAgICAgcmV0dXJuIGluaXRpYWxTdGF0ZTtcbiAgICAgIH0pLFxuICAgICAgaW1wb3J0KCcuL2RhdGFDbGllbnQucHJvdmlkZXIuanMnKSxcbiAgICBdKTtcblxuICAgIGlmICghZGF0YSkge1xuICAgICAgY29uc29sZS5lcnJvcignRGF0YSBDbGllbnQgaW5pdCBkYXRhIG5vdCBmb3VuZCcpO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICBhcHA6IChcbiAgICAgICAgPENhY2hlUHJvdmlkZXIgaW5pdGlhbFN0YXRlPXtkYXRhfSBtYW5hZ2Vycz17b3B0aW9ucz8uZ2V0TWFuYWdlcnM/LigpfT5cbiAgICAgICAgICB7bmV4dFByb3BzLmFwcH1cbiAgICAgICAgPC9DYWNoZVByb3ZpZGVyPlxuICAgICAgKSxcbiAgICB9O1xuICB9O1xufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJAYW5hbnNpL3JvdXRlclwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImhpc3RvcnlcIik7IiwiaW1wb3J0IHsgUm91dGUsIFJvdXRlUHJvdmlkZXIsIFJvdXRlQ29udHJvbGxlciB9IGZyb20gJ0BhbmFuc2kvcm91dGVyJztcbmltcG9ydCB7IGNyZWF0ZUJyb3dzZXJIaXN0b3J5IH0gZnJvbSAnaGlzdG9yeSc7XG5pbXBvcnQgdHlwZSB7IFVwZGF0ZSB9IGZyb20gJ2hpc3RvcnknO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBDcmVhdGVSb3V0ZXIsIENsaWVudFNwb3V0IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJvdXRlclNwb3V0PFJlc29sdmVXaXRoPihvcHRpb25zOiB7XG4gIHJlc29sdmVXaXRoPzogYW55O1xuICB1c2VSZXNvbHZlV2l0aDogKCkgPT4gUmVzb2x2ZVdpdGg7XG4gIGNyZWF0ZVJvdXRlcjogQ3JlYXRlUm91dGVyPFJlc29sdmVXaXRoPjtcbiAgb25DaGFuZ2U/OiAodXBkYXRlOiBVcGRhdGUsIGNhbGxiYWNrOiAoKSA9PiB2b2lkIHwgdW5kZWZpbmVkKSA9PiB2b2lkO1xufSk6IENsaWVudFNwb3V0PFxuICBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAge1xuICAgIG1hdGNoZWRSb3V0ZXM6IFJvdXRlPFJlc29sdmVXaXRoLCBhbnk+W107XG4gIH0gJiB7XG4gICAgcm91dGVyOiBSb3V0ZUNvbnRyb2xsZXI8Um91dGU8UmVzb2x2ZVdpdGgsIGFueT4+O1xuICB9XG4+IHtcbiAgY29uc3QgY3JlYXRlUm91dGVDb21wb25lbnQgPSAoXG4gICAgcm91dGVyOiBSb3V0ZUNvbnRyb2xsZXI8Um91dGU8UmVzb2x2ZVdpdGgsIGFueT4+LFxuICApID0+XG4gICAgZnVuY3Rpb24gUm91dGVyKHsgY2hpbGRyZW4gfTogeyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0pIHtcbiAgICAgIGNvbnN0IHJlc29sdmVXaXRoID0gb3B0aW9ucy51c2VSZXNvbHZlV2l0aCgpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Um91dGVQcm92aWRlclxuICAgICAgICAgIHJvdXRlcj17cm91dGVyfVxuICAgICAgICAgIHJlc29sdmVXaXRoPXtyZXNvbHZlV2l0aH1cbiAgICAgICAgICBvbkNoYW5nZT17b3B0aW9ucy5vbkNoYW5nZX1cbiAgICAgICAgPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9Sb3V0ZVByb3ZpZGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCBoaXN0b3J5ID0gY3JlYXRlQnJvd3Nlckhpc3RvcnkoKTtcbiAgICBjb25zdCByb3V0ZXIgPSBvcHRpb25zLmNyZWF0ZVJvdXRlcihoaXN0b3J5KTtcbiAgICBjb25zdCBtYXRjaGVkUm91dGVzID0gcm91dGVyLmdldE1hdGNoZWRSb3V0ZXMoaGlzdG9yeS5sb2NhdGlvbi5wYXRobmFtZSk7XG5cbiAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHsgLi4ucHJvcHMsIG1hdGNoZWRSb3V0ZXMsIHJvdXRlciB9KTtcblxuICAgIGNvbnN0IFJvdXRlciA9IGNyZWF0ZVJvdXRlQ29tcG9uZW50KHJvdXRlcik7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5leHRQcm9wcyxcbiAgICAgIG1hdGNoZWRSb3V0ZXMsXG4gICAgICByb3V0ZXIsXG4gICAgICBhcHA6IDxSb3V0ZXI+e25leHRQcm9wcy5hcHB9PC9Sb3V0ZXI+LFxuICAgIH07XG4gIH07XG59XG4iLCJpbXBvcnQgdHlwZSB7IENsaWVudFNwb3V0IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEpTT05TcG91dCh7XG4gIGlkID0gJ2FuYW5zaS1qc29uJyxcbn06IHsgaWQ/OiBzdHJpbmcgfSA9IHt9KTogQ2xpZW50U3BvdXQ8XG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICB7IGdldEluaXRpYWxEYXRhOiAoa2V5OiBzdHJpbmcpID0+IFByb21pc2U8YW55PiB9XG4+IHtcbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IGdldEluaXRpYWxEYXRhID0gKGtleTogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBnbG9iYWxJZCA9IGAke2lkfS4ke2tleX1gO1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPGFueT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsZXQgZWw6IEhUTUxTY3JpcHRFbGVtZW50IHwgbnVsbDtcbiAgICAgICAgaWYgKChlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGdsb2JhbElkKSBhcyBhbnkpKSB7XG4gICAgICAgICAgcmVzb2x2ZShnZXREYXRhRnJvbUVsKGVsLCBnbG9iYWxJZCkpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgKCkgPT4ge1xuICAgICAgICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZ2xvYmFsSWQpIGFzIGFueTtcbiAgICAgICAgICBpZiAoZWwpIHJlc29sdmUoZ2V0RGF0YUZyb21FbChlbCwgZ2xvYmFsSWQpKTtcbiAgICAgICAgICBlbHNlIHJlamVjdChuZXcgRXJyb3IoYGZhaWxlZCB0byBmaW5kIERPTSB3aXRoICR7a2V5fSBzdGF0ZWApKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9O1xuICAgIHJldHVybiB7IC4uLihhd2FpdCBuZXh0KHsgLi4ucHJvcHMsIGdldEluaXRpYWxEYXRhIH0pKSwgZ2V0SW5pdGlhbERhdGEgfTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gZ2V0RGF0YUZyb21FbChlbDogSFRNTFNjcmlwdEVsZW1lbnQsIGtleTogc3RyaW5nKSB7XG4gIGlmIChlbC50ZXh0ID09PSB1bmRlZmluZWQpIHtcbiAgICBjb25zb2xlLmVycm9yKFxuICAgICAgYCMke2tleX0gaXMgY29tcGxldGVseSBlbXB0eS4gVGhpcyBjb3VsZCBiZSBkdWUgdG8gQ1NQIGlzc3Vlcy5gLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIGVsPy50ZXh0ID8gSlNPTi5wYXJzZShlbD8udGV4dCkgOiB1bmRlZmluZWQ7XG59XG4iLCJjb25zdCBhcHBTcG91dCA9XG4gIChhcHA6IEpTWC5FbGVtZW50KSA9PlxuICA8UCBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHVua25vd24+Pihwcm9wczogUCkgPT5cbiAgICBQcm9taXNlLnJlc29sdmUoeyAuLi5wcm9wcywgYXBwIH0pO1xuXG5leHBvcnQgZGVmYXVsdCBhcHBTcG91dDtcbiIsImV4cG9ydCB7IGRlZmF1bHQgYXMgZmxvb2RTcG91dHMgfSBmcm9tICcuL2Zsb29kU3BvdXRzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZG9jdW1lbnRTcG91dCB9IGZyb20gJy4vc3BvdXRzL2RvY3VtZW50LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZGF0YUNsaWVudFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvZGF0YUNsaWVudC5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIHJvdXRlclNwb3V0IH0gZnJvbSAnLi9zcG91dHMvcm91dGVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSlNPTlNwb3V0IH0gZnJvbSAnLi9zcG91dHMvanNvbi5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGFwcFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvYXBwLmpzJztcbmV4cG9ydCB0eXBlIHsgU2VydmVyUHJvcHMgfSBmcm9tICcuL3Nwb3V0cy90eXBlcy5qcyc7XG5leHBvcnQgdHlwZSB7IENsaWVudFNwb3V0IGFzIFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvdHlwZXMuanMnO1xuIl0sIm5hbWVzIjpbImh5ZHJhdGVSb290IiwiZmxvb2RTcG91dHMiLCJzcG91dHMiLCJyb290SWQiLCJfZG9jdW1lbnQkZ2V0RWxlbWVudEIiLCJhcHAiLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwiZG9jdW1lbnRTcG91dCIsIm9wdGlvbnMiLCJuZXh0IiwicHJvcHMiLCJuZXh0UHJvcHMiLCJpbml0aWFsU3RhdGUiLCJkYXRhQ2xpZW50U3BvdXQiLCJkYXRhIiwiQ2FjaGVQcm92aWRlciIsIlByb21pc2UiLCJhbGwiLCJnZXRJbml0aWFsRGF0YSIsImNhdGNoIiwiZSIsImNvbnNvbGUiLCJlcnJvciIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIm1hbmFnZXJzIiwiZ2V0TWFuYWdlcnMiLCJfX3NlbGYiLCJfX3NvdXJjZSIsImZpbGVOYW1lIiwiX2pzeEZpbGVOYW1lIiwibGluZU51bWJlciIsImNvbHVtbk51bWJlciIsIlJvdXRlUHJvdmlkZXIiLCJjcmVhdGVCcm93c2VySGlzdG9yeSIsInJvdXRlclNwb3V0IiwiY3JlYXRlUm91dGVDb21wb25lbnQiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJjaGlsZHJlbiIsInJlc29sdmVXaXRoIiwidXNlUmVzb2x2ZVdpdGgiLCJvbkNoYW5nZSIsImhpc3RvcnkiLCJjcmVhdGVSb3V0ZXIiLCJtYXRjaGVkUm91dGVzIiwiZ2V0TWF0Y2hlZFJvdXRlcyIsImxvY2F0aW9uIiwicGF0aG5hbWUiLCJKU09OU3BvdXQiLCJpZCIsImtleSIsImdsb2JhbElkIiwicmVzb2x2ZSIsInJlamVjdCIsImVsIiwiZ2V0RGF0YUZyb21FbCIsImFkZEV2ZW50TGlzdGVuZXIiLCJFcnJvciIsInRleHQiLCJ1bmRlZmluZWQiLCJKU09OIiwicGFyc2UiLCJhcHBTcG91dCIsImRlZmF1bHQiXSwic291cmNlUm9vdCI6IiJ9
336
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,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QUFDLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTztNQUFFLElBQUksTUFBTTFDLElBQUksQ0FBQztRQUFFLEdBQUdDLEtBQUs7UUFBRVE7TUFBZSxDQUFDLENBQUMsQ0FBQztNQUFFQTtJQUFlLENBQUM7RUFDMUUsQ0FBQztBQUNIO0FBRUEsU0FBU3NDLGFBQWFBLENBQUNELEVBQXFCLEVBQUVKLEdBQVcsRUFBRTtFQUN6RCxJQUFJSSxFQUFFLENBQUNJLElBQUksS0FBS0MsU0FBUyxFQUFFO0lBQ3pCdkMsT0FBTyxDQUFDQyxLQUFLLENBQ1YsSUFBRzZCLEdBQUksd0RBQ1YsQ0FBQztFQUNIO0VBQ0EsT0FBT0ksRUFBRSxZQUFGQSxFQUFFLENBQUVJLElBQUksR0FBR0UsSUFBSSxDQUFDQyxLQUFLLENBQUNQLEVBQUUsb0JBQUZBLEVBQUUsQ0FBRUksSUFBSSxDQUFDLEdBQUdDLFNBQVM7QUFDcEQ7O0FDbkNBLE1BQU1HLFFBQVEsR0FDWDNELEdBQWdCLElBQ21CTSxLQUFRLElBQzFDTSxPQUFPLENBQUNxQyxPQUFPLENBQUM7RUFBRSxHQUFHM0MsS0FBSztFQUFFTjtBQUFJLENBQUMsQ0FBQztBQUV0QywwQ0FBZTJELFFBQVE7O0FDTG1DO0FBQ007QUFDSTtBQUNSO0FBQ0oiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJAZGF0YS1jbGllbnQvcmVhY3RcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ib290c3RyYXAiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9lbnN1cmUgY2h1bmsiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9nZXQgamF2YXNjcmlwdCBjaHVuayBmaWxlbmFtZSIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2dldCBtaW5pLWNzcyBjaHVuayBmaWxlbmFtZSIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL3B1YmxpY1BhdGgiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9yZXF1aXJlIGNodW5rIGxvYWRpbmciLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3QtZG9tL2NsaWVudFwiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9mbG9vZFNwb3V0cy50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9kb2N1bWVudC50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3RcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJAZGF0YS1jbGllbnQvcmVkdXhcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL2RhdGFDbGllbnQudHN4Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS9leHRlcm5hbCBjb21tb25qcyBcIkBhbmFuc2kvcm91dGVyXCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwiaGlzdG9yeVwiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9zcG91dHMvcm91dGVyLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL2pzb24udHN4Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9zcG91dHMvYXBwLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiQGRhdGEtY2xpZW50L3JlYWN0XCIpOyIsIi8vIFRoZSBtb2R1bGUgY2FjaGVcbnZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcblxuLy8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbmZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcblx0Ly8gQ2hlY2sgaWYgbW9kdWxlIGlzIGluIGNhY2hlXG5cdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuXHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcblx0XHRyZXR1cm4gY2FjaGVkTW9kdWxlLmV4cG9ydHM7XG5cdH1cblx0Ly8gQ3JlYXRlIGEgbmV3IG1vZHVsZSAoYW5kIHB1dCBpdCBpbnRvIHRoZSBjYWNoZSlcblx0dmFyIG1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF0gPSB7XG5cdFx0Ly8gbm8gbW9kdWxlLmlkIG5lZWRlZFxuXHRcdC8vIG5vIG1vZHVsZS5sb2FkZWQgbmVlZGVkXG5cdFx0ZXhwb3J0czoge31cblx0fTtcblxuXHQvLyBFeGVjdXRlIHRoZSBtb2R1bGUgZnVuY3Rpb25cblx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0obW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG5cblx0Ly8gUmV0dXJuIHRoZSBleHBvcnRzIG9mIHRoZSBtb2R1bGVcblx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xufVxuXG4vLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuX193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLmYgPSB7fTtcbi8vIFRoaXMgZmlsZSBjb250YWlucyBvbmx5IHRoZSBlbnRyeSBjaHVuay5cbi8vIFRoZSBjaHVuayBsb2FkaW5nIGZ1bmN0aW9uIGZvciBhZGRpdGlvbmFsIGNodW5rc1xuX193ZWJwYWNrX3JlcXVpcmVfXy5lID0gKGNodW5rSWQpID0+IHtcblx0cmV0dXJuIFByb21pc2UuYWxsKE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uZikucmVkdWNlKChwcm9taXNlcywga2V5KSA9PiB7XG5cdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mW2tleV0oY2h1bmtJZCwgcHJvbWlzZXMpO1xuXHRcdHJldHVybiBwcm9taXNlcztcblx0fSwgW10pKTtcbn07IiwiLy8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuXHQvLyByZXR1cm4gdXJsIGZvciBmaWxlbmFtZXMgYmFzZWQgb24gdGVtcGxhdGVcblx0cmV0dXJuIFwiXCIgKyBjaHVua0lkICsgXCIuY2h1bmsuanNcIjtcbn07IiwiLy8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm1pbmlDc3NGID0gKGNodW5rSWQpID0+IHtcblx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG5cdHJldHVybiB1bmRlZmluZWQ7XG59OyIsIl9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSkiLCIvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuXHRpZih0eXBlb2YgU3ltYm9sICE9PSAndW5kZWZpbmVkJyAmJiBTeW1ib2wudG9TdHJpbmdUYWcpIHtcblx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcblx0fVxuXHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgJ19fZXNNb2R1bGUnLCB7IHZhbHVlOiB0cnVlIH0pO1xufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9cIjsiLCIvLyBubyBiYXNlVVJJXG5cbi8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgY2h1bmtzXG4vLyBcIjFcIiBtZWFucyBcImxvYWRlZFwiLCBvdGhlcndpc2Ugbm90IGxvYWRlZCB5ZXRcbnZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG5cdDA6IDFcbn07XG5cbi8vIG5vIG9uIGNodW5rcyBsb2FkZWRcblxudmFyIGluc3RhbGxDaHVuayA9IChjaHVuaykgPT4ge1xuXHR2YXIgbW9yZU1vZHVsZXMgPSBjaHVuay5tb2R1bGVzLCBjaHVua0lkcyA9IGNodW5rLmlkcywgcnVudGltZSA9IGNodW5rLnJ1bnRpbWU7XG5cdGZvcih2YXIgbW9kdWxlSWQgaW4gbW9yZU1vZHVsZXMpIHtcblx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8obW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuXHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tW21vZHVsZUlkXSA9IG1vcmVNb2R1bGVzW21vZHVsZUlkXTtcblx0XHR9XG5cdH1cblx0aWYocnVudGltZSkgcnVudGltZShfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblx0Zm9yKHZhciBpID0gMDsgaSA8IGNodW5rSWRzLmxlbmd0aDsgaSsrKVxuXHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkc1tpXV0gPSAxO1xuXG59O1xuXG4vLyByZXF1aXJlKCkgY2h1bmsgbG9hZGluZyBmb3IgamF2YXNjcmlwdFxuX193ZWJwYWNrX3JlcXVpcmVfXy5mLnJlcXVpcmUgPSAoY2h1bmtJZCwgcHJvbWlzZXMpID0+IHtcblx0Ly8gXCIxXCIgaXMgdGhlIHNpZ25hbCBmb3IgXCJhbHJlYWR5IGxvYWRlZFwiXG5cdGlmKCFpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0pIHtcblx0XHRpZih0cnVlKSB7IC8vIGFsbCBjaHVua3MgaGF2ZSBKU1xuXHRcdFx0aW5zdGFsbENodW5rKHJlcXVpcmUoXCIuL1wiICsgX193ZWJwYWNrX3JlcXVpcmVfXy51KGNodW5rSWQpKSk7XG5cdFx0fSBlbHNlIGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9IDE7XG5cdH1cbn07XG5cbi8vIG5vIGV4dGVybmFsIGluc3RhbGwgY2h1bmtcblxuLy8gbm8gSE1SXG5cbi8vIG5vIEhNUiBtYW5pZmVzdCIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwicmVhY3QtZG9tL2NsaWVudFwiKTsiLCJpbXBvcnQgeyBoeWRyYXRlUm9vdCB9IGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnO1xuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBmbG9vZFNwb3V0cyhcbiAgc3BvdXRzOiAocHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiBQcm9taXNlPHtcbiAgICBhcHA6IEpTWC5FbGVtZW50O1xuICB9PixcbiAgeyByb290SWQgPSAnYW5hbnNpLXJvb3QnIH06IHsgcm9vdElkPzogc3RyaW5nIH0gPSB7fSxcbikge1xuICBjb25zdCB7IGFwcCB9ID0gYXdhaXQgc3BvdXRzKHt9KTtcblxuICBoeWRyYXRlUm9vdChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChyb290SWQpID8/IGRvY3VtZW50LCBhcHApO1xufVxuIiwiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBDbGllbnRTcG91dCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkb2N1bWVudFNwb3V0KG9wdGlvbnM6IHtcbiAgaGVhZD86IFJlYWN0LlJlYWN0Tm9kZTtcbiAgdGl0bGU6IHN0cmluZztcbn0pOiBDbGllbnRTcG91dCB7XG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcblxuICAgIHJldHVybiBuZXh0UHJvcHM7XG4gIH07XG59XG4iLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInJlYWN0XCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwiQGRhdGEtY2xpZW50L3JlZHV4XCIpOyIsImltcG9ydCB7IHR5cGUgTWFuYWdlciB9IGZyb20gJ0BkYXRhLWNsaWVudC9yZWFjdCc7XG5pbXBvcnQgeyBpbml0aWFsU3RhdGUgfSBmcm9tICdAZGF0YS1jbGllbnQvcmVkdXgnO1xuXG5pbXBvcnQgdHlwZSB7IENsaWVudFNwb3V0IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGRhdGFDbGllbnRTcG91dChcbiAgb3B0aW9uczoge1xuICAgIGdldE1hbmFnZXJzPzogKCkgPT4gTWFuYWdlcltdO1xuICB9ID0ge30sXG4pOiBDbGllbnRTcG91dDx7IGdldEluaXRpYWxEYXRhOiAoa2V5OiBzdHJpbmcpID0+IFByb21pc2U8YW55PiB9PiB7XG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcbiAgICBjb25zdCBbZGF0YSwgeyBDYWNoZVByb3ZpZGVyIH1dID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xuICAgICAgcHJvcHMuZ2V0SW5pdGlhbERhdGEoJ2RhdGFjbGllbnQnKS5jYXRjaChlID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcignRGF0YSBDbGllbnQgaW5pdGlhbCBkYXRhIGNvdWxkIG5vdCBsb2FkOicsIGUpO1xuICAgICAgICByZXR1cm4gaW5pdGlhbFN0YXRlO1xuICAgICAgfSksXG4gICAgICBpbXBvcnQoJy4vZGF0YUNsaWVudC5wcm92aWRlci5qcycpLFxuICAgIF0pO1xuXG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdEYXRhIENsaWVudCBpbml0IGRhdGEgbm90IGZvdW5kJyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5leHRQcm9wcyxcbiAgICAgIGFwcDogKFxuICAgICAgICA8Q2FjaGVQcm92aWRlciBpbml0aWFsU3RhdGU9e2RhdGF9IG1hbmFnZXJzPXtvcHRpb25zPy5nZXRNYW5hZ2Vycz8uKCl9PlxuICAgICAgICAgIHtuZXh0UHJvcHMuYXBwfVxuICAgICAgICA8L0NhY2hlUHJvdmlkZXI+XG4gICAgICApLFxuICAgIH07XG4gIH07XG59XG4iLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcIkBhbmFuc2kvcm91dGVyXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwiaGlzdG9yeVwiKTsiLCJpbXBvcnQgeyBSb3V0ZSwgUm91dGVQcm92aWRlciwgUm91dGVDb250cm9sbGVyIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuaW1wb3J0IHsgY3JlYXRlQnJvd3Nlckhpc3RvcnkgfSBmcm9tICdoaXN0b3J5JztcbmltcG9ydCB0eXBlIHsgVXBkYXRlIH0gZnJvbSAnaGlzdG9yeSc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IENyZWF0ZVJvdXRlciwgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gcm91dGVyU3BvdXQ8UmVzb2x2ZVdpdGg+KG9wdGlvbnM6IHtcbiAgcmVzb2x2ZVdpdGg/OiBhbnk7XG4gIHVzZVJlc29sdmVXaXRoOiAoKSA9PiBSZXNvbHZlV2l0aDtcbiAgY3JlYXRlUm91dGVyOiBDcmVhdGVSb3V0ZXI8UmVzb2x2ZVdpdGg+O1xuICBvbkNoYW5nZT86ICh1cGRhdGU6IFVwZGF0ZSwgY2FsbGJhY2s6ICgpID0+IHZvaWQgfCB1bmRlZmluZWQpID0+IHZvaWQ7XG59KTogQ2xpZW50U3BvdXQ8XG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICB7XG4gICAgbWF0Y2hlZFJvdXRlczogUm91dGU8UmVzb2x2ZVdpdGgsIGFueT5bXTtcbiAgfSAmIHtcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj47XG4gIH1cbj4ge1xuICBjb25zdCBjcmVhdGVSb3V0ZUNvbXBvbmVudCA9IChcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj4sXG4gICkgPT5cbiAgICBmdW5jdGlvbiBSb3V0ZXIoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICAgICAgY29uc3QgcmVzb2x2ZVdpdGggPSBvcHRpb25zLnVzZVJlc29sdmVXaXRoKCk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSb3V0ZVByb3ZpZGVyXG4gICAgICAgICAgcm91dGVyPXtyb3V0ZXJ9XG4gICAgICAgICAgcmVzb2x2ZVdpdGg9e3Jlc29sdmVXaXRofVxuICAgICAgICAgIG9uQ2hhbmdlPXtvcHRpb25zLm9uQ2hhbmdlfVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L1JvdXRlUHJvdmlkZXI+XG4gICAgICApO1xuICAgIH07XG5cbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IGhpc3RvcnkgPSBjcmVhdGVCcm93c2VySGlzdG9yeSgpO1xuICAgIGNvbnN0IHJvdXRlciA9IG9wdGlvbnMuY3JlYXRlUm91dGVyKGhpc3RvcnkpO1xuICAgIGNvbnN0IG1hdGNoZWRSb3V0ZXMgPSByb3V0ZXIuZ2V0TWF0Y2hlZFJvdXRlcyhoaXN0b3J5LmxvY2F0aW9uLnBhdGhuYW1lKTtcblxuICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQoeyAuLi5wcm9wcywgbWF0Y2hlZFJvdXRlcywgcm91dGVyIH0pO1xuXG4gICAgY29uc3QgUm91dGVyID0gY3JlYXRlUm91dGVDb21wb25lbnQocm91dGVyKTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgbWF0Y2hlZFJvdXRlcyxcbiAgICAgIHJvdXRlcixcbiAgICAgIGFwcDogPFJvdXRlcj57bmV4dFByb3BzLmFwcH08L1JvdXRlcj4sXG4gICAgfTtcbiAgfTtcbn1cbiIsImltcG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSlNPTlNwb3V0KHtcbiAgaWQgPSAnYW5hbnNpLWpzb24nLFxufTogeyBpZD86IHN0cmluZyB9ID0ge30pOiBDbGllbnRTcG91dDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHsgZ2V0SW5pdGlhbERhdGE6IChrZXk6IHN0cmluZykgPT4gUHJvbWlzZTxhbnk+IH1cbj4ge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgZ2V0SW5pdGlhbERhdGEgPSAoa2V5OiBzdHJpbmcpID0+IHtcbiAgICAgIGNvbnN0IGdsb2JhbElkID0gYCR7aWR9LiR7a2V5fWA7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8YW55PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxldCBlbDogSFRNTFNjcmlwdEVsZW1lbnQgfCBudWxsO1xuICAgICAgICBpZiAoKGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZ2xvYmFsSWQpIGFzIGFueSkpIHtcbiAgICAgICAgICByZXNvbHZlKGdldERhdGFGcm9tRWwoZWwsIGdsb2JhbElkKSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ0RPTUNvbnRlbnRMb2FkZWQnLCAoKSA9PiB7XG4gICAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChnbG9iYWxJZCkgYXMgYW55O1xuICAgICAgICAgIGlmIChlbCkgcmVzb2x2ZShnZXREYXRhRnJvbUVsKGVsLCBnbG9iYWxJZCkpO1xuICAgICAgICAgIGVsc2UgcmVqZWN0KG5ldyBFcnJvcihgZmFpbGVkIHRvIGZpbmQgRE9NIHdpdGggJHtrZXl9IHN0YXRlYCkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH07XG4gICAgcmV0dXJuIHsgLi4uKGF3YWl0IG5leHQoeyAuLi5wcm9wcywgZ2V0SW5pdGlhbERhdGEgfSkpLCBnZXRJbml0aWFsRGF0YSB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiBnZXREYXRhRnJvbUVsKGVsOiBIVE1MU2NyaXB0RWxlbWVudCwga2V5OiBzdHJpbmcpIHtcbiAgaWYgKGVsLnRleHQgPT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnNvbGUuZXJyb3IoXG4gICAgICBgIyR7a2V5fSBpcyBjb21wbGV0ZWx5IGVtcHR5LiBUaGlzIGNvdWxkIGJlIGR1ZSB0byBDU1AgaXNzdWVzLmAsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gZWw/LnRleHQgPyBKU09OLnBhcnNlKGVsPy50ZXh0KSA6IHVuZGVmaW5lZDtcbn1cbiIsImNvbnN0IGFwcFNwb3V0ID1cbiAgKGFwcDogSlNYLkVsZW1lbnQpID0+XG4gIDxQIGV4dGVuZHMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4+KHByb3BzOiBQKSA9PlxuICAgIFByb21pc2UucmVzb2x2ZSh7IC4uLnByb3BzLCBhcHAgfSk7XG5cbmV4cG9ydCBkZWZhdWx0IGFwcFNwb3V0O1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBmbG9vZFNwb3V0cyB9IGZyb20gJy4vZmxvb2RTcG91dHMuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBkb2N1bWVudFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvZG9jdW1lbnQuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBkYXRhQ2xpZW50U3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9kYXRhQ2xpZW50LmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcm91dGVyU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9yb3V0ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBKU09OU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9qc29uLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgYXBwU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9hcHAuanMnO1xuZXhwb3J0IHR5cGUgeyBTZXJ2ZXJQcm9wcyB9IGZyb20gJy4vc3BvdXRzL3R5cGVzLmpzJztcbmV4cG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgYXMgU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy90eXBlcy5qcyc7XG4iXSwibmFtZXMiOlsiaHlkcmF0ZVJvb3QiLCJmbG9vZFNwb3V0cyIsInNwb3V0cyIsInJvb3RJZCIsIl9kb2N1bWVudCRnZXRFbGVtZW50QiIsImFwcCIsImRvY3VtZW50IiwiZ2V0RWxlbWVudEJ5SWQiLCJkb2N1bWVudFNwb3V0Iiwib3B0aW9ucyIsIm5leHQiLCJwcm9wcyIsIm5leHRQcm9wcyIsImluaXRpYWxTdGF0ZSIsImRhdGFDbGllbnRTcG91dCIsImRhdGEiLCJDYWNoZVByb3ZpZGVyIiwiUHJvbWlzZSIsImFsbCIsImdldEluaXRpYWxEYXRhIiwiY2F0Y2giLCJlIiwiY29uc29sZSIsImVycm9yIiwiUmVhY3QiLCJjcmVhdGVFbGVtZW50IiwibWFuYWdlcnMiLCJnZXRNYW5hZ2VycyIsIl9fc2VsZiIsIl9fc291cmNlIiwiZmlsZU5hbWUiLCJfanN4RmlsZU5hbWUiLCJsaW5lTnVtYmVyIiwiY29sdW1uTnVtYmVyIiwiUm91dGVQcm92aWRlciIsImNyZWF0ZUJyb3dzZXJIaXN0b3J5Iiwicm91dGVyU3BvdXQiLCJjcmVhdGVSb3V0ZUNvbXBvbmVudCIsInJvdXRlciIsIlJvdXRlciIsImNoaWxkcmVuIiwicmVzb2x2ZVdpdGgiLCJ1c2VSZXNvbHZlV2l0aCIsIm9uQ2hhbmdlIiwiaGlzdG9yeSIsImNyZWF0ZVJvdXRlciIsIm1hdGNoZWRSb3V0ZXMiLCJnZXRNYXRjaGVkUm91dGVzIiwibG9jYXRpb24iLCJwYXRobmFtZSIsIkpTT05TcG91dCIsImlkIiwia2V5IiwiZ2xvYmFsSWQiLCJyZXNvbHZlIiwicmVqZWN0IiwiZWwiLCJnZXREYXRhRnJvbUVsIiwiYWRkRXZlbnRMaXN0ZW5lciIsIkVycm9yIiwidGV4dCIsInVuZGVmaW5lZCIsIkpTT04iLCJwYXJzZSIsImFwcFNwb3V0IiwiZGVmYXVsdCJdLCJzb3VyY2VSb290IjoiIn0=
package/dist/server.js CHANGED
@@ -411,7 +411,7 @@ var dataClient_server_jsxFileName = "/home/ntucker/src/anansi/packages/core/src/
411
411
  function dataClientSpout(options = {}) {
412
412
  return next => async props => {
413
413
  var _options$getManagers;
414
- const managers = (_options$getManagers = options == null ? void 0 : options.getManagers == null ? void 0 : options.getManagers()) != null ? _options$getManagers : [new (await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(__webpack_require__, 2, 23))).NetworkManager()];
414
+ const managers = (_options$getManagers = options == null || options.getManagers == null ? void 0 : options.getManagers()) != null ? _options$getManagers : [new (await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(__webpack_require__, 2, 23))).NetworkManager()];
415
415
  const {
416
416
  createPersistedStore
417
417
  } = await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(__webpack_require__, 3, 23));
@@ -651,4 +651,4 @@ const appSpout = app => props => Promise.resolve({
651
651
  module.exports = __webpack_exports__;
652
652
  /******/ })()
653
653
  ;
654
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7Ozs7OztBQ0FBOzs7Ozs7QUNBQTs7Ozs7VUNBQTtVQUNBOztVQUVBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBO1VBQ0E7VUFDQTtVQUNBOztVQUVBO1VBQ0E7O1VBRUE7VUFDQTtVQUNBOzs7OztXQ3RCQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0EsaUNBQWlDLFdBQVc7V0FDNUM7V0FDQTs7Ozs7V0NQQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7V0FDQSxzREFBc0Q7V0FDdEQsc0NBQXNDLGlFQUFpRTtXQUN2RztXQUNBO1dBQ0E7V0FDQTtXQUNBO1dBQ0E7Ozs7O1dDekJBO1dBQ0E7V0FDQTtXQUNBO1dBQ0EseUNBQXlDLHdDQUF3QztXQUNqRjtXQUNBO1dBQ0E7Ozs7O1dDUEE7Ozs7O1dDQUE7V0FDQTtXQUNBO1dBQ0EsdURBQXVELGlCQUFpQjtXQUN4RTtXQUNBLGdEQUFnRCxhQUFhO1dBQzdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQ05BLE1BQU0sK0JBQTRCOzs7QUNBbEMsTUFBTSxzQkFBNEI7O0FDQU47QUFDNkM7QUFLMUQsU0FBU0csU0FBU0EsQ0FDL0JDLE1BRUUsRUFDRjtFQUNFQyxTQUFTLEdBQUcsS0FBSztFQUNqQkM7QUFDMEQsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUNsRTtFQUNBLE1BQU1DLE1BQWMsR0FBRyxNQUFBQSxDQUFPQyxjQUFjLEVBQUVDLEdBQUcsRUFBRUMsR0FBRyxLQUFLO0lBQ3pELE1BQU1DLEtBQUssR0FBR1gscUNBQWtCLENBQUMsRUFBRSxDQUFDLENBQUNhLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFFdkQsSUFBSTtNQUNGLE1BQU07UUFBRUM7TUFBSSxDQUFDLEdBQUcsTUFBTVYsTUFBTSxDQUFDO1FBQUVJLGNBQWM7UUFBRUMsR0FBRztRQUFFQyxHQUFHO1FBQUVDO01BQU0sQ0FBQyxDQUFDO01BRWpFLElBQUlJLFFBQVEsR0FBRyxLQUFLO01BQ3BCLE1BQU07UUFBRUMsSUFBSTtRQUFFQztNQUFNLENBQUMsR0FBR2YsaURBQVcsQ0FBQ1ksR0FBRyxFQUFFO1FBQ3ZDSCxLQUFLO1FBQ0w7UUFDQU8sWUFBWUEsQ0FBQSxFQUFHO1VBQ2I7VUFDQTtVQUNBUixHQUFHLENBQUNTLFVBQVUsR0FBR0osUUFBUSxHQUFHLEdBQUcsR0FBRyxHQUFHO1VBQ3JDTCxHQUFHLENBQUNVLFNBQVMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxDQUFDO1VBQzFDSixJQUFJLENBQUNOLEdBQUcsQ0FBQztRQUNYLENBQUM7UUFDRFcsWUFBWUEsQ0FBQSxFQUFHO1VBQ2JOLFFBQVEsR0FBRyxJQUFJO1VBQ2ZMLEdBQUcsQ0FBQ1MsVUFBVSxHQUFHLEdBQUc7VUFDcEJILElBQUksQ0FBQ04sR0FBRyxDQUFDO1FBQ1gsQ0FBQztRQUNESixPQUFPQSxDQUFDZ0IsQ0FBTSxFQUFFO1VBQ2RQLFFBQVEsR0FBRyxJQUFJO1VBQ2ZRLE9BQU8sQ0FBQ0MsS0FBSyxDQUFDRixDQUFDLENBQUM7VUFDaEJaLEdBQUcsQ0FBQ1MsVUFBVSxHQUFHLEdBQUc7VUFDcEI7VUFDQSxJQUFJYixPQUFPLEVBQUVBLE9BQU8sQ0FBQ2dCLENBQUMsQ0FBQztRQUN6QjtNQUNGLENBQUMsQ0FBQztNQUNGO01BQ0E7TUFDQUcsVUFBVSxDQUNSLE1BQU9SLEtBQUssQ0FBVSxjQUFhWixTQUFVLGFBQVksQ0FBQyxFQUMxREEsU0FDRixDQUFDO0lBQ0gsQ0FBQyxDQUFDLE9BQU9pQixDQUFVLEVBQUU7TUFDbkIsSUFBSWhCLE9BQU8sRUFBRUEsT0FBTyxDQUFDZ0IsQ0FBQyxDQUFDO01BQ3ZCLE1BQU1BLENBQUM7SUFDVDtFQUNGLENBQUM7RUFDRCxPQUFPZixNQUFNO0FBQ2Y7O0FDekRBLE1BQU0sOEJBQTRCOzs7QUNJbEM7QUFDTyxTQUFTbUIsV0FBV0EsQ0FBQ0MsU0FBaUIsRUFBRTtFQUM3QyxPQUFPQyxNQUFNLENBQUNDLElBQUksQ0FBQ0YsU0FBUyxDQUFDLENBQzFCRyxHQUFHLENBQUNDLEdBQUcsSUFBSTtJQUNWLE1BQU1DLEdBQUcsR0FDUEMsS0FBSyxDQUFDQyxPQUFPLENBQUNQLFNBQVMsQ0FBQ0ksR0FBRyxDQUFDLENBQUMsR0FDM0IsQ0FBQyxHQUFHLElBQUlJLEdBQUcsQ0FBQ1IsU0FBUyxDQUFDSSxHQUFHLENBQUMsQ0FBQyxDQUFDSyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUNDLE1BQU0sQ0FBQ0MsQ0FBQyxJQUFJQSxDQUFDLENBQUMsQ0FBQ0MsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUM5RFosU0FBUyxDQUFDSSxHQUFHLENBQUM7O0lBRWxCO0lBQ0E7SUFDQSxJQUFJLE9BQU9DLEdBQUcsS0FBSyxRQUFRLElBQUlBLEdBQUcsQ0FBQ1EsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEVBQUU7TUFDL0QsTUFBTUMsTUFBTSxHQUFJLEdBQUVULEdBQUcsQ0FDbEJVLE9BQU8sQ0FBQywwQkFBMEIsRUFBRSxHQUFHLENBQUMsQ0FDeENDLElBQUksQ0FBQyxDQUFFLG1CQUFrQjtNQUM1QixPQUFRLEdBQUVaLEdBQUksSUFBR1UsTUFBTyxFQUFDO0lBQzNCO0lBRUEsT0FBUSxHQUFFVixHQUFJLElBQUdDLEdBQUksRUFBQztFQUN4QixDQUFDLENBQUMsQ0FDRE8sSUFBSSxDQUFDLElBQUksQ0FBQztBQUNmO0FBRU8sU0FBU0ssU0FBU0EsQ0FBQ2pCLFNBQWlCLEVBQUVoQixLQUEwQixFQUFFO0VBQ3ZFLElBQUksQ0FBQ0EsS0FBSyxFQUFFLE9BQU9nQixTQUFTO0VBQzVCLE1BQU1rQixNQUFNLEdBQUc7SUFDYixHQUFHbEI7RUFDTCxDQUFDO0VBQ0QsSUFBSSxPQUFPa0IsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLFFBQVEsRUFBRTtJQUM1Q0EsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUNBLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRyxVQUFTbEMsS0FBTSxHQUFFLENBQUM7RUFDbkUsQ0FBQyxNQUFNO0lBQ0xrQyxNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHQSxNQUFNLENBQUMsWUFBWSxDQUFDLEVBQUcsVUFBU2xDLEtBQU0sR0FBRSxDQUFDO0VBQ3RFO0VBQ0EsT0FBT2tDLE1BQU07QUFDZjs7Ozs7QUMzQmUsU0FBU0MsUUFBUUEsQ0FBQztFQUMvQkMsTUFBTTtFQUNOQyxJQUFJO0VBQ0pDLFFBQVE7RUFDUkMsS0FBSztFQUNMQyxNQUFNO0VBQ05DLE9BQU87RUFDUEMsT0FBTztFQUNQQztBQUNLLENBQUMsRUFBRTtFQUNSLG9CQUNFQyxzQ0FBQTtJQUFBRSxNQUFBO0lBQUFDLFFBQUE7TUFBQUMsUUFBQSxFQUFBQyxZQUFBO01BQUFDLFVBQUE7TUFBQUMsWUFBQTtJQUFBO0VBQUEsZ0JBQ0VQLHNDQUFBO0lBQUFFLE1BQUE7SUFBQUMsUUFBQTtNQUFBQyxRQUFBLEVBQUFDLFlBQUE7TUFBQUMsVUFBQTtNQUFBQyxZQUFBO0lBQUE7RUFBQSxnQkFDRVAsc0NBQUE7SUFBTUgsT0FBTyxFQUFFQSxPQUFRO0lBQUFLLE1BQUE7SUFBQUMsUUFBQTtNQUFBQyxRQUFBLEVBQUFDLFlBQUE7TUFBQUMsVUFBQTtNQUFBQyxZQUFBO0lBQUE7RUFBQSxDQUFFLENBQUMsRUFDekJkLElBQUksRUFDSk0sVUFBVSxFQUNWUCxNQUFNLENBQUNqQixHQUFHLENBQUMsQ0FBQ2lDLEtBQUssRUFBRUMsQ0FBQyxrQkFDbkJULHNDQUFBO0lBQU14QixHQUFHLEVBQUVpQyxDQUFFO0lBQUNDLEdBQUcsRUFBQyxTQUFTO0lBQUEsR0FBS0YsS0FBSztJQUFBTixNQUFBO0lBQUFDLFFBQUE7TUFBQUMsUUFBQSxFQUFBQyxZQUFBO01BQUFDLFVBQUE7TUFBQUMsWUFBQTtJQUFBO0VBQUEsQ0FBRyxDQUN6QyxDQUFDLGVBQ0ZQLHNDQUFBO0lBQUFFLE1BQUE7SUFBQUMsUUFBQTtNQUFBQyxRQUFBLEVBQUFDLFlBQUE7TUFBQUMsVUFBQTtNQUFBQyxZQUFBO0lBQUE7RUFBQSxHQUFRWixLQUFhLENBQ2pCLENBQUMsZUFDUEssc0NBQUE7SUFBQUUsTUFBQTtJQUFBQyxRQUFBO01BQUFDLFFBQUEsRUFBQUMsWUFBQTtNQUFBQyxVQUFBO01BQUFDLFlBQUE7SUFBQTtFQUFBLGdCQUNFUCxzQ0FBQTtJQUFLVyxFQUFFLEVBQUVmLE1BQU87SUFBQU0sTUFBQTtJQUFBQyxRQUFBO01BQUFDLFFBQUEsRUFBQUMsWUFBQTtNQUFBQyxVQUFBO01BQUFDLFlBQUE7SUFBQTtFQUFBLEdBQUViLFFBQWMsQ0FBQyxFQUNoQ0ksT0FBTyxFQUNQTixNQUFNLENBQ0pWLE1BQU0sQ0FBQyxDQUFDO0lBQUU4QjtFQUFLLENBQUMsS0FBS0EsSUFBSSxDQUFDQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDMUN0QyxHQUFHLENBQUMsQ0FBQztJQUFFcUM7RUFBSyxDQUFDLEVBQUVILENBQUMsa0JBQ2ZULHNDQUFBO0lBQVF4QixHQUFHLEVBQUVpQyxDQUFFO0lBQUNLLEdBQUcsRUFBRUYsSUFBSztJQUFDRyxLQUFLO0lBQUFiLE1BQUE7SUFBQUMsUUFBQTtNQUFBQyxRQUFBLEVBQUFDLFlBQUE7TUFBQUMsVUFBQTtNQUFBQyxZQUFBO0lBQUE7RUFBQSxDQUFFLENBQ25DLENBQ0MsQ0FDRixDQUFDO0FBRVg7QUFDQWhCLFFBQVEsQ0FBQ3lCLFlBQVksR0FBRztFQUN0QnZCLElBQUksZUFDRk8sc0NBQUEsQ0FBQUEsbUNBQUEscUJBQ0VBLHNDQUFBO0lBQU1rQixJQUFJLEVBQUMsVUFBVTtJQUFDQyxPQUFPLEVBQUMscUNBQXFDO0lBQUFqQixNQUFBO0lBQUFDLFFBQUE7TUFBQUMsUUFBQSxFQUFBQyxZQUFBO01BQUFDLFVBQUE7TUFBQUMsWUFBQTtJQUFBO0VBQUEsQ0FBRSxDQUFDLGVBQ3RFUCxzQ0FBQTtJQUNFVSxHQUFHLEVBQUMsZUFBZTtJQUNuQkUsSUFBSSxFQUFHLElBQUFRLHFCQUFBLEdBQUVDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDQyxtQkFBbUIsWUFBQUgscUJBQUEsR0FBSSxHQUFJLGFBQWE7SUFBQWxCLE1BQUE7SUFBQUMsUUFBQTtNQUFBQyxRQUFBLEVBQUFDLFlBQUE7TUFBQUMsVUFBQTtNQUFBQyxZQUFBO0lBQUE7RUFBQSxDQUM5RCxDQUNELENBQ0g7RUFDRFYsT0FBTyxFQUFFLE9BQU87RUFDaEJELE1BQU0sRUFBRSxhQUFhO0VBQ3JCRSxPQUFPLEVBQUU7QUFDWCxDQUFDOzs7QUN2RHlCO0FBR2dDO0FBQ1o7QUFVL0IsU0FBUzBCLGFBQWFBLENBQUNDLE9BTXJDLEVBQTZFO0VBQzVFLE9BQU9DLElBQUksSUFBSSxNQUFNQyxLQUFLLElBQUk7SUFBQSxJQUFBQyxxQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxzQkFBQSxFQUFBQyxnQkFBQTtJQUM1QixNQUFNQyxTQUFTLEdBQUcsTUFBTVIsSUFBSSxDQUFDQyxLQUFLLENBQUM7SUFFbkMsTUFBTVEsVUFBVSxHQUFHUixLQUFLLENBQUMxRSxjQUFjLENBQUNrRixVQUFVO0lBRWxELElBQ0U5RCxNQUFNLENBQUNDLElBQUksRUFBQXNELHFCQUFBLElBQUFDLHNCQUFBLEdBQUNGLEtBQUssQ0FBQzFFLGNBQWMscUJBQXBCNEUsc0JBQUEsQ0FBc0JPLFdBQVcsWUFBQVIscUJBQUEsR0FBSSxDQUFDLENBQUMsQ0FBQyxDQUFDUyxNQUFNLEdBQUcsQ0FBQyxJQUMvREYsVUFBVSxLQUFLRyxTQUFTLEVBRXhCLE1BQU0sSUFBSUMsS0FBSyxDQUFDLGlDQUFpQyxDQUFDOztJQUVwRDtJQUNBO0lBQ0EsTUFBTUMsUUFBUSxHQUFJaEQsTUFBeUMsSUFDekRBLE1BQU0sQ0FBQ2pCLEdBQUcsQ0FBQyxDQUFDO01BQUUyQztJQUFLLENBQUMsS0FBTSxHQUFFaUIsVUFBVyxHQUFFakIsSUFBSyxFQUFDLENBQUM7SUFFbEQsTUFBTXVCLFNBQW1CLEdBQUcsRUFBRTtJQUM5QnBFLE1BQU0sQ0FBQ1EsTUFBTSxFQUFBaUQsc0JBQUEsSUFBQUMsc0JBQUEsR0FBQ0osS0FBSyxDQUFDMUUsY0FBYyxxQkFBcEI4RSxzQkFBQSxDQUFzQkssV0FBVyxZQUFBTixzQkFBQSxHQUFJLENBQUMsQ0FBQyxDQUFDLENBQUNZLE9BQU8sQ0FDNURDLFVBQVUsSUFBSTtNQUFBLElBQUFDLGtCQUFBO01BQ1pILFNBQVMsQ0FBQ0ksSUFBSSxDQUFDLEdBQUdMLFFBQVEsRUFBQUksa0JBQUEsR0FBQ0QsVUFBVSxDQUFDbkQsTUFBTSxZQUFBb0Qsa0JBQUEsR0FBSSxFQUFFLENBQUMsQ0FBQztJQUN0RCxDQUNGLENBQUM7SUFDRCxJQUFJaEUsR0FBRyxDQUNMNEQsUUFBUSxDQUNObkUsTUFBTSxDQUFDUSxNQUFNLEVBQUFtRCxzQkFBQSxHQUFDTCxLQUFLLENBQUMxRSxjQUFjLENBQUM2RixnQkFBZ0IsWUFBQWQsc0JBQUEsR0FBSSxDQUFDLENBQUMsQ0FBQyxDQUN2RGxELE1BQU0sQ0FBQyxDQUFDO01BQUVvQztJQUFLLENBQUMsS0FDZmdCLFNBQVMsQ0FBQ2EsYUFBYSxDQUFDQyxJQUFJLENBQUNDLEtBQUssSUFBSS9CLElBQUksb0JBQUpBLElBQUksQ0FBRWpDLFFBQVEsQ0FBQ2dFLEtBQUssQ0FBQy9CLElBQUksQ0FBQyxDQUNsRSxDQUFDLENBQ0FnQyxPQUFPLENBQUNDLEtBQUs7TUFBQSxJQUFBQyxhQUFBO01BQUEsT0FBSSxDQUNoQixLQUFBQSxhQUFBLEdBQUlELEtBQUssQ0FBQzNELE1BQU0sWUFBQTRELGFBQUEsR0FBSSxFQUFFLENBQUM7TUFDdkI7TUFDQSxHQUFHQyxjQUFjLENBQUNGLEtBQUssQ0FBQyxDQUN6QjtJQUFBLEVBQ0wsQ0FDRixDQUFDLENBQUNULE9BQU8sQ0FBQ2xDLEtBQUssSUFBSWlDLFNBQVMsQ0FBQ0ksSUFBSSxDQUFDckMsS0FBSyxDQUFDLENBQUM7O0lBRXpDO0lBQ0EsTUFBTWhCLE1BSUgsR0FBR2lELFNBQVMsQ0FDWjNELE1BQU0sQ0FBQzBCLEtBQUssSUFBSSxDQUFDQSxLQUFLLENBQUNLLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQ2xEdEMsR0FBRyxDQUFDaUMsS0FBSyxJQUNSQSxLQUFLLENBQUNLLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRztNQUFFRCxJQUFJLEVBQUVKLEtBQUs7TUFBRUUsR0FBRyxFQUFFO0lBQWEsQ0FBQyxHQUN6REYsS0FBSyxDQUFDSyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUc7TUFBRUQsSUFBSSxFQUFFSixLQUFLO01BQUU4QyxFQUFFLEVBQUU7SUFBUyxDQUFDLEdBQ3JEO01BQUUxQyxJQUFJLEVBQUVKO0lBQU0sQ0FDbEIsQ0FBQztJQUVILElBQUlpQixPQUFPLENBQUM4QixRQUFRLEVBQUU7TUFDcEIsTUFBTUMsU0FBUyxHQUNibkMsT0FBTyxDQUFDQyxHQUFHLENBQUNtQyxRQUFRLEtBQUssWUFBWSxHQUNuQyx5QkFBeUIsR0FDekIscUNBQXFDO01BRXpDOUIsS0FBSyxDQUFDeEUsR0FBRyxDQUFDVSxTQUFTLENBQ2pCMkYsU0FBUyxFQUNUckYsV0FBVyxDQUFDa0IsU0FBUyxDQUFDb0MsT0FBTyxDQUFDOEIsUUFBUSxFQUFFNUIsS0FBSyxDQUFDdkUsS0FBSyxDQUFDLENBQ3RELENBQUM7SUFDSDtJQUVBLE9BQU87TUFDTCxHQUFHOEUsU0FBUztNQUNaM0UsR0FBRyxlQUNEeUMsc0NBQUEsQ0FBQ1QsUUFBUTtRQUFBLEdBQ0hrQyxPQUFPO1FBQ1gxQixVQUFVLEVBQUVtQyxTQUFTLENBQUNuQyxVQUFXO1FBQ2pDSixLQUFLLEdBQUFzQyxnQkFBQSxHQUFFQyxTQUFTLENBQUN2QyxLQUFLLFlBQUFzQyxnQkFBQSxHQUFJUixPQUFPLENBQUM5QixLQUFNO1FBQ3hDSCxNQUFNLEVBQUVBLE1BQU87UUFDZkksTUFBTSxFQUFFNkIsT0FBTyxDQUFDN0IsTUFBTztRQUN2QkUsT0FBTyxFQUFFb0MsU0FBUyxDQUFDcEMsT0FBUTtRQUFBSSxNQUFBO1FBQUFDLFFBQUE7VUFBQUMsUUFBQSxFQUFBQywyQkFBQTtVQUFBQyxVQUFBO1VBQUFDLFlBQUE7UUFBQTtNQUFBLEdBRTFCMkIsU0FBUyxDQUFDM0UsR0FDSDtJQUVkLENBQUM7RUFDSCxDQUFDO0FBQ0g7QUFFQSxTQUFTOEYsY0FBY0EsQ0FBQ0YsS0FBc0IsRUFBRTtFQUM5QyxPQUFPQSxLQUFLLENBQUN6RCxRQUFRLEdBQ2pCckIsTUFBTSxDQUFDUSxNQUFNLENBQUNzRSxLQUFLLENBQUN6RCxRQUFRLENBQUMsQ0FBQ3dELE9BQU8sQ0FBQ1EsT0FBTyxJQUMzQ0EsT0FBTyxDQUFDUixPQUFPLENBQUNTLENBQUM7SUFBQSxJQUFBQyxTQUFBO0lBQUEsUUFBQUEsU0FBQSxHQUFJRCxDQUFDLENBQUNuRSxNQUFNLFlBQUFvRSxTQUFBLEdBQUksRUFBRTtFQUFBLEVBQ3JDLENBQUMsR0FDRCxFQUFFO0FBQ1I7Ozs7QUNuR2UsU0FBU0MsZUFBZUEsQ0FDckNwQyxPQUVDLEdBQUcsQ0FBQyxDQUFDLEVBS047RUFDQSxPQUFPQyxJQUFJLElBQUksTUFBTUMsS0FBSyxJQUFJO0lBQUEsSUFBQW1DLG9CQUFBO0lBQzVCLE1BQU1DLFFBQVEsSUFBQUQsb0JBQUEsR0FBR3JDLE9BQU8sb0JBQVBBLE9BQU8sQ0FBRXVDLFdBQVcsb0JBQXBCdkMsT0FBTyxDQUFFdUMsV0FBVyxDQUFHLENBQUMsWUFBQUYsb0JBQUEsR0FBSSxDQUMzQyxJQUFJLENBQUMsTUFBTSw0RkFBNEIsRUFBRUcsY0FBYyxDQUFDLENBQUMsQ0FDMUQ7SUFDRCxNQUFNO01BQUVDO0lBQXFCLENBQUMsR0FBRyxNQUFNLDRGQUEwQjtJQUNqRSxNQUFNLENBQUNDLG1CQUFtQixFQUFFQyxrQkFBa0IsRUFBRUMsVUFBVSxFQUFFQyxLQUFLLENBQUMsR0FDaEVKLG9CQUFvQixDQUFDSCxRQUFRLENBQUM7SUFFaEMsTUFBTTdCLFNBQVMsR0FBRyxNQUFNUixJQUFJLENBQUM7TUFDM0IsR0FBR0MsS0FBSztNQUNSMEMsVUFBVTtNQUNWQztJQUNGLENBQUMsQ0FBQztJQUNGLE9BQU87TUFDTCxHQUFHcEMsU0FBUztNQUNacUMsUUFBUSxFQUFFO1FBQ1IsR0FBR3JDLFNBQVMsQ0FBQ3FDLFFBQVE7UUFDckJDLFVBQVUsRUFBRUo7TUFDZCxDQUFDO01BQ0Q3RyxHQUFHLGVBQUV5QyxzQ0FBQSxDQUFDbUUsbUJBQW1CO1FBQUFqRSxNQUFBO1FBQUFDLFFBQUE7VUFBQUMsUUFBQSxFQUFBQyw2QkFBQTtVQUFBQyxVQUFBO1VBQUFDLFlBQUE7UUFBQTtNQUFBLEdBQUUyQixTQUFTLENBQUMzRSxHQUF5QixDQUFDO01BQy9EO01BQ0E4RyxVQUFVO01BQ1ZDO0lBQ0YsQ0FBQztFQUNILENBQUM7QUFDSDs7O0FDM0MwQjtBQVVYLFNBQVNHLFNBQVNBLENBQUEsRUFJL0I7RUFDQSxPQUFPL0MsSUFBSSxJQUFJLE1BQU1DLEtBQUssSUFBSTtJQUFBLElBQUErQyxrQkFBQTtJQUM1QixNQUFNO01BQUVDLFdBQVc7TUFBRUMsWUFBWTtNQUFFQztJQUFjLENBQUMsR0FBRyxNQUFNLHNGQUUxRDtJQUNELE1BQU1DLEtBQUssR0FBR0gsV0FBVyxDQUFDLENBQUM7SUFFM0IsTUFBTXpDLFNBQVMsR0FBRyxNQUFNUixJQUFJLENBQUNDLEtBQUssQ0FBQztJQUVuQyxNQUFNN0IsT0FBMEIsSUFBQTRFLGtCQUFBLEdBQUd4QyxTQUFTLENBQUNwQyxPQUFPLFlBQUE0RSxrQkFBQSxHQUFJLEVBQUU7SUFFMUQsTUFBTUssVUFBVSxHQUFHQSxDQUFBLEtBQW1CO01BQ3BDLG9CQUNFL0Usc0NBQUE7UUFDRWdGLHVCQUF1QixFQUFFO1VBQ3ZCQyxNQUFNLEVBQUcsWUFBV0wsWUFBWSxDQUFDRSxLQUFLLENBQUU7UUFDMUMsQ0FBRTtRQUFBNUUsTUFBQTtRQUFBQyxRQUFBO1VBQUFDLFFBQUEsRUFBQUMsdUJBQUE7VUFBQUMsVUFBQTtVQUFBQyxZQUFBO1FBQUE7TUFBQSxDQUNILENBQUM7SUFFTixDQUFDO0lBQ0Q7SUFDQTtJQUNBVCxPQUFPLENBQUMrQyxJQUFJLGVBQUM3QyxzQ0FBQSxDQUFDK0UsVUFBVTtNQUFBN0UsTUFBQTtNQUFBQyxRQUFBO1FBQUFDLFFBQUEsRUFBQUMsdUJBQUE7UUFBQUMsVUFBQTtRQUFBQyxZQUFBO01BQUE7SUFBQSxDQUFFLENBQUMsQ0FBQztJQUU1QixPQUFPO01BQ0wsR0FBRzJCLFNBQVM7TUFDWjNFLEdBQUcsZUFBRXlDLHNDQUFBLENBQUM2RSxhQUFhO1FBQUNDLEtBQUssRUFBRUEsS0FBTTtRQUFBNUUsTUFBQTtRQUFBQyxRQUFBO1VBQUFDLFFBQUEsRUFBQUMsdUJBQUE7VUFBQUMsVUFBQTtVQUFBQyxZQUFBO1FBQUE7TUFBQSxHQUFFMkIsU0FBUyxDQUFDM0UsR0FBbUIsQ0FBQztNQUNqRXVDO0lBQ0YsQ0FBQztFQUNILENBQUM7QUFDSDs7QUM1Q0EsTUFBTSxzQkFBNEI7O0FDQWxDLE1BQU0sZ0NBQTRCOzs7QUNBcUM7QUFDekI7QUFDcEI7QUFJWCxTQUFTc0YsV0FBV0EsQ0FBYzNELE9BSWhELEVBUUM7RUFDQSxNQUFNNEQsb0JBQW9CLEdBQ3hCQyxNQUFnRCxJQUVoRCxTQUFTQyxNQUFNQSxDQUFDO0lBQUU3RjtFQUF3QyxDQUFDLEVBQUU7SUFDM0QsTUFBTThGLFdBQVcsR0FBRy9ELE9BQU8sQ0FBQ2dFLGNBQWMsQ0FBQyxDQUFDO0lBRTVDLG9CQUNFekYsc0NBQUEsQ0FBQ2tGLG9DQUFhO01BQUNJLE1BQU0sRUFBRUEsTUFBTztNQUFDRSxXQUFXLEVBQUVBLFdBQVk7TUFBQXRGLE1BQUE7TUFBQUMsUUFBQTtRQUFBQyxRQUFBLEVBQUFDLHlCQUFBO1FBQUFDLFVBQUE7UUFBQUMsWUFBQTtNQUFBO0lBQUEsR0FDckRiLFFBQ1ksQ0FBQztFQUVwQixDQUFDO0VBRUgsT0FBT2dDLElBQUksSUFBSSxNQUFNQyxLQUFLLElBQUk7SUFDNUIsTUFBTStELEdBQUcsR0FBRy9ELEtBQUssQ0FBQ3pFLEdBQUcsQ0FBQ3dJLEdBQUcsSUFBSSxFQUFFO0lBQy9CLE1BQU1DLEtBQUssR0FBR0QsR0FBRyxDQUFDRSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUMvQixNQUFNQyxZQUFZLEdBQUcsSUFBSUMsZUFBZSxDQUFDSCxLQUFLLENBQUN0RCxNQUFNLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBR3NELEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMxRSxNQUFNTCxNQUFNLEdBQUc3RCxPQUFPLENBQUNzRSxZQUFZLENBQ2pDWix3REFBbUIsQ0FBQztNQUFFYSxjQUFjLEVBQUUsQ0FBQ04sR0FBRztJQUFFLENBQUMsQ0FDL0MsQ0FBQztJQUNELE1BQU0zQyxhQUFtQyxHQUFHdUMsTUFBTSxDQUFDVyxnQkFBZ0IsQ0FBQ1AsR0FBRyxDQUFDO0lBRXhFLE1BQU14RCxTQUFTLEdBQUcsTUFBTVIsSUFBSSxDQUFDO01BQzNCLEdBQUdDLEtBQUs7TUFDUm9CLGFBQWE7TUFDYnVDLE1BQU07TUFDTk87SUFDRixDQUFDLENBQUM7SUFFRixNQUFNTixNQUFNLEdBQUdGLG9CQUFvQixDQUFDQyxNQUFNLENBQUM7SUFFM0MsT0FBTztNQUNMLEdBQUdwRCxTQUFTO01BQ1ozRSxHQUFHLGVBQUV5QyxzQ0FBQSxDQUFDdUYsTUFBTTtRQUFBckYsTUFBQTtRQUFBQyxRQUFBO1VBQUFDLFFBQUEsRUFBQUMseUJBQUE7VUFBQUMsVUFBQTtVQUFBQyxZQUFBO1FBQUE7TUFBQSxHQUFFMkIsU0FBUyxDQUFDM0UsR0FBWSxDQUFDO01BQ3JDO01BQ0F3RixhQUFhO01BQ2J1QyxNQUFNO01BQ05PO0lBQ0YsQ0FBQztFQUNILENBQUM7QUFDSDs7QUNsRGUsU0FBU0ssYUFBYUEsQ0FBbUJDLEtBQVEsRUFBRTtFQUNoRSxPQUFPLFVBS0x6RSxJQUlDLEVBQ0Q7SUFDQSxPQUFPLE1BQU9DLEtBQVEsSUFBSztNQUN6QixNQUFNTyxTQUFTLEdBQUcsTUFBTVIsSUFBSSxDQUFDQyxLQUFLLENBQUM7TUFFbkMsSUFBSTtRQUNGLE1BQU15RSxPQUEyQixHQUFHLEVBQUU7UUFDdENsRSxTQUFTLENBQUNhLGFBQWEsQ0FBQ0wsT0FBTyxDQUFDTyxLQUFLLElBQUk7VUFDdkMsSUFBSSxPQUFPQSxLQUFLLENBQUNvRCxXQUFXLEtBQUssVUFBVSxFQUFFO1lBQzNDRCxPQUFPLENBQUN2RCxJQUFJLENBQ1ZJLEtBQUssQ0FBQ29ELFdBQVcsQ0FDZm5FLFNBQVMsQ0FBQ2lFLEtBQUssQ0FBQyxFQUNoQmxELEtBQUssRUFDTGYsU0FBUyxDQUFDMkQsWUFDWixDQUNGLENBQUM7VUFDSDtRQUNGLENBQUMsQ0FBQztRQUNGLE1BQU1TLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDSCxPQUFPLENBQUM7TUFDNUIsQ0FBQyxDQUFDLE9BQU9ySSxDQUFDLEVBQUU7UUFDVkMsT0FBTyxDQUFDQyxLQUFLLENBQUNGLENBQUMsQ0FBQztNQUNsQjtNQUNBLE9BQU9tRSxTQUFTO0lBQ2xCLENBQUM7RUFDSCxDQUFDO0FBQ0g7OztBQzVDd0M7QUFTekIsU0FBU3VFLFNBQVNBLENBQUM7RUFDaEM5RixFQUFFLEdBQUc7QUFDVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBSXJCO0VBQ0EsT0FBT2UsSUFBSSxJQUFJLE1BQU1DLEtBQUssSUFBSTtJQUFBLElBQUErQyxrQkFBQSxFQUFBZ0MsbUJBQUE7SUFDNUIsTUFBTXhFLFNBQVMsR0FBRyxNQUFNUixJQUFJLENBQUNDLEtBQUssQ0FBQztJQUVuQyxNQUFNN0IsT0FBMEIsSUFBQTRFLGtCQUFBLEdBQUd4QyxTQUFTLENBQUNwQyxPQUFPLFlBQUE0RSxrQkFBQSxHQUFJLEVBQUU7SUFFMURyRyxNQUFNLENBQUNzSSxPQUFPLEVBQUFELG1CQUFBLEdBQUN4RSxTQUFTLENBQUNxQyxRQUFRLFlBQUFtQyxtQkFBQSxHQUFJLENBQUMsQ0FBQyxDQUFDLENBQUNoRSxPQUFPLENBQUMsQ0FBQyxDQUFDbEUsR0FBRyxFQUFFb0ksT0FBTyxDQUFDLEtBQUs7TUFDbkUsTUFBTUMsUUFBUSxHQUFJLEdBQUVsRyxFQUFHLElBQUduQyxHQUFJLEVBQUM7TUFDL0IsTUFBTXNJLE1BQU0sR0FBR0EsQ0FBQSxLQUFNO1FBQ25CLE1BQU1DLElBQVMsR0FBR0gsT0FBTyxDQUFDLENBQUM7UUFDM0IsSUFBSTtVQUNGLE1BQU1JLE9BQU8sR0FBR0MsSUFBSSxDQUFDQyxTQUFTLENBQUNILElBQUksQ0FBQztVQUNwQyxvQkFDRS9HLHNDQUFBO1lBQ0VXLEVBQUUsRUFBRWtHLFFBQVM7WUFDYk0sSUFBSSxFQUFDLGtCQUFrQjtZQUN2Qm5DLHVCQUF1QixFQUFFO2NBQ3ZCQyxNQUFNLEVBQUUrQjtZQUNWLENBQUU7WUFDRjVKLEtBQUssRUFBRXVFLEtBQUssQ0FBQ3ZFLEtBQU07WUFBQThDLE1BQUE7WUFBQUMsUUFBQTtjQUFBQyxRQUFBLEVBQUFDLHVCQUFBO2NBQUFDLFVBQUE7Y0FBQUMsWUFBQTtZQUFBO1VBQUEsQ0FDcEIsQ0FBQztRQUVOLENBQUMsQ0FBQyxPQUFPeEMsQ0FBQyxFQUFFO1VBQ1Y7VUFDQUMsT0FBTyxDQUFDQyxLQUFLLENBQUUsOEJBQTZCTyxHQUFJLEVBQUMsQ0FBQztVQUNsRFIsT0FBTyxDQUFDQyxLQUFLLENBQUNGLENBQUMsQ0FBQztVQUNoQixPQUFPLElBQUk7UUFDYjtNQUNGLENBQUM7TUFDRCtCLE9BQU8sQ0FBQytDLElBQUksZUFDVjdDLHNDQUFBLENBQUN3Ryx1Q0FBUTtRQUFDaEksR0FBRyxFQUFFcUksUUFBUztRQUFBM0csTUFBQTtRQUFBQyxRQUFBO1VBQUFDLFFBQUEsRUFBQUMsdUJBQUE7VUFBQUMsVUFBQTtVQUFBQyxZQUFBO1FBQUE7TUFBQSxnQkFDdEJQLHNDQUFBLENBQUM4RyxNQUFNO1FBQUE1RyxNQUFBO1FBQUFDLFFBQUE7VUFBQUMsUUFBQSxFQUFBQyx1QkFBQTtVQUFBQyxVQUFBO1VBQUFDLFlBQUE7UUFBQTtNQUFBLENBQUUsQ0FDRCxDQUNaLENBQUM7SUFDSCxDQUFDLENBQUM7SUFFRixPQUFPO01BQ0wsR0FBRzJCLFNBQVM7TUFDWnBDO0lBQ0YsQ0FBQztFQUNILENBQUM7QUFDSDs7QUN0REEsTUFBTXNILFFBQVEsR0FDWDdKLEdBQWdCLElBQ09vRSxLQUFRLElBQzlCMkUsT0FBTyxDQUFDZSxPQUFPLENBQUM7RUFBRSxHQUFHMUYsS0FBSztFQUFFcEU7QUFBSSxDQUFDLENBQUM7QUFFdEMsaURBQWU2SixRQUFROztBQ1ArQjtBQUNpQjtBQUNJO0FBQ1o7QUFDSTtBQUNJO0FBQ1I7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL0BhbmFuc2kvY29yZS9leHRlcm5hbCBjb21tb25qcyBcIkBkYXRhLWNsaWVudC9yZWFjdFwiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS9leHRlcm5hbCBjb21tb25qcyBcIkBkYXRhLWNsaWVudC9zc3JcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgaW1wb3J0IFwiQGFudC1kZXNpZ24vY3NzaW5qc1wiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL2Jvb3RzdHJhcCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9jcmVhdGUgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9oYXNPd25Qcm9wZXJ0eSBzaG9ydGhhbmQiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIG5vZGUtY29tbW9uanMgXCJjcnlwdG9cIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdC1kb20vc2VydmVyXCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL2xheVNwb3V0cy50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwicmVhY3RcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL2NzcC50cyIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL0RvY3VtZW50Q29tcG9uZW50LnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL2RvY3VtZW50LnNlcnZlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9kYXRhQ2xpZW50LnNlcnZlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9hbnRkLnNlcnZlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwiQGFuYW5zaS9yb3V0ZXJcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJoaXN0b3J5XCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9yb3V0ZXIuc2VydmVyLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL3ByZWZldGNoLnNlcnZlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9qc29uLnNlcnZlci50c3giLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlLy4vc3JjL3Nwb3V0cy9hcHAuc2VydmVyLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvaW5kZXguc2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkBkYXRhLWNsaWVudC9yZWFjdFwiKTsiLCJtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoXCJAZGF0YS1jbGllbnQvc3NyXCIpOyIsIm1vZHVsZS5leHBvcnRzID0gaW1wb3J0KFwiQGFudC1kZXNpZ24vY3NzaW5qc1wiKTs7IiwiLy8gVGhlIG1vZHVsZSBjYWNoZVxudmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuXG4vLyBUaGUgcmVxdWlyZSBmdW5jdGlvblxuZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuXHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcblx0dmFyIGNhY2hlZE1vZHVsZSA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG5cdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuXHRcdHJldHVybiBjYWNoZWRNb2R1bGUuZXhwb3J0cztcblx0fVxuXHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuXHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXSA9IHtcblx0XHQvLyBubyBtb2R1bGUuaWQgbmVlZGVkXG5cdFx0Ly8gbm8gbW9kdWxlLmxvYWRlZCBuZWVkZWRcblx0XHRleHBvcnRzOiB7fVxuXHR9O1xuXG5cdC8vIEV4ZWN1dGUgdGhlIG1vZHVsZSBmdW5jdGlvblxuXHRfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXShtb2R1bGUsIG1vZHVsZS5leHBvcnRzLCBfX3dlYnBhY2tfcmVxdWlyZV9fKTtcblxuXHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuXHRyZXR1cm4gbW9kdWxlLmV4cG9ydHM7XG59XG5cbiIsIi8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG5cdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuXHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuXHRcdCgpID0+IChtb2R1bGUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcblx0cmV0dXJuIGdldHRlcjtcbn07IiwidmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mID8gKG9iaikgPT4gKE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopKSA6IChvYmopID0+IChvYmouX19wcm90b19fKTtcbnZhciBsZWFmUHJvdG90eXBlcztcbi8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuLy8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4vLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbi8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuLy8gbW9kZSAmIDE2OiByZXR1cm4gdmFsdWUgd2hlbiBpdCdzIFByb21pc2UtbGlrZVxuLy8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuX193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcblx0aWYobW9kZSAmIDEpIHZhbHVlID0gdGhpcyh2YWx1ZSk7XG5cdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG5cdGlmKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUpIHtcblx0XHRpZigobW9kZSAmIDQpICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcblx0XHRpZigobW9kZSAmIDE2KSAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlO1xuXHR9XG5cdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG5cdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG5cdHZhciBkZWYgPSB7fTtcblx0bGVhZlByb3RvdHlwZXMgPSBsZWFmUHJvdG90eXBlcyB8fCBbbnVsbCwgZ2V0UHJvdG8oe30pLCBnZXRQcm90byhbXSksIGdldFByb3RvKGdldFByb3RvKV07XG5cdGZvcih2YXIgY3VycmVudCA9IG1vZGUgJiAyICYmIHZhbHVlOyB0eXBlb2YgY3VycmVudCA9PSAnb2JqZWN0JyAmJiAhfmxlYWZQcm90b3R5cGVzLmluZGV4T2YoY3VycmVudCk7IGN1cnJlbnQgPSBnZXRQcm90byhjdXJyZW50KSkge1xuXHRcdE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGN1cnJlbnQpLmZvckVhY2goKGtleSkgPT4gKGRlZltrZXldID0gKCkgPT4gKHZhbHVlW2tleV0pKSk7XG5cdH1cblx0ZGVmWydkZWZhdWx0J10gPSAoKSA9PiAodmFsdWUpO1xuXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGRlZik7XG5cdHJldHVybiBucztcbn07IiwiLy8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcblx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuXHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcblx0XHR9XG5cdH1cbn07IiwiX193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKSIsIi8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbl9fd2VicGFja19yZXF1aXJlX18uciA9IChleHBvcnRzKSA9PiB7XG5cdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuXHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuXHR9XG5cdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG59OyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwiY3J5cHRvXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwicmVhY3QtZG9tL3NlcnZlclwiKTsiLCJpbXBvcnQgY3J5cHRvIGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyByZW5kZXJUb1BpcGVhYmxlU3RyZWFtIGFzIHJlYWN0UmVuZGVyIH0gZnJvbSAncmVhY3QtZG9tL3NlcnZlcic7XG5cbmltcG9ydCB0eXBlIHsgUmVuZGVyIH0gZnJvbSAnLi9zY3JpcHRzL3R5cGVzLmpzJztcbmltcG9ydCB0eXBlIHsgU2VydmVyUHJvcHMgfSBmcm9tICcuL3Nwb3V0cy90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxheVNwb3V0cyhcbiAgc3BvdXRzOiAocHJvcHM6IFNlcnZlclByb3BzKSA9PiBQcm9taXNlPHtcbiAgICBhcHA6IEpTWC5FbGVtZW50O1xuICB9PixcbiAge1xuICAgIHRpbWVvdXRNUyA9IDEwMDAwLFxuICAgIG9uRXJyb3IsXG4gIH06IHsgdGltZW91dE1TPzogbnVtYmVyOyBvbkVycm9yPzogKGVycm9yOiB1bmtub3duKSA9PiB2b2lkIH0gPSB7fSxcbikge1xuICBjb25zdCByZW5kZXI6IFJlbmRlciA9IGFzeW5jIChjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMpID0+IHtcbiAgICBjb25zdCBub25jZSA9IGNyeXB0by5yYW5kb21CeXRlcygxNikudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHsgYXBwIH0gPSBhd2FpdCBzcG91dHMoeyBjbGllbnRNYW5pZmVzdCwgcmVxLCByZXMsIG5vbmNlIH0pO1xuXG4gICAgICBsZXQgZGlkRXJyb3IgPSBmYWxzZTtcbiAgICAgIGNvbnN0IHsgcGlwZSwgYWJvcnQgfSA9IHJlYWN0UmVuZGVyKGFwcCwge1xuICAgICAgICBub25jZSxcbiAgICAgICAgLy9ib290c3RyYXBTY3JpcHRzOiBhc3NldHMuZmlsdGVyKGFzc2V0ID0+IGFzc2V0LmVuZHNXaXRoKCcuanMnKSksXG4gICAgICAgIG9uU2hlbGxSZWFkeSgpIHtcbiAgICAgICAgICAvL21hbmFnZXJzLmZvckVhY2gobWFuYWdlciA9PiBtYW5hZ2VyLmNsZWFudXAoKSk7XG4gICAgICAgICAgLy8gSWYgc29tZXRoaW5nIGVycm9yZWQgYmVmb3JlIHdlIHN0YXJ0ZWQgc3RyZWFtaW5nLCB3ZSBzZXQgdGhlIGVycm9yIGNvZGUgYXBwcm9wcmlhdGVseS5cbiAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IGRpZEVycm9yID8gNTAwIDogMjAwO1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgICBwaXBlKHJlcyk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uU2hlbGxFcnJvcigpIHtcbiAgICAgICAgICBkaWRFcnJvciA9IHRydWU7XG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XG4gICAgICAgICAgcGlwZShyZXMpO1xuICAgICAgICB9LFxuICAgICAgICBvbkVycm9yKGU6IGFueSkge1xuICAgICAgICAgIGRpZEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNTAwO1xuICAgICAgICAgIC8vcGlwZShyZXMpOyBSZW1vdmluZyB0aGlzIGF2b2lkcywgXCJSZWFjdCBjdXJyZW50bHkgb25seSBzdXBwb3J0cyBwaXBpbmcgdG8gb25lIHdyaXRhYmxlIHN0cmVhbS5cIlxuICAgICAgICAgIGlmIChvbkVycm9yKSBvbkVycm9yKGUpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICAvLyBBYmFuZG9uIGFuZCBzd2l0Y2ggdG8gY2xpZW50IHJlbmRlcmluZyBpZiBlbm91Z2ggdGltZSBwYXNzZXMuXG4gICAgICAvLyBUcnkgbG93ZXJpbmcgdGhpcyB0byBzZWUgdGhlIGNsaWVudCByZWNvdmVyLlxuICAgICAgc2V0VGltZW91dChcbiAgICAgICAgKCkgPT4gKGFib3J0IGFzIGFueSkoYFRpbWVvdXQgb2YgJHt0aW1lb3V0TVN9bXMgZXhjZWVkZWRgKSxcbiAgICAgICAgdGltZW91dE1TLFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICBpZiAob25FcnJvcikgb25FcnJvcihlKTtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9O1xuICByZXR1cm4gcmVuZGVyO1xufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdFwiKTsiLCJleHBvcnQgaW50ZXJmYWNlIFBvbGljeSB7XG4gIFtkaXJlY3RpdmU6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xufVxuXG4vLyBUT0RPOiBtZW1vaXplIHRoaXNcbmV4cG9ydCBmdW5jdGlvbiBidWlsZFBvbGljeShwb2xpY3lPYmo6IFBvbGljeSkge1xuICByZXR1cm4gT2JqZWN0LmtleXMocG9saWN5T2JqKVxuICAgIC5tYXAoa2V5ID0+IHtcbiAgICAgIGNvbnN0IHZhbCA9XG4gICAgICAgIEFycmF5LmlzQXJyYXkocG9saWN5T2JqW2tleV0pID9cbiAgICAgICAgICBbLi4ubmV3IFNldChwb2xpY3lPYmpba2V5XSkudmFsdWVzKCldLmZpbHRlcih2ID0+IHYpLmpvaW4oJyAnKVxuICAgICAgICA6IHBvbGljeU9ialtrZXldO1xuXG4gICAgICAvLyBtb3ZlIHN0cmljdCBkeW5hbWljIHRvIHRoZSBlbmQgb2YgdGhlIHBvbGljeSBpZiBpdCBleGlzdHMgdG8gYmUgYmFja3dhcmRzIGNvbXBhdGlibGUgd2l0aCBjc3AyXG4gICAgICAvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0hlYWRlcnMvQ29udGVudC1TZWN1cml0eS1Qb2xpY3kvc2NyaXB0LXNyYyNzdHJpY3QtZHluYW1pY1xuICAgICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnICYmIHZhbC5pbmNsdWRlcyhcIidzdHJpY3QtZHluYW1pYydcIikpIHtcbiAgICAgICAgY29uc3QgbmV3VmFsID0gYCR7dmFsXG4gICAgICAgICAgLnJlcGxhY2UoL1xccz8nc3RyaWN0LWR5bmFtaWMnXFxzPy9naSwgJyAnKVxuICAgICAgICAgIC50cmltKCl9ICdzdHJpY3QtZHluYW1pYydgO1xuICAgICAgICByZXR1cm4gYCR7a2V5fSAke25ld1ZhbH1gO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gYCR7a2V5fSAke3ZhbH1gO1xuICAgIH0pXG4gICAgLmpvaW4oJzsgJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBqb2luTm9uY2UocG9saWN5T2JqOiBQb2xpY3ksIG5vbmNlPzogc3RyaW5nIHwgdW5kZWZpbmVkKSB7XG4gIGlmICghbm9uY2UpIHJldHVybiBwb2xpY3lPYmo7XG4gIGNvbnN0IHBvbGljeSA9IHtcbiAgICAuLi5wb2xpY3lPYmosXG4gIH07XG4gIGlmICh0eXBlb2YgcG9saWN5WydzY3JpcHQtc3JjJ10gPT09ICdzdHJpbmcnKSB7XG4gICAgcG9saWN5WydzY3JpcHQtc3JjJ10gPSBbcG9saWN5WydzY3JpcHQtc3JjJ10sIGAnbm9uY2UtJHtub25jZX0nYF07XG4gIH0gZWxzZSB7XG4gICAgcG9saWN5WydzY3JpcHQtc3JjJ10gPSBbLi4ucG9saWN5WydzY3JpcHQtc3JjJ10sIGAnbm9uY2UtJHtub25jZX0nYF07XG4gIH1cbiAgcmV0dXJuIHBvbGljeTtcbn1cbiIsInR5cGUgUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG4gIGFzc2V0czogeyBocmVmOiBzdHJpbmc7IGFzPzogc3RyaW5nOyByZWw/OiBzdHJpbmcgfVtdO1xuICBoZWFkOiBSZWFjdC5SZWFjdE5vZGU7XG4gIGV4dHJhU3R5bGU6IFJlYWN0LlJlYWN0Tm9kZTtcbiAgc2NyaXB0czogUmVhY3QuUmVhY3ROb2RlO1xuICB0aXRsZTogc3RyaW5nO1xuICByb290SWQ6IHN0cmluZztcbiAgY2hhclNldDogc3RyaW5nO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRG9jdW1lbnQoe1xuICBhc3NldHMsXG4gIGhlYWQsXG4gIGNoaWxkcmVuLFxuICB0aXRsZSxcbiAgcm9vdElkLFxuICBjaGFyU2V0LFxuICBzY3JpcHRzLFxuICBleHRyYVN0eWxlLFxufTogUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8aHRtbD5cbiAgICAgIDxoZWFkPlxuICAgICAgICA8bWV0YSBjaGFyU2V0PXtjaGFyU2V0fSAvPlxuICAgICAgICB7aGVhZH1cbiAgICAgICAge2V4dHJhU3R5bGV9XG4gICAgICAgIHthc3NldHMubWFwKChhc3NldCwgaSkgPT4gKFxuICAgICAgICAgIDxsaW5rIGtleT17aX0gcmVsPVwicHJlbG9hZFwiIHsuLi5hc3NldH0gLz5cbiAgICAgICAgKSl9XG4gICAgICAgIDx0aXRsZT57dGl0bGV9PC90aXRsZT5cbiAgICAgIDwvaGVhZD5cbiAgICAgIDxib2R5PlxuICAgICAgICA8ZGl2IGlkPXtyb290SWR9PntjaGlsZHJlbn08L2Rpdj5cbiAgICAgICAge3NjcmlwdHN9XG4gICAgICAgIHthc3NldHNcbiAgICAgICAgICAuZmlsdGVyKCh7IGhyZWYgfSkgPT4gaHJlZi5lbmRzV2l0aCgnLmpzJykpXG4gICAgICAgICAgLm1hcCgoeyBocmVmIH0sIGkpID0+IChcbiAgICAgICAgICAgIDxzY3JpcHQga2V5PXtpfSBzcmM9e2hyZWZ9IGFzeW5jIC8+XG4gICAgICAgICAgKSl9XG4gICAgICA8L2JvZHk+XG4gICAgPC9odG1sPlxuICApO1xufVxuRG9jdW1lbnQuZGVmYXVsdFByb3BzID0ge1xuICBoZWFkOiAoXG4gICAgPD5cbiAgICAgIDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MVwiIC8+XG4gICAgICA8bGlua1xuICAgICAgICByZWw9XCJzaG9ydGN1dCBpY29uXCJcbiAgICAgICAgaHJlZj17YCR7cHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCA/PyAnLyd9ZmF2aWNvbi5pY29gfVxuICAgICAgLz5cbiAgICA8Lz5cbiAgKSxcbiAgY2hhclNldDogJ3V0Zi04JyxcbiAgcm9vdElkOiAnYW5hbnNpLXJvb3QnLFxuICBzY3JpcHRzOiBudWxsLFxufTtcbiIsImltcG9ydCB0eXBlIHsgUm91dGUgfSBmcm9tICdAYW5hbnNpL3JvdXRlcic7XG5pbXBvcnQgeyBSZXF1ZXN0IH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgU3RhdHNDaHVua0dyb3VwIH0gZnJvbSAnd2VicGFjayc7XG5cbmltcG9ydCB7IGJ1aWxkUG9saWN5LCBqb2luTm9uY2UsIFBvbGljeSB9IGZyb20gJy4vY3NwLmpzJztcbmltcG9ydCBEb2N1bWVudCBmcm9tICcuL0RvY3VtZW50Q29tcG9uZW50LmpzJztcbmltcG9ydCB0eXBlIHsgU2VydmVyU3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxudHlwZSBOZWVkZWROZXh0ID0ge1xuICBtYXRjaGVkUm91dGVzOiBSb3V0ZTxhbnk+W107XG4gIHRpdGxlPzogc3RyaW5nO1xuICBzY3JpcHRzPzogUmVhY3QuUmVhY3ROb2RlW107XG4gIGV4dHJhU3R5bGU/OiBSZWFjdC5SZWFjdE5vZGVbXTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIERvY3VtZW50U3BvdXQob3B0aW9uczoge1xuICBoZWFkPzogUmVhY3QuUmVhY3ROb2RlO1xuICB0aXRsZTogc3RyaW5nO1xuICByb290SWQ/OiBzdHJpbmc7XG4gIGNoYXJTZXQ/OiBzdHJpbmc7XG4gIGNzUG9saWN5PzogUG9saWN5O1xufSk6IFNlcnZlclNwb3V0PFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiwgTmVlZGVkTmV4dD4ge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICBjb25zdCBwdWJsaWNQYXRoID0gcHJvcHMuY2xpZW50TWFuaWZlc3QucHVibGljUGF0aDtcblxuICAgIGlmIChcbiAgICAgIE9iamVjdC5rZXlzKHByb3BzLmNsaWVudE1hbmlmZXN0Py5lbnRyeXBvaW50cyA/PyB7fSkubGVuZ3RoIDwgMSB8fFxuICAgICAgcHVibGljUGF0aCA9PT0gdW5kZWZpbmVkXG4gICAgKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdNYW5pZmVzdCBtaXNzaW5nIGVudHJpZXMgbmVlZGVkJyk7XG5cbiAgICAvLyBUT0RPOiBjb25zaWRlciB1c2luZyB0aGlzIHBhY2thZ2UgZm9yIGJ1aWxkIHN0YXRzIGluIGZ1dHVyZTpcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvdHJlZS9tYWluL3BhY2thZ2VzL3JlYWN0LXNlcnZlci1kb20td2VicGFja1xuICAgIGNvbnN0IGFzc2V0TWFwID0gKGFzc2V0czogeyBuYW1lOiBzdHJpbmc7IHNpemU/OiBudW1iZXIgfVtdKSA9PlxuICAgICAgYXNzZXRzLm1hcCgoeyBuYW1lIH0pID0+IGAke3B1YmxpY1BhdGh9JHtuYW1lfWApO1xuXG4gICAgY29uc3QgYXNzZXRMaXN0OiBzdHJpbmdbXSA9IFtdO1xuICAgIE9iamVjdC52YWx1ZXMocHJvcHMuY2xpZW50TWFuaWZlc3Q/LmVudHJ5cG9pbnRzID8/IHt9KS5mb3JFYWNoKFxuICAgICAgZW50cnlwb2ludCA9PiB7XG4gICAgICAgIGFzc2V0TGlzdC5wdXNoKC4uLmFzc2V0TWFwKGVudHJ5cG9pbnQuYXNzZXRzID8/IFtdKSk7XG4gICAgICB9LFxuICAgICk7XG4gICAgbmV3IFNldChcbiAgICAgIGFzc2V0TWFwKFxuICAgICAgICBPYmplY3QudmFsdWVzKHByb3BzLmNsaWVudE1hbmlmZXN0Lm5hbWVkQ2h1bmtHcm91cHMgPz8ge30pXG4gICAgICAgICAgLmZpbHRlcigoeyBuYW1lIH0pID0+XG4gICAgICAgICAgICBuZXh0UHJvcHMubWF0Y2hlZFJvdXRlcy5zb21lKHJvdXRlID0+IG5hbWU/LmluY2x1ZGVzKHJvdXRlLm5hbWUpKSxcbiAgICAgICAgICApXG4gICAgICAgICAgLmZsYXRNYXAoY2h1bmsgPT4gW1xuICAgICAgICAgICAgLi4uKGNodW5rLmFzc2V0cyA/PyBbXSksXG4gICAgICAgICAgICAvLyBhbnkgY2h1bmsgcHJlbG9hZHNcbiAgICAgICAgICAgIC4uLmNoaWxkcmVuQXNzZXRzKGNodW5rKSxcbiAgICAgICAgICBdKSxcbiAgICAgICksXG4gICAgKS5mb3JFYWNoKGFzc2V0ID0+IGFzc2V0TGlzdC5wdXNoKGFzc2V0KSk7XG5cbiAgICAvLyBmaW5kIGFkZGl0aW9uYWwgYXNzZXRzIHRvIHByZWxvYWQgYmFzZWQgb24gbWF0Y2hlZCByb3V0ZVxuICAgIGNvbnN0IGFzc2V0czoge1xuICAgICAgaHJlZjogc3RyaW5nO1xuICAgICAgYXM/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICByZWw/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgfVtdID0gYXNzZXRMaXN0XG4gICAgICAuZmlsdGVyKGFzc2V0ID0+ICFhc3NldC5lbmRzV2l0aCgnLmhvdC11cGRhdGUuanMnKSlcbiAgICAgIC5tYXAoYXNzZXQgPT5cbiAgICAgICAgYXNzZXQuZW5kc1dpdGgoJy5jc3MnKSA/IHsgaHJlZjogYXNzZXQsIHJlbDogJ3N0eWxlc2hlZXQnIH1cbiAgICAgICAgOiBhc3NldC5lbmRzV2l0aCgnLmpzJykgPyB7IGhyZWY6IGFzc2V0LCBhczogJ3NjcmlwdCcgfVxuICAgICAgICA6IHsgaHJlZjogYXNzZXQgfSxcbiAgICAgICk7XG5cbiAgICBpZiAob3B0aW9ucy5jc1BvbGljeSkge1xuICAgICAgY29uc3QgaHR0cEVxdWl2ID1cbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdwcm9kdWN0aW9uJyA/XG4gICAgICAgICAgJ0NvbnRlbnQtU2VjdXJpdHktUG9saWN5J1xuICAgICAgICA6ICdDb250ZW50LVNlY3VyaXR5LVBvbGljeS1SZXBvcnQtT25seSc7XG5cbiAgICAgIHByb3BzLnJlcy5zZXRIZWFkZXIoXG4gICAgICAgIGh0dHBFcXVpdixcbiAgICAgICAgYnVpbGRQb2xpY3koam9pbk5vbmNlKG9wdGlvbnMuY3NQb2xpY3ksIHByb3BzLm5vbmNlKSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICBhcHA6IChcbiAgICAgICAgPERvY3VtZW50XG4gICAgICAgICAgey4uLm9wdGlvbnN9XG4gICAgICAgICAgZXh0cmFTdHlsZT17bmV4dFByb3BzLmV4dHJhU3R5bGV9XG4gICAgICAgICAgdGl0bGU9e25leHRQcm9wcy50aXRsZSA/PyBvcHRpb25zLnRpdGxlfVxuICAgICAgICAgIGFzc2V0cz17YXNzZXRzfVxuICAgICAgICAgIHJvb3RJZD17b3B0aW9ucy5yb290SWR9XG4gICAgICAgICAgc2NyaXB0cz17bmV4dFByb3BzLnNjcmlwdHN9XG4gICAgICAgID5cbiAgICAgICAgICB7bmV4dFByb3BzLmFwcH1cbiAgICAgICAgPC9Eb2N1bWVudD5cbiAgICAgICksXG4gICAgfTtcbiAgfTtcbn1cblxuZnVuY3Rpb24gY2hpbGRyZW5Bc3NldHMoY2h1bms6IFN0YXRzQ2h1bmtHcm91cCkge1xuICByZXR1cm4gY2h1bmsuY2hpbGRyZW4gP1xuICAgICAgT2JqZWN0LnZhbHVlcyhjaHVuay5jaGlsZHJlbikuZmxhdE1hcChwcmVsb2FkID0+XG4gICAgICAgIHByZWxvYWQuZmxhdE1hcChjID0+IGMuYXNzZXRzID8/IFtdKSxcbiAgICAgIClcbiAgICA6IFtdO1xufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDb250cm9sbGVyLFxuICB0eXBlIE1hbmFnZXIsXG4gIHR5cGUgU3RhdGUsXG4gIHR5cGUgU3RvcmUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9yZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgU2VydmVyU3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGF0YUNsaWVudFNwb3V0KFxuICBvcHRpb25zOiB7XG4gICAgZ2V0TWFuYWdlcnM/OiAoKSA9PiBNYW5hZ2VyW107XG4gIH0gPSB7fSxcbik6IFNlcnZlclNwb3V0PFxuICBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgeyBjb250cm9sbGVyOiBDb250cm9sbGVyIH0gJiB7IHN0b3JlOiBTdG9yZTxTdGF0ZTx1bmtub3duPj4gfSxcbiAgeyBpbml0RGF0YT86IFJlY29yZDxzdHJpbmcsICgpID0+IHVua25vd24+OyBzY3JpcHRzPzogUmVhY3QuUmVhY3ROb2RlW10gfVxuPiB7XG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCBtYW5hZ2VycyA9IG9wdGlvbnM/LmdldE1hbmFnZXJzPy4oKSA/PyBbXG4gICAgICBuZXcgKGF3YWl0IGltcG9ydCgnQGRhdGEtY2xpZW50L3JlYWN0JykpLk5ldHdvcmtNYW5hZ2VyKCksXG4gICAgXTtcbiAgICBjb25zdCB7IGNyZWF0ZVBlcnNpc3RlZFN0b3JlIH0gPSBhd2FpdCBpbXBvcnQoJ0BkYXRhLWNsaWVudC9zc3InKTtcbiAgICBjb25zdCBbU2VydmVyQ2FjaGVQcm92aWRlciwgdXNlUmVhZHlDYWNoZVN0YXRlLCBjb250cm9sbGVyLCBzdG9yZV0gPVxuICAgICAgY3JlYXRlUGVyc2lzdGVkU3RvcmUobWFuYWdlcnMpO1xuXG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dCh7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNvbnRyb2xsZXIsXG4gICAgICBzdG9yZSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgaW5pdERhdGE6IHtcbiAgICAgICAgLi4ubmV4dFByb3BzLmluaXREYXRhLFxuICAgICAgICBkYXRhY2xpZW50OiB1c2VSZWFkeUNhY2hlU3RhdGUsXG4gICAgICB9LFxuICAgICAgYXBwOiA8U2VydmVyQ2FjaGVQcm92aWRlcj57bmV4dFByb3BzLmFwcH08L1NlcnZlckNhY2hlUHJvdmlkZXI+LFxuICAgICAgLy8gVE9ETzogZmlndXJlIG91dCBob3cgdG8gb25seSBpbmplY3QgaW4gbmV4dCBhbmQgbm90IGhhdmUgdG8gYWxzbyBwdXQgaGVyZVxuICAgICAgY29udHJvbGxlcixcbiAgICAgIHN0b3JlLFxuICAgIH07XG4gIH07XG59XG4iLCJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IFNlcnZlclNwb3V0IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbnR5cGUgTmVlZGVkTmV4dCA9IHtcbiAgaW5pdERhdGE/OiBSZWNvcmQ8c3RyaW5nLCAoKSA9PiB1bmtub3duPjtcbiAgc2NyaXB0cz86IFJlYWN0LlJlYWN0Tm9kZVtdO1xuICBleHRyYVN0eWxlPzogUmVhY3QuUmVhY3ROb2RlW107XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBhbnRkU3BvdXQoKTogU2VydmVyU3BvdXQ8XG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgTmVlZGVkTmV4dFxuPiB7XG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCB7IGNyZWF0ZUNhY2hlLCBleHRyYWN0U3R5bGUsIFN0eWxlUHJvdmlkZXIgfSA9IGF3YWl0IGltcG9ydChcbiAgICAgICdAYW50LWRlc2lnbi9jc3NpbmpzJ1xuICAgICk7XG4gICAgY29uc3QgY2FjaGUgPSBjcmVhdGVDYWNoZSgpO1xuXG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICBjb25zdCBzY3JpcHRzOiBSZWFjdC5SZWFjdE5vZGVbXSA9IG5leHRQcm9wcy5zY3JpcHRzID8/IFtdO1xuXG4gICAgY29uc3QgQW50ZFNoZWV0cyA9ICgpOiBKU1guRWxlbWVudCA9PiB7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8c2NyaXB0XG4gICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgIF9faHRtbDogYDwvc2NyaXB0PiR7ZXh0cmFjdFN0eWxlKGNhY2hlKX08c2NyaXB0PmAsXG4gICAgICAgICAgfX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfTtcbiAgICAvLyB1bmZvcnR1bmF0ZWx5IHdlIGhhdmUgdG8gaW5qZWN0IHRoaXMgYWZ0ZXIgdGhlIGVudGlyZSBjb250ZW50IGhhcyBzdHJlYW1lZCBpbiBvciBpdCBkb2Vzbid0IGNvcnJlY3RseSBwb3B1bGF0ZVxuICAgIC8vIHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FudC1kZXNpZ24vY3NzaW5qcy9pc3N1ZXMvNzlcbiAgICBzY3JpcHRzLnB1c2goPEFudGRTaGVldHMgLz4pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5leHRQcm9wcyxcbiAgICAgIGFwcDogPFN0eWxlUHJvdmlkZXIgY2FjaGU9e2NhY2hlfT57bmV4dFByb3BzLmFwcH08L1N0eWxlUHJvdmlkZXI+LFxuICAgICAgc2NyaXB0cyxcbiAgICB9O1xuICB9O1xufVxuIiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJAYW5hbnNpL3JvdXRlclwiKTsiLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcImhpc3RvcnlcIik7IiwiaW1wb3J0IHsgUm91dGUsIFJvdXRlUHJvdmlkZXIsIFJvdXRlQ29udHJvbGxlciB9IGZyb20gJ0BhbmFuc2kvcm91dGVyJztcbmltcG9ydCB7IGNyZWF0ZU1lbW9yeUhpc3RvcnkgfSBmcm9tICdoaXN0b3J5JztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgQ3JlYXRlUm91dGVyLCBTZXJ2ZXJTcG91dCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByb3V0ZXJTcG91dDxSZXNvbHZlV2l0aD4ob3B0aW9uczoge1xuICByZXNvbHZlV2l0aD86IGFueTtcbiAgdXNlUmVzb2x2ZVdpdGg6ICgpID0+IFJlc29sdmVXaXRoO1xuICBjcmVhdGVSb3V0ZXI6IENyZWF0ZVJvdXRlcjxSZXNvbHZlV2l0aD47XG59KTogU2VydmVyU3BvdXQ8XG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICB7XG4gICAgbWF0Y2hlZFJvdXRlczogUm91dGU8UmVzb2x2ZVdpdGg+W107XG4gICAgc2VhcmNoUGFyYW1zOiBVUkxTZWFyY2hQYXJhbXM7XG4gIH0gJiB7XG4gICAgcm91dGVyOiBSb3V0ZUNvbnRyb2xsZXI8Um91dGU8UmVzb2x2ZVdpdGgsIGFueT4+O1xuICB9XG4+IHtcbiAgY29uc3QgY3JlYXRlUm91dGVDb21wb25lbnQgPSAoXG4gICAgcm91dGVyOiBSb3V0ZUNvbnRyb2xsZXI8Um91dGU8UmVzb2x2ZVdpdGgsIGFueT4+LFxuICApID0+XG4gICAgZnVuY3Rpb24gUm91dGVyKHsgY2hpbGRyZW4gfTogeyBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlIH0pIHtcbiAgICAgIGNvbnN0IHJlc29sdmVXaXRoID0gb3B0aW9ucy51c2VSZXNvbHZlV2l0aCgpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8Um91dGVQcm92aWRlciByb3V0ZXI9e3JvdXRlcn0gcmVzb2x2ZVdpdGg9e3Jlc29sdmVXaXRofT5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvUm91dGVQcm92aWRlcj5cbiAgICAgICk7XG4gICAgfTtcblxuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgdXJsID0gcHJvcHMucmVxLnVybCB8fCAnJztcbiAgICBjb25zdCBwYXJ0cyA9IHVybC5zcGxpdCgnPycsIDIpO1xuICAgIGNvbnN0IHNlYXJjaFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocGFydHMubGVuZ3RoIDwgMiA/ICcnIDogcGFydHNbMV0pO1xuICAgIGNvbnN0IHJvdXRlciA9IG9wdGlvbnMuY3JlYXRlUm91dGVyKFxuICAgICAgY3JlYXRlTWVtb3J5SGlzdG9yeSh7IGluaXRpYWxFbnRyaWVzOiBbdXJsXSB9KSxcbiAgICApO1xuICAgIGNvbnN0IG1hdGNoZWRSb3V0ZXM6IFJvdXRlPFJlc29sdmVXaXRoPltdID0gcm91dGVyLmdldE1hdGNoZWRSb3V0ZXModXJsKTtcblxuICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQoe1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBtYXRjaGVkUm91dGVzLFxuICAgICAgcm91dGVyLFxuICAgICAgc2VhcmNoUGFyYW1zLFxuICAgIH0pO1xuXG4gICAgY29uc3QgUm91dGVyID0gY3JlYXRlUm91dGVDb21wb25lbnQocm91dGVyKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICBhcHA6IDxSb3V0ZXI+e25leHRQcm9wcy5hcHB9PC9Sb3V0ZXI+LFxuICAgICAgLy8gVE9ETzogZmlndXJlIG91dCBob3cgdG8gb25seSBpbmplY3QgaW4gbmV4dCBhbmQgbm90IGhhdmUgdG8gYWxzbyBwdXQgaGVyZVxuICAgICAgbWF0Y2hlZFJvdXRlcyxcbiAgICAgIHJvdXRlcixcbiAgICAgIHNlYXJjaFBhcmFtcyxcbiAgICB9O1xuICB9O1xufVxuIiwiaW1wb3J0IHsgUm91dGUgfSBmcm9tICdAYW5hbnNpL3JvdXRlcic7XG5cbmltcG9ydCB0eXBlIHsgUmVzb2x2ZVByb3BzLCBTZXJ2ZXJQcm9wcyB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG50eXBlIE5lZWRlZFByb3BzPFJvdXRlV2l0aD4gPSB7XG4gIG1hdGNoZWRSb3V0ZXM6IFJvdXRlPFJvdXRlV2l0aD5bXTtcbiAgc2VhcmNoUGFyYW1zOiBVUkxTZWFyY2hQYXJhbXM7XG59ICYgUmVzb2x2ZVByb3BzO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBwcmVmZXRjaFNwb3V0PEYgZXh0ZW5kcyBzdHJpbmc+KGZpZWxkOiBGKSB7XG4gIHJldHVybiBmdW5jdGlvbiA8XG4gICAgUm91dGVXaXRoLFxuICAgIE4gZXh0ZW5kcyBOZWVkZWRQcm9wczxSb3V0ZVdpdGg+LFxuICAgIEkgZXh0ZW5kcyBTZXJ2ZXJQcm9wcyxcbiAgPihcbiAgICBuZXh0OiAocHJvcHM6IEkpID0+IFByb21pc2U8XG4gICAgICB7XG4gICAgICAgIFtLIGluIEZdOiBSb3V0ZVdpdGg7XG4gICAgICB9ICYgTlxuICAgID4sXG4gICkge1xuICAgIHJldHVybiBhc3luYyAocHJvcHM6IEkpID0+IHtcbiAgICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQocHJvcHMpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCB0b0ZldGNoOiBQcm9taXNlPHVua25vd24+W10gPSBbXTtcbiAgICAgICAgbmV4dFByb3BzLm1hdGNoZWRSb3V0ZXMuZm9yRWFjaChyb3V0ZSA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiByb3V0ZS5yZXNvbHZlRGF0YSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgdG9GZXRjaC5wdXNoKFxuICAgICAgICAgICAgICByb3V0ZS5yZXNvbHZlRGF0YShcbiAgICAgICAgICAgICAgICBuZXh0UHJvcHNbZmllbGRdLFxuICAgICAgICAgICAgICAgIHJvdXRlLFxuICAgICAgICAgICAgICAgIG5leHRQcm9wcy5zZWFyY2hQYXJhbXMsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IFByb21pc2UuYWxsKHRvRmV0Y2gpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5leHRQcm9wcztcbiAgICB9O1xuICB9O1xufVxuIiwiaW1wb3J0IFJlYWN0LCB7IFN1c3BlbnNlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgdHlwZSB7IFNlcnZlclNwb3V0IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbnR5cGUgTmVlZGVkTmV4dCA9IHtcbiAgaW5pdERhdGE/OiBSZWNvcmQ8c3RyaW5nLCAoKSA9PiB1bmtub3duPjtcbiAgc2NyaXB0cz86IFJlYWN0LlJlYWN0Tm9kZVtdO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSlNPTlNwb3V0KHtcbiAgaWQgPSAnYW5hbnNpLWpzb24nLFxufTogeyBpZD86IHN0cmluZyB9ID0ge30pOiBTZXJ2ZXJTcG91dDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBOZWVkZWROZXh0XG4+IHtcbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQocHJvcHMpO1xuXG4gICAgY29uc3Qgc2NyaXB0czogUmVhY3QuUmVhY3ROb2RlW10gPSBuZXh0UHJvcHMuc2NyaXB0cyA/PyBbXTtcblxuICAgIE9iamVjdC5lbnRyaWVzKG5leHRQcm9wcy5pbml0RGF0YSA/PyB7fSkuZm9yRWFjaCgoW2tleSwgdXNlRGF0YV0pID0+IHtcbiAgICAgIGNvbnN0IGdsb2JhbElkID0gYCR7aWR9LiR7a2V5fWA7XG4gICAgICBjb25zdCBTY3JpcHQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGE6IGFueSA9IHVzZURhdGEoKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBlbmNvZGVkID0gSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxzY3JpcHRcbiAgICAgICAgICAgICAgaWQ9e2dsb2JhbElkfVxuICAgICAgICAgICAgICB0eXBlPVwiYXBwbGljYXRpb24vanNvblwiXG4gICAgICAgICAgICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MPXt7XG4gICAgICAgICAgICAgICAgX19odG1sOiBlbmNvZGVkLFxuICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICBub25jZT17cHJvcHMubm9uY2V9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAvLyBUT0RPOiBVc2UgdW5pZmllZCBsb2dnaW5nXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgRXJyb3Igc2VyaWFsaXppbmcganNvbiBmb3IgJHtrZXl9YCk7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHNjcmlwdHMucHVzaChcbiAgICAgICAgPFN1c3BlbnNlIGtleT17Z2xvYmFsSWR9PlxuICAgICAgICAgIDxTY3JpcHQgLz5cbiAgICAgICAgPC9TdXNwZW5zZT4sXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5leHRQcm9wcyxcbiAgICAgIHNjcmlwdHMsXG4gICAgfTtcbiAgfTtcbn1cbiIsImltcG9ydCB7IFNlcnZlclByb3BzIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmNvbnN0IGFwcFNwb3V0ID1cbiAgKGFwcDogSlNYLkVsZW1lbnQpID0+XG4gIDxQIGV4dGVuZHMgU2VydmVyUHJvcHM+KHByb3BzOiBQKSA9PlxuICAgIFByb21pc2UucmVzb2x2ZSh7IC4uLnByb3BzLCBhcHAgfSk7XG5cbmV4cG9ydCBkZWZhdWx0IGFwcFNwb3V0O1xuIiwiZXhwb3J0IHsgZGVmYXVsdCBhcyBsYXlTcG91dHMgfSBmcm9tICcuL2xheVNwb3V0cy5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGRvY3VtZW50U3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9kb2N1bWVudC5zZXJ2ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBkYXRhQ2xpZW50U3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9kYXRhQ2xpZW50LnNlcnZlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGFudGRTcG91dCB9IGZyb20gJy4vc3BvdXRzL2FudGQuc2VydmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcm91dGVyU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9yb3V0ZXIuc2VydmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgcHJlZmV0Y2hTcG91dCB9IGZyb20gJy4vc3BvdXRzL3ByZWZldGNoLnNlcnZlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIEpTT05TcG91dCB9IGZyb20gJy4vc3BvdXRzL2pzb24uc2VydmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgYXBwU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy9hcHAuc2VydmVyLmpzJztcbmV4cG9ydCB0eXBlIHsgU2VydmVyUHJvcHMgfSBmcm9tICcuL3Nwb3V0cy90eXBlcy5qcyc7XG5leHBvcnQgdHlwZSB7IFNlcnZlclNwb3V0IGFzIFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvdHlwZXMuanMnO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JpcHRzL3R5cGVzLmpzJztcbiJdLCJuYW1lcyI6WyJjcnlwdG8iLCJyZW5kZXJUb1BpcGVhYmxlU3RyZWFtIiwicmVhY3RSZW5kZXIiLCJsYXlTcG91dHMiLCJzcG91dHMiLCJ0aW1lb3V0TVMiLCJvbkVycm9yIiwicmVuZGVyIiwiY2xpZW50TWFuaWZlc3QiLCJyZXEiLCJyZXMiLCJub25jZSIsInJhbmRvbUJ5dGVzIiwidG9TdHJpbmciLCJhcHAiLCJkaWRFcnJvciIsInBpcGUiLCJhYm9ydCIsIm9uU2hlbGxSZWFkeSIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJvblNoZWxsRXJyb3IiLCJlIiwiY29uc29sZSIsImVycm9yIiwic2V0VGltZW91dCIsImJ1aWxkUG9saWN5IiwicG9saWN5T2JqIiwiT2JqZWN0Iiwia2V5cyIsIm1hcCIsImtleSIsInZhbCIsIkFycmF5IiwiaXNBcnJheSIsIlNldCIsInZhbHVlcyIsImZpbHRlciIsInYiLCJqb2luIiwiaW5jbHVkZXMiLCJuZXdWYWwiLCJyZXBsYWNlIiwidHJpbSIsImpvaW5Ob25jZSIsInBvbGljeSIsIkRvY3VtZW50IiwiYXNzZXRzIiwiaGVhZCIsImNoaWxkcmVuIiwidGl0bGUiLCJyb290SWQiLCJjaGFyU2V0Iiwic2NyaXB0cyIsImV4dHJhU3R5bGUiLCJSZWFjdCIsImNyZWF0ZUVsZW1lbnQiLCJfX3NlbGYiLCJfX3NvdXJjZSIsImZpbGVOYW1lIiwiX2pzeEZpbGVOYW1lIiwibGluZU51bWJlciIsImNvbHVtbk51bWJlciIsImFzc2V0IiwiaSIsInJlbCIsImlkIiwiaHJlZiIsImVuZHNXaXRoIiwic3JjIiwiYXN5bmMiLCJkZWZhdWx0UHJvcHMiLCJGcmFnbWVudCIsIm5hbWUiLCJjb250ZW50IiwiX3Byb2Nlc3MkZW52JFdFQlBBQ0tfIiwicHJvY2VzcyIsImVudiIsIldFQlBBQ0tfUFVCTElDX1BBVEgiLCJEb2N1bWVudFNwb3V0Iiwib3B0aW9ucyIsIm5leHQiLCJwcm9wcyIsIl9wcm9wcyRjbGllbnRNYW5pZmVzdCIsIl9wcm9wcyRjbGllbnRNYW5pZmVzdDIiLCJfcHJvcHMkY2xpZW50TWFuaWZlc3QzIiwiX3Byb3BzJGNsaWVudE1hbmlmZXN0NCIsIl9wcm9wcyRjbGllbnRNYW5pZmVzdDUiLCJfbmV4dFByb3BzJHRpdGxlIiwibmV4dFByb3BzIiwicHVibGljUGF0aCIsImVudHJ5cG9pbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiRXJyb3IiLCJhc3NldE1hcCIsImFzc2V0TGlzdCIsImZvckVhY2giLCJlbnRyeXBvaW50IiwiX2VudHJ5cG9pbnQkYXNzZXRzIiwicHVzaCIsIm5hbWVkQ2h1bmtHcm91cHMiLCJtYXRjaGVkUm91dGVzIiwic29tZSIsInJvdXRlIiwiZmxhdE1hcCIsImNodW5rIiwiX2NodW5rJGFzc2V0cyIsImNoaWxkcmVuQXNzZXRzIiwiYXMiLCJjc1BvbGljeSIsImh0dHBFcXVpdiIsIk5PREVfRU5WIiwicHJlbG9hZCIsImMiLCJfYyRhc3NldHMiLCJkYXRhQ2xpZW50U3BvdXQiLCJfb3B0aW9ucyRnZXRNYW5hZ2VycyIsIm1hbmFnZXJzIiwiZ2V0TWFuYWdlcnMiLCJOZXR3b3JrTWFuYWdlciIsImNyZWF0ZVBlcnNpc3RlZFN0b3JlIiwiU2VydmVyQ2FjaGVQcm92aWRlciIsInVzZVJlYWR5Q2FjaGVTdGF0ZSIsImNvbnRyb2xsZXIiLCJzdG9yZSIsImluaXREYXRhIiwiZGF0YWNsaWVudCIsImFudGRTcG91dCIsIl9uZXh0UHJvcHMkc2NyaXB0cyIsImNyZWF0ZUNhY2hlIiwiZXh0cmFjdFN0eWxlIiwiU3R5bGVQcm92aWRlciIsImNhY2hlIiwiQW50ZFNoZWV0cyIsImRhbmdlcm91c2x5U2V0SW5uZXJIVE1MIiwiX19odG1sIiwiUm91dGVQcm92aWRlciIsImNyZWF0ZU1lbW9yeUhpc3RvcnkiLCJyb3V0ZXJTcG91dCIsImNyZWF0ZVJvdXRlQ29tcG9uZW50Iiwicm91dGVyIiwiUm91dGVyIiwicmVzb2x2ZVdpdGgiLCJ1c2VSZXNvbHZlV2l0aCIsInVybCIsInBhcnRzIiwic3BsaXQiLCJzZWFyY2hQYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJjcmVhdGVSb3V0ZXIiLCJpbml0aWFsRW50cmllcyIsImdldE1hdGNoZWRSb3V0ZXMiLCJwcmVmZXRjaFNwb3V0IiwiZmllbGQiLCJ0b0ZldGNoIiwicmVzb2x2ZURhdGEiLCJQcm9taXNlIiwiYWxsIiwiU3VzcGVuc2UiLCJKU09OU3BvdXQiLCJfbmV4dFByb3BzJGluaXREYXRhIiwiZW50cmllcyIsInVzZURhdGEiLCJnbG9iYWxJZCIsIlNjcmlwdCIsImRhdGEiLCJlbmNvZGVkIiwiSlNPTiIsInN0cmluZ2lmeSIsInR5cGUiLCJhcHBTcG91dCIsInJlc29sdmUiLCJkZWZhdWx0IiwiZG9jdW1lbnRTcG91dCJdLCJzb3VyY2VSb290IjoiIn0=
654
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,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aS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwiQGRhdGEtY2xpZW50L3JlYWN0XCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL2V4dGVybmFsIGNvbW1vbmpzIFwiQGRhdGEtY2xpZW50L3NzclwiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS9leHRlcm5hbCBpbXBvcnQgXCJAYW50LWRlc2lnbi9jc3NpbmpzXCIiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svYm9vdHN0cmFwIiwid2VicGFjazovL0BhbmFuc2kvY29yZS93ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2NyZWF0ZSBmYWtlIG5hbWVzcGFjZSBvYmplY3QiLCJ3ZWJwYWNrOi8vQGFuYW5zaS9jb3JlL3dlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgbm9kZS1jb21tb25qcyBcImNyeXB0b1wiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS9leHRlcm5hbCBjb21tb25qcyBcInJlYWN0LWRvbS9zZXJ2ZXJcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvbGF5U3BvdXRzLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJyZWFjdFwiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9zcG91dHMvY3NwLnRzIiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9zcG91dHMvRG9jdW1lbnRDb21wb25lbnQudHN4Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9zcG91dHMvZG9jdW1lbnQuc2VydmVyLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL2RhdGFDbGllbnQuc2VydmVyLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL2FudGQuc2VydmVyLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvZXh0ZXJuYWwgY29tbW9uanMgXCJAYW5hbnNpL3JvdXRlclwiIiwid2VicGFjazovL0BhbmFuc2kvY29yZS9leHRlcm5hbCBjb21tb25qcyBcImhpc3RvcnlcIiIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL3JvdXRlci5zZXJ2ZXIudHN4Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9zcG91dHMvcHJlZmV0Y2guc2VydmVyLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL2pzb24uc2VydmVyLnRzeCIsIndlYnBhY2s6Ly9AYW5hbnNpL2NvcmUvLi9zcmMvc3BvdXRzL2FwcC5zZXJ2ZXIudHN4Iiwid2VicGFjazovL0BhbmFuc2kvY29yZS8uL3NyYy9pbmRleC5zZXJ2ZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsibW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKFwiQGRhdGEtY2xpZW50L3JlYWN0XCIpOyIsIm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZShcIkBkYXRhLWNsaWVudC9zc3JcIik7IiwibW9kdWxlLmV4cG9ydHMgPSBpbXBvcnQoXCJAYW50LWRlc2lnbi9jc3NpbmpzXCIpOzsiLCIvLyBUaGUgbW9kdWxlIGNhY2hlXG52YXIgX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fID0ge307XG5cbi8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG5mdW5jdGlvbiBfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKSB7XG5cdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuXHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcblx0aWYgKGNhY2hlZE1vZHVsZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuXHR9XG5cdC8vIENyZWF0ZSBhIG5ldyBtb2R1bGUgKGFuZCBwdXQgaXQgaW50byB0aGUgY2FjaGUpXG5cdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuXHRcdC8vIG5vIG1vZHVsZS5pZCBuZWVkZWRcblx0XHQvLyBubyBtb2R1bGUubG9hZGVkIG5lZWRlZFxuXHRcdGV4cG9ydHM6IHt9XG5cdH07XG5cblx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG5cdF9fd2VicGFja19tb2R1bGVzX19bbW9kdWxlSWRdKG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIF9fd2VicGFja19yZXF1aXJlX18pO1xuXG5cdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG5cdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbn1cblxuIiwiLy8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbl9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcblx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG5cdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG5cdFx0KCkgPT4gKG1vZHVsZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuXHRyZXR1cm4gZ2V0dGVyO1xufTsiLCJ2YXIgZ2V0UHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YgPyAob2JqKSA9PiAoT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaikpIDogKG9iaikgPT4gKG9iai5fX3Byb3RvX18pO1xudmFyIGxlYWZQcm90b3R5cGVzO1xuLy8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4vLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbi8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuLy8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4vLyBtb2RlICYgMTY6IHJldHVybiB2YWx1ZSB3aGVuIGl0J3MgUHJvbWlzZS1saWtlXG4vLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG5fX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuXHRpZihtb2RlICYgMSkgdmFsdWUgPSB0aGlzKHZhbHVlKTtcblx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcblx0aWYodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSkge1xuXHRcdGlmKChtb2RlICYgNCkgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuXHRcdGlmKChtb2RlICYgMTYpICYmIHR5cGVvZiB2YWx1ZS50aGVuID09PSAnZnVuY3Rpb24nKSByZXR1cm4gdmFsdWU7XG5cdH1cblx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcblx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcblx0dmFyIGRlZiA9IHt9O1xuXHRsZWFmUHJvdG90eXBlcyA9IGxlYWZQcm90b3R5cGVzIHx8IFtudWxsLCBnZXRQcm90byh7fSksIGdldFByb3RvKFtdKSwgZ2V0UHJvdG8oZ2V0UHJvdG8pXTtcblx0Zm9yKHZhciBjdXJyZW50ID0gbW9kZSAmIDIgJiYgdmFsdWU7IHR5cGVvZiBjdXJyZW50ID09ICdvYmplY3QnICYmICF+bGVhZlByb3RvdHlwZXMuaW5kZXhPZihjdXJyZW50KTsgY3VycmVudCA9IGdldFByb3RvKGN1cnJlbnQpKSB7XG5cdFx0T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoY3VycmVudCkuZm9yRWFjaCgoa2V5KSA9PiAoZGVmW2tleV0gPSAoKSA9PiAodmFsdWVba2V5XSkpKTtcblx0fVxuXHRkZWZbJ2RlZmF1bHQnXSA9ICgpID0+ICh2YWx1ZSk7XG5cdF9fd2VicGFja19yZXF1aXJlX18uZChucywgZGVmKTtcblx0cmV0dXJuIG5zO1xufTsiLCIvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG5fX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuXHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG5cdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG5cdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuXHRcdH1cblx0fVxufTsiLCJfX3dlYnBhY2tfcmVxdWlyZV9fLm8gPSAob2JqLCBwcm9wKSA9PiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKG9iaiwgcHJvcCkpIiwiLy8gZGVmaW5lIF9fZXNNb2R1bGUgb24gZXhwb3J0c1xuX193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcblx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFN5bWJvbC50b1N0cmluZ1RhZywgeyB2YWx1ZTogJ01vZHVsZScgfSk7XG5cdH1cblx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbn07IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJjcnlwdG9cIik7IiwiY29uc3QgX19XRUJQQUNLX05BTUVTUEFDRV9PQkpFQ1RfXyA9IHJlcXVpcmUoXCJyZWFjdC1kb20vc2VydmVyXCIpOyIsImltcG9ydCBjcnlwdG8gZnJvbSAnY3J5cHRvJztcbmltcG9ydCB7IHJlbmRlclRvUGlwZWFibGVTdHJlYW0gYXMgcmVhY3RSZW5kZXIgfSBmcm9tICdyZWFjdC1kb20vc2VydmVyJztcblxuaW1wb3J0IHR5cGUgeyBSZW5kZXIgfSBmcm9tICcuL3NjcmlwdHMvdHlwZXMuanMnO1xuaW1wb3J0IHR5cGUgeyBTZXJ2ZXJQcm9wcyB9IGZyb20gJy4vc3BvdXRzL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbGF5U3BvdXRzKFxuICBzcG91dHM6IChwcm9wczogU2VydmVyUHJvcHMpID0+IFByb21pc2U8e1xuICAgIGFwcDogSlNYLkVsZW1lbnQ7XG4gIH0+LFxuICB7XG4gICAgdGltZW91dE1TID0gMTAwMDAsXG4gICAgb25FcnJvcixcbiAgfTogeyB0aW1lb3V0TVM/OiBudW1iZXI7IG9uRXJyb3I/OiAoZXJyb3I6IHVua25vd24pID0+IHZvaWQgfSA9IHt9LFxuKSB7XG4gIGNvbnN0IHJlbmRlcjogUmVuZGVyID0gYXN5bmMgKGNsaWVudE1hbmlmZXN0LCByZXEsIHJlcykgPT4ge1xuICAgIGNvbnN0IG5vbmNlID0gY3J5cHRvLnJhbmRvbUJ5dGVzKDE2KS50b1N0cmluZygnYmFzZTY0Jyk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgeyBhcHAgfSA9IGF3YWl0IHNwb3V0cyh7IGNsaWVudE1hbmlmZXN0LCByZXEsIHJlcywgbm9uY2UgfSk7XG5cbiAgICAgIGxldCBkaWRFcnJvciA9IGZhbHNlO1xuICAgICAgY29uc3QgeyBwaXBlLCBhYm9ydCB9ID0gcmVhY3RSZW5kZXIoYXBwLCB7XG4gICAgICAgIG5vbmNlLFxuICAgICAgICAvL2Jvb3RzdHJhcFNjcmlwdHM6IGFzc2V0cy5maWx0ZXIoYXNzZXQgPT4gYXNzZXQuZW5kc1dpdGgoJy5qcycpKSxcbiAgICAgICAgb25TaGVsbFJlYWR5KCkge1xuICAgICAgICAgIC8vbWFuYWdlcnMuZm9yRWFjaChtYW5hZ2VyID0+IG1hbmFnZXIuY2xlYW51cCgpKTtcbiAgICAgICAgICAvLyBJZiBzb21ldGhpbmcgZXJyb3JlZCBiZWZvcmUgd2Ugc3RhcnRlZCBzdHJlYW1pbmcsIHdlIHNldCB0aGUgZXJyb3IgY29kZSBhcHByb3ByaWF0ZWx5LlxuICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gZGlkRXJyb3IgPyA1MDAgOiAyMDA7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpO1xuICAgICAgICAgIHBpcGUocmVzKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25TaGVsbEVycm9yKCkge1xuICAgICAgICAgIGRpZEVycm9yID0gdHJ1ZTtcbiAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDUwMDtcbiAgICAgICAgICBwaXBlKHJlcyk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uRXJyb3IoZTogYW55KSB7XG4gICAgICAgICAgZGlkRXJyb3IgPSB0cnVlO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA1MDA7XG4gICAgICAgICAgLy9waXBlKHJlcyk7IFJlbW92aW5nIHRoaXMgYXZvaWRzLCBcIlJlYWN0IGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIHBpcGluZyB0byBvbmUgd3JpdGFibGUgc3RyZWFtLlwiXG4gICAgICAgICAgaWYgKG9uRXJyb3IpIG9uRXJyb3IoZSk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIC8vIEFiYW5kb24gYW5kIHN3aXRjaCB0byBjbGllbnQgcmVuZGVyaW5nIGlmIGVub3VnaCB0aW1lIHBhc3Nlcy5cbiAgICAgIC8vIFRyeSBsb3dlcmluZyB0aGlzIHRvIHNlZSB0aGUgY2xpZW50IHJlY292ZXIuXG4gICAgICBzZXRUaW1lb3V0KFxuICAgICAgICAoKSA9PiAoYWJvcnQgYXMgYW55KShgVGltZW91dCBvZiAke3RpbWVvdXRNU31tcyBleGNlZWRlZGApLFxuICAgICAgICB0aW1lb3V0TVMsXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIGlmIChvbkVycm9yKSBvbkVycm9yKGUpO1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gIH07XG4gIHJldHVybiByZW5kZXI7XG59XG4iLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcInJlYWN0XCIpOyIsImV4cG9ydCBpbnRlcmZhY2UgUG9saWN5IHtcbiAgW2RpcmVjdGl2ZTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW107XG59XG5cbi8vIFRPRE86IG1lbW9pemUgdGhpc1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUG9saWN5KHBvbGljeU9iajogUG9saWN5KSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhwb2xpY3lPYmopXG4gICAgLm1hcChrZXkgPT4ge1xuICAgICAgY29uc3QgdmFsID1cbiAgICAgICAgQXJyYXkuaXNBcnJheShwb2xpY3lPYmpba2V5XSkgP1xuICAgICAgICAgIFsuLi5uZXcgU2V0KHBvbGljeU9ialtrZXldKS52YWx1ZXMoKV0uZmlsdGVyKHYgPT4gdikuam9pbignICcpXG4gICAgICAgIDogcG9saWN5T2JqW2tleV07XG5cbiAgICAgIC8vIG1vdmUgc3RyaWN0IGR5bmFtaWMgdG8gdGhlIGVuZCBvZiB0aGUgcG9saWN5IGlmIGl0IGV4aXN0cyB0byBiZSBiYWNrd2FyZHMgY29tcGF0aWJsZSB3aXRoIGNzcDJcbiAgICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvSGVhZGVycy9Db250ZW50LVNlY3VyaXR5LVBvbGljeS9zY3JpcHQtc3JjI3N0cmljdC1keW5hbWljXG4gICAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgJiYgdmFsLmluY2x1ZGVzKFwiJ3N0cmljdC1keW5hbWljJ1wiKSkge1xuICAgICAgICBjb25zdCBuZXdWYWwgPSBgJHt2YWxcbiAgICAgICAgICAucmVwbGFjZSgvXFxzPydzdHJpY3QtZHluYW1pYydcXHM/L2dpLCAnICcpXG4gICAgICAgICAgLnRyaW0oKX0gJ3N0cmljdC1keW5hbWljJ2A7XG4gICAgICAgIHJldHVybiBgJHtrZXl9ICR7bmV3VmFsfWA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBgJHtrZXl9ICR7dmFsfWA7XG4gICAgfSlcbiAgICAuam9pbignOyAnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGpvaW5Ob25jZShwb2xpY3lPYmo6IFBvbGljeSwgbm9uY2U/OiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgaWYgKCFub25jZSkgcmV0dXJuIHBvbGljeU9iajtcbiAgY29uc3QgcG9saWN5ID0ge1xuICAgIC4uLnBvbGljeU9iaixcbiAgfTtcbiAgaWYgKHR5cGVvZiBwb2xpY3lbJ3NjcmlwdC1zcmMnXSA9PT0gJ3N0cmluZycpIHtcbiAgICBwb2xpY3lbJ3NjcmlwdC1zcmMnXSA9IFtwb2xpY3lbJ3NjcmlwdC1zcmMnXSwgYCdub25jZS0ke25vbmNlfSdgXTtcbiAgfSBlbHNlIHtcbiAgICBwb2xpY3lbJ3NjcmlwdC1zcmMnXSA9IFsuLi5wb2xpY3lbJ3NjcmlwdC1zcmMnXSwgYCdub25jZS0ke25vbmNlfSdgXTtcbiAgfVxuICByZXR1cm4gcG9saWN5O1xufVxuIiwidHlwZSBQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbiAgYXNzZXRzOiB7IGhyZWY6IHN0cmluZzsgYXM/OiBzdHJpbmc7IHJlbD86IHN0cmluZyB9W107XG4gIGhlYWQ6IFJlYWN0LlJlYWN0Tm9kZTtcbiAgZXh0cmFTdHlsZTogUmVhY3QuUmVhY3ROb2RlO1xuICBzY3JpcHRzOiBSZWFjdC5SZWFjdE5vZGU7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHJvb3RJZDogc3RyaW5nO1xuICBjaGFyU2V0OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBEb2N1bWVudCh7XG4gIGFzc2V0cyxcbiAgaGVhZCxcbiAgY2hpbGRyZW4sXG4gIHRpdGxlLFxuICByb290SWQsXG4gIGNoYXJTZXQsXG4gIHNjcmlwdHMsXG4gIGV4dHJhU3R5bGUsXG59OiBQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxodG1sPlxuICAgICAgPGhlYWQ+XG4gICAgICAgIDxtZXRhIGNoYXJTZXQ9e2NoYXJTZXR9IC8+XG4gICAgICAgIHtoZWFkfVxuICAgICAgICB7ZXh0cmFTdHlsZX1cbiAgICAgICAge2Fzc2V0cy5tYXAoKGFzc2V0LCBpKSA9PiAoXG4gICAgICAgICAgPGxpbmsga2V5PXtpfSByZWw9XCJwcmVsb2FkXCIgey4uLmFzc2V0fSAvPlxuICAgICAgICApKX1cbiAgICAgICAgPHRpdGxlPnt0aXRsZX08L3RpdGxlPlxuICAgICAgPC9oZWFkPlxuICAgICAgPGJvZHk+XG4gICAgICAgIDxkaXYgaWQ9e3Jvb3RJZH0+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgICB7c2NyaXB0c31cbiAgICAgICAge2Fzc2V0c1xuICAgICAgICAgIC5maWx0ZXIoKHsgaHJlZiB9KSA9PiBocmVmLmVuZHNXaXRoKCcuanMnKSlcbiAgICAgICAgICAubWFwKCh7IGhyZWYgfSwgaSkgPT4gKFxuICAgICAgICAgICAgPHNjcmlwdCBrZXk9e2l9IHNyYz17aHJlZn0gYXN5bmMgLz5cbiAgICAgICAgICApKX1cbiAgICAgIDwvYm9keT5cbiAgICA8L2h0bWw+XG4gICk7XG59XG5Eb2N1bWVudC5kZWZhdWx0UHJvcHMgPSB7XG4gIGhlYWQ6IChcbiAgICA8PlxuICAgICAgPG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xXCIgLz5cbiAgICAgIDxsaW5rXG4gICAgICAgIHJlbD1cInNob3J0Y3V0IGljb25cIlxuICAgICAgICBocmVmPXtgJHtwcm9jZXNzLmVudi5XRUJQQUNLX1BVQkxJQ19QQVRIID8/ICcvJ31mYXZpY29uLmljb2B9XG4gICAgICAvPlxuICAgIDwvPlxuICApLFxuICBjaGFyU2V0OiAndXRmLTgnLFxuICByb290SWQ6ICdhbmFuc2ktcm9vdCcsXG4gIHNjcmlwdHM6IG51bGwsXG59O1xuIiwiaW1wb3J0IHR5cGUgeyBSb3V0ZSB9IGZyb20gJ0BhbmFuc2kvcm91dGVyJztcbmltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBTdGF0c0NodW5rR3JvdXAgfSBmcm9tICd3ZWJwYWNrJztcblxuaW1wb3J0IHsgYnVpbGRQb2xpY3ksIGpvaW5Ob25jZSwgUG9saWN5IH0gZnJvbSAnLi9jc3AuanMnO1xuaW1wb3J0IERvY3VtZW50IGZyb20gJy4vRG9jdW1lbnRDb21wb25lbnQuanMnO1xuaW1wb3J0IHR5cGUgeyBTZXJ2ZXJTcG91dCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG50eXBlIE5lZWRlZE5leHQgPSB7XG4gIG1hdGNoZWRSb3V0ZXM6IFJvdXRlPGFueT5bXTtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHNjcmlwdHM/OiBSZWFjdC5SZWFjdE5vZGVbXTtcbiAgZXh0cmFTdHlsZT86IFJlYWN0LlJlYWN0Tm9kZVtdO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gRG9jdW1lbnRTcG91dChvcHRpb25zOiB7XG4gIGhlYWQ/OiBSZWFjdC5SZWFjdE5vZGU7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIHJvb3RJZD86IHN0cmluZztcbiAgY2hhclNldD86IHN0cmluZztcbiAgY3NQb2xpY3k/OiBQb2xpY3k7XG59KTogU2VydmVyU3BvdXQ8UmVjb3JkPHN0cmluZywgdW5rbm93bj4sIFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBOZWVkZWROZXh0PiB7XG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcblxuICAgIGNvbnN0IHB1YmxpY1BhdGggPSBwcm9wcy5jbGllbnRNYW5pZmVzdC5wdWJsaWNQYXRoO1xuXG4gICAgaWYgKFxuICAgICAgT2JqZWN0LmtleXMocHJvcHMuY2xpZW50TWFuaWZlc3Q/LmVudHJ5cG9pbnRzID8/IHt9KS5sZW5ndGggPCAxIHx8XG4gICAgICBwdWJsaWNQYXRoID09PSB1bmRlZmluZWRcbiAgICApXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ01hbmlmZXN0IG1pc3NpbmcgZW50cmllcyBuZWVkZWQnKTtcblxuICAgIC8vIFRPRE86IGNvbnNpZGVyIHVzaW5nIHRoaXMgcGFja2FnZSBmb3IgYnVpbGQgc3RhdHMgaW4gZnV0dXJlOlxuICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC90cmVlL21haW4vcGFja2FnZXMvcmVhY3Qtc2VydmVyLWRvbS13ZWJwYWNrXG4gICAgY29uc3QgYXNzZXRNYXAgPSAoYXNzZXRzOiB7IG5hbWU6IHN0cmluZzsgc2l6ZT86IG51bWJlciB9W10pID0+XG4gICAgICBhc3NldHMubWFwKCh7IG5hbWUgfSkgPT4gYCR7cHVibGljUGF0aH0ke25hbWV9YCk7XG5cbiAgICBjb25zdCBhc3NldExpc3Q6IHN0cmluZ1tdID0gW107XG4gICAgT2JqZWN0LnZhbHVlcyhwcm9wcy5jbGllbnRNYW5pZmVzdD8uZW50cnlwb2ludHMgPz8ge30pLmZvckVhY2goXG4gICAgICBlbnRyeXBvaW50ID0+IHtcbiAgICAgICAgYXNzZXRMaXN0LnB1c2goLi4uYXNzZXRNYXAoZW50cnlwb2ludC5hc3NldHMgPz8gW10pKTtcbiAgICAgIH0sXG4gICAgKTtcbiAgICBuZXcgU2V0KFxuICAgICAgYXNzZXRNYXAoXG4gICAgICAgIE9iamVjdC52YWx1ZXMocHJvcHMuY2xpZW50TWFuaWZlc3QubmFtZWRDaHVua0dyb3VwcyA/PyB7fSlcbiAgICAgICAgICAuZmlsdGVyKCh7IG5hbWUgfSkgPT5cbiAgICAgICAgICAgIG5leHRQcm9wcy5tYXRjaGVkUm91dGVzLnNvbWUocm91dGUgPT4gbmFtZT8uaW5jbHVkZXMocm91dGUubmFtZSkpLFxuICAgICAgICAgIClcbiAgICAgICAgICAuZmxhdE1hcChjaHVuayA9PiBbXG4gICAgICAgICAgICAuLi4oY2h1bmsuYXNzZXRzID8/IFtdKSxcbiAgICAgICAgICAgIC8vIGFueSBjaHVuayBwcmVsb2Fkc1xuICAgICAgICAgICAgLi4uY2hpbGRyZW5Bc3NldHMoY2h1bmspLFxuICAgICAgICAgIF0pLFxuICAgICAgKSxcbiAgICApLmZvckVhY2goYXNzZXQgPT4gYXNzZXRMaXN0LnB1c2goYXNzZXQpKTtcblxuICAgIC8vIGZpbmQgYWRkaXRpb25hbCBhc3NldHMgdG8gcHJlbG9hZCBiYXNlZCBvbiBtYXRjaGVkIHJvdXRlXG4gICAgY29uc3QgYXNzZXRzOiB7XG4gICAgICBocmVmOiBzdHJpbmc7XG4gICAgICBhcz86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICAgIHJlbD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICB9W10gPSBhc3NldExpc3RcbiAgICAgIC5maWx0ZXIoYXNzZXQgPT4gIWFzc2V0LmVuZHNXaXRoKCcuaG90LXVwZGF0ZS5qcycpKVxuICAgICAgLm1hcChhc3NldCA9PlxuICAgICAgICBhc3NldC5lbmRzV2l0aCgnLmNzcycpID8geyBocmVmOiBhc3NldCwgcmVsOiAnc3R5bGVzaGVldCcgfVxuICAgICAgICA6IGFzc2V0LmVuZHNXaXRoKCcuanMnKSA/IHsgaHJlZjogYXNzZXQsIGFzOiAnc2NyaXB0JyB9XG4gICAgICAgIDogeyBocmVmOiBhc3NldCB9LFxuICAgICAgKTtcblxuICAgIGlmIChvcHRpb25zLmNzUG9saWN5KSB7XG4gICAgICBjb25zdCBodHRwRXF1aXYgPVxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nID9cbiAgICAgICAgICAnQ29udGVudC1TZWN1cml0eS1Qb2xpY3knXG4gICAgICAgIDogJ0NvbnRlbnQtU2VjdXJpdHktUG9saWN5LVJlcG9ydC1Pbmx5JztcblxuICAgICAgcHJvcHMucmVzLnNldEhlYWRlcihcbiAgICAgICAgaHR0cEVxdWl2LFxuICAgICAgICBidWlsZFBvbGljeShqb2luTm9uY2Uob3B0aW9ucy5jc1BvbGljeSwgcHJvcHMubm9uY2UpKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5leHRQcm9wcyxcbiAgICAgIGFwcDogKFxuICAgICAgICA8RG9jdW1lbnRcbiAgICAgICAgICB7Li4ub3B0aW9uc31cbiAgICAgICAgICBleHRyYVN0eWxlPXtuZXh0UHJvcHMuZXh0cmFTdHlsZX1cbiAgICAgICAgICB0aXRsZT17bmV4dFByb3BzLnRpdGxlID8/IG9wdGlvbnMudGl0bGV9XG4gICAgICAgICAgYXNzZXRzPXthc3NldHN9XG4gICAgICAgICAgcm9vdElkPXtvcHRpb25zLnJvb3RJZH1cbiAgICAgICAgICBzY3JpcHRzPXtuZXh0UHJvcHMuc2NyaXB0c31cbiAgICAgICAgPlxuICAgICAgICAgIHtuZXh0UHJvcHMuYXBwfVxuICAgICAgICA8L0RvY3VtZW50PlxuICAgICAgKSxcbiAgICB9O1xuICB9O1xufVxuXG5mdW5jdGlvbiBjaGlsZHJlbkFzc2V0cyhjaHVuazogU3RhdHNDaHVua0dyb3VwKSB7XG4gIHJldHVybiBjaHVuay5jaGlsZHJlbiA/XG4gICAgICBPYmplY3QudmFsdWVzKGNodW5rLmNoaWxkcmVuKS5mbGF0TWFwKHByZWxvYWQgPT5cbiAgICAgICAgcHJlbG9hZC5mbGF0TWFwKGMgPT4gYy5hc3NldHMgPz8gW10pLFxuICAgICAgKVxuICAgIDogW107XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENvbnRyb2xsZXIsXG4gIHR5cGUgTWFuYWdlcixcbiAgdHlwZSBTdGF0ZSxcbiAgdHlwZSBTdG9yZSxcbn0gZnJvbSAnQGRhdGEtY2xpZW50L3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBTZXJ2ZXJTcG91dCB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBkYXRhQ2xpZW50U3BvdXQoXG4gIG9wdGlvbnM6IHtcbiAgICBnZXRNYW5hZ2Vycz86ICgpID0+IE1hbmFnZXJbXTtcbiAgfSA9IHt9LFxuKTogU2VydmVyU3BvdXQ8XG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICB7IGNvbnRyb2xsZXI6IENvbnRyb2xsZXIgfSAmIHsgc3RvcmU6IFN0b3JlPFN0YXRlPHVua25vd24+PiB9LFxuICB7IGluaXREYXRhPzogUmVjb3JkPHN0cmluZywgKCkgPT4gdW5rbm93bj47IHNjcmlwdHM/OiBSZWFjdC5SZWFjdE5vZGVbXSB9XG4+IHtcbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IG1hbmFnZXJzID0gb3B0aW9ucz8uZ2V0TWFuYWdlcnM/LigpID8/IFtcbiAgICAgIG5ldyAoYXdhaXQgaW1wb3J0KCdAZGF0YS1jbGllbnQvcmVhY3QnKSkuTmV0d29ya01hbmFnZXIoKSxcbiAgICBdO1xuICAgIGNvbnN0IHsgY3JlYXRlUGVyc2lzdGVkU3RvcmUgfSA9IGF3YWl0IGltcG9ydCgnQGRhdGEtY2xpZW50L3NzcicpO1xuICAgIGNvbnN0IFtTZXJ2ZXJDYWNoZVByb3ZpZGVyLCB1c2VSZWFkeUNhY2hlU3RhdGUsIGNvbnRyb2xsZXIsIHN0b3JlXSA9XG4gICAgICBjcmVhdGVQZXJzaXN0ZWRTdG9yZShtYW5hZ2Vycyk7XG5cbiAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgY29udHJvbGxlcixcbiAgICAgIHN0b3JlLFxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5uZXh0UHJvcHMsXG4gICAgICBpbml0RGF0YToge1xuICAgICAgICAuLi5uZXh0UHJvcHMuaW5pdERhdGEsXG4gICAgICAgIGRhdGFjbGllbnQ6IHVzZVJlYWR5Q2FjaGVTdGF0ZSxcbiAgICAgIH0sXG4gICAgICBhcHA6IDxTZXJ2ZXJDYWNoZVByb3ZpZGVyPntuZXh0UHJvcHMuYXBwfTwvU2VydmVyQ2FjaGVQcm92aWRlcj4sXG4gICAgICAvLyBUT0RPOiBmaWd1cmUgb3V0IGhvdyB0byBvbmx5IGluamVjdCBpbiBuZXh0IGFuZCBub3QgaGF2ZSB0byBhbHNvIHB1dCBoZXJlXG4gICAgICBjb250cm9sbGVyLFxuICAgICAgc3RvcmUsXG4gICAgfTtcbiAgfTtcbn1cbiIsImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgU2VydmVyU3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxudHlwZSBOZWVkZWROZXh0ID0ge1xuICBpbml0RGF0YT86IFJlY29yZDxzdHJpbmcsICgpID0+IHVua25vd24+O1xuICBzY3JpcHRzPzogUmVhY3QuUmVhY3ROb2RlW107XG4gIGV4dHJhU3R5bGU/OiBSZWFjdC5SZWFjdE5vZGVbXTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGFudGRTcG91dCgpOiBTZXJ2ZXJTcG91dDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICBOZWVkZWROZXh0XG4+IHtcbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgY3JlYXRlQ2FjaGUsIGV4dHJhY3RTdHlsZSwgU3R5bGVQcm92aWRlciB9ID0gYXdhaXQgaW1wb3J0KFxuICAgICAgJ0BhbnQtZGVzaWduL2Nzc2luanMnXG4gICAgKTtcbiAgICBjb25zdCBjYWNoZSA9IGNyZWF0ZUNhY2hlKCk7XG5cbiAgICBjb25zdCBuZXh0UHJvcHMgPSBhd2FpdCBuZXh0KHByb3BzKTtcblxuICAgIGNvbnN0IHNjcmlwdHM6IFJlYWN0LlJlYWN0Tm9kZVtdID0gbmV4dFByb3BzLnNjcmlwdHMgPz8gW107XG5cbiAgICBjb25zdCBBbnRkU2hlZXRzID0gKCk6IEpTWC5FbGVtZW50ID0+IHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxzY3JpcHRcbiAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgX19odG1sOiBgPC9zY3JpcHQ+JHtleHRyYWN0U3R5bGUoY2FjaGUpfTxzY3JpcHQ+YCxcbiAgICAgICAgICB9fVxuICAgICAgICAvPlxuICAgICAgKTtcbiAgICB9O1xuICAgIC8vIHVuZm9ydHVuYXRlbHkgd2UgaGF2ZSB0byBpbmplY3QgdGhpcyBhZnRlciB0aGUgZW50aXJlIGNvbnRlbnQgaGFzIHN0cmVhbWVkIGluIG9yIGl0IGRvZXNuJ3QgY29ycmVjdGx5IHBvcHVsYXRlXG4gICAgLy8gc2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW50LWRlc2lnbi9jc3NpbmpzL2lzc3Vlcy83OVxuICAgIHNjcmlwdHMucHVzaCg8QW50ZFNoZWV0cyAvPik7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgYXBwOiA8U3R5bGVQcm92aWRlciBjYWNoZT17Y2FjaGV9PntuZXh0UHJvcHMuYXBwfTwvU3R5bGVQcm92aWRlcj4sXG4gICAgICBzY3JpcHRzLFxuICAgIH07XG4gIH07XG59XG4iLCJjb25zdCBfX1dFQlBBQ0tfTkFNRVNQQUNFX09CSkVDVF9fID0gcmVxdWlyZShcIkBhbmFuc2kvcm91dGVyXCIpOyIsImNvbnN0IF9fV0VCUEFDS19OQU1FU1BBQ0VfT0JKRUNUX18gPSByZXF1aXJlKFwiaGlzdG9yeVwiKTsiLCJpbXBvcnQgeyBSb3V0ZSwgUm91dGVQcm92aWRlciwgUm91dGVDb250cm9sbGVyIH0gZnJvbSAnQGFuYW5zaS9yb3V0ZXInO1xuaW1wb3J0IHsgY3JlYXRlTWVtb3J5SGlzdG9yeSB9IGZyb20gJ2hpc3RvcnknO1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcblxuaW1wb3J0IHR5cGUgeyBDcmVhdGVSb3V0ZXIsIFNlcnZlclNwb3V0IH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHJvdXRlclNwb3V0PFJlc29sdmVXaXRoPihvcHRpb25zOiB7XG4gIHJlc29sdmVXaXRoPzogYW55O1xuICB1c2VSZXNvbHZlV2l0aDogKCkgPT4gUmVzb2x2ZVdpdGg7XG4gIGNyZWF0ZVJvdXRlcjogQ3JlYXRlUm91dGVyPFJlc29sdmVXaXRoPjtcbn0pOiBTZXJ2ZXJTcG91dDxcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIHtcbiAgICBtYXRjaGVkUm91dGVzOiBSb3V0ZTxSZXNvbHZlV2l0aD5bXTtcbiAgICBzZWFyY2hQYXJhbXM6IFVSTFNlYXJjaFBhcmFtcztcbiAgfSAmIHtcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj47XG4gIH1cbj4ge1xuICBjb25zdCBjcmVhdGVSb3V0ZUNvbXBvbmVudCA9IChcbiAgICByb3V0ZXI6IFJvdXRlQ29udHJvbGxlcjxSb3V0ZTxSZXNvbHZlV2l0aCwgYW55Pj4sXG4gICkgPT5cbiAgICBmdW5jdGlvbiBSb3V0ZXIoeyBjaGlsZHJlbiB9OiB7IGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGUgfSkge1xuICAgICAgY29uc3QgcmVzb2x2ZVdpdGggPSBvcHRpb25zLnVzZVJlc29sdmVXaXRoKCk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxSb3V0ZVByb3ZpZGVyIHJvdXRlcj17cm91dGVyfSByZXNvbHZlV2l0aD17cmVzb2x2ZVdpdGh9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9Sb3V0ZVByb3ZpZGVyPlxuICAgICAgKTtcbiAgICB9O1xuXG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCB1cmwgPSBwcm9wcy5yZXEudXJsIHx8ICcnO1xuICAgIGNvbnN0IHBhcnRzID0gdXJsLnNwbGl0KCc/JywgMik7XG4gICAgY29uc3Qgc2VhcmNoUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhwYXJ0cy5sZW5ndGggPCAyID8gJycgOiBwYXJ0c1sxXSk7XG4gICAgY29uc3Qgcm91dGVyID0gb3B0aW9ucy5jcmVhdGVSb3V0ZXIoXG4gICAgICBjcmVhdGVNZW1vcnlIaXN0b3J5KHsgaW5pdGlhbEVudHJpZXM6IFt1cmxdIH0pLFxuICAgICk7XG4gICAgY29uc3QgbWF0Y2hlZFJvdXRlczogUm91dGU8UmVzb2x2ZVdpdGg+W10gPSByb3V0ZXIuZ2V0TWF0Y2hlZFJvdXRlcyh1cmwpO1xuXG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dCh7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIG1hdGNoZWRSb3V0ZXMsXG4gICAgICByb3V0ZXIsXG4gICAgICBzZWFyY2hQYXJhbXMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBSb3V0ZXIgPSBjcmVhdGVSb3V0ZUNvbXBvbmVudChyb3V0ZXIpO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm5leHRQcm9wcyxcbiAgICAgIGFwcDogPFJvdXRlcj57bmV4dFByb3BzLmFwcH08L1JvdXRlcj4sXG4gICAgICAvLyBUT0RPOiBmaWd1cmUgb3V0IGhvdyB0byBvbmx5IGluamVjdCBpbiBuZXh0IGFuZCBub3QgaGF2ZSB0byBhbHNvIHB1dCBoZXJlXG4gICAgICBtYXRjaGVkUm91dGVzLFxuICAgICAgcm91dGVyLFxuICAgICAgc2VhcmNoUGFyYW1zLFxuICAgIH07XG4gIH07XG59XG4iLCJpbXBvcnQgeyBSb3V0ZSB9IGZyb20gJ0BhbmFuc2kvcm91dGVyJztcblxuaW1wb3J0IHR5cGUgeyBSZXNvbHZlUHJvcHMsIFNlcnZlclByb3BzIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbnR5cGUgTmVlZGVkUHJvcHM8Um91dGVXaXRoPiA9IHtcbiAgbWF0Y2hlZFJvdXRlczogUm91dGU8Um91dGVXaXRoPltdO1xuICBzZWFyY2hQYXJhbXM6IFVSTFNlYXJjaFBhcmFtcztcbn0gJiBSZXNvbHZlUHJvcHM7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHByZWZldGNoU3BvdXQ8RiBleHRlbmRzIHN0cmluZz4oZmllbGQ6IEYpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIDxcbiAgICBSb3V0ZVdpdGgsXG4gICAgTiBleHRlbmRzIE5lZWRlZFByb3BzPFJvdXRlV2l0aD4sXG4gICAgSSBleHRlbmRzIFNlcnZlclByb3BzLFxuICA+KFxuICAgIG5leHQ6IChwcm9wczogSSkgPT4gUHJvbWlzZTxcbiAgICAgIHtcbiAgICAgICAgW0sgaW4gRl06IFJvdXRlV2l0aDtcbiAgICAgIH0gJiBOXG4gICAgPixcbiAgKSB7XG4gICAgcmV0dXJuIGFzeW5jIChwcm9wczogSSkgPT4ge1xuICAgICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHRvRmV0Y2g6IFByb21pc2U8dW5rbm93bj5bXSA9IFtdO1xuICAgICAgICBuZXh0UHJvcHMubWF0Y2hlZFJvdXRlcy5mb3JFYWNoKHJvdXRlID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHJvdXRlLnJlc29sdmVEYXRhID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICB0b0ZldGNoLnB1c2goXG4gICAgICAgICAgICAgIHJvdXRlLnJlc29sdmVEYXRhKFxuICAgICAgICAgICAgICAgIG5leHRQcm9wc1tmaWVsZF0sXG4gICAgICAgICAgICAgICAgcm91dGUsXG4gICAgICAgICAgICAgICAgbmV4dFByb3BzLnNlYXJjaFBhcmFtcyxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwodG9GZXRjaCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbmV4dFByb3BzO1xuICAgIH07XG4gIH07XG59XG4iLCJpbXBvcnQgUmVhY3QsIHsgU3VzcGVuc2UgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgU2VydmVyU3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxudHlwZSBOZWVkZWROZXh0ID0ge1xuICBpbml0RGF0YT86IFJlY29yZDxzdHJpbmcsICgpID0+IHVua25vd24+O1xuICBzY3JpcHRzPzogUmVhY3QuUmVhY3ROb2RlW107XG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBKU09OU3BvdXQoe1xuICBpZCA9ICdhbmFuc2ktanNvbicsXG59OiB7IGlkPzogc3RyaW5nIH0gPSB7fSk6IFNlcnZlclNwb3V0PFxuICBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gIE5lZWRlZE5leHRcbj4ge1xuICByZXR1cm4gbmV4dCA9PiBhc3luYyBwcm9wcyA9PiB7XG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dChwcm9wcyk7XG5cbiAgICBjb25zdCBzY3JpcHRzOiBSZWFjdC5SZWFjdE5vZGVbXSA9IG5leHRQcm9wcy5zY3JpcHRzID8/IFtdO1xuXG4gICAgT2JqZWN0LmVudHJpZXMobmV4dFByb3BzLmluaXREYXRhID8/IHt9KS5mb3JFYWNoKChba2V5LCB1c2VEYXRhXSkgPT4ge1xuICAgICAgY29uc3QgZ2xvYmFsSWQgPSBgJHtpZH0uJHtrZXl9YDtcbiAgICAgIGNvbnN0IFNjcmlwdCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgZGF0YTogYW55ID0gdXNlRGF0YSgpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGVuY29kZWQgPSBKU09OLnN0cmluZ2lmeShkYXRhKTtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgPHNjcmlwdFxuICAgICAgICAgICAgICBpZD17Z2xvYmFsSWR9XG4gICAgICAgICAgICAgIHR5cGU9XCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICAgICAgICAgICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw9e3tcbiAgICAgICAgICAgICAgICBfX2h0bWw6IGVuY29kZWQsXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIG5vbmNlPXtwcm9wcy5ub25jZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIC8vIFRPRE86IFVzZSB1bmlmaWVkIGxvZ2dpbmdcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBFcnJvciBzZXJpYWxpemluZyBqc29uIGZvciAke2tleX1gKTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgc2NyaXB0cy5wdXNoKFxuICAgICAgICA8U3VzcGVuc2Uga2V5PXtnbG9iYWxJZH0+XG4gICAgICAgICAgPFNjcmlwdCAvPlxuICAgICAgICA8L1N1c3BlbnNlPixcbiAgICAgICk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgc2NyaXB0cyxcbiAgICB9O1xuICB9O1xufVxuIiwiaW1wb3J0IHsgU2VydmVyUHJvcHMgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuY29uc3QgYXBwU3BvdXQgPVxuICAoYXBwOiBKU1guRWxlbWVudCkgPT5cbiAgPFAgZXh0ZW5kcyBTZXJ2ZXJQcm9wcz4ocHJvcHM6IFApID0+XG4gICAgUHJvbWlzZS5yZXNvbHZlKHsgLi4ucHJvcHMsIGFwcCB9KTtcblxuZXhwb3J0IGRlZmF1bHQgYXBwU3BvdXQ7XG4iLCJleHBvcnQgeyBkZWZhdWx0IGFzIGxheVNwb3V0cyB9IGZyb20gJy4vbGF5U3BvdXRzLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgZG9jdW1lbnRTcG91dCB9IGZyb20gJy4vc3BvdXRzL2RvY3VtZW50LnNlcnZlci5qcyc7XG5leHBvcnQgeyBkZWZhdWx0IGFzIGRhdGFDbGllbnRTcG91dCB9IGZyb20gJy4vc3BvdXRzL2RhdGFDbGllbnQuc2VydmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgYW50ZFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvYW50ZC5zZXJ2ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyByb3V0ZXJTcG91dCB9IGZyb20gJy4vc3BvdXRzL3JvdXRlci5zZXJ2ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBwcmVmZXRjaFNwb3V0IH0gZnJvbSAnLi9zcG91dHMvcHJlZmV0Y2guc2VydmVyLmpzJztcbmV4cG9ydCB7IGRlZmF1bHQgYXMgSlNPTlNwb3V0IH0gZnJvbSAnLi9zcG91dHMvanNvbi5zZXJ2ZXIuanMnO1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBhcHBTcG91dCB9IGZyb20gJy4vc3BvdXRzL2FwcC5zZXJ2ZXIuanMnO1xuZXhwb3J0IHR5cGUgeyBTZXJ2ZXJQcm9wcyB9IGZyb20gJy4vc3BvdXRzL3R5cGVzLmpzJztcbmV4cG9ydCB0eXBlIHsgU2VydmVyU3BvdXQgYXMgU3BvdXQgfSBmcm9tICcuL3Nwb3V0cy90eXBlcy5qcyc7XG5leHBvcnQgKiBmcm9tICcuL3NjcmlwdHMvdHlwZXMuanMnO1xuIl0sIm5hbWVzIjpbImNyeXB0byIsInJlbmRlclRvUGlwZWFibGVTdHJlYW0iLCJyZWFjdFJlbmRlciIsImxheVNwb3V0cyIsInNwb3V0cyIsInRpbWVvdXRNUyIsIm9uRXJyb3IiLCJyZW5kZXIiLCJjbGllbnRNYW5pZmVzdCIsInJlcSIsInJlcyIsIm5vbmNlIiwicmFuZG9tQnl0ZXMiLCJ0b1N0cmluZyIsImFwcCIsImRpZEVycm9yIiwicGlwZSIsImFib3J0Iiwib25TaGVsbFJlYWR5Iiwic3RhdHVzQ29kZSIsInNldEhlYWRlciIsIm9uU2hlbGxFcnJvciIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJzZXRUaW1lb3V0IiwiYnVpbGRQb2xpY3kiLCJwb2xpY3lPYmoiLCJPYmplY3QiLCJrZXlzIiwibWFwIiwia2V5IiwidmFsIiwiQXJyYXkiLCJpc0FycmF5IiwiU2V0IiwidmFsdWVzIiwiZmlsdGVyIiwidiIsImpvaW4iLCJpbmNsdWRlcyIsIm5ld1ZhbCIsInJlcGxhY2UiLCJ0cmltIiwiam9pbk5vbmNlIiwicG9saWN5IiwiRG9jdW1lbnQiLCJhc3NldHMiLCJoZWFkIiwiY2hpbGRyZW4iLCJ0aXRsZSIsInJvb3RJZCIsImNoYXJTZXQiLCJzY3JpcHRzIiwiZXh0cmFTdHlsZSIsIlJlYWN0IiwiY3JlYXRlRWxlbWVudCIsIl9fc2VsZiIsIl9fc291cmNlIiwiZmlsZU5hbWUiLCJfanN4RmlsZU5hbWUiLCJsaW5lTnVtYmVyIiwiY29sdW1uTnVtYmVyIiwiYXNzZXQiLCJpIiwicmVsIiwiaWQiLCJocmVmIiwiZW5kc1dpdGgiLCJzcmMiLCJhc3luYyIsImRlZmF1bHRQcm9wcyIsIkZyYWdtZW50IiwibmFtZSIsImNvbnRlbnQiLCJfcHJvY2VzcyRlbnYkV0VCUEFDS18iLCJwcm9jZXNzIiwiZW52IiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsIkRvY3VtZW50U3BvdXQiLCJvcHRpb25zIiwibmV4dCIsInByb3BzIiwiX3Byb3BzJGNsaWVudE1hbmlmZXN0IiwiX3Byb3BzJGNsaWVudE1hbmlmZXN0MiIsIl9wcm9wcyRjbGllbnRNYW5pZmVzdDMiLCJfcHJvcHMkY2xpZW50TWFuaWZlc3Q0IiwiX3Byb3BzJGNsaWVudE1hbmlmZXN0NSIsIl9uZXh0UHJvcHMkdGl0bGUiLCJuZXh0UHJvcHMiLCJwdWJsaWNQYXRoIiwiZW50cnlwb2ludHMiLCJsZW5ndGgiLCJ1bmRlZmluZWQiLCJFcnJvciIsImFzc2V0TWFwIiwiYXNzZXRMaXN0IiwiZm9yRWFjaCIsImVudHJ5cG9pbnQiLCJfZW50cnlwb2ludCRhc3NldHMiLCJwdXNoIiwibmFtZWRDaHVua0dyb3VwcyIsIm1hdGNoZWRSb3V0ZXMiLCJzb21lIiwicm91dGUiLCJmbGF0TWFwIiwiY2h1bmsiLCJfY2h1bmskYXNzZXRzIiwiY2hpbGRyZW5Bc3NldHMiLCJhcyIsImNzUG9saWN5IiwiaHR0cEVxdWl2IiwiTk9ERV9FTlYiLCJwcmVsb2FkIiwiYyIsIl9jJGFzc2V0cyIsImRhdGFDbGllbnRTcG91dCIsIl9vcHRpb25zJGdldE1hbmFnZXJzIiwibWFuYWdlcnMiLCJnZXRNYW5hZ2VycyIsIk5ldHdvcmtNYW5hZ2VyIiwiY3JlYXRlUGVyc2lzdGVkU3RvcmUiLCJTZXJ2ZXJDYWNoZVByb3ZpZGVyIiwidXNlUmVhZHlDYWNoZVN0YXRlIiwiY29udHJvbGxlciIsInN0b3JlIiwiaW5pdERhdGEiLCJkYXRhY2xpZW50IiwiYW50ZFNwb3V0IiwiX25leHRQcm9wcyRzY3JpcHRzIiwiY3JlYXRlQ2FjaGUiLCJleHRyYWN0U3R5bGUiLCJTdHlsZVByb3ZpZGVyIiwiY2FjaGUiLCJBbnRkU2hlZXRzIiwiZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUwiLCJfX2h0bWwiLCJSb3V0ZVByb3ZpZGVyIiwiY3JlYXRlTWVtb3J5SGlzdG9yeSIsInJvdXRlclNwb3V0IiwiY3JlYXRlUm91dGVDb21wb25lbnQiLCJyb3V0ZXIiLCJSb3V0ZXIiLCJyZXNvbHZlV2l0aCIsInVzZVJlc29sdmVXaXRoIiwidXJsIiwicGFydHMiLCJzcGxpdCIsInNlYXJjaFBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImNyZWF0ZVJvdXRlciIsImluaXRpYWxFbnRyaWVzIiwiZ2V0TWF0Y2hlZFJvdXRlcyIsInByZWZldGNoU3BvdXQiLCJmaWVsZCIsInRvRmV0Y2giLCJyZXNvbHZlRGF0YSIsIlByb21pc2UiLCJhbGwiLCJTdXNwZW5zZSIsIkpTT05TcG91dCIsIl9uZXh0UHJvcHMkaW5pdERhdGEiLCJlbnRyaWVzIiwidXNlRGF0YSIsImdsb2JhbElkIiwiU2NyaXB0IiwiZGF0YSIsImVuY29kZWQiLCJKU09OIiwic3RyaW5naWZ5IiwidHlwZSIsImFwcFNwb3V0IiwicmVzb2x2ZSIsImRlZmF1bHQiLCJkb2N1bWVudFNwb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==
@@ -143,18 +143,18 @@ export default async function serve(entrypoint, options = {}) {
143
143
  var _server;
144
144
  loader.warn('Received SIGINT, devserver shutting down');
145
145
  if (server) console.log('Closing server');
146
- (_server = server) == null ? void 0 : _server.close(() => {
146
+ (_server = server) == null || _server.close(() => {
147
147
  loader.info('Server closed');
148
148
  });
149
149
  process.exit(-1);
150
150
  });
151
151
  }
152
152
  function getManifestPathFromWebpackconfig(webpackConfig) {
153
- var _opts$filename, _webpackConfig$plugin, _webpackConfig$plugin2, _webpackConfig$plugin3, _webpackConfig$output, _webpackConfig$output2;
154
- const manifestFilename = (_opts$filename = webpackConfig == null ? void 0 : (_webpackConfig$plugin = webpackConfig.plugins) == null ? void 0 : (_webpackConfig$plugin2 = _webpackConfig$plugin.find(plugin => {
153
+ var _opts$filename, _webpackConfig$plugin, _webpackConfig$output, _webpackConfig$output2;
154
+ const manifestFilename = (_opts$filename = webpackConfig == null || (_webpackConfig$plugin = webpackConfig.plugins) == null || (_webpackConfig$plugin = _webpackConfig$plugin.find(plugin => {
155
155
  return (plugin == null ? void 0 : plugin.constructor.name) === 'StatsWriterPlugin';
156
- })) == null ? void 0 : (_webpackConfig$plugin3 = _webpackConfig$plugin2.opts) == null ? void 0 : _webpackConfig$plugin3.filename) != null ? _opts$filename : 'manifest.json';
157
- const manifestPath = path.join((_webpackConfig$output = webpackConfig == null ? void 0 : (_webpackConfig$output2 = webpackConfig.output) == null ? void 0 : _webpackConfig$output2.path) != null ? _webpackConfig$output : '', manifestFilename);
156
+ })) == null || (_webpackConfig$plugin = _webpackConfig$plugin.opts) == null ? void 0 : _webpackConfig$plugin.filename) != null ? _opts$filename : 'manifest.json';
157
+ const manifestPath = path.join((_webpackConfig$output = webpackConfig == null || (_webpackConfig$output2 = webpackConfig.output) == null ? void 0 : _webpackConfig$output2.path) != null ? _webpackConfig$output : '', manifestFilename);
158
158
  return manifestPath;
159
159
  }
160
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImNvbXByZXNzIiwiZXhwcmVzcyIsImRpc2tGcyIsIm9yYSIsInBhdGgiLCJwcm9taXNpZnkiLCJnZXRQcm94eU1pZGRsZXdhcmVzIiwiZ2V0V2VicGFja0NvbmZpZyIsImltcG9ydCIsIm1ldGEiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsInNlcnZlIiwib3B0aW9ucyIsIlBPUlQiLCJlbnYiLCJsb2FkZXIiLCJzdGFydCIsIndlYnBhY2tDb25maWciLCJtYW5pZmVzdFBhdGgiLCJnZXRNYW5pZmVzdFBhdGhGcm9tV2VicGFja2NvbmZpZyIsIm1vZGUiLCJyZWFkRmlsZSIsInNlcnZlciIsImhhbmRsZUVycm9ycyIsImZuIiwicmVxIiwicmVzIiwibmV4dCIsIngiLCJpbml0aWFsaXplQXBwIiwiY2xpZW50TWFuaWZlc3QiLCJpbmZvIiwiZmFpbCIsIndyYXBwaW5nQXBwIiwidXNlIiwic2VydmVBc3NldHMiLCJfcmVxJHVybCRzdWJzdHJpbmciLCJfcmVxJHVybCIsIl9jbGllbnRNYW5pZmVzdCRvdXRwdSIsImZpbGVuYW1lIiwidXJsIiwic3Vic3RyaW5nIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsImxlbmd0aCIsImFzc2V0UGF0aCIsImpvaW4iLCJvdXRwdXRQYXRoIiwiZXhpc3RzU3luYyIsImxzdGF0U3luYyIsImlzRGlyZWN0b3J5Iiwic2VuZEZpbGUiLCJlIiwic2VydmVQcm94eSIsIl9kZXZDb25maWckZGV2U2VydmVyIiwiZGV2Q29uZmlnIiwiZGV2U2VydmVyIiwicHJveHkiLCJfZGV2Q29uZmlnJGRldlNlcnZlcjIiLCJtaWRkbGV3YXJlcyIsIm1hcCIsIm1pZGRsZXdhcmUiLCJyZW5kZXIiLCJjd2QiLCJkZWZhdWx0IiwiRXJyb3IiLCJnZXQiLCJlbmRzV2l0aCIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJzZW5kIiwic29ja2V0Iiwib24iLCJlcnJvciIsImxpc3RlbiIsInN5c2NhbGwiLCJpc1BpcGUiLCJwb3J0T3JQaXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJiaW5kIiwiY29kZSIsIm1hbmlmZXN0IiwiYXNzZXJ0IiwidHlwZSIsIl9zZXJ2ZXIiLCJ3YXJuIiwiY2xvc2UiLCJfb3B0cyRmaWxlbmFtZSIsIl93ZWJwYWNrQ29uZmlnJHBsdWdpbiIsIl93ZWJwYWNrQ29uZmlnJHBsdWdpbjIiLCJfd2VicGFja0NvbmZpZyRwbHVnaW4zIiwiX3dlYnBhY2tDb25maWckb3V0cHV0IiwiX3dlYnBhY2tDb25maWckb3V0cHV0MiIsIm1hbmlmZXN0RmlsZW5hbWUiLCJwbHVnaW5zIiwiZmluZCIsInBsdWdpbiIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm9wdHMiLCJvdXRwdXQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2NyaXB0cy9zZXJ2ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5PYmplY3QuaGFzT3duID1cbiAgT2JqZWN0Lmhhc093biB8fFxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBmdW5jdGlvbiBoYXNPd24oaXQsIGtleSkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG4gIH07XG5pbXBvcnQgY29tcHJlc3MgZnJvbSAnY29tcHJlc3Npb24nO1xuaW1wb3J0IGV4cHJlc3MsIHsgTmV4dEZ1bmN0aW9uIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZGlza0ZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IFNlcnZlciwgSW5jb21pbmdNZXNzYWdlLCBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJ2h0dHAnO1xuaW1wb3J0IG9yYSBmcm9tICdvcmEnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcbmltcG9ydCB3ZWJwYWNrIGZyb20gJ3dlYnBhY2snO1xuXG5pbXBvcnQgJ2Nyb3NzLWZldGNoL2Rpc3Qvbm9kZS1wb2x5ZmlsbC5qcyc7XG5pbXBvcnQgZ2V0UHJveHlNaWRkbGV3YXJlcyBmcm9tICcuL2dldFByb3h5TWlkZGxld2FyZXMuanMnO1xuaW1wb3J0IHsgZ2V0V2VicGFja0NvbmZpZyB9IGZyb20gJy4vZ2V0V2VicGFja0NvbmZpZy5qcyc7XG5pbXBvcnQgeyBSZW5kZXIgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLy8gcnVuIGRpcmVjdGx5IGZyb20gbm9kZVxuaWYgKCdtYWluJyBpbiBpbXBvcnQubWV0YSkge1xuICBjb25zdCBlbnRyeXBvaW50ID0gcHJvY2Vzcy5hcmd2WzJdO1xuXG4gIGlmICghZW50cnlwb2ludCkge1xuICAgIGNvbnNvbGUubG9nKGBVc2FnZTogJHtwcm9jZXNzLmFyZ3ZbMF19IDxzZXJ2ZXItZW50cnlwb2ludD5gKTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9XG4gIHNlcnZlKGVudHJ5cG9pbnQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBzZXJ2ZShcbiAgZW50cnlwb2ludDogc3RyaW5nLFxuICBvcHRpb25zOiB7IHNlcnZlQXNzZXRzPzogYm9vbGVhbjsgc2VydmVQcm94eT86IGJvb2xlYW4gfSA9IHt9LFxuKSB7XG4gIGNvbnN0IFBPUlQgPSBwcm9jZXNzLmVudi5QT1JUIHx8IDgwODA7XG5cbiAgY29uc3QgbG9hZGVyID0gb3JhKCdJbml0aWFsaXppbmcnKS5zdGFydCgpO1xuXG4gIGNvbnN0IHdlYnBhY2tDb25maWcgPSBhd2FpdCBnZXRXZWJwYWNrQ29uZmlnKCk7XG5cbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gZ2V0TWFuaWZlc3RQYXRoRnJvbVdlYnBhY2tjb25maWcoXG4gICAgd2VicGFja0NvbmZpZyh7fSwgeyBtb2RlOiAncHJvZHVjdGlvbicgfSksXG4gICk7XG5cbiAgY29uc3QgcmVhZEZpbGUgPSBwcm9taXNpZnkoZGlza0ZzLnJlYWRGaWxlKTtcbiAgbGV0IHNlcnZlcjogU2VydmVyIHwgdW5kZWZpbmVkO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZUVycm9yczxcbiAgICBGIGV4dGVuZHMgKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICkgPT4gUHJvbWlzZTx2b2lkPixcbiAgPihmbjogRikge1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbiAoXG4gICAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICAgKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZm4ocmVxLCByZXMpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBuZXh0KHgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvLyBTdGFydCB0aGUgZXhwcmVzcyBzZXJ2ZXIgYWZ0ZXIgdGhlIGZpcnN0IGNvbXBpbGF0aW9uXG4gIGFzeW5jIGZ1bmN0aW9uIGluaXRpYWxpemVBcHAoY2xpZW50TWFuaWZlc3Q6IHdlYnBhY2suU3RhdHNDb21waWxhdGlvbikge1xuICAgIGxvYWRlci5pbmZvKCdMYXVuY2hpbmcgc2VydmVyJyk7XG4gICAgaWYgKCFjbGllbnRNYW5pZmVzdCkge1xuICAgICAgbG9hZGVyLmZhaWwoJ01hbmlmZXN0IG5vdCBmb3VuZCcpO1xuICAgICAgLy8gVE9ETzogaGFuZGxlIG1vcmUgZ3JhY2VmdWxseVxuICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICB9XG5cbiAgICBjb25zdCB3cmFwcGluZ0FwcCA9IGV4cHJlc3MoKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAvL0B0cy1pZ25vcmVcbiAgICB3cmFwcGluZ0FwcC51c2UoY29tcHJlc3MoKSk7XG5cbiAgICAvLyBBU1NFVFNcbiAgICBpZiAob3B0aW9ucy5zZXJ2ZUFzc2V0cykge1xuICAgICAgd3JhcHBpbmdBcHAudXNlKFxuICAgICAgICBhc3luYyAoXG4gICAgICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgICAgIHJlczogYW55LFxuICAgICAgICAgIG5leHQ6IE5leHRGdW5jdGlvbixcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsZW5hbWUgPVxuICAgICAgICAgICAgcmVxLnVybD8uc3Vic3RyaW5nKFxuICAgICAgICAgICAgICAocHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCBhcyBzdHJpbmcpLmxlbmd0aCxcbiAgICAgICAgICAgICkgPz8gJyc7XG4gICAgICAgICAgY29uc3QgYXNzZXRQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgY2xpZW50TWFuaWZlc3Qub3V0cHV0UGF0aCA/PyAnJyxcbiAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBkaXNrRnMuZXhpc3RzU3luYyhhc3NldFBhdGgpICYmXG4gICAgICAgICAgICAhZGlza0ZzLmxzdGF0U3luYyhhc3NldFBhdGgpLmlzRGlyZWN0b3J5KClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJlcy5zZW5kRmlsZShhc3NldFBhdGgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICByZXR1cm4gbmV4dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBQUk9YSUVTXG4gICAgaWYgKG9wdGlvbnMuc2VydmVQcm94eSkge1xuICAgICAgY29uc3QgZGV2Q29uZmlnOiB3ZWJwYWNrLkNvbmZpZ3VyYXRpb24gPSB3ZWJwYWNrQ29uZmlnKFxuICAgICAgICB7fSxcbiAgICAgICAgeyBtb2RlOiAnZGV2ZWxvcG1lbnQnIH0sXG4gICAgICApO1xuICAgICAgaWYgKGRldkNvbmZpZy5kZXZTZXJ2ZXI/LnByb3h5KSB7XG4gICAgICAgIGNvbnN0IG1pZGRsZXdhcmVzID0gZ2V0UHJveHlNaWRkbGV3YXJlcyhkZXZDb25maWcuZGV2U2VydmVyPy5wcm94eSk7XG4gICAgICAgIGlmIChtaWRkbGV3YXJlcykge1xuICAgICAgICAgIHdyYXBwaW5nQXBwLnVzZSguLi5taWRkbGV3YXJlcy5tYXAoKHsgbWlkZGxld2FyZSB9KSA9PiBtaWRkbGV3YXJlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTRVJWRVIgU0lERSBSRU5ERVJJTkdcbiAgICBsZXQgcmVuZGVyOiBSZW5kZXIgPSAoYXdhaXQgaW1wb3J0KHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBlbnRyeXBvaW50KSkpXG4gICAgICAuZGVmYXVsdDtcblxuICAgIGlmICgnZGVmYXVsdCcgaW4gcmVuZGVyKSB7XG4gICAgICByZW5kZXIgPSByZW5kZXIuZGVmYXVsdCBhcyBhbnk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiByZW5kZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYGRlZmF1bHQgZXhwb3J0IG9mICR7cGF0aC5qb2luKFxuICAgICAgICAgIHByb2Nlc3MuY3dkKCksXG4gICAgICAgICAgZW50cnlwb2ludCxcbiAgICAgICAgKX0gaXMgbm90IGEgZnVuY3Rpb25gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB3cmFwcGluZ0FwcC5nZXQoXG4gICAgICAnLyonLFxuICAgICAgaGFuZGxlRXJyb3JzKGFzeW5jIGZ1bmN0aW9uIChyZXE6IGFueSwgcmVzOiBhbnkpIHtcbiAgICAgICAgaWYgKHJlcS51cmwuZW5kc1dpdGgoJ2Zhdmljb24uaWNvJykpIHtcbiAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyk7XG4gICAgICAgICAgcmVzLnNlbmQoJ25vdCBmb3VuZCcpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXMuc29ja2V0Lm9uKCdlcnJvcicsIChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhdGFsJywgZXJyb3IpO1xuICAgICAgICB9KTtcblxuICAgICAgICBhd2FpdCByZW5kZXIoY2xpZW50TWFuaWZlc3QsIHJlcSwgcmVzKTtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICBzZXJ2ZXIgPSB3cmFwcGluZ0FwcFxuICAgICAgLmxpc3RlbihQT1JULCAoKSA9PiB7XG4gICAgICAgIGxvYWRlci5pbmZvKGBMaXN0ZW5pbmcgYXQgJHtQT1JUfS4uLmApO1xuICAgICAgfSlcbiAgICAgIC5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuICAgICAgICBpZiAoZXJyb3Iuc3lzY2FsbCAhPT0gJ2xpc3RlbicpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc1BpcGUgPSAocG9ydE9yUGlwZTogc3RyaW5nIHwgbnVtYmVyKSA9PlxuICAgICAgICAgIE51bWJlci5pc05hTihwb3J0T3JQaXBlKTtcbiAgICAgICAgY29uc3QgYmluZCA9IGlzUGlwZShQT1JUKSA/ICdQaXBlICcgKyBQT1JUIDogJ1BvcnQgJyArIFBPUlQ7XG4gICAgICAgIHN3aXRjaCAoZXJyb3IuY29kZSkge1xuICAgICAgICAgIGNhc2UgJ0VBQ0NFUyc6XG4gICAgICAgICAgICBsb2FkZXIuZmFpbChiaW5kICsgJyByZXF1aXJlcyBlbGV2YXRlZCBwcml2aWxlZ2VzJyk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG4gICAgICAgICAgY2FzZSAnRUFERFJJTlVTRSc6XG4gICAgICAgICAgICBsb2FkZXIuZmFpbChiaW5kICsgJyBpcyBhbHJlYWR5IGluIHVzZScpO1xuICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBsZXQgbWFuaWZlc3QgPSBhd2FpdCBpbXBvcnQobWFuaWZlc3RQYXRoLCB7XG4gICAgYXNzZXJ0OiB7IHR5cGU6ICdqc29uJyB9LFxuICB9KTtcbiAgLy8gaGFuZGxlIGluY29uc2lzdGVudCBpbXBvcnQgY29uZGl0aW9uc1xuICBpZiAoJ2RlZmF1bHQnIGluIG1hbmlmZXN0KSB7XG4gICAgbWFuaWZlc3QgPSBtYW5pZmVzdC5kZWZhdWx0O1xuICB9XG4gIGF3YWl0IGluaXRpYWxpemVBcHAobWFuaWZlc3QpO1xuXG4gIHByb2Nlc3Mub24oJ1NJR0lOVCcsICgpID0+IHtcbiAgICBsb2FkZXIud2FybignUmVjZWl2ZWQgU0lHSU5ULCBkZXZzZXJ2ZXIgc2h1dHRpbmcgZG93bicpO1xuICAgIGlmIChzZXJ2ZXIpIGNvbnNvbGUubG9nKCdDbG9zaW5nIHNlcnZlcicpO1xuICAgIHNlcnZlcj8uY2xvc2UoKCkgPT4ge1xuICAgICAgbG9hZGVyLmluZm8oJ1NlcnZlciBjbG9zZWQnKTtcbiAgICB9KTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0TWFuaWZlc3RQYXRoRnJvbVdlYnBhY2tjb25maWcoXG4gIHdlYnBhY2tDb25maWc6IHdlYnBhY2suQ29uZmlndXJhdGlvbixcbikge1xuICBjb25zdCBtYW5pZmVzdEZpbGVuYW1lOiBzdHJpbmcgPVxuICAgIChcbiAgICAgIHdlYnBhY2tDb25maWc/LnBsdWdpbnM/LmZpbmQocGx1Z2luID0+IHtcbiAgICAgICAgcmV0dXJuIHBsdWdpbj8uY29uc3RydWN0b3IubmFtZSA9PT0gJ1N0YXRzV3JpdGVyUGx1Z2luJztcbiAgICAgIH0pIGFzIGFueVxuICAgICk/Lm9wdHM/LmZpbGVuYW1lID8/ICdtYW5pZmVzdC5qc29uJztcblxuICBjb25zdCBtYW5pZmVzdFBhdGggPSBwYXRoLmpvaW4oXG4gICAgd2VicGFja0NvbmZpZz8ub3V0cHV0Py5wYXRoID8/ICcnLFxuICAgIG1hbmlmZXN0RmlsZW5hbWUsXG4gICk7XG4gIHJldHVybiBtYW5pZmVzdFBhdGg7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0FBLE1BQU0sQ0FBQ0MsTUFBTSxHQUNYRCxNQUFNLENBQUNDLE1BQU0sSUFDYiwwQkFBMkIsU0FBU0EsTUFBTUEsQ0FBQ0MsRUFBRSxFQUFFQyxHQUFHLEVBQUU7RUFDbEQsT0FBT0gsTUFBTSxDQUFDSSxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDSixFQUFFLEVBQUVDLEdBQUcsQ0FBQztBQUN0RCxDQUFDO0FBQ0gsT0FBT0ksUUFBUSxNQUFNLGFBQWE7QUFDbEMsT0FBT0MsT0FBTyxNQUF3QixTQUFTO0FBQy9DLE9BQU9DLE1BQU0sTUFBTSxJQUFJO0FBRXZCLE9BQU9DLEdBQUcsTUFBTSxLQUFLO0FBQ3JCLE9BQU9DLElBQUksTUFBTSxNQUFNO0FBQ3ZCLFNBQVNDLFNBQVMsUUFBUSxNQUFNO0FBR2hDLE9BQU8sbUNBQW1DO0FBQzFDLE9BQU9DLG1CQUFtQixNQUFNLDBCQUEwQjtBQUMxRCxTQUFTQyxnQkFBZ0IsUUFBUSx1QkFBdUI7QUFHeEQ7QUFDQSxJQUFJLE1BQU0sSUFBSUMsTUFBTSxDQUFDQyxJQUFJLEVBQUU7RUFDekIsTUFBTUMsVUFBVSxHQUFHQyxPQUFPLENBQUNDLElBQUksQ0FBQyxDQUFDLENBQUM7RUFFbEMsSUFBSSxDQUFDRixVQUFVLEVBQUU7SUFD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
160
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImNvbXByZXNzIiwiZXhwcmVzcyIsImRpc2tGcyIsIm9yYSIsInBhdGgiLCJwcm9taXNpZnkiLCJnZXRQcm94eU1pZGRsZXdhcmVzIiwiZ2V0V2VicGFja0NvbmZpZyIsImltcG9ydCIsIm1ldGEiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsInNlcnZlIiwib3B0aW9ucyIsIlBPUlQiLCJlbnYiLCJsb2FkZXIiLCJzdGFydCIsIndlYnBhY2tDb25maWciLCJtYW5pZmVzdFBhdGgiLCJnZXRNYW5pZmVzdFBhdGhGcm9tV2VicGFja2NvbmZpZyIsIm1vZGUiLCJyZWFkRmlsZSIsInNlcnZlciIsImhhbmRsZUVycm9ycyIsImZuIiwicmVxIiwicmVzIiwibmV4dCIsIngiLCJpbml0aWFsaXplQXBwIiwiY2xpZW50TWFuaWZlc3QiLCJpbmZvIiwiZmFpbCIsIndyYXBwaW5nQXBwIiwidXNlIiwic2VydmVBc3NldHMiLCJfcmVxJHVybCRzdWJzdHJpbmciLCJfcmVxJHVybCIsIl9jbGllbnRNYW5pZmVzdCRvdXRwdSIsImZpbGVuYW1lIiwidXJsIiwic3Vic3RyaW5nIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsImxlbmd0aCIsImFzc2V0UGF0aCIsImpvaW4iLCJvdXRwdXRQYXRoIiwiZXhpc3RzU3luYyIsImxzdGF0U3luYyIsImlzRGlyZWN0b3J5Iiwic2VuZEZpbGUiLCJlIiwic2VydmVQcm94eSIsIl9kZXZDb25maWckZGV2U2VydmVyIiwiZGV2Q29uZmlnIiwiZGV2U2VydmVyIiwicHJveHkiLCJfZGV2Q29uZmlnJGRldlNlcnZlcjIiLCJtaWRkbGV3YXJlcyIsIm1hcCIsIm1pZGRsZXdhcmUiLCJyZW5kZXIiLCJjd2QiLCJkZWZhdWx0IiwiRXJyb3IiLCJnZXQiLCJlbmRzV2l0aCIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJzZW5kIiwic29ja2V0Iiwib24iLCJlcnJvciIsImxpc3RlbiIsInN5c2NhbGwiLCJpc1BpcGUiLCJwb3J0T3JQaXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJiaW5kIiwiY29kZSIsIm1hbmlmZXN0IiwiYXNzZXJ0IiwidHlwZSIsIl9zZXJ2ZXIiLCJ3YXJuIiwiY2xvc2UiLCJfb3B0cyRmaWxlbmFtZSIsIl93ZWJwYWNrQ29uZmlnJHBsdWdpbiIsIl93ZWJwYWNrQ29uZmlnJG91dHB1dCIsIl93ZWJwYWNrQ29uZmlnJG91dHB1dDIiLCJtYW5pZmVzdEZpbGVuYW1lIiwicGx1Z2lucyIsImZpbmQiLCJwbHVnaW4iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJvcHRzIiwib3V0cHV0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3NjcmlwdHMvc2VydmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuT2JqZWN0Lmhhc093biA9XG4gIE9iamVjdC5oYXNPd24gfHxcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuICB9O1xuaW1wb3J0IGNvbXByZXNzIGZyb20gJ2NvbXByZXNzaW9uJztcbmltcG9ydCBleHByZXNzLCB7IE5leHRGdW5jdGlvbiB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IGRpc2tGcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBTZXJ2ZXIsIEluY29taW5nTWVzc2FnZSwgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdodHRwJztcbmltcG9ydCBvcmEgZnJvbSAnb3JhJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgd2VicGFjayBmcm9tICd3ZWJwYWNrJztcblxuaW1wb3J0ICdjcm9zcy1mZXRjaC9kaXN0L25vZGUtcG9seWZpbGwuanMnO1xuaW1wb3J0IGdldFByb3h5TWlkZGxld2FyZXMgZnJvbSAnLi9nZXRQcm94eU1pZGRsZXdhcmVzLmpzJztcbmltcG9ydCB7IGdldFdlYnBhY2tDb25maWcgfSBmcm9tICcuL2dldFdlYnBhY2tDb25maWcuanMnO1xuaW1wb3J0IHsgUmVuZGVyIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8vIHJ1biBkaXJlY3RseSBmcm9tIG5vZGVcbmlmICgnbWFpbicgaW4gaW1wb3J0Lm1ldGEpIHtcbiAgY29uc3QgZW50cnlwb2ludCA9IHByb2Nlc3MuYXJndlsyXTtcblxuICBpZiAoIWVudHJ5cG9pbnQpIHtcbiAgICBjb25zb2xlLmxvZyhgVXNhZ2U6ICR7cHJvY2Vzcy5hcmd2WzBdfSA8c2VydmVyLWVudHJ5cG9pbnQ+YCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfVxuICBzZXJ2ZShlbnRyeXBvaW50KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gc2VydmUoXG4gIGVudHJ5cG9pbnQ6IHN0cmluZyxcbiAgb3B0aW9uczogeyBzZXJ2ZUFzc2V0cz86IGJvb2xlYW47IHNlcnZlUHJveHk/OiBib29sZWFuIH0gPSB7fSxcbikge1xuICBjb25zdCBQT1JUID0gcHJvY2Vzcy5lbnYuUE9SVCB8fCA4MDgwO1xuXG4gIGNvbnN0IGxvYWRlciA9IG9yYSgnSW5pdGlhbGl6aW5nJykuc3RhcnQoKTtcblxuICBjb25zdCB3ZWJwYWNrQ29uZmlnID0gYXdhaXQgZ2V0V2VicGFja0NvbmZpZygpO1xuXG4gIGNvbnN0IG1hbmlmZXN0UGF0aCA9IGdldE1hbmlmZXN0UGF0aEZyb21XZWJwYWNrY29uZmlnKFxuICAgIHdlYnBhY2tDb25maWcoe30sIHsgbW9kZTogJ3Byb2R1Y3Rpb24nIH0pLFxuICApO1xuXG4gIGNvbnN0IHJlYWRGaWxlID0gcHJvbWlzaWZ5KGRpc2tGcy5yZWFkRmlsZSk7XG4gIGxldCBzZXJ2ZXI6IFNlcnZlciB8IHVuZGVmaW5lZDtcblxuICBmdW5jdGlvbiBoYW5kbGVFcnJvcnM8XG4gICAgRiBleHRlbmRzIChcbiAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbiAgICApID0+IFByb21pc2U8dm9pZD4sXG4gID4oZm46IEYpIHtcbiAgICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICAgbmV4dDogTmV4dEZ1bmN0aW9uLFxuICAgICkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGZuKHJlcSwgcmVzKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgbmV4dCh4KTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLy8gU3RhcnQgdGhlIGV4cHJlc3Mgc2VydmVyIGFmdGVyIHRoZSBmaXJzdCBjb21waWxhdGlvblxuICBhc3luYyBmdW5jdGlvbiBpbml0aWFsaXplQXBwKGNsaWVudE1hbmlmZXN0OiB3ZWJwYWNrLlN0YXRzQ29tcGlsYXRpb24pIHtcbiAgICBsb2FkZXIuaW5mbygnTGF1bmNoaW5nIHNlcnZlcicpO1xuICAgIGlmICghY2xpZW50TWFuaWZlc3QpIHtcbiAgICAgIGxvYWRlci5mYWlsKCdNYW5pZmVzdCBub3QgZm91bmQnKTtcbiAgICAgIC8vIFRPRE86IGhhbmRsZSBtb3JlIGdyYWNlZnVsbHlcbiAgICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gICAgfVxuXG4gICAgY29uc3Qgd3JhcHBpbmdBcHAgPSBleHByZXNzKCk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgLy9AdHMtaWdub3JlXG4gICAgd3JhcHBpbmdBcHAudXNlKGNvbXByZXNzKCkpO1xuXG4gICAgLy8gQVNTRVRTXG4gICAgaWYgKG9wdGlvbnMuc2VydmVBc3NldHMpIHtcbiAgICAgIHdyYXBwaW5nQXBwLnVzZShcbiAgICAgICAgYXN5bmMgKFxuICAgICAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgICAgICByZXM6IGFueSxcbiAgICAgICAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID1cbiAgICAgICAgICAgIHJlcS51cmw/LnN1YnN0cmluZyhcbiAgICAgICAgICAgICAgKHByb2Nlc3MuZW52LldFQlBBQ0tfUFVCTElDX1BBVEggYXMgc3RyaW5nKS5sZW5ndGgsXG4gICAgICAgICAgICApID8/ICcnO1xuICAgICAgICAgIGNvbnN0IGFzc2V0UGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgIGNsaWVudE1hbmlmZXN0Lm91dHB1dFBhdGggPz8gJycsXG4gICAgICAgICAgICBmaWxlbmFtZSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZGlza0ZzLmV4aXN0c1N5bmMoYXNzZXRQYXRoKSAmJlxuICAgICAgICAgICAgIWRpc2tGcy5sc3RhdFN5bmMoYXNzZXRQYXRoKS5pc0RpcmVjdG9yeSgpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXMuc2VuZEZpbGUoYXNzZXRQYXRoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gUFJPWElFU1xuICAgIGlmIChvcHRpb25zLnNlcnZlUHJveHkpIHtcbiAgICAgIGNvbnN0IGRldkNvbmZpZzogd2VicGFjay5Db25maWd1cmF0aW9uID0gd2VicGFja0NvbmZpZyhcbiAgICAgICAge30sXG4gICAgICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JyB9LFxuICAgICAgKTtcbiAgICAgIGlmIChkZXZDb25maWcuZGV2U2VydmVyPy5wcm94eSkge1xuICAgICAgICBjb25zdCBtaWRkbGV3YXJlcyA9IGdldFByb3h5TWlkZGxld2FyZXMoZGV2Q29uZmlnLmRldlNlcnZlcj8ucHJveHkpO1xuICAgICAgICBpZiAobWlkZGxld2FyZXMpIHtcbiAgICAgICAgICB3cmFwcGluZ0FwcC51c2UoLi4ubWlkZGxld2FyZXMubWFwKCh7IG1pZGRsZXdhcmUgfSkgPT4gbWlkZGxld2FyZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU0VSVkVSIFNJREUgUkVOREVSSU5HXG4gICAgbGV0IHJlbmRlcjogUmVuZGVyID0gKGF3YWl0IGltcG9ydChwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgZW50cnlwb2ludCkpKVxuICAgICAgLmRlZmF1bHQ7XG5cbiAgICBpZiAoJ2RlZmF1bHQnIGluIHJlbmRlcikge1xuICAgICAgcmVuZGVyID0gcmVuZGVyLmRlZmF1bHQgYXMgYW55O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgcmVuZGVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBkZWZhdWx0IGV4cG9ydCBvZiAke3BhdGguam9pbihcbiAgICAgICAgICBwcm9jZXNzLmN3ZCgpLFxuICAgICAgICAgIGVudHJ5cG9pbnQsXG4gICAgICAgICl9IGlzIG5vdCBhIGZ1bmN0aW9uYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgd3JhcHBpbmdBcHAuZ2V0KFxuICAgICAgJy8qJyxcbiAgICAgIGhhbmRsZUVycm9ycyhhc3luYyBmdW5jdGlvbiAocmVxOiBhbnksIHJlczogYW55KSB7XG4gICAgICAgIGlmIChyZXEudXJsLmVuZHNXaXRoKCdmYXZpY29uLmljbycpKSB7XG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpO1xuICAgICAgICAgIHJlcy5zZW5kKCdub3QgZm91bmQnKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnNvY2tldC5vbignZXJyb3InLCAoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYXRhbCcsIGVycm9yKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXdhaXQgcmVuZGVyKGNsaWVudE1hbmlmZXN0LCByZXEsIHJlcyk7XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgc2VydmVyID0gd3JhcHBpbmdBcHBcbiAgICAgIC5saXN0ZW4oUE9SVCwgKCkgPT4ge1xuICAgICAgICBsb2FkZXIuaW5mbyhgTGlzdGVuaW5nIGF0ICR7UE9SVH0uLi5gKTtcbiAgICAgIH0pXG4gICAgICAub24oJ2Vycm9yJywgZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcbiAgICAgICAgaWYgKGVycm9yLnN5c2NhbGwgIT09ICdsaXN0ZW4nKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNQaXBlID0gKHBvcnRPclBpcGU6IHN0cmluZyB8IG51bWJlcikgPT5cbiAgICAgICAgICBOdW1iZXIuaXNOYU4ocG9ydE9yUGlwZSk7XG4gICAgICAgIGNvbnN0IGJpbmQgPSBpc1BpcGUoUE9SVCkgPyAnUGlwZSAnICsgUE9SVCA6ICdQb3J0ICcgKyBQT1JUO1xuICAgICAgICBzd2l0Y2ggKGVycm9yLmNvZGUpIHtcbiAgICAgICAgICBjYXNlICdFQUNDRVMnOlxuICAgICAgICAgICAgbG9hZGVyLmZhaWwoYmluZCArICcgcmVxdWlyZXMgZWxldmF0ZWQgcHJpdmlsZWdlcycpO1xuICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuICAgICAgICAgIGNhc2UgJ0VBRERSSU5VU0UnOlxuICAgICAgICAgICAgbG9hZGVyLmZhaWwoYmluZCArICcgaXMgYWxyZWFkeSBpbiB1c2UnKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbGV0IG1hbmlmZXN0ID0gYXdhaXQgaW1wb3J0KG1hbmlmZXN0UGF0aCwge1xuICAgIGFzc2VydDogeyB0eXBlOiAnanNvbicgfSxcbiAgfSk7XG4gIC8vIGhhbmRsZSBpbmNvbnNpc3RlbnQgaW1wb3J0IGNvbmRpdGlvbnNcbiAgaWYgKCdkZWZhdWx0JyBpbiBtYW5pZmVzdCkge1xuICAgIG1hbmlmZXN0ID0gbWFuaWZlc3QuZGVmYXVsdDtcbiAgfVxuICBhd2FpdCBpbml0aWFsaXplQXBwKG1hbmlmZXN0KTtcblxuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCAoKSA9PiB7XG4gICAgbG9hZGVyLndhcm4oJ1JlY2VpdmVkIFNJR0lOVCwgZGV2c2VydmVyIHNodXR0aW5nIGRvd24nKTtcbiAgICBpZiAoc2VydmVyKSBjb25zb2xlLmxvZygnQ2xvc2luZyBzZXJ2ZXInKTtcbiAgICBzZXJ2ZXI/LmNsb3NlKCgpID0+IHtcbiAgICAgIGxvYWRlci5pbmZvKCdTZXJ2ZXIgY2xvc2VkJyk7XG4gICAgfSk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldE1hbmlmZXN0UGF0aEZyb21XZWJwYWNrY29uZmlnKFxuICB3ZWJwYWNrQ29uZmlnOiB3ZWJwYWNrLkNvbmZpZ3VyYXRpb24sXG4pIHtcbiAgY29uc3QgbWFuaWZlc3RGaWxlbmFtZTogc3RyaW5nID1cbiAgICAoXG4gICAgICB3ZWJwYWNrQ29uZmlnPy5wbHVnaW5zPy5maW5kKHBsdWdpbiA9PiB7XG4gICAgICAgIHJldHVybiBwbHVnaW4/LmNvbnN0cnVjdG9yLm5hbWUgPT09ICdTdGF0c1dyaXRlclBsdWdpbic7XG4gICAgICB9KSBhcyBhbnlcbiAgICApPy5vcHRzPy5maWxlbmFtZSA/PyAnbWFuaWZlc3QuanNvbic7XG5cbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gcGF0aC5qb2luKFxuICAgIHdlYnBhY2tDb25maWc/Lm91dHB1dD8ucGF0aCA/PyAnJyxcbiAgICBtYW5pZmVzdEZpbGVuYW1lLFxuICApO1xuICByZXR1cm4gbWFuaWZlc3RQYXRoO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxNQUFNLENBQUNDLE1BQU0sR0FDWEQsTUFBTSxDQUFDQyxNQUFNLElBQ2IsMEJBQTJCLFNBQVNBLE1BQU1BLENBQUNDLEVBQUUsRUFBRUMsR0FBRyxFQUFFO0VBQ2xELE9BQU9ILE1BQU0sQ0FBQ0ksU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ0osRUFBRSxFQUFFQyxHQUFHLENBQUM7QUFDdEQsQ0FBQztBQUNILE9BQU9JLFFBQVEsTUFBTSxhQUFhO0FBQ2xDLE9BQU9DLE9BQU8sTUFBd0IsU0FBUztBQUMvQyxPQUFPQyxNQUFNLE1BQU0sSUFBSTtBQUV2QixPQUFPQyxHQUFHLE1BQU0sS0FBSztBQUNyQixPQUFPQyxJQUFJLE1BQU0sTUFBTTtBQUN2QixTQUFTQyxTQUFTLFFBQVEsTUFBTTtBQUdoQyxPQUFPLG1DQUFtQztBQUMxQyxPQUFPQyxtQkFBbUIsTUFBTSwwQkFBMEI7QUFDMUQsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBR3hEO0FBQ0EsSUFBSSxNQUFNLElBQUlDLE1BQU0sQ0FBQ0MsSUFBSSxFQUFFO0VBQ3pCLE1BQU1DLFVBQVUsR0FBR0MsT0FBTyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBRWxDLElBQUksQ0FBQ0YsVUFBVSxFQUFFO0lBQ2ZHLE9BQU8sQ0FBQ0MsR0FBRyxDQUFFLFVBQVNILE9BQU8sQ0FBQ0MsSUFBSSxDQUFD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
@@ -27,7 +27,7 @@ if ('main' in import.meta) {
27
27
  let serverFileContents = Promise.resolve('');
28
28
  let serverEntry = '';
29
29
  export default async function startDevServer(entrypoint, env = {}) {
30
- var _webpackConfigs$, _webpackConfigs$$devS;
30
+ var _webpackConfigs$;
31
31
  const webpackConfig = await getWebpackConfig();
32
32
  const log = logging.getLogger('anansi-devserver');
33
33
 
@@ -97,15 +97,15 @@ export default async function startDevServer(entrypoint, env = {}) {
97
97
  let initRender = [];
98
98
  let render = (...args) => new Promise(resolve => {
99
99
  var _initRender;
100
- (_initRender = initRender) == null ? void 0 : _initRender.push({
100
+ (_initRender = initRender) == null || _initRender.push({
101
101
  args,
102
102
  resolve
103
103
  });
104
104
  });
105
105
  function importRender(stats) {
106
- var _clientStats$compilat, _clientStats$compilat2, _serverStats$compilat, _serverStats$compilat2;
106
+ var _clientStats$compilat, _serverStats$compilat;
107
107
  const [clientStats, serverStats] = stats;
108
- if (clientStats != null && (_clientStats$compilat = clientStats.compilation) != null && (_clientStats$compilat2 = _clientStats$compilat.errors) != null && _clientStats$compilat2.length || serverStats != null && (_serverStats$compilat = serverStats.compilation) != null && (_serverStats$compilat2 = _serverStats$compilat.errors) != null && _serverStats$compilat2.length) {
108
+ if (clientStats != null && (_clientStats$compilat = clientStats.compilation) != null && (_clientStats$compilat = _clientStats$compilat.errors) != null && _clientStats$compilat.length || serverStats != null && (_serverStats$compilat = serverStats.compilation) != null && (_serverStats$compilat = _serverStats$compilat.errors) != null && _serverStats$compilat.length) {
109
109
  log.error('Errors for client build: ' + clientStats.compilation.errors);
110
110
  log.error('Errors for server build: ' + serverStats.compilation.errors);
111
111
  // first time, rather than re-render
@@ -147,7 +147,7 @@ export default async function startDevServer(entrypoint, env = {}) {
147
147
  {
148
148
  ...webpackConfigs[0].devServer,
149
149
  devMiddleware: {
150
- ...((_webpackConfigs$ = webpackConfigs[0]) == null ? void 0 : (_webpackConfigs$$devS = _webpackConfigs$.devServer) == null ? void 0 : _webpackConfigs$$devS.devMiddleware),
150
+ ...((_webpackConfigs$ = webpackConfigs[0]) == null || (_webpackConfigs$ = _webpackConfigs$.devServer) == null ? void 0 : _webpackConfigs$.devMiddleware),
151
151
  outputFileSystem: {
152
152
  ...fs,
153
153
  join: path.join
@@ -160,7 +160,7 @@ export default async function startDevServer(entrypoint, env = {}) {
160
160
  }
161
161
  const otherRoutes = [process.env.WEBPACK_PUBLIC_PATH, ...Object.keys((_webpackConfigs$0$dev = (_webpackConfigs$0$dev2 = webpackConfigs[0].devServer) == null ? void 0 : _webpackConfigs$0$dev2.proxy) != null ? _webpackConfigs$0$dev : {})];
162
162
  // serve SSR for non-WEBPACK_PUBLIC_PATH
163
- (_devServer$app = devServer.app) == null ? void 0 : _devServer$app.get(new RegExp(`^(?!${otherRoutes.join('|')})`), handleErrors(async function (req, res) {
163
+ (_devServer$app = devServer.app) == null || _devServer$app.get(new RegExp(`^(?!${otherRoutes.join('|')})`), handleErrors(async function (req, res) {
164
164
  if (req.url.endsWith('favicon.ico')) {
165
165
  res.statusCode = 404;
166
166
  res.setHeader('Content-type', 'text/html');
@@ -231,4 +231,4 @@ export default async function startDevServer(entrypoint, env = {}) {
231
231
  });
232
232
  runServer();
233
233
  }
234
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRpc2tGcyIsImNyZWF0ZUZzUmVxdWlyZSIsImNyZWF0ZUZzRnJvbVZvbHVtZSIsIlZvbHVtZSIsInBhdGgiLCJzb3VyY2VNYXBTdXBwb3J0IiwidG1wIiwidWZzIiwicHJvbWlzaWZ5Iiwid2VicGFjayIsImxvZ2dpbmciLCJXZWJwYWNrRGV2U2VydmVyIiwiZ2V0V2VicGFja0NvbmZpZyIsImltcG9ydCIsIm1ldGEiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsInN0YXJ0RGV2U2VydmVyIiwic2VydmVyRmlsZUNvbnRlbnRzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXJ2ZXJFbnRyeSIsImVudiIsIl93ZWJwYWNrQ29uZmlncyQiLCJfd2VicGFja0NvbmZpZ3MkJGRldlMiLCJ3ZWJwYWNrQ29uZmlnIiwiZ2V0TG9nZ2VyIiwidm9sdW1lIiwiZnMiLCJ1c2UiLCJmc1JlcXVpcmUiLCJyZWFkRmlsZSIsInNlcnZlciIsImhvdEVudHJ5IiwiZW50cnlQYXRoIiwiZ2VuZXJhdGVkRW50cnlwb2ludCIsImZpbGVTeW5jIiwicG9zdGZpeCIsIndyaXRlU3luYyIsImZkIiwiY3dkIiwid2VicGFja0NvbmZpZ3MiLCJlbnRyeXBhdGgiLCJuYW1lIiwibW9kZSIsInJlcGxhY2UiLCJCUk9XU0VSU0xJU1RfRU5WIiwidGFyZ2V0IiwiY29tcGlsZXIiLCJpbnN0YWxsIiwiaG9va1JlcXVpcmUiLCJnZXRTZXJ2ZXJCdW5kbGUiLCJzZXJ2ZXJTdGF0cyIsIl9zZXJ2ZXJKc29uJG91dHB1dFBhdCIsInNlcnZlckpzb24iLCJ0b0pzb24iLCJhc3NldHMiLCJqb2luIiwib3V0cHV0UGF0aCIsImhhbmRsZUVycm9ycyIsImZuIiwicmVxIiwicmVzIiwibmV4dCIsIngiLCJpbml0UmVuZGVyIiwicmVuZGVyIiwiYXJncyIsIl9pbml0UmVuZGVyIiwicHVzaCIsImltcG9ydFJlbmRlciIsInN0YXRzIiwiX2NsaWVudFN0YXRzJGNvbXBpbGF0IiwiX2NsaWVudFN0YXRzJGNvbXBpbGF0MiIsIl9zZXJ2ZXJTdGF0cyRjb21waWxhdCIsIl9zZXJ2ZXJTdGF0cyRjb21waWxhdDIiLCJjbGllbnRTdGF0cyIsImNvbXBpbGF0aW9uIiwiZXJyb3JzIiwibGVuZ3RoIiwiZXJyb3IiLCJBcnJheSIsImlzQXJyYXkiLCJpbmZvIiwiY2xpZW50TWFuaWZlc3QiLCJ0aGVuIiwiYnVmIiwidG9TdHJpbmciLCJrZXlzIiwiY2FjaGUiLCJmb3JFYWNoIiwiZGVmYXVsdCIsImJpbmQiLCJ1bmRlZmluZWQiLCJpbml0IiwiZSIsImRldlNlcnZlciIsImRldk1pZGRsZXdhcmUiLCJvdXRwdXRGaWxlU3lzdGVtIiwic2V0dXBNaWRkbGV3YXJlcyIsIm1pZGRsZXdhcmVzIiwiX3dlYnBhY2tDb25maWdzJDAkZGV2IiwiX3dlYnBhY2tDb25maWdzJDAkZGV2MiIsIl9kZXZTZXJ2ZXIkYXBwIiwiX3dlYnBhY2tDb25maWdzJDAkZGV2MyIsIkVycm9yIiwib3RoZXJSb3V0ZXMiLCJXRUJQQUNLX1BVQkxJQ19QQVRIIiwicHJveHkiLCJhcHAiLCJnZXQiLCJSZWdFeHAiLCJ1cmwiLCJlbmRzV2l0aCIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJzZW5kIiwic29ja2V0Iiwib24iLCJjb2RlIiwicnVuU2VydmVyIiwic3RhcnQiLCJob29rcyIsImRvbmUiLCJ0YXAiLCJtdWx0aVN0YXRzIiwiZmluZGVyIiwiZmlsZVRleHQiLCJ0ZXh0Um93cyIsInNwbGl0IiwibWF0Y2giLCJfZSRzdGFjayRtYXRjaEFsbCIsInN0YWNrIiwibWF0Y2hBbGwiLCJyb3ciLCJOdW1iZXIiLCJwYXJzZUludCIsImNvbCIsImJhc2VuYW1lIiwid3JpdGVGaWxlU3luYyIsInN0b3BTZXJ2ZXIiLCJzdG9wIiwid2FybiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zY3JpcHRzL3N0YXJ0RGV2c2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbk9iamVjdC5oYXNPd24gPVxuICBPYmplY3QuaGFzT3duIHx8XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIGZ1bmN0aW9uIGhhc093bihpdCwga2V5KSB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpdCwga2V5KTtcbiAgfTtcbmltcG9ydCB0eXBlIHsgTmV4dEZ1bmN0aW9uIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZGlza0ZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IGNyZWF0ZUZzUmVxdWlyZSB9IGZyb20gJ2ZzLXJlcXVpcmUnO1xuaW1wb3J0IHsgU2VydmVyLCBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgeyBjcmVhdGVGc0Zyb21Wb2x1bWUsIFZvbHVtZSB9IGZyb20gJ21lbWZzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHNvdXJjZU1hcFN1cHBvcnQgZnJvbSAnc291cmNlLW1hcC1zdXBwb3J0JztcbmltcG9ydCB0bXAgZnJvbSAndG1wJztcbmltcG9ydCB7IHVmcyB9IGZyb20gJ3VuaW9uZnMnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgd2VicGFjaywgeyBNdWx0aUNvbXBpbGVyIH0gZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgbG9nZ2luZyBmcm9tICd3ZWJwYWNrL2xpYi9sb2dnaW5nL3J1bnRpbWUuanMnO1xuaW1wb3J0IFdlYnBhY2tEZXZTZXJ2ZXIgZnJvbSAnd2VicGFjay1kZXYtc2VydmVyJztcblxuaW1wb3J0ICdjcm9zcy1mZXRjaC9kaXN0L25vZGUtcG9seWZpbGwuanMnO1xuaW1wb3J0IHsgZ2V0V2VicGFja0NvbmZpZyB9IGZyb20gJy4vZ2V0V2VicGFja0NvbmZpZy5qcyc7XG5pbXBvcnQgeyBCb3VuZFJlbmRlciB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vLyBydW4gZGlyZWN0bHkgZnJvbSBub2RlXG5pZiAoJ21haW4nIGluIGltcG9ydC5tZXRhKSB7XG4gIGNvbnN0IGVudHJ5cG9pbnQgPSBwcm9jZXNzLmFyZ3ZbMl07XG5cbiAgaWYgKCFlbnRyeXBvaW50KSB7XG4gICAgY29uc29sZS5sb2coYFVzYWdlOiBzdGFydC1hbmFuc2kgPGVudHJ5cG9pbnQtZmlsZT5gKTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9XG5cbiAgc3RhcnREZXZTZXJ2ZXIoZW50cnlwb2ludCk7XG59XG5cbmxldCBzZXJ2ZXJGaWxlQ29udGVudHM6IFByb21pc2U8c3RyaW5nPiA9IFByb21pc2UucmVzb2x2ZSgnJyk7XG5sZXQgc2VydmVyRW50cnkgPSAnJztcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gc3RhcnREZXZTZXJ2ZXIoXG4gIGVudHJ5cG9pbnQ6IHN0cmluZyxcbiAgZW52OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LFxuKSB7XG4gIGNvbnN0IHdlYnBhY2tDb25maWcgPSBhd2FpdCBnZXRXZWJwYWNrQ29uZmlnKCk7XG5cbiAgY29uc3QgbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2FuYW5zaS1kZXZzZXJ2ZXInKTtcblxuICAvLyBTZXQgdXAgaW4gbWVtb3J5IGZpbGVzeXN0ZW1cbiAgY29uc3Qgdm9sdW1lID0gbmV3IFZvbHVtZSgpO1xuICBjb25zdCBmcyA9IGNyZWF0ZUZzRnJvbVZvbHVtZSh2b2x1bWUpO1xuICB1ZnMudXNlKGRpc2tGcykudXNlKGZzIGFzIGFueSk7XG5cbiAgY29uc3QgZnNSZXF1aXJlID0gY3JlYXRlRnNSZXF1aXJlKHVmcyk7XG4gIGNvbnN0IHJlYWRGaWxlID0gcHJvbWlzaWZ5KHVmcy5yZWFkRmlsZSk7XG4gIGxldCBzZXJ2ZXI6IFNlcnZlciB8IHVuZGVmaW5lZDtcblxuICAvLyBHZW5lcmF0ZSBhIHRlbXBvcmFyeSBmaWxlIHNvIHdlIGNhbiBob3QgcmVsb2FkIGZyb20gdGhlIHJvb3Qgb2YgdGhlIGFwcGxpY2F0aW9uXG4gIGZ1bmN0aW9uIGhvdEVudHJ5KGVudHJ5UGF0aDogc3RyaW5nKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgLy8gQHRzLWlnbm9yZSBmb3Igc29tZSByZWFzb24gaXQncyBub3QgcGlja2luZyB1cCB0aGF0IG90aGVyIG9wdGlvbnMgYXJlIG9wdGlvbmFsXG4gICAgY29uc3QgZ2VuZXJhdGVkRW50cnlwb2ludCA9IHRtcC5maWxlU3luYyh7IHBvc3RmaXg6ICcuanMnIH0pO1xuICAgIGRpc2tGcy53cml0ZVN5bmMoXG4gICAgICBnZW5lcmF0ZWRFbnRyeXBvaW50LmZkLFxuICAgICAgYFxuICBpbXBvcnQgZW50cnkgZnJvbSBcIiR7cGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIGVudHJ5UGF0aCl9XCI7XG5cbiAgaWYgKGltcG9ydC5tZXRhLndlYnBhY2tIb3QpIHtcbiAgICBpbXBvcnQubWV0YS53ZWJwYWNrSG90LmFjY2VwdCgpO1xuICB9XG5cbiAgZXhwb3J0IGRlZmF1bHQgZW50cnk7XG4gICAgYCxcbiAgICApO1xuICAgIHJldHVybiBnZW5lcmF0ZWRFbnRyeXBvaW50O1xuICB9XG5cbiAgY29uc3Qgd2VicGFja0NvbmZpZ3MgPSBbXG4gICAgd2VicGFja0NvbmZpZyhcbiAgICAgIHtcbiAgICAgICAgLi4uZW52LFxuICAgICAgICBlbnRyeXBhdGg6IGhvdEVudHJ5KGVudHJ5cG9pbnQpLm5hbWUsXG4gICAgICAgIG5hbWU6ICdjbGllbnQnLFxuICAgICAgfSxcbiAgICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JyB9LFxuICAgICksXG4gICAgd2VicGFja0NvbmZpZyhcbiAgICAgIHtcbiAgICAgICAgLi4uZW52LFxuICAgICAgICBlbnRyeXBhdGg6IGVudHJ5cG9pbnQucmVwbGFjZSgnLnRzeCcsICcuc2VydmVyLnRzeCcpLFxuICAgICAgICBuYW1lOiAnc2VydmVyJyxcbiAgICAgICAgQlJPV1NFUlNMSVNUX0VOVjogJ2N1cnJlbnQgbm9kZScsXG4gICAgICB9LFxuICAgICAgeyBtb2RlOiAnZGV2ZWxvcG1lbnQnLCB0YXJnZXQ6ICdub2RlJyB9LFxuICAgICksXG4gIF0gYXMgY29uc3Q7XG5cbiAgLy8gaW5pdGlhbGl6ZSB0aGUgd2VicGFjayBjb21waWxlclxuICBjb25zdCBjb21waWxlcjogTXVsdGlDb21waWxlciA9IHdlYnBhY2sod2VicGFja0NvbmZpZ3MpO1xuXG4gIHNvdXJjZU1hcFN1cHBvcnQuaW5zdGFsbCh7IGhvb2tSZXF1aXJlOiB0cnVlIH0pO1xuXG4gIGZ1bmN0aW9uIGdldFNlcnZlckJ1bmRsZShzZXJ2ZXJTdGF0czogd2VicGFjay5TdGF0cykge1xuICAgIGNvbnN0IHNlcnZlckpzb24gPSBzZXJ2ZXJTdGF0cy50b0pzb24oeyBhc3NldHM6IHRydWUgfSk7XG4gICAgcmV0dXJuIHBhdGguam9pbihzZXJ2ZXJKc29uLm91dHB1dFBhdGggPz8gJycsICdzZXJ2ZXIuanMnKTtcbiAgfVxuICBmdW5jdGlvbiBoYW5kbGVFcnJvcnM8XG4gICAgRiBleHRlbmRzIChcbiAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbiAgICApID0+IFByb21pc2U8dm9pZD4sXG4gID4oZm46IEYpIHtcbiAgICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICAgbmV4dDogTmV4dEZ1bmN0aW9uLFxuICAgICkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGZuKHJlcSwgcmVzKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgbmV4dCh4KTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgbGV0IGluaXRSZW5kZXI6XG4gICAgfCB7IGFyZ3M6IFBhcmFtZXRlcnM8Qm91bmRSZW5kZXI+OyByZXNvbHZlOiAoKSA9PiB2b2lkIH1bXVxuICAgIHwgdW5kZWZpbmVkID0gW107XG4gIGxldCByZW5kZXI6IEJvdW5kUmVuZGVyID0gKC4uLmFyZ3MpID0+XG4gICAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICBpbml0UmVuZGVyPy5wdXNoKHsgYXJncywgcmVzb2x2ZSB9KTtcbiAgICB9KTtcblxuICBmdW5jdGlvbiBpbXBvcnRSZW5kZXIoc3RhdHM6IHdlYnBhY2suU3RhdHNbXSkge1xuICAgIGNvbnN0IFtjbGllbnRTdGF0cywgc2VydmVyU3RhdHNdID0gc3RhdHM7XG4gICAgaWYgKFxuICAgICAgY2xpZW50U3RhdHM/LmNvbXBpbGF0aW9uPy5lcnJvcnM/Lmxlbmd0aCB8fFxuICAgICAgc2VydmVyU3RhdHM/LmNvbXBpbGF0aW9uPy5lcnJvcnM/Lmxlbmd0aFxuICAgICkge1xuICAgICAgbG9nLmVycm9yKCdFcnJvcnMgZm9yIGNsaWVudCBidWlsZDogJyArIGNsaWVudFN0YXRzLmNvbXBpbGF0aW9uLmVycm9ycyk7XG4gICAgICBsb2cuZXJyb3IoJ0Vycm9ycyBmb3Igc2VydmVyIGJ1aWxkOiAnICsgc2VydmVyU3RhdHMuY29tcGlsYXRpb24uZXJyb3JzKTtcbiAgICAgIC8vIGZpcnN0IHRpbWUsIHJhdGhlciB0aGFuIHJlLXJlbmRlclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaW5pdFJlbmRlcikpIHtcbiAgICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICAgIH1cbiAgICAgIGxvZy5lcnJvcignQWJvdmUgY29tcGlsZXIgZXJyb3JzIGJsb2NraW5nIHJlbG9hZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2cuaW5mbygnTGF1bmNoaW5nIFNTUicpO1xuICAgIH1cblxuICAgIC8vIEFTU0VUU1xuICAgIGNvbnN0IGNsaWVudE1hbmlmZXN0ID0gY2xpZW50U3RhdHMudG9Kc29uKCk7XG5cbiAgICBzZXJ2ZXJFbnRyeSA9IGdldFNlcnZlckJ1bmRsZShzZXJ2ZXJTdGF0cyk7XG4gICAgc2VydmVyRmlsZUNvbnRlbnRzID0gcmVhZEZpbGUoc2VydmVyRW50cnkpLnRoZW4oYnVmID0+IGJ1Zi50b1N0cmluZygpKTtcbiAgICAvLyByZWxvYWQgbW9kdWxlc1xuICAgIE9iamVjdC5rZXlzKGZzUmVxdWlyZS5jYWNoZSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgZGVsZXRlIGZzUmVxdWlyZS5jYWNoZVtrZXldO1xuICAgIH0pO1xuICAgIHJlbmRlciA9IChmc1JlcXVpcmUoc2VydmVyRW50cnkpIGFzIGFueSkuZGVmYXVsdC5iaW5kKFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgY2xpZW50TWFuaWZlc3QsXG4gICAgKTtcbiAgICAvLyBTRVJWRVIgU0lERSBFTlRSWVBPSU5UXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW5pdFJlbmRlcikpIHtcbiAgICAgIGluaXRSZW5kZXIuZm9yRWFjaChhc3luYyBpbml0ID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsb2cuaW5mbygnUmVzb2x2aW5nIHF1ZXVlZCByZXF1ZXN0cycpO1xuICAgICAgICAgIGF3YWl0IHJlbmRlciguLi5pbml0LmFyZ3MpO1xuICAgICAgICAgIGluaXQucmVzb2x2ZSgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgbG9nLmVycm9yKCdFcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gcmVuZGVyIHF1ZXVlZCByZXF1ZXN0cycpO1xuICAgICAgICAgIGxvZy5lcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpbml0UmVuZGVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRldlNlcnZlciA9IG5ldyBXZWJwYWNrRGV2U2VydmVyKFxuICAgIC8vIHdyaXRlIHRvIG1lbW9yeSBmaWxlc3lzdGVtIHNvIHdlIGNhbiBpbXBvcnRcbiAgICB7XG4gICAgICAuLi53ZWJwYWNrQ29uZmlnc1swXS5kZXZTZXJ2ZXIsXG4gICAgICBkZXZNaWRkbGV3YXJlOiB7XG4gICAgICAgIC4uLndlYnBhY2tDb25maWdzWzBdPy5kZXZTZXJ2ZXI/LmRldk1pZGRsZXdhcmUsXG4gICAgICAgIG91dHB1dEZpbGVTeXN0ZW06IHtcbiAgICAgICAgICAuLi5mcyxcbiAgICAgICAgICBqb2luOiBwYXRoLmpvaW4gYXMgYW55LFxuICAgICAgICB9IGFzIGFueSxcbiAgICAgIH0sXG4gICAgICBzZXR1cE1pZGRsZXdhcmVzOiAobWlkZGxld2FyZXMsIGRldlNlcnZlcikgPT4ge1xuICAgICAgICBpZiAoIWRldlNlcnZlcikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignd2VicGFjay1kZXYtc2VydmVyIGlzIG5vdCBkZWZpbmVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvdGhlclJvdXRlcyA9IFtcbiAgICAgICAgICBwcm9jZXNzLmVudi5XRUJQQUNLX1BVQkxJQ19QQVRILFxuICAgICAgICAgIC4uLk9iamVjdC5rZXlzKHdlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlcj8ucHJveHkgPz8ge30pLFxuICAgICAgICBdO1xuICAgICAgICAvLyBzZXJ2ZSBTU1IgZm9yIG5vbi1XRUJQQUNLX1BVQkxJQ19QQVRIXG4gICAgICAgIGRldlNlcnZlci5hcHA/LmdldChcbiAgICAgICAgICBuZXcgUmVnRXhwKGBeKD8hJHtvdGhlclJvdXRlcy5qb2luKCd8Jyl9KWApLFxuICAgICAgICAgIGhhbmRsZUVycm9ycyhhc3luYyBmdW5jdGlvbiAocmVxOiBhbnksIHJlczogYW55KSB7XG4gICAgICAgICAgICBpZiAocmVxLnVybC5lbmRzV2l0aCgnZmF2aWNvbi5pY28nKSkge1xuICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpO1xuICAgICAgICAgICAgICByZXMuc2VuZCgnbm90IGZvdW5kJyk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlcy5zb2NrZXQub24oJ2Vycm9yJywgKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgIGxvZy5lcnJvcignRmF0YWw6JywgZXJyb3IpO1xuICAgICAgICAgICAgICBpZiAoKGVycm9yIGFzIGFueSkuY29kZSA9PT0gJ0VDT05OUkVTRVQnKSB7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKFxuICAgICAgICAgICAgICAgICAgJ0VDT05OUkVTRVQgaXMgdXN1YWxseSBkdWUgdG8gYnJvd3NlciBjbG9zaW5nIHRoZSBjb25uZWN0aW9uJyxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYXdhaXQgcmVuZGVyKHJlcSwgcmVzKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAod2VicGFja0NvbmZpZ3NbMF0uZGV2U2VydmVyPy5zZXR1cE1pZGRsZXdhcmVzKSB7XG4gICAgICAgICAgcmV0dXJuIHdlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlci5zZXR1cE1pZGRsZXdhcmVzKFxuICAgICAgICAgICAgbWlkZGxld2FyZXMsXG4gICAgICAgICAgICBkZXZTZXJ2ZXIsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtaWRkbGV3YXJlcztcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjb21waWxlcixcbiAgKTtcbiAgY29uc3QgcnVuU2VydmVyID0gYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGRldlNlcnZlci5zdGFydCgpO1xuICAgIGRldlNlcnZlci5jb21waWxlci5ob29rcy5kb25lLnRhcChcbiAgICAgICdBbmFuc2kgU2VydmVyJyxcbiAgICAgIChtdWx0aVN0YXRzOiB3ZWJwYWNrLk11bHRpU3RhdHMgfCB3ZWJwYWNrLlN0YXRzKSA9PiB7XG4gICAgICAgIGlmICghbXVsdGlTdGF0cykge1xuICAgICAgICAgIGxvZy5lcnJvcignc3RhdHMgbm90IHNlbmQnKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFPYmplY3QuaGFzT3duKG11bHRpU3RhdHMsICdzdGF0cycpKSByZXR1cm47XG4gICAgICAgIGlmICgobXVsdGlTdGF0cyBhcyB3ZWJwYWNrLk11bHRpU3RhdHMpLnN0YXRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaW1wb3J0UmVuZGVyKChtdWx0aVN0YXRzIGFzIHdlYnBhY2suTXVsdGlTdGF0cykuc3RhdHMpO1xuICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgbG9nLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBzZXJ2ZSBlbnRyeXBvaW50Jyk7XG4gICAgICAgICAgICBjb25zdCBmaW5kZXIgPSBuZXcgUmVnRXhwKGAke3NlcnZlckVudHJ5fTooW1xcXFxkXSspOihbXFxcXGRdKylgLCAnZycpO1xuICAgICAgICAgICAgc2VydmVyRmlsZUNvbnRlbnRzLnRoZW4oZmlsZVRleHQgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB0ZXh0Um93cyA9IGZpbGVUZXh0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgICAgbG9nLmVycm9yKCc+Pj4gU3RhY2sgQ29udGV4dCBbc2VydmUgZW50cnlwb2ludF0gPDw8Jyk7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgZS5zdGFjay5tYXRjaEFsbChmaW5kZXIpID8/IFtdKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm93ID0gTnVtYmVyLnBhcnNlSW50KG1hdGNoWzFdKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2wgPSBOdW1iZXIucGFyc2VJbnQobWF0Y2hbMl0pO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcihwYXRoLmJhc2VuYW1lKHNlcnZlckVudHJ5KSArICcgJyArIHJvdyArICc6JyArIGNvbCk7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKHRleHRSb3dzW3JvdyAtIDJdKTtcbiAgICAgICAgICAgICAgICBsb2cuZXJyb3IodGV4dFJvd3Nbcm93IC0gMV0pO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcihBcnJheShjb2wpLmpvaW4oJyAnKSArICdeJyk7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKHRleHRSb3dzW3Jvd10pO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcih0ZXh0Um93c1tyb3cgKyAxXSk7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKHRleHRSb3dzW3JvdyArIDJdKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkaXNrRnMud3JpdGVGaWxlU3luYyhzZXJ2ZXJFbnRyeSwgZmlsZVRleHQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZy5lcnJvcignT25seSBjb21waWxlciBvbmUgc3RhdCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG4gIH07XG4gIGNvbnN0IHN0b3BTZXJ2ZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgbG9nLmluZm8oJ1N0b3BwaW5nIHNlcnZlci4uLicpO1xuICAgIGF3YWl0IGRldlNlcnZlci5zdG9wKCk7XG4gICAgbG9nLmluZm8oJ1NlcnZlciBjbG9zZWQnKTtcbiAgfTtcblxuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCAoKSA9PiB7XG4gICAgbG9nLndhcm4oJ1JlY2VpdmVkIFNJR0lOVCwgZGV2c2VydmVyIHNodXR0aW5nIGRvd24nKTtcbiAgICBzdG9wU2VydmVyKCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSk7XG5cbiAgcnVuU2VydmVyKCk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FB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
234
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRpc2tGcyIsImNyZWF0ZUZzUmVxdWlyZSIsImNyZWF0ZUZzRnJvbVZvbHVtZSIsIlZvbHVtZSIsInBhdGgiLCJzb3VyY2VNYXBTdXBwb3J0IiwidG1wIiwidWZzIiwicHJvbWlzaWZ5Iiwid2VicGFjayIsImxvZ2dpbmciLCJXZWJwYWNrRGV2U2VydmVyIiwiZ2V0V2VicGFja0NvbmZpZyIsImltcG9ydCIsIm1ldGEiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsInN0YXJ0RGV2U2VydmVyIiwic2VydmVyRmlsZUNvbnRlbnRzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXJ2ZXJFbnRyeSIsImVudiIsIl93ZWJwYWNrQ29uZmlncyQiLCJ3ZWJwYWNrQ29uZmlnIiwiZ2V0TG9nZ2VyIiwidm9sdW1lIiwiZnMiLCJ1c2UiLCJmc1JlcXVpcmUiLCJyZWFkRmlsZSIsInNlcnZlciIsImhvdEVudHJ5IiwiZW50cnlQYXRoIiwiZ2VuZXJhdGVkRW50cnlwb2ludCIsImZpbGVTeW5jIiwicG9zdGZpeCIsIndyaXRlU3luYyIsImZkIiwiY3dkIiwid2VicGFja0NvbmZpZ3MiLCJlbnRyeXBhdGgiLCJuYW1lIiwibW9kZSIsInJlcGxhY2UiLCJCUk9XU0VSU0xJU1RfRU5WIiwidGFyZ2V0IiwiY29tcGlsZXIiLCJpbnN0YWxsIiwiaG9va1JlcXVpcmUiLCJnZXRTZXJ2ZXJCdW5kbGUiLCJzZXJ2ZXJTdGF0cyIsIl9zZXJ2ZXJKc29uJG91dHB1dFBhdCIsInNlcnZlckpzb24iLCJ0b0pzb24iLCJhc3NldHMiLCJqb2luIiwib3V0cHV0UGF0aCIsImhhbmRsZUVycm9ycyIsImZuIiwicmVxIiwicmVzIiwibmV4dCIsIngiLCJpbml0UmVuZGVyIiwicmVuZGVyIiwiYXJncyIsIl9pbml0UmVuZGVyIiwicHVzaCIsImltcG9ydFJlbmRlciIsInN0YXRzIiwiX2NsaWVudFN0YXRzJGNvbXBpbGF0IiwiX3NlcnZlclN0YXRzJGNvbXBpbGF0IiwiY2xpZW50U3RhdHMiLCJjb21waWxhdGlvbiIsImVycm9ycyIsImxlbmd0aCIsImVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiaW5mbyIsImNsaWVudE1hbmlmZXN0IiwidGhlbiIsImJ1ZiIsInRvU3RyaW5nIiwia2V5cyIsImNhY2hlIiwiZm9yRWFjaCIsImRlZmF1bHQiLCJiaW5kIiwidW5kZWZpbmVkIiwiaW5pdCIsImUiLCJkZXZTZXJ2ZXIiLCJkZXZNaWRkbGV3YXJlIiwib3V0cHV0RmlsZVN5c3RlbSIsInNldHVwTWlkZGxld2FyZXMiLCJtaWRkbGV3YXJlcyIsIl93ZWJwYWNrQ29uZmlncyQwJGRldiIsIl93ZWJwYWNrQ29uZmlncyQwJGRldjIiLCJfZGV2U2VydmVyJGFwcCIsIl93ZWJwYWNrQ29uZmlncyQwJGRldjMiLCJFcnJvciIsIm90aGVyUm91dGVzIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsInByb3h5IiwiYXBwIiwiZ2V0IiwiUmVnRXhwIiwidXJsIiwiZW5kc1dpdGgiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwic2VuZCIsInNvY2tldCIsIm9uIiwiY29kZSIsInJ1blNlcnZlciIsInN0YXJ0IiwiaG9va3MiLCJkb25lIiwidGFwIiwibXVsdGlTdGF0cyIsImZpbmRlciIsImZpbGVUZXh0IiwidGV4dFJvd3MiLCJzcGxpdCIsIm1hdGNoIiwiX2Ukc3RhY2skbWF0Y2hBbGwiLCJzdGFjayIsIm1hdGNoQWxsIiwicm93IiwiTnVtYmVyIiwicGFyc2VJbnQiLCJjb2wiLCJiYXNlbmFtZSIsIndyaXRlRmlsZVN5bmMiLCJzdG9wU2VydmVyIiwic3RvcCIsIndhcm4iXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2NyaXB0cy9zdGFydERldnNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5PYmplY3QuaGFzT3duID1cbiAgT2JqZWN0Lmhhc093biB8fFxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBmdW5jdGlvbiBoYXNPd24oaXQsIGtleSkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG4gIH07XG5pbXBvcnQgdHlwZSB7IE5leHRGdW5jdGlvbiB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IGRpc2tGcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBjcmVhdGVGc1JlcXVpcmUgfSBmcm9tICdmcy1yZXF1aXJlJztcbmltcG9ydCB7IFNlcnZlciwgSW5jb21pbmdNZXNzYWdlLCBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJ2h0dHAnO1xuaW1wb3J0IHsgY3JlYXRlRnNGcm9tVm9sdW1lLCBWb2x1bWUgfSBmcm9tICdtZW1mcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBzb3VyY2VNYXBTdXBwb3J0IGZyb20gJ3NvdXJjZS1tYXAtc3VwcG9ydCc7XG5pbXBvcnQgdG1wIGZyb20gJ3RtcCc7XG5pbXBvcnQgeyB1ZnMgfSBmcm9tICd1bmlvbmZzJztcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHdlYnBhY2ssIHsgTXVsdGlDb21waWxlciB9IGZyb20gJ3dlYnBhY2snO1xuaW1wb3J0IGxvZ2dpbmcgZnJvbSAnd2VicGFjay9saWIvbG9nZ2luZy9ydW50aW1lLmpzJztcbmltcG9ydCBXZWJwYWNrRGV2U2VydmVyIGZyb20gJ3dlYnBhY2stZGV2LXNlcnZlcic7XG5cbmltcG9ydCAnY3Jvc3MtZmV0Y2gvZGlzdC9ub2RlLXBvbHlmaWxsLmpzJztcbmltcG9ydCB7IGdldFdlYnBhY2tDb25maWcgfSBmcm9tICcuL2dldFdlYnBhY2tDb25maWcuanMnO1xuaW1wb3J0IHsgQm91bmRSZW5kZXIgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLy8gcnVuIGRpcmVjdGx5IGZyb20gbm9kZVxuaWYgKCdtYWluJyBpbiBpbXBvcnQubWV0YSkge1xuICBjb25zdCBlbnRyeXBvaW50ID0gcHJvY2Vzcy5hcmd2WzJdO1xuXG4gIGlmICghZW50cnlwb2ludCkge1xuICAgIGNvbnNvbGUubG9nKGBVc2FnZTogc3RhcnQtYW5hbnNpIDxlbnRyeXBvaW50LWZpbGU+YCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfVxuXG4gIHN0YXJ0RGV2U2VydmVyKGVudHJ5cG9pbnQpO1xufVxuXG5sZXQgc2VydmVyRmlsZUNvbnRlbnRzOiBQcm9taXNlPHN0cmluZz4gPSBQcm9taXNlLnJlc29sdmUoJycpO1xubGV0IHNlcnZlckVudHJ5ID0gJyc7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0RGV2U2VydmVyKFxuICBlbnRyeXBvaW50OiBzdHJpbmcsXG4gIGVudjogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSxcbikge1xuICBjb25zdCB3ZWJwYWNrQ29uZmlnID0gYXdhaXQgZ2V0V2VicGFja0NvbmZpZygpO1xuXG4gIGNvbnN0IGxvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCdhbmFuc2ktZGV2c2VydmVyJyk7XG5cbiAgLy8gU2V0IHVwIGluIG1lbW9yeSBmaWxlc3lzdGVtXG4gIGNvbnN0IHZvbHVtZSA9IG5ldyBWb2x1bWUoKTtcbiAgY29uc3QgZnMgPSBjcmVhdGVGc0Zyb21Wb2x1bWUodm9sdW1lKTtcbiAgdWZzLnVzZShkaXNrRnMpLnVzZShmcyBhcyBhbnkpO1xuXG4gIGNvbnN0IGZzUmVxdWlyZSA9IGNyZWF0ZUZzUmVxdWlyZSh1ZnMpO1xuICBjb25zdCByZWFkRmlsZSA9IHByb21pc2lmeSh1ZnMucmVhZEZpbGUpO1xuICBsZXQgc2VydmVyOiBTZXJ2ZXIgfCB1bmRlZmluZWQ7XG5cbiAgLy8gR2VuZXJhdGUgYSB0ZW1wb3JhcnkgZmlsZSBzbyB3ZSBjYW4gaG90IHJlbG9hZCBmcm9tIHRoZSByb290IG9mIHRoZSBhcHBsaWNhdGlvblxuICBmdW5jdGlvbiBob3RFbnRyeShlbnRyeVBhdGg6IHN0cmluZykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIC8vIEB0cy1pZ25vcmUgZm9yIHNvbWUgcmVhc29uIGl0J3Mgbm90IHBpY2tpbmcgdXAgdGhhdCBvdGhlciBvcHRpb25zIGFyZSBvcHRpb25hbFxuICAgIGNvbnN0IGdlbmVyYXRlZEVudHJ5cG9pbnQgPSB0bXAuZmlsZVN5bmMoeyBwb3N0Zml4OiAnLmpzJyB9KTtcbiAgICBkaXNrRnMud3JpdGVTeW5jKFxuICAgICAgZ2VuZXJhdGVkRW50cnlwb2ludC5mZCxcbiAgICAgIGBcbiAgaW1wb3J0IGVudHJ5IGZyb20gXCIke3BhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBlbnRyeVBhdGgpfVwiO1xuXG4gIGlmIChpbXBvcnQubWV0YS53ZWJwYWNrSG90KSB7XG4gICAgaW1wb3J0Lm1ldGEud2VicGFja0hvdC5hY2NlcHQoKTtcbiAgfVxuXG4gIGV4cG9ydCBkZWZhdWx0IGVudHJ5O1xuICAgIGAsXG4gICAgKTtcbiAgICByZXR1cm4gZ2VuZXJhdGVkRW50cnlwb2ludDtcbiAgfVxuXG4gIGNvbnN0IHdlYnBhY2tDb25maWdzID0gW1xuICAgIHdlYnBhY2tDb25maWcoXG4gICAgICB7XG4gICAgICAgIC4uLmVudixcbiAgICAgICAgZW50cnlwYXRoOiBob3RFbnRyeShlbnRyeXBvaW50KS5uYW1lLFxuICAgICAgICBuYW1lOiAnY2xpZW50JyxcbiAgICAgIH0sXG4gICAgICB7IG1vZGU6ICdkZXZlbG9wbWVudCcgfSxcbiAgICApLFxuICAgIHdlYnBhY2tDb25maWcoXG4gICAgICB7XG4gICAgICAgIC4uLmVudixcbiAgICAgICAgZW50cnlwYXRoOiBlbnRyeXBvaW50LnJlcGxhY2UoJy50c3gnLCAnLnNlcnZlci50c3gnKSxcbiAgICAgICAgbmFtZTogJ3NlcnZlcicsXG4gICAgICAgIEJST1dTRVJTTElTVF9FTlY6ICdjdXJyZW50IG5vZGUnLFxuICAgICAgfSxcbiAgICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JywgdGFyZ2V0OiAnbm9kZScgfSxcbiAgICApLFxuICBdIGFzIGNvbnN0O1xuXG4gIC8vIGluaXRpYWxpemUgdGhlIHdlYnBhY2sgY29tcGlsZXJcbiAgY29uc3QgY29tcGlsZXI6IE11bHRpQ29tcGlsZXIgPSB3ZWJwYWNrKHdlYnBhY2tDb25maWdzKTtcblxuICBzb3VyY2VNYXBTdXBwb3J0Lmluc3RhbGwoeyBob29rUmVxdWlyZTogdHJ1ZSB9KTtcblxuICBmdW5jdGlvbiBnZXRTZXJ2ZXJCdW5kbGUoc2VydmVyU3RhdHM6IHdlYnBhY2suU3RhdHMpIHtcbiAgICBjb25zdCBzZXJ2ZXJKc29uID0gc2VydmVyU3RhdHMudG9Kc29uKHsgYXNzZXRzOiB0cnVlIH0pO1xuICAgIHJldHVybiBwYXRoLmpvaW4oc2VydmVySnNvbi5vdXRwdXRQYXRoID8/ICcnLCAnc2VydmVyLmpzJyk7XG4gIH1cbiAgZnVuY3Rpb24gaGFuZGxlRXJyb3JzPFxuICAgIEYgZXh0ZW5kcyAoXG4gICAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICAgKSA9PiBQcm9taXNlPHZvaWQ+LFxuICA+KGZuOiBGKSB7XG4gICAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIChcbiAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbiAgICAgIG5leHQ6IE5leHRGdW5jdGlvbixcbiAgICApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBmbihyZXEsIHJlcyk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIG5leHQoeCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGxldCBpbml0UmVuZGVyOlxuICAgIHwgeyBhcmdzOiBQYXJhbWV0ZXJzPEJvdW5kUmVuZGVyPjsgcmVzb2x2ZTogKCkgPT4gdm9pZCB9W11cbiAgICB8IHVuZGVmaW5lZCA9IFtdO1xuICBsZXQgcmVuZGVyOiBCb3VuZFJlbmRlciA9ICguLi5hcmdzKSA9PlxuICAgIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgaW5pdFJlbmRlcj8ucHVzaCh7IGFyZ3MsIHJlc29sdmUgfSk7XG4gICAgfSk7XG5cbiAgZnVuY3Rpb24gaW1wb3J0UmVuZGVyKHN0YXRzOiB3ZWJwYWNrLlN0YXRzW10pIHtcbiAgICBjb25zdCBbY2xpZW50U3RhdHMsIHNlcnZlclN0YXRzXSA9IHN0YXRzO1xuICAgIGlmIChcbiAgICAgIGNsaWVudFN0YXRzPy5jb21waWxhdGlvbj8uZXJyb3JzPy5sZW5ndGggfHxcbiAgICAgIHNlcnZlclN0YXRzPy5jb21waWxhdGlvbj8uZXJyb3JzPy5sZW5ndGhcbiAgICApIHtcbiAgICAgIGxvZy5lcnJvcignRXJyb3JzIGZvciBjbGllbnQgYnVpbGQ6ICcgKyBjbGllbnRTdGF0cy5jb21waWxhdGlvbi5lcnJvcnMpO1xuICAgICAgbG9nLmVycm9yKCdFcnJvcnMgZm9yIHNlcnZlciBidWlsZDogJyArIHNlcnZlclN0YXRzLmNvbXBpbGF0aW9uLmVycm9ycyk7XG4gICAgICAvLyBmaXJzdCB0aW1lLCByYXRoZXIgdGhhbiByZS1yZW5kZXJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGluaXRSZW5kZXIpKSB7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gICAgICB9XG4gICAgICBsb2cuZXJyb3IoJ0Fib3ZlIGNvbXBpbGVyIGVycm9ycyBibG9ja2luZyByZWxvYWQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLmluZm8oJ0xhdW5jaGluZyBTU1InKTtcbiAgICB9XG5cbiAgICAvLyBBU1NFVFNcbiAgICBjb25zdCBjbGllbnRNYW5pZmVzdCA9IGNsaWVudFN0YXRzLnRvSnNvbigpO1xuXG4gICAgc2VydmVyRW50cnkgPSBnZXRTZXJ2ZXJCdW5kbGUoc2VydmVyU3RhdHMpO1xuICAgIHNlcnZlckZpbGVDb250ZW50cyA9IHJlYWRGaWxlKHNlcnZlckVudHJ5KS50aGVuKGJ1ZiA9PiBidWYudG9TdHJpbmcoKSk7XG4gICAgLy8gcmVsb2FkIG1vZHVsZXNcbiAgICBPYmplY3Qua2V5cyhmc1JlcXVpcmUuY2FjaGUpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGRlbGV0ZSBmc1JlcXVpcmUuY2FjaGVba2V5XTtcbiAgICB9KTtcbiAgICByZW5kZXIgPSAoZnNSZXF1aXJlKHNlcnZlckVudHJ5KSBhcyBhbnkpLmRlZmF1bHQuYmluZChcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGNsaWVudE1hbmlmZXN0LFxuICAgICk7XG4gICAgLy8gU0VSVkVSIFNJREUgRU5UUllQT0lOVFxuICAgIGlmIChBcnJheS5pc0FycmF5KGluaXRSZW5kZXIpKSB7XG4gICAgICBpbml0UmVuZGVyLmZvckVhY2goYXN5bmMgaW5pdCA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbG9nLmluZm8oJ1Jlc29sdmluZyBxdWV1ZWQgcmVxdWVzdHMnKTtcbiAgICAgICAgICBhd2FpdCByZW5kZXIoLi4uaW5pdC5hcmdzKTtcbiAgICAgICAgICBpbml0LnJlc29sdmUoKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGxvZy5lcnJvcignRXJyb3Igd2hlbiBhdHRlbXB0aW5nIHRvIHJlbmRlciBxdWV1ZWQgcmVxdWVzdHMnKTtcbiAgICAgICAgICBsb2cuZXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaW5pdFJlbmRlciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBjb25zdCBkZXZTZXJ2ZXIgPSBuZXcgV2VicGFja0RldlNlcnZlcihcbiAgICAvLyB3cml0ZSB0byBtZW1vcnkgZmlsZXN5c3RlbSBzbyB3ZSBjYW4gaW1wb3J0XG4gICAge1xuICAgICAgLi4ud2VicGFja0NvbmZpZ3NbMF0uZGV2U2VydmVyLFxuICAgICAgZGV2TWlkZGxld2FyZToge1xuICAgICAgICAuLi53ZWJwYWNrQ29uZmlnc1swXT8uZGV2U2VydmVyPy5kZXZNaWRkbGV3YXJlLFxuICAgICAgICBvdXRwdXRGaWxlU3lzdGVtOiB7XG4gICAgICAgICAgLi4uZnMsXG4gICAgICAgICAgam9pbjogcGF0aC5qb2luIGFzIGFueSxcbiAgICAgICAgfSBhcyBhbnksXG4gICAgICB9LFxuICAgICAgc2V0dXBNaWRkbGV3YXJlczogKG1pZGRsZXdhcmVzLCBkZXZTZXJ2ZXIpID0+IHtcbiAgICAgICAgaWYgKCFkZXZTZXJ2ZXIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3dlYnBhY2stZGV2LXNlcnZlciBpcyBub3QgZGVmaW5lZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3RoZXJSb3V0ZXMgPSBbXG4gICAgICAgICAgcHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCxcbiAgICAgICAgICAuLi5PYmplY3Qua2V5cyh3ZWJwYWNrQ29uZmlnc1swXS5kZXZTZXJ2ZXI/LnByb3h5ID8/IHt9KSxcbiAgICAgICAgXTtcbiAgICAgICAgLy8gc2VydmUgU1NSIGZvciBub24tV0VCUEFDS19QVUJMSUNfUEFUSFxuICAgICAgICBkZXZTZXJ2ZXIuYXBwPy5nZXQoXG4gICAgICAgICAgbmV3IFJlZ0V4cChgXig/ISR7b3RoZXJSb3V0ZXMuam9pbignfCcpfSlgKSxcbiAgICAgICAgICBoYW5kbGVFcnJvcnMoYXN5bmMgZnVuY3Rpb24gKHJlcTogYW55LCByZXM6IGFueSkge1xuICAgICAgICAgICAgaWYgKHJlcS51cmwuZW5kc1dpdGgoJ2Zhdmljb24uaWNvJykpIHtcbiAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgICAgICAgcmVzLnNlbmQoJ25vdCBmb3VuZCcpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXMuc29ja2V0Lm9uKCdlcnJvcicsIChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICBsb2cuZXJyb3IoJ0ZhdGFsOicsIGVycm9yKTtcbiAgICAgICAgICAgICAgaWYgKChlcnJvciBhcyBhbnkpLmNvZGUgPT09ICdFQ09OTlJFU0VUJykge1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcihcbiAgICAgICAgICAgICAgICAgICdFQ09OTlJFU0VUIGlzIHVzdWFsbHkgZHVlIHRvIGJyb3dzZXIgY2xvc2luZyB0aGUgY29ubmVjdGlvbicsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGF3YWl0IHJlbmRlcihyZXEsIHJlcyk7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHdlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlcj8uc2V0dXBNaWRkbGV3YXJlcykge1xuICAgICAgICAgIHJldHVybiB3ZWJwYWNrQ29uZmlnc1swXS5kZXZTZXJ2ZXIuc2V0dXBNaWRkbGV3YXJlcyhcbiAgICAgICAgICAgIG1pZGRsZXdhcmVzLFxuICAgICAgICAgICAgZGV2U2VydmVyLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWlkZGxld2FyZXM7XG4gICAgICB9LFxuICAgIH0sXG4gICAgY29tcGlsZXIsXG4gICk7XG4gIGNvbnN0IHJ1blNlcnZlciA9IGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBkZXZTZXJ2ZXIuc3RhcnQoKTtcbiAgICBkZXZTZXJ2ZXIuY29tcGlsZXIuaG9va3MuZG9uZS50YXAoXG4gICAgICAnQW5hbnNpIFNlcnZlcicsXG4gICAgICAobXVsdGlTdGF0czogd2VicGFjay5NdWx0aVN0YXRzIHwgd2VicGFjay5TdGF0cykgPT4ge1xuICAgICAgICBpZiAoIW11bHRpU3RhdHMpIHtcbiAgICAgICAgICBsb2cuZXJyb3IoJ3N0YXRzIG5vdCBzZW5kJyk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghT2JqZWN0Lmhhc093bihtdWx0aVN0YXRzLCAnc3RhdHMnKSkgcmV0dXJuO1xuICAgICAgICBpZiAoKG11bHRpU3RhdHMgYXMgd2VicGFjay5NdWx0aVN0YXRzKS5zdGF0cy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGltcG9ydFJlbmRlcigobXVsdGlTdGF0cyBhcyB3ZWJwYWNrLk11bHRpU3RhdHMpLnN0YXRzKTtcbiAgICAgICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgICAgIGxvZy5lcnJvcignRmFpbGVkIHRvIGxvYWQgc2VydmUgZW50cnlwb2ludCcpO1xuICAgICAgICAgICAgY29uc3QgZmluZGVyID0gbmV3IFJlZ0V4cChgJHtzZXJ2ZXJFbnRyeX06KFtcXFxcZF0rKTooW1xcXFxkXSspYCwgJ2cnKTtcbiAgICAgICAgICAgIHNlcnZlckZpbGVDb250ZW50cy50aGVuKGZpbGVUZXh0ID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdGV4dFJvd3MgPSBmaWxlVGV4dC5zcGxpdCgnXFxuJyk7XG4gICAgICAgICAgICAgIGxvZy5lcnJvcignPj4+IFN0YWNrIENvbnRleHQgW3NlcnZlIGVudHJ5cG9pbnRdIDw8PCcpO1xuICAgICAgICAgICAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIGUuc3RhY2subWF0Y2hBbGwoZmluZGVyKSA/PyBbXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9IE51bWJlci5wYXJzZUludChtYXRjaFsxXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sID0gTnVtYmVyLnBhcnNlSW50KG1hdGNoWzJdKTtcbiAgICAgICAgICAgICAgICBsb2cuZXJyb3IocGF0aC5iYXNlbmFtZShzZXJ2ZXJFbnRyeSkgKyAnICcgKyByb3cgKyAnOicgKyBjb2wpO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcih0ZXh0Um93c1tyb3cgLSAyXSk7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKHRleHRSb3dzW3JvdyAtIDFdKTtcbiAgICAgICAgICAgICAgICBsb2cuZXJyb3IoQXJyYXkoY29sKS5qb2luKCcgJykgKyAnXicpO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcih0ZXh0Um93c1tyb3ddKTtcbiAgICAgICAgICAgICAgICBsb2cuZXJyb3IodGV4dFJvd3Nbcm93ICsgMV0pO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcih0ZXh0Um93c1tyb3cgKyAyXSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZGlza0ZzLndyaXRlRmlsZVN5bmMoc2VydmVyRW50cnksIGZpbGVUZXh0KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2cuZXJyb3IoJ09ubHkgY29tcGlsZXIgb25lIHN0YXQnKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICB9O1xuICBjb25zdCBzdG9wU2VydmVyID0gYXN5bmMgKCkgPT4ge1xuICAgIGxvZy5pbmZvKCdTdG9wcGluZyBzZXJ2ZXIuLi4nKTtcbiAgICBhd2FpdCBkZXZTZXJ2ZXIuc3RvcCgpO1xuICAgIGxvZy5pbmZvKCdTZXJ2ZXIgY2xvc2VkJyk7XG4gIH07XG5cbiAgcHJvY2Vzcy5vbignU0lHSU5UJywgKCkgPT4ge1xuICAgIGxvZy53YXJuKCdSZWNlaXZlZCBTSUdJTlQsIGRldnNlcnZlciBzaHV0dGluZyBkb3duJyk7XG4gICAgc3RvcFNlcnZlcigpO1xuICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gIH0pO1xuXG4gIHJ1blNlcnZlcigpO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxNQUFNLENBQUNDLE1BQU0sR0FDWEQsTUFBTSxDQUFDQyxNQUFNLElBQ2IsMEJBQTJCLFNBQVNBLE1BQU1BLENBQUNDLEVB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
@@ -143,18 +143,18 @@ export default async function serve(entrypoint, options = {}) {
143
143
  var _server;
144
144
  loader.warn('Received SIGINT, devserver shutting down');
145
145
  if (server) console.log('Closing server');
146
- (_server = server) == null ? void 0 : _server.close(() => {
146
+ (_server = server) == null || _server.close(() => {
147
147
  loader.info('Server closed');
148
148
  });
149
149
  process.exit(-1);
150
150
  });
151
151
  }
152
152
  function getManifestPathFromWebpackconfig(webpackConfig) {
153
- var _opts$filename, _webpackConfig$plugin, _webpackConfig$plugin2, _webpackConfig$plugin3, _webpackConfig$output, _webpackConfig$output2;
154
- const manifestFilename = (_opts$filename = webpackConfig == null ? void 0 : (_webpackConfig$plugin = webpackConfig.plugins) == null ? void 0 : (_webpackConfig$plugin2 = _webpackConfig$plugin.find(plugin => {
153
+ var _opts$filename, _webpackConfig$plugin, _webpackConfig$output, _webpackConfig$output2;
154
+ const manifestFilename = (_opts$filename = webpackConfig == null || (_webpackConfig$plugin = webpackConfig.plugins) == null || (_webpackConfig$plugin = _webpackConfig$plugin.find(plugin => {
155
155
  return (plugin == null ? void 0 : plugin.constructor.name) === 'StatsWriterPlugin';
156
- })) == null ? void 0 : (_webpackConfig$plugin3 = _webpackConfig$plugin2.opts) == null ? void 0 : _webpackConfig$plugin3.filename) != null ? _opts$filename : 'manifest.json';
157
- const manifestPath = path.join((_webpackConfig$output = webpackConfig == null ? void 0 : (_webpackConfig$output2 = webpackConfig.output) == null ? void 0 : _webpackConfig$output2.path) != null ? _webpackConfig$output : '', manifestFilename);
156
+ })) == null || (_webpackConfig$plugin = _webpackConfig$plugin.opts) == null ? void 0 : _webpackConfig$plugin.filename) != null ? _opts$filename : 'manifest.json';
157
+ const manifestPath = path.join((_webpackConfig$output = webpackConfig == null || (_webpackConfig$output2 = webpackConfig.output) == null ? void 0 : _webpackConfig$output2.path) != null ? _webpackConfig$output : '', manifestFilename);
158
158
  return manifestPath;
159
159
  }
160
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImNvbXByZXNzIiwiZXhwcmVzcyIsImRpc2tGcyIsIm9yYSIsInBhdGgiLCJwcm9taXNpZnkiLCJnZXRQcm94eU1pZGRsZXdhcmVzIiwiZ2V0V2VicGFja0NvbmZpZyIsImltcG9ydCIsIm1ldGEiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsInNlcnZlIiwib3B0aW9ucyIsIlBPUlQiLCJlbnYiLCJsb2FkZXIiLCJzdGFydCIsIndlYnBhY2tDb25maWciLCJtYW5pZmVzdFBhdGgiLCJnZXRNYW5pZmVzdFBhdGhGcm9tV2VicGFja2NvbmZpZyIsIm1vZGUiLCJyZWFkRmlsZSIsInNlcnZlciIsImhhbmRsZUVycm9ycyIsImZuIiwicmVxIiwicmVzIiwibmV4dCIsIngiLCJpbml0aWFsaXplQXBwIiwiY2xpZW50TWFuaWZlc3QiLCJpbmZvIiwiZmFpbCIsIndyYXBwaW5nQXBwIiwidXNlIiwic2VydmVBc3NldHMiLCJfcmVxJHVybCRzdWJzdHJpbmciLCJfcmVxJHVybCIsIl9jbGllbnRNYW5pZmVzdCRvdXRwdSIsImZpbGVuYW1lIiwidXJsIiwic3Vic3RyaW5nIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsImxlbmd0aCIsImFzc2V0UGF0aCIsImpvaW4iLCJvdXRwdXRQYXRoIiwiZXhpc3RzU3luYyIsImxzdGF0U3luYyIsImlzRGlyZWN0b3J5Iiwic2VuZEZpbGUiLCJlIiwic2VydmVQcm94eSIsIl9kZXZDb25maWckZGV2U2VydmVyIiwiZGV2Q29uZmlnIiwiZGV2U2VydmVyIiwicHJveHkiLCJfZGV2Q29uZmlnJGRldlNlcnZlcjIiLCJtaWRkbGV3YXJlcyIsIm1hcCIsIm1pZGRsZXdhcmUiLCJyZW5kZXIiLCJjd2QiLCJkZWZhdWx0IiwiRXJyb3IiLCJnZXQiLCJlbmRzV2l0aCIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJzZW5kIiwic29ja2V0Iiwib24iLCJlcnJvciIsImxpc3RlbiIsInN5c2NhbGwiLCJpc1BpcGUiLCJwb3J0T3JQaXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJiaW5kIiwiY29kZSIsIm1hbmlmZXN0IiwiYXNzZXJ0IiwidHlwZSIsIl9zZXJ2ZXIiLCJ3YXJuIiwiY2xvc2UiLCJfb3B0cyRmaWxlbmFtZSIsIl93ZWJwYWNrQ29uZmlnJHBsdWdpbiIsIl93ZWJwYWNrQ29uZmlnJHBsdWdpbjIiLCJfd2VicGFja0NvbmZpZyRwbHVnaW4zIiwiX3dlYnBhY2tDb25maWckb3V0cHV0IiwiX3dlYnBhY2tDb25maWckb3V0cHV0MiIsIm1hbmlmZXN0RmlsZW5hbWUiLCJwbHVnaW5zIiwiZmluZCIsInBsdWdpbiIsImNvbnN0cnVjdG9yIiwibmFtZSIsIm9wdHMiLCJvdXRwdXQiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9zZXJ2ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5PYmplY3QuaGFzT3duID1cbiAgT2JqZWN0Lmhhc093biB8fFxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBmdW5jdGlvbiBoYXNPd24oaXQsIGtleSkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG4gIH07XG5pbXBvcnQgY29tcHJlc3MgZnJvbSAnY29tcHJlc3Npb24nO1xuaW1wb3J0IGV4cHJlc3MsIHsgTmV4dEZ1bmN0aW9uIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZGlza0ZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IFNlcnZlciwgSW5jb21pbmdNZXNzYWdlLCBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJ2h0dHAnO1xuaW1wb3J0IG9yYSBmcm9tICdvcmEnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBwcm9taXNpZnkgfSBmcm9tICd1dGlsJztcbmltcG9ydCB3ZWJwYWNrIGZyb20gJ3dlYnBhY2snO1xuXG5pbXBvcnQgJ2Nyb3NzLWZldGNoL2Rpc3Qvbm9kZS1wb2x5ZmlsbC5qcyc7XG5pbXBvcnQgZ2V0UHJveHlNaWRkbGV3YXJlcyBmcm9tICcuL2dldFByb3h5TWlkZGxld2FyZXMuanMnO1xuaW1wb3J0IHsgZ2V0V2VicGFja0NvbmZpZyB9IGZyb20gJy4vZ2V0V2VicGFja0NvbmZpZy5qcyc7XG5pbXBvcnQgeyBSZW5kZXIgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLy8gcnVuIGRpcmVjdGx5IGZyb20gbm9kZVxuaWYgKCdtYWluJyBpbiBpbXBvcnQubWV0YSkge1xuICBjb25zdCBlbnRyeXBvaW50ID0gcHJvY2Vzcy5hcmd2WzJdO1xuXG4gIGlmICghZW50cnlwb2ludCkge1xuICAgIGNvbnNvbGUubG9nKGBVc2FnZTogJHtwcm9jZXNzLmFyZ3ZbMF19IDxzZXJ2ZXItZW50cnlwb2ludD5gKTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9XG4gIHNlcnZlKGVudHJ5cG9pbnQpO1xufVxuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBzZXJ2ZShcbiAgZW50cnlwb2ludDogc3RyaW5nLFxuICBvcHRpb25zOiB7IHNlcnZlQXNzZXRzPzogYm9vbGVhbjsgc2VydmVQcm94eT86IGJvb2xlYW4gfSA9IHt9LFxuKSB7XG4gIGNvbnN0IFBPUlQgPSBwcm9jZXNzLmVudi5QT1JUIHx8IDgwODA7XG5cbiAgY29uc3QgbG9hZGVyID0gb3JhKCdJbml0aWFsaXppbmcnKS5zdGFydCgpO1xuXG4gIGNvbnN0IHdlYnBhY2tDb25maWcgPSBhd2FpdCBnZXRXZWJwYWNrQ29uZmlnKCk7XG5cbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gZ2V0TWFuaWZlc3RQYXRoRnJvbVdlYnBhY2tjb25maWcoXG4gICAgd2VicGFja0NvbmZpZyh7fSwgeyBtb2RlOiAncHJvZHVjdGlvbicgfSksXG4gICk7XG5cbiAgY29uc3QgcmVhZEZpbGUgPSBwcm9taXNpZnkoZGlza0ZzLnJlYWRGaWxlKTtcbiAgbGV0IHNlcnZlcjogU2VydmVyIHwgdW5kZWZpbmVkO1xuXG4gIGZ1bmN0aW9uIGhhbmRsZUVycm9yczxcbiAgICBGIGV4dGVuZHMgKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICkgPT4gUHJvbWlzZTx2b2lkPixcbiAgPihmbjogRikge1xuICAgIHJldHVybiBhc3luYyBmdW5jdGlvbiAoXG4gICAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICAgKSB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gYXdhaXQgZm4ocmVxLCByZXMpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICBuZXh0KHgpO1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvLyBTdGFydCB0aGUgZXhwcmVzcyBzZXJ2ZXIgYWZ0ZXIgdGhlIGZpcnN0IGNvbXBpbGF0aW9uXG4gIGFzeW5jIGZ1bmN0aW9uIGluaXRpYWxpemVBcHAoY2xpZW50TWFuaWZlc3Q6IHdlYnBhY2suU3RhdHNDb21waWxhdGlvbikge1xuICAgIGxvYWRlci5pbmZvKCdMYXVuY2hpbmcgc2VydmVyJyk7XG4gICAgaWYgKCFjbGllbnRNYW5pZmVzdCkge1xuICAgICAgbG9hZGVyLmZhaWwoJ01hbmlmZXN0IG5vdCBmb3VuZCcpO1xuICAgICAgLy8gVE9ETzogaGFuZGxlIG1vcmUgZ3JhY2VmdWxseVxuICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICB9XG5cbiAgICBjb25zdCB3cmFwcGluZ0FwcCA9IGV4cHJlc3MoKTtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICAvL0B0cy1pZ25vcmVcbiAgICB3cmFwcGluZ0FwcC51c2UoY29tcHJlc3MoKSk7XG5cbiAgICAvLyBBU1NFVFNcbiAgICBpZiAob3B0aW9ucy5zZXJ2ZUFzc2V0cykge1xuICAgICAgd3JhcHBpbmdBcHAudXNlKFxuICAgICAgICBhc3luYyAoXG4gICAgICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgICAgIHJlczogYW55LFxuICAgICAgICAgIG5leHQ6IE5leHRGdW5jdGlvbixcbiAgICAgICAgKSA9PiB7XG4gICAgICAgICAgY29uc3QgZmlsZW5hbWUgPVxuICAgICAgICAgICAgcmVxLnVybD8uc3Vic3RyaW5nKFxuICAgICAgICAgICAgICAocHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCBhcyBzdHJpbmcpLmxlbmd0aCxcbiAgICAgICAgICAgICkgPz8gJyc7XG4gICAgICAgICAgY29uc3QgYXNzZXRQYXRoID0gcGF0aC5qb2luKFxuICAgICAgICAgICAgY2xpZW50TWFuaWZlc3Qub3V0cHV0UGF0aCA/PyAnJyxcbiAgICAgICAgICAgIGZpbGVuYW1lLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBkaXNrRnMuZXhpc3RzU3luYyhhc3NldFBhdGgpICYmXG4gICAgICAgICAgICAhZGlza0ZzLmxzdGF0U3luYyhhc3NldFBhdGgpLmlzRGlyZWN0b3J5KClcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHJlcy5zZW5kRmlsZShhc3NldFBhdGgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICByZXR1cm4gbmV4dCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXh0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBQUk9YSUVTXG4gICAgaWYgKG9wdGlvbnMuc2VydmVQcm94eSkge1xuICAgICAgY29uc3QgZGV2Q29uZmlnOiB3ZWJwYWNrLkNvbmZpZ3VyYXRpb24gPSB3ZWJwYWNrQ29uZmlnKFxuICAgICAgICB7fSxcbiAgICAgICAgeyBtb2RlOiAnZGV2ZWxvcG1lbnQnIH0sXG4gICAgICApO1xuICAgICAgaWYgKGRldkNvbmZpZy5kZXZTZXJ2ZXI/LnByb3h5KSB7XG4gICAgICAgIGNvbnN0IG1pZGRsZXdhcmVzID0gZ2V0UHJveHlNaWRkbGV3YXJlcyhkZXZDb25maWcuZGV2U2VydmVyPy5wcm94eSk7XG4gICAgICAgIGlmIChtaWRkbGV3YXJlcykge1xuICAgICAgICAgIHdyYXBwaW5nQXBwLnVzZSguLi5taWRkbGV3YXJlcy5tYXAoKHsgbWlkZGxld2FyZSB9KSA9PiBtaWRkbGV3YXJlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBTRVJWRVIgU0lERSBSRU5ERVJJTkdcbiAgICBsZXQgcmVuZGVyOiBSZW5kZXIgPSAoYXdhaXQgaW1wb3J0KHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBlbnRyeXBvaW50KSkpXG4gICAgICAuZGVmYXVsdDtcblxuICAgIGlmICgnZGVmYXVsdCcgaW4gcmVuZGVyKSB7XG4gICAgICByZW5kZXIgPSByZW5kZXIuZGVmYXVsdCBhcyBhbnk7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiByZW5kZXIgIT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYGRlZmF1bHQgZXhwb3J0IG9mICR7cGF0aC5qb2luKFxuICAgICAgICAgIHByb2Nlc3MuY3dkKCksXG4gICAgICAgICAgZW50cnlwb2ludCxcbiAgICAgICAgKX0gaXMgbm90IGEgZnVuY3Rpb25gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB3cmFwcGluZ0FwcC5nZXQoXG4gICAgICAnLyonLFxuICAgICAgaGFuZGxlRXJyb3JzKGFzeW5jIGZ1bmN0aW9uIChyZXE6IGFueSwgcmVzOiBhbnkpIHtcbiAgICAgICAgaWYgKHJlcS51cmwuZW5kc1dpdGgoJ2Zhdmljb24uaWNvJykpIHtcbiAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDb250ZW50LXR5cGUnLCAndGV4dC9odG1sJyk7XG4gICAgICAgICAgcmVzLnNlbmQoJ25vdCBmb3VuZCcpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICByZXMuc29ja2V0Lm9uKCdlcnJvcicsIChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ0ZhdGFsJywgZXJyb3IpO1xuICAgICAgICB9KTtcblxuICAgICAgICBhd2FpdCByZW5kZXIoY2xpZW50TWFuaWZlc3QsIHJlcSwgcmVzKTtcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICBzZXJ2ZXIgPSB3cmFwcGluZ0FwcFxuICAgICAgLmxpc3RlbihQT1JULCAoKSA9PiB7XG4gICAgICAgIGxvYWRlci5pbmZvKGBMaXN0ZW5pbmcgYXQgJHtQT1JUfS4uLmApO1xuICAgICAgfSlcbiAgICAgIC5vbignZXJyb3InLCBmdW5jdGlvbiAoZXJyb3I6IGFueSkge1xuICAgICAgICBpZiAoZXJyb3Iuc3lzY2FsbCAhPT0gJ2xpc3RlbicpIHtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBpc1BpcGUgPSAocG9ydE9yUGlwZTogc3RyaW5nIHwgbnVtYmVyKSA9PlxuICAgICAgICAgIE51bWJlci5pc05hTihwb3J0T3JQaXBlKTtcbiAgICAgICAgY29uc3QgYmluZCA9IGlzUGlwZShQT1JUKSA/ICdQaXBlICcgKyBQT1JUIDogJ1BvcnQgJyArIFBPUlQ7XG4gICAgICAgIHN3aXRjaCAoZXJyb3IuY29kZSkge1xuICAgICAgICAgIGNhc2UgJ0VBQ0NFUyc6XG4gICAgICAgICAgICBsb2FkZXIuZmFpbChiaW5kICsgJyByZXF1aXJlcyBlbGV2YXRlZCBwcml2aWxlZ2VzJyk7XG4gICAgICAgICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWZhbGx0aHJvdWdoXG4gICAgICAgICAgY2FzZSAnRUFERFJJTlVTRSc6XG4gICAgICAgICAgICBsb2FkZXIuZmFpbChiaW5kICsgJyBpcyBhbHJlYWR5IGluIHVzZScpO1xuICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBsZXQgbWFuaWZlc3QgPSBhd2FpdCBpbXBvcnQobWFuaWZlc3RQYXRoLCB7XG4gICAgYXNzZXJ0OiB7IHR5cGU6ICdqc29uJyB9LFxuICB9KTtcbiAgLy8gaGFuZGxlIGluY29uc2lzdGVudCBpbXBvcnQgY29uZGl0aW9uc1xuICBpZiAoJ2RlZmF1bHQnIGluIG1hbmlmZXN0KSB7XG4gICAgbWFuaWZlc3QgPSBtYW5pZmVzdC5kZWZhdWx0O1xuICB9XG4gIGF3YWl0IGluaXRpYWxpemVBcHAobWFuaWZlc3QpO1xuXG4gIHByb2Nlc3Mub24oJ1NJR0lOVCcsICgpID0+IHtcbiAgICBsb2FkZXIud2FybignUmVjZWl2ZWQgU0lHSU5ULCBkZXZzZXJ2ZXIgc2h1dHRpbmcgZG93bicpO1xuICAgIGlmIChzZXJ2ZXIpIGNvbnNvbGUubG9nKCdDbG9zaW5nIHNlcnZlcicpO1xuICAgIHNlcnZlcj8uY2xvc2UoKCkgPT4ge1xuICAgICAgbG9hZGVyLmluZm8oJ1NlcnZlciBjbG9zZWQnKTtcbiAgICB9KTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZ2V0TWFuaWZlc3RQYXRoRnJvbVdlYnBhY2tjb25maWcoXG4gIHdlYnBhY2tDb25maWc6IHdlYnBhY2suQ29uZmlndXJhdGlvbixcbikge1xuICBjb25zdCBtYW5pZmVzdEZpbGVuYW1lOiBzdHJpbmcgPVxuICAgIChcbiAgICAgIHdlYnBhY2tDb25maWc/LnBsdWdpbnM/LmZpbmQocGx1Z2luID0+IHtcbiAgICAgICAgcmV0dXJuIHBsdWdpbj8uY29uc3RydWN0b3IubmFtZSA9PT0gJ1N0YXRzV3JpdGVyUGx1Z2luJztcbiAgICAgIH0pIGFzIGFueVxuICAgICk/Lm9wdHM/LmZpbGVuYW1lID8/ICdtYW5pZmVzdC5qc29uJztcblxuICBjb25zdCBtYW5pZmVzdFBhdGggPSBwYXRoLmpvaW4oXG4gICAgd2VicGFja0NvbmZpZz8ub3V0cHV0Py5wYXRoID8/ICcnLFxuICAgIG1hbmlmZXN0RmlsZW5hbWUsXG4gICk7XG4gIHJldHVybiBtYW5pZmVzdFBhdGg7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0FBLE1BQU0sQ0FBQ0MsTUFBTSxHQUNYRCxNQUFNLENBQUNDLE1BQU0sSUFDYiwwQkFBMkIsU0FBU0EsTUFBTUEsQ0FBQ0MsRUFBRSxFQUFFQyxHQUFHLEVBQUU7RUFDbEQsT0FBT0gsTUFBTSxDQUFDSSxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDSixFQUFFLEVBQUVDLEdBQUcsQ0FBQztBQUN0RCxDQUFDO0FBQ0gsT0FBT0ksUUFBUSxNQUFNLGFBQWE7QUFDbEMsT0FBT0MsT0FBTyxNQUF3QixTQUFTO0FBQy9DLE9BQU9DLE1BQU0sTUFBTSxJQUFJO0FBRXZCLE9BQU9DLEdBQUcsTUFBTSxLQUFLO0FBQ3JCLE9BQU9DLElBQUksTUFBTSxNQUFNO0FBQ3ZCLFNBQVNDLFNBQVMsUUFBUSxNQUFNO0FBR2hDLE9BQU8sbUNBQW1DO0FBQzFDLE9BQU9DLG1CQUFtQixNQUFNLDBCQUEwQjtBQUMxRCxTQUFTQyxnQkFBZ0IsUUFBUSx1QkFBdUI7QUFHeEQ7QUFDQSxJQUFJLE1BQU0sSUFBSUMsTUFBTSxDQUFDQyxJQUFJLEVBQUU7RUFDekIsTUFBTUMsVUFBVSxHQUFHQyxPQUFPLENBQUNDLElBQUksQ0FBQyxDQUFDLENBQUM7RUFFbEMsSUFBSSxDQUFDRixVQUFVLEVBQUU7SUFDZkcs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
160
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImNvbXByZXNzIiwiZXhwcmVzcyIsImRpc2tGcyIsIm9yYSIsInBhdGgiLCJwcm9taXNpZnkiLCJnZXRQcm94eU1pZGRsZXdhcmVzIiwiZ2V0V2VicGFja0NvbmZpZyIsImltcG9ydCIsIm1ldGEiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsInNlcnZlIiwib3B0aW9ucyIsIlBPUlQiLCJlbnYiLCJsb2FkZXIiLCJzdGFydCIsIndlYnBhY2tDb25maWciLCJtYW5pZmVzdFBhdGgiLCJnZXRNYW5pZmVzdFBhdGhGcm9tV2VicGFja2NvbmZpZyIsIm1vZGUiLCJyZWFkRmlsZSIsInNlcnZlciIsImhhbmRsZUVycm9ycyIsImZuIiwicmVxIiwicmVzIiwibmV4dCIsIngiLCJpbml0aWFsaXplQXBwIiwiY2xpZW50TWFuaWZlc3QiLCJpbmZvIiwiZmFpbCIsIndyYXBwaW5nQXBwIiwidXNlIiwic2VydmVBc3NldHMiLCJfcmVxJHVybCRzdWJzdHJpbmciLCJfcmVxJHVybCIsIl9jbGllbnRNYW5pZmVzdCRvdXRwdSIsImZpbGVuYW1lIiwidXJsIiwic3Vic3RyaW5nIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsImxlbmd0aCIsImFzc2V0UGF0aCIsImpvaW4iLCJvdXRwdXRQYXRoIiwiZXhpc3RzU3luYyIsImxzdGF0U3luYyIsImlzRGlyZWN0b3J5Iiwic2VuZEZpbGUiLCJlIiwic2VydmVQcm94eSIsIl9kZXZDb25maWckZGV2U2VydmVyIiwiZGV2Q29uZmlnIiwiZGV2U2VydmVyIiwicHJveHkiLCJfZGV2Q29uZmlnJGRldlNlcnZlcjIiLCJtaWRkbGV3YXJlcyIsIm1hcCIsIm1pZGRsZXdhcmUiLCJyZW5kZXIiLCJjd2QiLCJkZWZhdWx0IiwiRXJyb3IiLCJnZXQiLCJlbmRzV2l0aCIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJzZW5kIiwic29ja2V0Iiwib24iLCJlcnJvciIsImxpc3RlbiIsInN5c2NhbGwiLCJpc1BpcGUiLCJwb3J0T3JQaXBlIiwiTnVtYmVyIiwiaXNOYU4iLCJiaW5kIiwiY29kZSIsIm1hbmlmZXN0IiwiYXNzZXJ0IiwidHlwZSIsIl9zZXJ2ZXIiLCJ3YXJuIiwiY2xvc2UiLCJfb3B0cyRmaWxlbmFtZSIsIl93ZWJwYWNrQ29uZmlnJHBsdWdpbiIsIl93ZWJwYWNrQ29uZmlnJG91dHB1dCIsIl93ZWJwYWNrQ29uZmlnJG91dHB1dDIiLCJtYW5pZmVzdEZpbGVuYW1lIiwicGx1Z2lucyIsImZpbmQiLCJwbHVnaW4iLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJvcHRzIiwib3V0cHV0Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NjcmlwdHMvc2VydmUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuT2JqZWN0Lmhhc093biA9XG4gIE9iamVjdC5oYXNPd24gfHxcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gZnVuY3Rpb24gaGFzT3duKGl0LCBrZXkpIHtcbiAgICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGl0LCBrZXkpO1xuICB9O1xuaW1wb3J0IGNvbXByZXNzIGZyb20gJ2NvbXByZXNzaW9uJztcbmltcG9ydCBleHByZXNzLCB7IE5leHRGdW5jdGlvbiB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IGRpc2tGcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBTZXJ2ZXIsIEluY29taW5nTWVzc2FnZSwgU2VydmVyUmVzcG9uc2UgfSBmcm9tICdodHRwJztcbmltcG9ydCBvcmEgZnJvbSAnb3JhJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgd2VicGFjayBmcm9tICd3ZWJwYWNrJztcblxuaW1wb3J0ICdjcm9zcy1mZXRjaC9kaXN0L25vZGUtcG9seWZpbGwuanMnO1xuaW1wb3J0IGdldFByb3h5TWlkZGxld2FyZXMgZnJvbSAnLi9nZXRQcm94eU1pZGRsZXdhcmVzLmpzJztcbmltcG9ydCB7IGdldFdlYnBhY2tDb25maWcgfSBmcm9tICcuL2dldFdlYnBhY2tDb25maWcuanMnO1xuaW1wb3J0IHsgUmVuZGVyIH0gZnJvbSAnLi90eXBlcy5qcyc7XG5cbi8vIHJ1biBkaXJlY3RseSBmcm9tIG5vZGVcbmlmICgnbWFpbicgaW4gaW1wb3J0Lm1ldGEpIHtcbiAgY29uc3QgZW50cnlwb2ludCA9IHByb2Nlc3MuYXJndlsyXTtcblxuICBpZiAoIWVudHJ5cG9pbnQpIHtcbiAgICBjb25zb2xlLmxvZyhgVXNhZ2U6ICR7cHJvY2Vzcy5hcmd2WzBdfSA8c2VydmVyLWVudHJ5cG9pbnQ+YCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfVxuICBzZXJ2ZShlbnRyeXBvaW50KTtcbn1cblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gc2VydmUoXG4gIGVudHJ5cG9pbnQ6IHN0cmluZyxcbiAgb3B0aW9uczogeyBzZXJ2ZUFzc2V0cz86IGJvb2xlYW47IHNlcnZlUHJveHk/OiBib29sZWFuIH0gPSB7fSxcbikge1xuICBjb25zdCBQT1JUID0gcHJvY2Vzcy5lbnYuUE9SVCB8fCA4MDgwO1xuXG4gIGNvbnN0IGxvYWRlciA9IG9yYSgnSW5pdGlhbGl6aW5nJykuc3RhcnQoKTtcblxuICBjb25zdCB3ZWJwYWNrQ29uZmlnID0gYXdhaXQgZ2V0V2VicGFja0NvbmZpZygpO1xuXG4gIGNvbnN0IG1hbmlmZXN0UGF0aCA9IGdldE1hbmlmZXN0UGF0aEZyb21XZWJwYWNrY29uZmlnKFxuICAgIHdlYnBhY2tDb25maWcoe30sIHsgbW9kZTogJ3Byb2R1Y3Rpb24nIH0pLFxuICApO1xuXG4gIGNvbnN0IHJlYWRGaWxlID0gcHJvbWlzaWZ5KGRpc2tGcy5yZWFkRmlsZSk7XG4gIGxldCBzZXJ2ZXI6IFNlcnZlciB8IHVuZGVmaW5lZDtcblxuICBmdW5jdGlvbiBoYW5kbGVFcnJvcnM8XG4gICAgRiBleHRlbmRzIChcbiAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbiAgICApID0+IFByb21pc2U8dm9pZD4sXG4gID4oZm46IEYpIHtcbiAgICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICAgbmV4dDogTmV4dEZ1bmN0aW9uLFxuICAgICkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGZuKHJlcSwgcmVzKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgbmV4dCh4KTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgLy8gU3RhcnQgdGhlIGV4cHJlc3Mgc2VydmVyIGFmdGVyIHRoZSBmaXJzdCBjb21waWxhdGlvblxuICBhc3luYyBmdW5jdGlvbiBpbml0aWFsaXplQXBwKGNsaWVudE1hbmlmZXN0OiB3ZWJwYWNrLlN0YXRzQ29tcGlsYXRpb24pIHtcbiAgICBsb2FkZXIuaW5mbygnTGF1bmNoaW5nIHNlcnZlcicpO1xuICAgIGlmICghY2xpZW50TWFuaWZlc3QpIHtcbiAgICAgIGxvYWRlci5mYWlsKCdNYW5pZmVzdCBub3QgZm91bmQnKTtcbiAgICAgIC8vIFRPRE86IGhhbmRsZSBtb3JlIGdyYWNlZnVsbHlcbiAgICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gICAgfVxuXG4gICAgY29uc3Qgd3JhcHBpbmdBcHAgPSBleHByZXNzKCk7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgLy9AdHMtaWdub3JlXG4gICAgd3JhcHBpbmdBcHAudXNlKGNvbXByZXNzKCkpO1xuXG4gICAgLy8gQVNTRVRTXG4gICAgaWYgKG9wdGlvbnMuc2VydmVBc3NldHMpIHtcbiAgICAgIHdyYXBwaW5nQXBwLnVzZShcbiAgICAgICAgYXN5bmMgKFxuICAgICAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgICAgICByZXM6IGFueSxcbiAgICAgICAgICBuZXh0OiBOZXh0RnVuY3Rpb24sXG4gICAgICAgICkgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpbGVuYW1lID1cbiAgICAgICAgICAgIHJlcS51cmw/LnN1YnN0cmluZyhcbiAgICAgICAgICAgICAgKHByb2Nlc3MuZW52LldFQlBBQ0tfUFVCTElDX1BBVEggYXMgc3RyaW5nKS5sZW5ndGgsXG4gICAgICAgICAgICApID8/ICcnO1xuICAgICAgICAgIGNvbnN0IGFzc2V0UGF0aCA9IHBhdGguam9pbihcbiAgICAgICAgICAgIGNsaWVudE1hbmlmZXN0Lm91dHB1dFBhdGggPz8gJycsXG4gICAgICAgICAgICBmaWxlbmFtZSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZGlza0ZzLmV4aXN0c1N5bmMoYXNzZXRQYXRoKSAmJlxuICAgICAgICAgICAgIWRpc2tGcy5sc3RhdFN5bmMoYXNzZXRQYXRoKS5pc0RpcmVjdG9yeSgpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICByZXMuc2VuZEZpbGUoYXNzZXRQYXRoKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG5leHQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbmV4dCgpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gUFJPWElFU1xuICAgIGlmIChvcHRpb25zLnNlcnZlUHJveHkpIHtcbiAgICAgIGNvbnN0IGRldkNvbmZpZzogd2VicGFjay5Db25maWd1cmF0aW9uID0gd2VicGFja0NvbmZpZyhcbiAgICAgICAge30sXG4gICAgICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JyB9LFxuICAgICAgKTtcbiAgICAgIGlmIChkZXZDb25maWcuZGV2U2VydmVyPy5wcm94eSkge1xuICAgICAgICBjb25zdCBtaWRkbGV3YXJlcyA9IGdldFByb3h5TWlkZGxld2FyZXMoZGV2Q29uZmlnLmRldlNlcnZlcj8ucHJveHkpO1xuICAgICAgICBpZiAobWlkZGxld2FyZXMpIHtcbiAgICAgICAgICB3cmFwcGluZ0FwcC51c2UoLi4ubWlkZGxld2FyZXMubWFwKCh7IG1pZGRsZXdhcmUgfSkgPT4gbWlkZGxld2FyZSkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gU0VSVkVSIFNJREUgUkVOREVSSU5HXG4gICAgbGV0IHJlbmRlcjogUmVuZGVyID0gKGF3YWl0IGltcG9ydChwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgZW50cnlwb2ludCkpKVxuICAgICAgLmRlZmF1bHQ7XG5cbiAgICBpZiAoJ2RlZmF1bHQnIGluIHJlbmRlcikge1xuICAgICAgcmVuZGVyID0gcmVuZGVyLmRlZmF1bHQgYXMgYW55O1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgcmVuZGVyICE9PSAnZnVuY3Rpb24nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBkZWZhdWx0IGV4cG9ydCBvZiAke3BhdGguam9pbihcbiAgICAgICAgICBwcm9jZXNzLmN3ZCgpLFxuICAgICAgICAgIGVudHJ5cG9pbnQsXG4gICAgICAgICl9IGlzIG5vdCBhIGZ1bmN0aW9uYCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgd3JhcHBpbmdBcHAuZ2V0KFxuICAgICAgJy8qJyxcbiAgICAgIGhhbmRsZUVycm9ycyhhc3luYyBmdW5jdGlvbiAocmVxOiBhbnksIHJlczogYW55KSB7XG4gICAgICAgIGlmIChyZXEudXJsLmVuZHNXaXRoKCdmYXZpY29uLmljbycpKSB7XG4gICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpO1xuICAgICAgICAgIHJlcy5zZW5kKCdub3QgZm91bmQnKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcmVzLnNvY2tldC5vbignZXJyb3InLCAoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdGYXRhbCcsIGVycm9yKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgYXdhaXQgcmVuZGVyKGNsaWVudE1hbmlmZXN0LCByZXEsIHJlcyk7XG4gICAgICB9KSxcbiAgICApO1xuXG4gICAgc2VydmVyID0gd3JhcHBpbmdBcHBcbiAgICAgIC5saXN0ZW4oUE9SVCwgKCkgPT4ge1xuICAgICAgICBsb2FkZXIuaW5mbyhgTGlzdGVuaW5nIGF0ICR7UE9SVH0uLi5gKTtcbiAgICAgIH0pXG4gICAgICAub24oJ2Vycm9yJywgZnVuY3Rpb24gKGVycm9yOiBhbnkpIHtcbiAgICAgICAgaWYgKGVycm9yLnN5c2NhbGwgIT09ICdsaXN0ZW4nKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaXNQaXBlID0gKHBvcnRPclBpcGU6IHN0cmluZyB8IG51bWJlcikgPT5cbiAgICAgICAgICBOdW1iZXIuaXNOYU4ocG9ydE9yUGlwZSk7XG4gICAgICAgIGNvbnN0IGJpbmQgPSBpc1BpcGUoUE9SVCkgPyAnUGlwZSAnICsgUE9SVCA6ICdQb3J0ICcgKyBQT1JUO1xuICAgICAgICBzd2l0Y2ggKGVycm9yLmNvZGUpIHtcbiAgICAgICAgICBjYXNlICdFQUNDRVMnOlxuICAgICAgICAgICAgbG9hZGVyLmZhaWwoYmluZCArICcgcmVxdWlyZXMgZWxldmF0ZWQgcHJpdmlsZWdlcycpO1xuICAgICAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuICAgICAgICAgIGNhc2UgJ0VBRERSSU5VU0UnOlxuICAgICAgICAgICAgbG9hZGVyLmZhaWwoYmluZCArICcgaXMgYWxyZWFkeSBpbiB1c2UnKTtcbiAgICAgICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tZmFsbHRocm91Z2hcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgbGV0IG1hbmlmZXN0ID0gYXdhaXQgaW1wb3J0KG1hbmlmZXN0UGF0aCwge1xuICAgIGFzc2VydDogeyB0eXBlOiAnanNvbicgfSxcbiAgfSk7XG4gIC8vIGhhbmRsZSBpbmNvbnNpc3RlbnQgaW1wb3J0IGNvbmRpdGlvbnNcbiAgaWYgKCdkZWZhdWx0JyBpbiBtYW5pZmVzdCkge1xuICAgIG1hbmlmZXN0ID0gbWFuaWZlc3QuZGVmYXVsdDtcbiAgfVxuICBhd2FpdCBpbml0aWFsaXplQXBwKG1hbmlmZXN0KTtcblxuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCAoKSA9PiB7XG4gICAgbG9hZGVyLndhcm4oJ1JlY2VpdmVkIFNJR0lOVCwgZGV2c2VydmVyIHNodXR0aW5nIGRvd24nKTtcbiAgICBpZiAoc2VydmVyKSBjb25zb2xlLmxvZygnQ2xvc2luZyBzZXJ2ZXInKTtcbiAgICBzZXJ2ZXI/LmNsb3NlKCgpID0+IHtcbiAgICAgIGxvYWRlci5pbmZvKCdTZXJ2ZXIgY2xvc2VkJyk7XG4gICAgfSk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGdldE1hbmlmZXN0UGF0aEZyb21XZWJwYWNrY29uZmlnKFxuICB3ZWJwYWNrQ29uZmlnOiB3ZWJwYWNrLkNvbmZpZ3VyYXRpb24sXG4pIHtcbiAgY29uc3QgbWFuaWZlc3RGaWxlbmFtZTogc3RyaW5nID1cbiAgICAoXG4gICAgICB3ZWJwYWNrQ29uZmlnPy5wbHVnaW5zPy5maW5kKHBsdWdpbiA9PiB7XG4gICAgICAgIHJldHVybiBwbHVnaW4/LmNvbnN0cnVjdG9yLm5hbWUgPT09ICdTdGF0c1dyaXRlclBsdWdpbic7XG4gICAgICB9KSBhcyBhbnlcbiAgICApPy5vcHRzPy5maWxlbmFtZSA/PyAnbWFuaWZlc3QuanNvbic7XG5cbiAgY29uc3QgbWFuaWZlc3RQYXRoID0gcGF0aC5qb2luKFxuICAgIHdlYnBhY2tDb25maWc/Lm91dHB1dD8ucGF0aCA/PyAnJyxcbiAgICBtYW5pZmVzdEZpbGVuYW1lLFxuICApO1xuICByZXR1cm4gbWFuaWZlc3RQYXRoO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxNQUFNLENBQUNDLE1BQU0sR0FDWEQsTUFBTSxDQUFDQyxNQUFNLElBQ2IsMEJBQTJCLFNBQVNBLE1BQU1BLENBQUNDLEVBQUUsRUFBRUMsR0FBRyxFQUFFO0VBQ2xELE9BQU9ILE1BQU0sQ0FBQ0ksU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ0osRUFBRSxFQUFFQyxHQUFHLENBQUM7QUFDdEQsQ0FBQztBQUNILE9BQU9JLFFBQVEsTUFBTSxhQUFhO0FBQ2xDLE9BQU9DLE9BQU8sTUFBd0IsU0FBUztBQUMvQyxPQUFPQyxNQUFNLE1BQU0sSUFBSTtBQUV2QixPQUFPQyxHQUFHLE1BQU0sS0FBSztBQUNyQixPQUFPQyxJQUFJLE1BQU0sTUFBTTtBQUN2QixTQUFTQyxTQUFTLFFBQVEsTUFBTTtBQUdoQyxPQUFPLG1DQUFtQztBQUMxQyxPQUFPQyxtQkFBbUIsTUFBTSwwQkFBMEI7QUFDMUQsU0FBU0MsZ0JBQWdCLFFBQVEsdUJBQXVCO0FBR3hEO0FBQ0EsSUFBSSxNQUFNLElBQUlDLE1BQU0sQ0FBQ0MsSUFBSSxFQUFFO0VBQ3pCLE1BQU1DLFVBQVUsR0FBR0MsT0FBTyxDQUFDQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0VBRWxDLElBQUksQ0FBQ0YsVUFBVSxFQUFFO0lBQ2ZHLE9BQU8sQ0FBQ0MsR0FBRyxDQUFFLFVBQVNILE9BQU8sQ0FBQ0MsSUFBSSxDQUFDLENB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
@@ -17,9 +17,9 @@ export default function dataClientSpout(options = {}) {
17
17
  ...nextProps,
18
18
  app: /*#__PURE__*/_jsx(CacheProvider, {
19
19
  initialState: data,
20
- managers: options == null ? void 0 : options.getManagers == null ? void 0 : options.getManagers()
20
+ managers: options == null || options.getManagers == null ? void 0 : options.getManagers()
21
21
  }, void 0, nextProps.app)
22
22
  };
23
23
  };
24
24
  }
25
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbml0aWFsU3RhdGUiLCJkYXRhQ2xpZW50U3BvdXQiLCJvcHRpb25zIiwibmV4dCIsInByb3BzIiwibmV4dFByb3BzIiwiZGF0YSIsIkNhY2hlUHJvdmlkZXIiLCJQcm9taXNlIiwiYWxsIiwiZ2V0SW5pdGlhbERhdGEiLCJjYXRjaCIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJhcHAiLCJfanN4IiwibWFuYWdlcnMiLCJnZXRNYW5hZ2VycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zcG91dHMvZGF0YUNsaWVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBNYW5hZ2VyIH0gZnJvbSAnQGRhdGEtY2xpZW50L3JlYWN0JztcbmltcG9ydCB7IGluaXRpYWxTdGF0ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9yZWR1eCc7XG5cbmltcG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGF0YUNsaWVudFNwb3V0KFxuICBvcHRpb25zOiB7XG4gICAgZ2V0TWFuYWdlcnM/OiAoKSA9PiBNYW5hZ2VyW107XG4gIH0gPSB7fSxcbik6IENsaWVudFNwb3V0PHsgZ2V0SW5pdGlhbERhdGE6IChrZXk6IHN0cmluZykgPT4gUHJvbWlzZTxhbnk+IH0+IHtcbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQocHJvcHMpO1xuICAgIGNvbnN0IFtkYXRhLCB7IENhY2hlUHJvdmlkZXIgfV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBwcm9wcy5nZXRJbml0aWFsRGF0YSgnZGF0YWNsaWVudCcpLmNhdGNoKGUgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdEYXRhIENsaWVudCBpbml0aWFsIGRhdGEgY291bGQgbm90IGxvYWQ6JywgZSk7XG4gICAgICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gICAgICB9KSxcbiAgICAgIGltcG9ydCgnLi9kYXRhQ2xpZW50LnByb3ZpZGVyLmpzJyksXG4gICAgXSk7XG5cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0RhdGEgQ2xpZW50IGluaXQgZGF0YSBub3QgZm91bmQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgYXBwOiAoXG4gICAgICAgIDxDYWNoZVByb3ZpZGVyIGluaXRpYWxTdGF0ZT17ZGF0YX0gbWFuYWdlcnM9e29wdGlvbnM/LmdldE1hbmFnZXJzPy4oKX0+XG4gICAgICAgICAge25leHRQcm9wcy5hcHB9XG4gICAgICAgIDwvQ2FjaGVQcm92aWRlcj5cbiAgICAgICksXG4gICAgfTtcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFDQSxTQUFTQSxZQUFZLFFBQVEsb0JBQW9CO0FBSWpELGVBQWUsU0FBU0MsZUFBZUEsQ0FDckNDLE9BRUMsR0FBRyxDQUFDLENBQUMsRUFDMEQ7RUFDaEUsT0FBT0MsSUFBSSxJQUFJLE1BQU1DLEtBQUssSUFBSTtJQUM1QixNQUFNQyxTQUFTLEdBQUcsTUFBTUYsSUFBSSxDQUFDQyxLQUFLLENBQUM7SUFDbkMsTUFBTSxDQUFDRSxJQUFJLEVBQUU7TUFBRUM7SUFBYyxDQUFDLENBQUMsR0FBRyxNQUFNQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUNsREwsS0FBSyxDQUFDTSxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUNDLEtBQUssQ0FBQ0MsQ0FBQyxJQUFJO01BQzVDQyxPQUFPLENBQUNDLEtBQUssQ0FBQywwQ0FBMEMsRUFBRUYsQ0FBQyxDQUFDO01BQzVELE9BQU9aLFlBQVk7SUFDckIsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQ25DLENBQUM7SUFFRixJQUFJLENBQUNNLElBQUksRUFBRTtNQUNUTyxPQUFPLENBQUNDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQztJQUNsRDtJQUVBLE9BQU87TUFDTCxHQUFHVCxTQUFTO01BQ1pVLEdBQUcsZUFDREMsSUFBQSxDQUFDVCxhQUFhO1FBQUNQLFlBQVksRUFBRU0sSUFBSztRQUFDVyxRQUFRLEVBQUVmLE9BQU8sb0JBQVBBLE9BQU8sQ0FBRWdCLFdBQVcsb0JBQXBCaEIsT0FBTyxDQUFFZ0IsV0FBVyxDQUFHO01BQUUsV0FDbkViLFNBQVMsQ0FBQ1UsR0FDRTtJQUVuQixDQUFDO0VBQ0gsQ0FBQztBQUNIIn0=
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbml0aWFsU3RhdGUiLCJkYXRhQ2xpZW50U3BvdXQiLCJvcHRpb25zIiwibmV4dCIsInByb3BzIiwibmV4dFByb3BzIiwiZGF0YSIsIkNhY2hlUHJvdmlkZXIiLCJQcm9taXNlIiwiYWxsIiwiZ2V0SW5pdGlhbERhdGEiLCJjYXRjaCIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJhcHAiLCJfanN4IiwibWFuYWdlcnMiLCJnZXRNYW5hZ2VycyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zcG91dHMvZGF0YUNsaWVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBNYW5hZ2VyIH0gZnJvbSAnQGRhdGEtY2xpZW50L3JlYWN0JztcbmltcG9ydCB7IGluaXRpYWxTdGF0ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9yZWR1eCc7XG5cbmltcG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGF0YUNsaWVudFNwb3V0KFxuICBvcHRpb25zOiB7XG4gICAgZ2V0TWFuYWdlcnM/OiAoKSA9PiBNYW5hZ2VyW107XG4gIH0gPSB7fSxcbik6IENsaWVudFNwb3V0PHsgZ2V0SW5pdGlhbERhdGE6IChrZXk6IHN0cmluZykgPT4gUHJvbWlzZTxhbnk+IH0+IHtcbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQocHJvcHMpO1xuICAgIGNvbnN0IFtkYXRhLCB7IENhY2hlUHJvdmlkZXIgfV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBwcm9wcy5nZXRJbml0aWFsRGF0YSgnZGF0YWNsaWVudCcpLmNhdGNoKGUgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdEYXRhIENsaWVudCBpbml0aWFsIGRhdGEgY291bGQgbm90IGxvYWQ6JywgZSk7XG4gICAgICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gICAgICB9KSxcbiAgICAgIGltcG9ydCgnLi9kYXRhQ2xpZW50LnByb3ZpZGVyLmpzJyksXG4gICAgXSk7XG5cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0RhdGEgQ2xpZW50IGluaXQgZGF0YSBub3QgZm91bmQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgYXBwOiAoXG4gICAgICAgIDxDYWNoZVByb3ZpZGVyIGluaXRpYWxTdGF0ZT17ZGF0YX0gbWFuYWdlcnM9e29wdGlvbnM/LmdldE1hbmFnZXJzPy4oKX0+XG4gICAgICAgICAge25leHRQcm9wcy5hcHB9XG4gICAgICAgIDwvQ2FjaGVQcm92aWRlcj5cbiAgICAgICksXG4gICAgfTtcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFDQSxTQUFTQSxZQUFZLFFBQVEsb0JBQW9CO0FBSWpELGVBQWUsU0FBU0MsZUFBZUEsQ0FDckNDLE9BRUMsR0FBRyxDQUFDLENBQUMsRUFDMEQ7RUFDaEUsT0FBT0MsSUFBSSxJQUFJLE1BQU1DLEtBQUssSUFBSTtJQUM1QixNQUFNQyxTQUFTLEdBQUcsTUFBTUYsSUFBSSxDQUFDQyxLQUFLLENBQUM7SUFDbkMsTUFBTSxDQUFDRSxJQUFJLEVBQUU7TUFBRUM7SUFBYyxDQUFDLENBQUMsR0FBRyxNQUFNQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUNsREwsS0FBSyxDQUFDTSxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUNDLEtBQUssQ0FBQ0MsQ0FBQyxJQUFJO01BQzVDQyxPQUFPLENBQUNDLEtBQUssQ0FBQywwQ0FBMEMsRUFBRUYsQ0FBQyxDQUFDO01BQzVELE9BQU9aLFlBQVk7SUFDckIsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQ25DLENBQUM7SUFFRixJQUFJLENBQUNNLElBQUksRUFBRTtNQUNUTyxPQUFPLENBQUNDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQztJQUNsRDtJQUVBLE9BQU87TUFDTCxHQUFHVCxTQUFTO01BQ1pVLEdBQUcsZUFDREMsSUFBQSxDQUFDVCxhQUFhO1FBQUNQLFlBQVksRUFBRU0sSUFBSztRQUFDVyxRQUFRLEVBQUVmLE9BQU8sWUFBUEEsT0FBTyxDQUFFZ0IsV0FBVyxvQkFBcEJoQixPQUFPLENBQUVnQixXQUFXLENBQUc7TUFBRSxXQUNuRWIsU0FBUyxDQUFDVSxHQUNFO0lBRW5CLENBQUM7RUFDSCxDQUFDO0FBQ0gifQ==
@@ -3,7 +3,7 @@ import React from "react";
3
3
  export default function dataClientSpout(options = {}) {
4
4
  return next => async props => {
5
5
  var _options$getManagers;
6
- const managers = (_options$getManagers = options == null ? void 0 : options.getManagers == null ? void 0 : options.getManagers()) != null ? _options$getManagers : [new (await import('@data-client/react')).NetworkManager()];
6
+ const managers = (_options$getManagers = options == null || options.getManagers == null ? void 0 : options.getManagers()) != null ? _options$getManagers : [new (await import('@data-client/react')).NetworkManager()];
7
7
  const {
8
8
  createPersistedStore
9
9
  } = await import('@data-client/ssr');
@@ -26,4 +26,4 @@ export default function dataClientSpout(options = {}) {
26
26
  };
27
27
  };
28
28
  }
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkYXRhQ2xpZW50U3BvdXQiLCJvcHRpb25zIiwibmV4dCIsInByb3BzIiwiX29wdGlvbnMkZ2V0TWFuYWdlcnMiLCJtYW5hZ2VycyIsImdldE1hbmFnZXJzIiwiTmV0d29ya01hbmFnZXIiLCJjcmVhdGVQZXJzaXN0ZWRTdG9yZSIsIlNlcnZlckNhY2hlUHJvdmlkZXIiLCJ1c2VSZWFkeUNhY2hlU3RhdGUiLCJjb250cm9sbGVyIiwic3RvcmUiLCJuZXh0UHJvcHMiLCJpbml0RGF0YSIsImRhdGFjbGllbnQiLCJhcHAiLCJfanN4Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nwb3V0cy9kYXRhQ2xpZW50LnNlcnZlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDb250cm9sbGVyLFxuICB0eXBlIE1hbmFnZXIsXG4gIHR5cGUgU3RhdGUsXG4gIHR5cGUgU3RvcmUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9yZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgU2VydmVyU3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGF0YUNsaWVudFNwb3V0KFxuICBvcHRpb25zOiB7XG4gICAgZ2V0TWFuYWdlcnM/OiAoKSA9PiBNYW5hZ2VyW107XG4gIH0gPSB7fSxcbik6IFNlcnZlclNwb3V0PFxuICBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgeyBjb250cm9sbGVyOiBDb250cm9sbGVyIH0gJiB7IHN0b3JlOiBTdG9yZTxTdGF0ZTx1bmtub3duPj4gfSxcbiAgeyBpbml0RGF0YT86IFJlY29yZDxzdHJpbmcsICgpID0+IHVua25vd24+OyBzY3JpcHRzPzogUmVhY3QuUmVhY3ROb2RlW10gfVxuPiB7XG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCBtYW5hZ2VycyA9IG9wdGlvbnM/LmdldE1hbmFnZXJzPy4oKSA/PyBbXG4gICAgICBuZXcgKGF3YWl0IGltcG9ydCgnQGRhdGEtY2xpZW50L3JlYWN0JykpLk5ldHdvcmtNYW5hZ2VyKCksXG4gICAgXTtcbiAgICBjb25zdCB7IGNyZWF0ZVBlcnNpc3RlZFN0b3JlIH0gPSBhd2FpdCBpbXBvcnQoJ0BkYXRhLWNsaWVudC9zc3InKTtcbiAgICBjb25zdCBbU2VydmVyQ2FjaGVQcm92aWRlciwgdXNlUmVhZHlDYWNoZVN0YXRlLCBjb250cm9sbGVyLCBzdG9yZV0gPVxuICAgICAgY3JlYXRlUGVyc2lzdGVkU3RvcmUobWFuYWdlcnMpO1xuXG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dCh7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNvbnRyb2xsZXIsXG4gICAgICBzdG9yZSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgaW5pdERhdGE6IHtcbiAgICAgICAgLi4ubmV4dFByb3BzLmluaXREYXRhLFxuICAgICAgICBkYXRhY2xpZW50OiB1c2VSZWFkeUNhY2hlU3RhdGUsXG4gICAgICB9LFxuICAgICAgYXBwOiA8U2VydmVyQ2FjaGVQcm92aWRlcj57bmV4dFByb3BzLmFwcH08L1NlcnZlckNhY2hlUHJvdmlkZXI+LFxuICAgICAgLy8gVE9ETzogZmlndXJlIG91dCBob3cgdG8gb25seSBpbmplY3QgaW4gbmV4dCBhbmQgbm90IGhhdmUgdG8gYWxzbyBwdXQgaGVyZVxuICAgICAgY29udHJvbGxlcixcbiAgICAgIHN0b3JlLFxuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBU0EsZUFBZSxTQUFTQSxlQUFlQSxDQUNyQ0MsT0FFQyxHQUFHLENBQUMsQ0FBQyxFQUtOO0VBQ0EsT0FBT0MsSUFBSSxJQUFJLE1BQU1DLEtBQUssSUFBSTtJQUFBLElBQUFDLG9CQUFBO0lBQzVCLE1BQU1DLFFBQVEsSUFBQUQsb0JBQUEsR0FBR0gsT0FBTyxvQkFBUEEsT0FBTyxDQUFFSyxXQUFXLG9CQUFwQkwsT0FBTyxDQUFFSyxXQUFXLENBQUcsQ0FBQyxZQUFBRixvQkFBQSxHQUFJLENBQzNDLElBQUksQ0FBQyxNQUFNLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFRyxjQUFjLENBQUMsQ0FBQyxDQUMxRDtJQUNELE1BQU07TUFBRUM7SUFBcUIsQ0FBQyxHQUFHLE1BQU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pFLE1BQU0sQ0FBQ0MsbUJBQW1CLEVBQUVDLGtCQUFrQixFQUFFQyxVQUFVLEVBQUVDLEtBQUssQ0FBQyxHQUNoRUosb0JBQW9CLENBQUNILFFBQVEsQ0FBQztJQUVoQyxNQUFNUSxTQUFTLEdBQUcsTUFBTVgsSUFBSSxDQUFDO01BQzNCLEdBQUdDLEtBQUs7TUFDUlEsVUFBVTtNQUNWQztJQUNGLENBQUMsQ0FBQztJQUNGLE9BQU87TUFDTCxHQUFHQyxTQUFTO01BQ1pDLFFBQVEsRUFBRTtRQUNSLEdBQUdELFNBQVMsQ0FBQ0MsUUFBUTtRQUNyQkMsVUFBVSxFQUFFTDtNQUNkLENBQUM7TUFDRE0sR0FBRyxlQUFFQyxJQUFBLENBQUNSLG1CQUFtQixjQUFFSSxTQUFTLENBQUNHLEdBQXlCLENBQUM7TUFDL0Q7TUFDQUwsVUFBVTtNQUNWQztJQUNGLENBQUM7RUFDSCxDQUFDO0FBQ0gifQ==
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkYXRhQ2xpZW50U3BvdXQiLCJvcHRpb25zIiwibmV4dCIsInByb3BzIiwiX29wdGlvbnMkZ2V0TWFuYWdlcnMiLCJtYW5hZ2VycyIsImdldE1hbmFnZXJzIiwiTmV0d29ya01hbmFnZXIiLCJjcmVhdGVQZXJzaXN0ZWRTdG9yZSIsIlNlcnZlckNhY2hlUHJvdmlkZXIiLCJ1c2VSZWFkeUNhY2hlU3RhdGUiLCJjb250cm9sbGVyIiwic3RvcmUiLCJuZXh0UHJvcHMiLCJpbml0RGF0YSIsImRhdGFjbGllbnQiLCJhcHAiLCJfanN4Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3Nwb3V0cy9kYXRhQ2xpZW50LnNlcnZlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDb250cm9sbGVyLFxuICB0eXBlIE1hbmFnZXIsXG4gIHR5cGUgU3RhdGUsXG4gIHR5cGUgU3RvcmUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9yZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgU2VydmVyU3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGF0YUNsaWVudFNwb3V0KFxuICBvcHRpb25zOiB7XG4gICAgZ2V0TWFuYWdlcnM/OiAoKSA9PiBNYW5hZ2VyW107XG4gIH0gPSB7fSxcbik6IFNlcnZlclNwb3V0PFxuICBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgeyBjb250cm9sbGVyOiBDb250cm9sbGVyIH0gJiB7IHN0b3JlOiBTdG9yZTxTdGF0ZTx1bmtub3duPj4gfSxcbiAgeyBpbml0RGF0YT86IFJlY29yZDxzdHJpbmcsICgpID0+IHVua25vd24+OyBzY3JpcHRzPzogUmVhY3QuUmVhY3ROb2RlW10gfVxuPiB7XG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCBtYW5hZ2VycyA9IG9wdGlvbnM/LmdldE1hbmFnZXJzPy4oKSA/PyBbXG4gICAgICBuZXcgKGF3YWl0IGltcG9ydCgnQGRhdGEtY2xpZW50L3JlYWN0JykpLk5ldHdvcmtNYW5hZ2VyKCksXG4gICAgXTtcbiAgICBjb25zdCB7IGNyZWF0ZVBlcnNpc3RlZFN0b3JlIH0gPSBhd2FpdCBpbXBvcnQoJ0BkYXRhLWNsaWVudC9zc3InKTtcbiAgICBjb25zdCBbU2VydmVyQ2FjaGVQcm92aWRlciwgdXNlUmVhZHlDYWNoZVN0YXRlLCBjb250cm9sbGVyLCBzdG9yZV0gPVxuICAgICAgY3JlYXRlUGVyc2lzdGVkU3RvcmUobWFuYWdlcnMpO1xuXG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dCh7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNvbnRyb2xsZXIsXG4gICAgICBzdG9yZSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgaW5pdERhdGE6IHtcbiAgICAgICAgLi4ubmV4dFByb3BzLmluaXREYXRhLFxuICAgICAgICBkYXRhY2xpZW50OiB1c2VSZWFkeUNhY2hlU3RhdGUsXG4gICAgICB9LFxuICAgICAgYXBwOiA8U2VydmVyQ2FjaGVQcm92aWRlcj57bmV4dFByb3BzLmFwcH08L1NlcnZlckNhY2hlUHJvdmlkZXI+LFxuICAgICAgLy8gVE9ETzogZmlndXJlIG91dCBob3cgdG8gb25seSBpbmplY3QgaW4gbmV4dCBhbmQgbm90IGhhdmUgdG8gYWxzbyBwdXQgaGVyZVxuICAgICAgY29udHJvbGxlcixcbiAgICAgIHN0b3JlLFxuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBU0EsZUFBZSxTQUFTQSxlQUFlQSxDQUNyQ0MsT0FFQyxHQUFHLENBQUMsQ0FBQyxFQUtOO0VBQ0EsT0FBT0MsSUFBSSxJQUFJLE1BQU1DLEtBQUssSUFBSTtJQUFBLElBQUFDLG9CQUFBO0lBQzVCLE1BQU1DLFFBQVEsSUFBQUQsb0JBQUEsR0FBR0gsT0FBTyxZQUFQQSxPQUFPLENBQUVLLFdBQVcsb0JBQXBCTCxPQUFPLENBQUVLLFdBQVcsQ0FBRyxDQUFDLFlBQUFGLG9CQUFBLEdBQUksQ0FDM0MsSUFBSSxDQUFDLE1BQU0sTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQUVHLGNBQWMsQ0FBQyxDQUFDLENBQzFEO0lBQ0QsTUFBTTtNQUFFQztJQUFxQixDQUFDLEdBQUcsTUFBTSxNQUFNLENBQUMsa0JBQWtCLENBQUM7SUFDakUsTUFBTSxDQUFDQyxtQkFBbUIsRUFBRUMsa0JBQWtCLEVBQUVDLFVBQVUsRUFBRUMsS0FBSyxDQUFDLEdBQ2hFSixvQkFBb0IsQ0FBQ0gsUUFBUSxDQUFDO0lBRWhDLE1BQU1RLFNBQVMsR0FBRyxNQUFNWCxJQUFJLENBQUM7TUFDM0IsR0FBR0MsS0FBSztNQUNSUSxVQUFVO01BQ1ZDO0lBQ0YsQ0FBQyxDQUFDO0lBQ0YsT0FBTztNQUNMLEdBQUdDLFNBQVM7TUFDWkMsUUFBUSxFQUFFO1FBQ1IsR0FBR0QsU0FBUyxDQUFDQyxRQUFRO1FBQ3JCQyxVQUFVLEVBQUVMO01BQ2QsQ0FBQztNQUNETSxHQUFHLGVBQUVDLElBQUEsQ0FBQ1IsbUJBQW1CLGNBQUVJLFNBQVMsQ0FBQ0csR0FBeUIsQ0FBQztNQUMvRDtNQUNBTCxVQUFVO01BQ1ZDO0lBQ0YsQ0FBQztFQUNILENBQUM7QUFDSCJ9
@@ -27,7 +27,7 @@ if ('main' in import.meta) {
27
27
  let serverFileContents = Promise.resolve('');
28
28
  let serverEntry = '';
29
29
  export default async function startDevServer(entrypoint, env = {}) {
30
- var _webpackConfigs$, _webpackConfigs$$devS;
30
+ var _webpackConfigs$;
31
31
  const webpackConfig = await getWebpackConfig();
32
32
  const log = logging.getLogger('anansi-devserver');
33
33
 
@@ -97,15 +97,15 @@ export default async function startDevServer(entrypoint, env = {}) {
97
97
  let initRender = [];
98
98
  let render = (...args) => new Promise(resolve => {
99
99
  var _initRender;
100
- (_initRender = initRender) == null ? void 0 : _initRender.push({
100
+ (_initRender = initRender) == null || _initRender.push({
101
101
  args,
102
102
  resolve
103
103
  });
104
104
  });
105
105
  function importRender(stats) {
106
- var _clientStats$compilat, _clientStats$compilat2, _serverStats$compilat, _serverStats$compilat2;
106
+ var _clientStats$compilat, _serverStats$compilat;
107
107
  const [clientStats, serverStats] = stats;
108
- if (clientStats != null && (_clientStats$compilat = clientStats.compilation) != null && (_clientStats$compilat2 = _clientStats$compilat.errors) != null && _clientStats$compilat2.length || serverStats != null && (_serverStats$compilat = serverStats.compilation) != null && (_serverStats$compilat2 = _serverStats$compilat.errors) != null && _serverStats$compilat2.length) {
108
+ if (clientStats != null && (_clientStats$compilat = clientStats.compilation) != null && (_clientStats$compilat = _clientStats$compilat.errors) != null && _clientStats$compilat.length || serverStats != null && (_serverStats$compilat = serverStats.compilation) != null && (_serverStats$compilat = _serverStats$compilat.errors) != null && _serverStats$compilat.length) {
109
109
  log.error('Errors for client build: ' + clientStats.compilation.errors);
110
110
  log.error('Errors for server build: ' + serverStats.compilation.errors);
111
111
  // first time, rather than re-render
@@ -147,7 +147,7 @@ export default async function startDevServer(entrypoint, env = {}) {
147
147
  {
148
148
  ...webpackConfigs[0].devServer,
149
149
  devMiddleware: {
150
- ...((_webpackConfigs$ = webpackConfigs[0]) == null ? void 0 : (_webpackConfigs$$devS = _webpackConfigs$.devServer) == null ? void 0 : _webpackConfigs$$devS.devMiddleware),
150
+ ...((_webpackConfigs$ = webpackConfigs[0]) == null || (_webpackConfigs$ = _webpackConfigs$.devServer) == null ? void 0 : _webpackConfigs$.devMiddleware),
151
151
  outputFileSystem: {
152
152
  ...fs,
153
153
  join: path.join
@@ -160,7 +160,7 @@ export default async function startDevServer(entrypoint, env = {}) {
160
160
  }
161
161
  const otherRoutes = [process.env.WEBPACK_PUBLIC_PATH, ...Object.keys((_webpackConfigs$0$dev = (_webpackConfigs$0$dev2 = webpackConfigs[0].devServer) == null ? void 0 : _webpackConfigs$0$dev2.proxy) != null ? _webpackConfigs$0$dev : {})];
162
162
  // serve SSR for non-WEBPACK_PUBLIC_PATH
163
- (_devServer$app = devServer.app) == null ? void 0 : _devServer$app.get(new RegExp(`^(?!${otherRoutes.join('|')})`), handleErrors(async function (req, res) {
163
+ (_devServer$app = devServer.app) == null || _devServer$app.get(new RegExp(`^(?!${otherRoutes.join('|')})`), handleErrors(async function (req, res) {
164
164
  if (req.url.endsWith('favicon.ico')) {
165
165
  res.statusCode = 404;
166
166
  res.setHeader('Content-type', 'text/html');
@@ -231,4 +231,4 @@ export default async function startDevServer(entrypoint, env = {}) {
231
231
  });
232
232
  runServer();
233
233
  }
234
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRpc2tGcyIsImNyZWF0ZUZzUmVxdWlyZSIsImNyZWF0ZUZzRnJvbVZvbHVtZSIsIlZvbHVtZSIsInBhdGgiLCJzb3VyY2VNYXBTdXBwb3J0IiwidG1wIiwidWZzIiwicHJvbWlzaWZ5Iiwid2VicGFjayIsImxvZ2dpbmciLCJXZWJwYWNrRGV2U2VydmVyIiwiZ2V0V2VicGFja0NvbmZpZyIsImltcG9ydCIsIm1ldGEiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsInN0YXJ0RGV2U2VydmVyIiwic2VydmVyRmlsZUNvbnRlbnRzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXJ2ZXJFbnRyeSIsImVudiIsIl93ZWJwYWNrQ29uZmlncyQiLCJfd2VicGFja0NvbmZpZ3MkJGRldlMiLCJ3ZWJwYWNrQ29uZmlnIiwiZ2V0TG9nZ2VyIiwidm9sdW1lIiwiZnMiLCJ1c2UiLCJmc1JlcXVpcmUiLCJyZWFkRmlsZSIsInNlcnZlciIsImhvdEVudHJ5IiwiZW50cnlQYXRoIiwiZ2VuZXJhdGVkRW50cnlwb2ludCIsImZpbGVTeW5jIiwicG9zdGZpeCIsIndyaXRlU3luYyIsImZkIiwiY3dkIiwid2VicGFja0NvbmZpZ3MiLCJlbnRyeXBhdGgiLCJuYW1lIiwibW9kZSIsInJlcGxhY2UiLCJCUk9XU0VSU0xJU1RfRU5WIiwidGFyZ2V0IiwiY29tcGlsZXIiLCJpbnN0YWxsIiwiaG9va1JlcXVpcmUiLCJnZXRTZXJ2ZXJCdW5kbGUiLCJzZXJ2ZXJTdGF0cyIsIl9zZXJ2ZXJKc29uJG91dHB1dFBhdCIsInNlcnZlckpzb24iLCJ0b0pzb24iLCJhc3NldHMiLCJqb2luIiwib3V0cHV0UGF0aCIsImhhbmRsZUVycm9ycyIsImZuIiwicmVxIiwicmVzIiwibmV4dCIsIngiLCJpbml0UmVuZGVyIiwicmVuZGVyIiwiYXJncyIsIl9pbml0UmVuZGVyIiwicHVzaCIsImltcG9ydFJlbmRlciIsInN0YXRzIiwiX2NsaWVudFN0YXRzJGNvbXBpbGF0IiwiX2NsaWVudFN0YXRzJGNvbXBpbGF0MiIsIl9zZXJ2ZXJTdGF0cyRjb21waWxhdCIsIl9zZXJ2ZXJTdGF0cyRjb21waWxhdDIiLCJjbGllbnRTdGF0cyIsImNvbXBpbGF0aW9uIiwiZXJyb3JzIiwibGVuZ3RoIiwiZXJyb3IiLCJBcnJheSIsImlzQXJyYXkiLCJpbmZvIiwiY2xpZW50TWFuaWZlc3QiLCJ0aGVuIiwiYnVmIiwidG9TdHJpbmciLCJrZXlzIiwiY2FjaGUiLCJmb3JFYWNoIiwiZGVmYXVsdCIsImJpbmQiLCJ1bmRlZmluZWQiLCJpbml0IiwiZSIsImRldlNlcnZlciIsImRldk1pZGRsZXdhcmUiLCJvdXRwdXRGaWxlU3lzdGVtIiwic2V0dXBNaWRkbGV3YXJlcyIsIm1pZGRsZXdhcmVzIiwiX3dlYnBhY2tDb25maWdzJDAkZGV2IiwiX3dlYnBhY2tDb25maWdzJDAkZGV2MiIsIl9kZXZTZXJ2ZXIkYXBwIiwiX3dlYnBhY2tDb25maWdzJDAkZGV2MyIsIkVycm9yIiwib3RoZXJSb3V0ZXMiLCJXRUJQQUNLX1BVQkxJQ19QQVRIIiwicHJveHkiLCJhcHAiLCJnZXQiLCJSZWdFeHAiLCJ1cmwiLCJlbmRzV2l0aCIsInN0YXR1c0NvZGUiLCJzZXRIZWFkZXIiLCJzZW5kIiwic29ja2V0Iiwib24iLCJjb2RlIiwicnVuU2VydmVyIiwic3RhcnQiLCJob29rcyIsImRvbmUiLCJ0YXAiLCJtdWx0aVN0YXRzIiwiZmluZGVyIiwiZmlsZVRleHQiLCJ0ZXh0Um93cyIsInNwbGl0IiwibWF0Y2giLCJfZSRzdGFjayRtYXRjaEFsbCIsInN0YWNrIiwibWF0Y2hBbGwiLCJyb3ciLCJOdW1iZXIiLCJwYXJzZUludCIsImNvbCIsImJhc2VuYW1lIiwid3JpdGVGaWxlU3luYyIsInN0b3BTZXJ2ZXIiLCJzdG9wIiwid2FybiJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zY3JpcHRzL3N0YXJ0RGV2c2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbk9iamVjdC5oYXNPd24gPVxuICBPYmplY3QuaGFzT3duIHx8XG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovIGZ1bmN0aW9uIGhhc093bihpdCwga2V5KSB7XG4gICAgcmV0dXJuIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChpdCwga2V5KTtcbiAgfTtcbmltcG9ydCB0eXBlIHsgTmV4dEZ1bmN0aW9uIH0gZnJvbSAnZXhwcmVzcyc7XG5pbXBvcnQgZGlza0ZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IGNyZWF0ZUZzUmVxdWlyZSB9IGZyb20gJ2ZzLXJlcXVpcmUnO1xuaW1wb3J0IHsgU2VydmVyLCBJbmNvbWluZ01lc3NhZ2UsIFNlcnZlclJlc3BvbnNlIH0gZnJvbSAnaHR0cCc7XG5pbXBvcnQgeyBjcmVhdGVGc0Zyb21Wb2x1bWUsIFZvbHVtZSB9IGZyb20gJ21lbWZzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHNvdXJjZU1hcFN1cHBvcnQgZnJvbSAnc291cmNlLW1hcC1zdXBwb3J0JztcbmltcG9ydCB0bXAgZnJvbSAndG1wJztcbmltcG9ydCB7IHVmcyB9IGZyb20gJ3VuaW9uZnMnO1xuaW1wb3J0IHsgcHJvbWlzaWZ5IH0gZnJvbSAndXRpbCc7XG5pbXBvcnQgd2VicGFjaywgeyBNdWx0aUNvbXBpbGVyIH0gZnJvbSAnd2VicGFjayc7XG5pbXBvcnQgbG9nZ2luZyBmcm9tICd3ZWJwYWNrL2xpYi9sb2dnaW5nL3J1bnRpbWUuanMnO1xuaW1wb3J0IFdlYnBhY2tEZXZTZXJ2ZXIgZnJvbSAnd2VicGFjay1kZXYtc2VydmVyJztcblxuaW1wb3J0ICdjcm9zcy1mZXRjaC9kaXN0L25vZGUtcG9seWZpbGwuanMnO1xuaW1wb3J0IHsgZ2V0V2VicGFja0NvbmZpZyB9IGZyb20gJy4vZ2V0V2VicGFja0NvbmZpZy5qcyc7XG5pbXBvcnQgeyBCb3VuZFJlbmRlciB9IGZyb20gJy4vdHlwZXMuanMnO1xuXG4vLyBydW4gZGlyZWN0bHkgZnJvbSBub2RlXG5pZiAoJ21haW4nIGluIGltcG9ydC5tZXRhKSB7XG4gIGNvbnN0IGVudHJ5cG9pbnQgPSBwcm9jZXNzLmFyZ3ZbMl07XG5cbiAgaWYgKCFlbnRyeXBvaW50KSB7XG4gICAgY29uc29sZS5sb2coYFVzYWdlOiBzdGFydC1hbmFuc2kgPGVudHJ5cG9pbnQtZmlsZT5gKTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9XG5cbiAgc3RhcnREZXZTZXJ2ZXIoZW50cnlwb2ludCk7XG59XG5cbmxldCBzZXJ2ZXJGaWxlQ29udGVudHM6IFByb21pc2U8c3RyaW5nPiA9IFByb21pc2UucmVzb2x2ZSgnJyk7XG5sZXQgc2VydmVyRW50cnkgPSAnJztcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gc3RhcnREZXZTZXJ2ZXIoXG4gIGVudHJ5cG9pbnQ6IHN0cmluZyxcbiAgZW52OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LFxuKSB7XG4gIGNvbnN0IHdlYnBhY2tDb25maWcgPSBhd2FpdCBnZXRXZWJwYWNrQ29uZmlnKCk7XG5cbiAgY29uc3QgbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoJ2FuYW5zaS1kZXZzZXJ2ZXInKTtcblxuICAvLyBTZXQgdXAgaW4gbWVtb3J5IGZpbGVzeXN0ZW1cbiAgY29uc3Qgdm9sdW1lID0gbmV3IFZvbHVtZSgpO1xuICBjb25zdCBmcyA9IGNyZWF0ZUZzRnJvbVZvbHVtZSh2b2x1bWUpO1xuICB1ZnMudXNlKGRpc2tGcykudXNlKGZzIGFzIGFueSk7XG5cbiAgY29uc3QgZnNSZXF1aXJlID0gY3JlYXRlRnNSZXF1aXJlKHVmcyk7XG4gIGNvbnN0IHJlYWRGaWxlID0gcHJvbWlzaWZ5KHVmcy5yZWFkRmlsZSk7XG4gIGxldCBzZXJ2ZXI6IFNlcnZlciB8IHVuZGVmaW5lZDtcblxuICAvLyBHZW5lcmF0ZSBhIHRlbXBvcmFyeSBmaWxlIHNvIHdlIGNhbiBob3QgcmVsb2FkIGZyb20gdGhlIHJvb3Qgb2YgdGhlIGFwcGxpY2F0aW9uXG4gIGZ1bmN0aW9uIGhvdEVudHJ5KGVudHJ5UGF0aDogc3RyaW5nKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgLy8gQHRzLWlnbm9yZSBmb3Igc29tZSByZWFzb24gaXQncyBub3QgcGlja2luZyB1cCB0aGF0IG90aGVyIG9wdGlvbnMgYXJlIG9wdGlvbmFsXG4gICAgY29uc3QgZ2VuZXJhdGVkRW50cnlwb2ludCA9IHRtcC5maWxlU3luYyh7IHBvc3RmaXg6ICcuanMnIH0pO1xuICAgIGRpc2tGcy53cml0ZVN5bmMoXG4gICAgICBnZW5lcmF0ZWRFbnRyeXBvaW50LmZkLFxuICAgICAgYFxuICBpbXBvcnQgZW50cnkgZnJvbSBcIiR7cGF0aC5yZXNvbHZlKHByb2Nlc3MuY3dkKCksIGVudHJ5UGF0aCl9XCI7XG5cbiAgaWYgKGltcG9ydC5tZXRhLndlYnBhY2tIb3QpIHtcbiAgICBpbXBvcnQubWV0YS53ZWJwYWNrSG90LmFjY2VwdCgpO1xuICB9XG5cbiAgZXhwb3J0IGRlZmF1bHQgZW50cnk7XG4gICAgYCxcbiAgICApO1xuICAgIHJldHVybiBnZW5lcmF0ZWRFbnRyeXBvaW50O1xuICB9XG5cbiAgY29uc3Qgd2VicGFja0NvbmZpZ3MgPSBbXG4gICAgd2VicGFja0NvbmZpZyhcbiAgICAgIHtcbiAgICAgICAgLi4uZW52LFxuICAgICAgICBlbnRyeXBhdGg6IGhvdEVudHJ5KGVudHJ5cG9pbnQpLm5hbWUsXG4gICAgICAgIG5hbWU6ICdjbGllbnQnLFxuICAgICAgfSxcbiAgICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JyB9LFxuICAgICksXG4gICAgd2VicGFja0NvbmZpZyhcbiAgICAgIHtcbiAgICAgICAgLi4uZW52LFxuICAgICAgICBlbnRyeXBhdGg6IGVudHJ5cG9pbnQucmVwbGFjZSgnLnRzeCcsICcuc2VydmVyLnRzeCcpLFxuICAgICAgICBuYW1lOiAnc2VydmVyJyxcbiAgICAgICAgQlJPV1NFUlNMSVNUX0VOVjogJ2N1cnJlbnQgbm9kZScsXG4gICAgICB9LFxuICAgICAgeyBtb2RlOiAnZGV2ZWxvcG1lbnQnLCB0YXJnZXQ6ICdub2RlJyB9LFxuICAgICksXG4gIF0gYXMgY29uc3Q7XG5cbiAgLy8gaW5pdGlhbGl6ZSB0aGUgd2VicGFjayBjb21waWxlclxuICBjb25zdCBjb21waWxlcjogTXVsdGlDb21waWxlciA9IHdlYnBhY2sod2VicGFja0NvbmZpZ3MpO1xuXG4gIHNvdXJjZU1hcFN1cHBvcnQuaW5zdGFsbCh7IGhvb2tSZXF1aXJlOiB0cnVlIH0pO1xuXG4gIGZ1bmN0aW9uIGdldFNlcnZlckJ1bmRsZShzZXJ2ZXJTdGF0czogd2VicGFjay5TdGF0cykge1xuICAgIGNvbnN0IHNlcnZlckpzb24gPSBzZXJ2ZXJTdGF0cy50b0pzb24oeyBhc3NldHM6IHRydWUgfSk7XG4gICAgcmV0dXJuIHBhdGguam9pbihzZXJ2ZXJKc29uLm91dHB1dFBhdGggPz8gJycsICdzZXJ2ZXIuanMnKTtcbiAgfVxuICBmdW5jdGlvbiBoYW5kbGVFcnJvcnM8XG4gICAgRiBleHRlbmRzIChcbiAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbiAgICApID0+IFByb21pc2U8dm9pZD4sXG4gID4oZm46IEYpIHtcbiAgICByZXR1cm4gYXN5bmMgZnVuY3Rpb24gKFxuICAgICAgcmVxOiBSZXF1ZXN0IHwgSW5jb21pbmdNZXNzYWdlLFxuICAgICAgcmVzOiBSZXNwb25zZSB8IFNlcnZlclJlc3BvbnNlLFxuICAgICAgbmV4dDogTmV4dEZ1bmN0aW9uLFxuICAgICkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IGZuKHJlcSwgcmVzKTtcbiAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgbmV4dCh4KTtcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgbGV0IGluaXRSZW5kZXI6XG4gICAgfCB7IGFyZ3M6IFBhcmFtZXRlcnM8Qm91bmRSZW5kZXI+OyByZXNvbHZlOiAoKSA9PiB2b2lkIH1bXVxuICAgIHwgdW5kZWZpbmVkID0gW107XG4gIGxldCByZW5kZXI6IEJvdW5kUmVuZGVyID0gKC4uLmFyZ3MpID0+XG4gICAgbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7XG4gICAgICBpbml0UmVuZGVyPy5wdXNoKHsgYXJncywgcmVzb2x2ZSB9KTtcbiAgICB9KTtcblxuICBmdW5jdGlvbiBpbXBvcnRSZW5kZXIoc3RhdHM6IHdlYnBhY2suU3RhdHNbXSkge1xuICAgIGNvbnN0IFtjbGllbnRTdGF0cywgc2VydmVyU3RhdHNdID0gc3RhdHM7XG4gICAgaWYgKFxuICAgICAgY2xpZW50U3RhdHM/LmNvbXBpbGF0aW9uPy5lcnJvcnM/Lmxlbmd0aCB8fFxuICAgICAgc2VydmVyU3RhdHM/LmNvbXBpbGF0aW9uPy5lcnJvcnM/Lmxlbmd0aFxuICAgICkge1xuICAgICAgbG9nLmVycm9yKCdFcnJvcnMgZm9yIGNsaWVudCBidWlsZDogJyArIGNsaWVudFN0YXRzLmNvbXBpbGF0aW9uLmVycm9ycyk7XG4gICAgICBsb2cuZXJyb3IoJ0Vycm9ycyBmb3Igc2VydmVyIGJ1aWxkOiAnICsgc2VydmVyU3RhdHMuY29tcGlsYXRpb24uZXJyb3JzKTtcbiAgICAgIC8vIGZpcnN0IHRpbWUsIHJhdGhlciB0aGFuIHJlLXJlbmRlclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoaW5pdFJlbmRlcikpIHtcbiAgICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICAgIH1cbiAgICAgIGxvZy5lcnJvcignQWJvdmUgY29tcGlsZXIgZXJyb3JzIGJsb2NraW5nIHJlbG9hZCcpO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2cuaW5mbygnTGF1bmNoaW5nIFNTUicpO1xuICAgIH1cblxuICAgIC8vIEFTU0VUU1xuICAgIGNvbnN0IGNsaWVudE1hbmlmZXN0ID0gY2xpZW50U3RhdHMudG9Kc29uKCk7XG5cbiAgICBzZXJ2ZXJFbnRyeSA9IGdldFNlcnZlckJ1bmRsZShzZXJ2ZXJTdGF0cyk7XG4gICAgc2VydmVyRmlsZUNvbnRlbnRzID0gcmVhZEZpbGUoc2VydmVyRW50cnkpLnRoZW4oYnVmID0+IGJ1Zi50b1N0cmluZygpKTtcbiAgICAvLyByZWxvYWQgbW9kdWxlc1xuICAgIE9iamVjdC5rZXlzKGZzUmVxdWlyZS5jYWNoZSkuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgZGVsZXRlIGZzUmVxdWlyZS5jYWNoZVtrZXldO1xuICAgIH0pO1xuICAgIHJlbmRlciA9IChmc1JlcXVpcmUoc2VydmVyRW50cnkpIGFzIGFueSkuZGVmYXVsdC5iaW5kKFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgY2xpZW50TWFuaWZlc3QsXG4gICAgKTtcbiAgICAvLyBTRVJWRVIgU0lERSBFTlRSWVBPSU5UXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW5pdFJlbmRlcikpIHtcbiAgICAgIGluaXRSZW5kZXIuZm9yRWFjaChhc3luYyBpbml0ID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBsb2cuaW5mbygnUmVzb2x2aW5nIHF1ZXVlZCByZXF1ZXN0cycpO1xuICAgICAgICAgIGF3YWl0IHJlbmRlciguLi5pbml0LmFyZ3MpO1xuICAgICAgICAgIGluaXQucmVzb2x2ZSgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgbG9nLmVycm9yKCdFcnJvciB3aGVuIGF0dGVtcHRpbmcgdG8gcmVuZGVyIHF1ZXVlZCByZXF1ZXN0cycpO1xuICAgICAgICAgIGxvZy5lcnJvcihlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICBpbml0UmVuZGVyID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGRldlNlcnZlciA9IG5ldyBXZWJwYWNrRGV2U2VydmVyKFxuICAgIC8vIHdyaXRlIHRvIG1lbW9yeSBmaWxlc3lzdGVtIHNvIHdlIGNhbiBpbXBvcnRcbiAgICB7XG4gICAgICAuLi53ZWJwYWNrQ29uZmlnc1swXS5kZXZTZXJ2ZXIsXG4gICAgICBkZXZNaWRkbGV3YXJlOiB7XG4gICAgICAgIC4uLndlYnBhY2tDb25maWdzWzBdPy5kZXZTZXJ2ZXI/LmRldk1pZGRsZXdhcmUsXG4gICAgICAgIG91dHB1dEZpbGVTeXN0ZW06IHtcbiAgICAgICAgICAuLi5mcyxcbiAgICAgICAgICBqb2luOiBwYXRoLmpvaW4gYXMgYW55LFxuICAgICAgICB9IGFzIGFueSxcbiAgICAgIH0sXG4gICAgICBzZXR1cE1pZGRsZXdhcmVzOiAobWlkZGxld2FyZXMsIGRldlNlcnZlcikgPT4ge1xuICAgICAgICBpZiAoIWRldlNlcnZlcikge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignd2VicGFjay1kZXYtc2VydmVyIGlzIG5vdCBkZWZpbmVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBvdGhlclJvdXRlcyA9IFtcbiAgICAgICAgICBwcm9jZXNzLmVudi5XRUJQQUNLX1BVQkxJQ19QQVRILFxuICAgICAgICAgIC4uLk9iamVjdC5rZXlzKHdlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlcj8ucHJveHkgPz8ge30pLFxuICAgICAgICBdO1xuICAgICAgICAvLyBzZXJ2ZSBTU1IgZm9yIG5vbi1XRUJQQUNLX1BVQkxJQ19QQVRIXG4gICAgICAgIGRldlNlcnZlci5hcHA/LmdldChcbiAgICAgICAgICBuZXcgUmVnRXhwKGBeKD8hJHtvdGhlclJvdXRlcy5qb2luKCd8Jyl9KWApLFxuICAgICAgICAgIGhhbmRsZUVycm9ycyhhc3luYyBmdW5jdGlvbiAocmVxOiBhbnksIHJlczogYW55KSB7XG4gICAgICAgICAgICBpZiAocmVxLnVybC5lbmRzV2l0aCgnZmF2aWNvbi5pY28nKSkge1xuICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IDQwNDtcbiAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ29udGVudC10eXBlJywgJ3RleHQvaHRtbCcpO1xuICAgICAgICAgICAgICByZXMuc2VuZCgnbm90IGZvdW5kJyk7XG4gICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJlcy5zb2NrZXQub24oJ2Vycm9yJywgKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgIGxvZy5lcnJvcignRmF0YWw6JywgZXJyb3IpO1xuICAgICAgICAgICAgICBpZiAoKGVycm9yIGFzIGFueSkuY29kZSA9PT0gJ0VDT05OUkVTRVQnKSB7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKFxuICAgICAgICAgICAgICAgICAgJ0VDT05OUkVTRVQgaXMgdXN1YWxseSBkdWUgdG8gYnJvd3NlciBjbG9zaW5nIHRoZSBjb25uZWN0aW9uJyxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgYXdhaXQgcmVuZGVyKHJlcSwgcmVzKTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcblxuICAgICAgICBpZiAod2VicGFja0NvbmZpZ3NbMF0uZGV2U2VydmVyPy5zZXR1cE1pZGRsZXdhcmVzKSB7XG4gICAgICAgICAgcmV0dXJuIHdlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlci5zZXR1cE1pZGRsZXdhcmVzKFxuICAgICAgICAgICAgbWlkZGxld2FyZXMsXG4gICAgICAgICAgICBkZXZTZXJ2ZXIsXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtaWRkbGV3YXJlcztcbiAgICAgIH0sXG4gICAgfSxcbiAgICBjb21waWxlcixcbiAgKTtcbiAgY29uc3QgcnVuU2VydmVyID0gYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGRldlNlcnZlci5zdGFydCgpO1xuICAgIGRldlNlcnZlci5jb21waWxlci5ob29rcy5kb25lLnRhcChcbiAgICAgICdBbmFuc2kgU2VydmVyJyxcbiAgICAgIChtdWx0aVN0YXRzOiB3ZWJwYWNrLk11bHRpU3RhdHMgfCB3ZWJwYWNrLlN0YXRzKSA9PiB7XG4gICAgICAgIGlmICghbXVsdGlTdGF0cykge1xuICAgICAgICAgIGxvZy5lcnJvcignc3RhdHMgbm90IHNlbmQnKTtcbiAgICAgICAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFPYmplY3QuaGFzT3duKG11bHRpU3RhdHMsICdzdGF0cycpKSByZXR1cm47XG4gICAgICAgIGlmICgobXVsdGlTdGF0cyBhcyB3ZWJwYWNrLk11bHRpU3RhdHMpLnN0YXRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaW1wb3J0UmVuZGVyKChtdWx0aVN0YXRzIGFzIHdlYnBhY2suTXVsdGlTdGF0cykuc3RhdHMpO1xuICAgICAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICAgICAgbG9nLmVycm9yKCdGYWlsZWQgdG8gbG9hZCBzZXJ2ZSBlbnRyeXBvaW50Jyk7XG4gICAgICAgICAgICBjb25zdCBmaW5kZXIgPSBuZXcgUmVnRXhwKGAke3NlcnZlckVudHJ5fTooW1xcXFxkXSspOihbXFxcXGRdKylgLCAnZycpO1xuICAgICAgICAgICAgc2VydmVyRmlsZUNvbnRlbnRzLnRoZW4oZmlsZVRleHQgPT4ge1xuICAgICAgICAgICAgICBjb25zdCB0ZXh0Um93cyA9IGZpbGVUZXh0LnNwbGl0KCdcXG4nKTtcbiAgICAgICAgICAgICAgbG9nLmVycm9yKCc+Pj4gU3RhY2sgQ29udGV4dCBbc2VydmUgZW50cnlwb2ludF0gPDw8Jyk7XG4gICAgICAgICAgICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgZS5zdGFjay5tYXRjaEFsbChmaW5kZXIpID8/IFtdKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm93ID0gTnVtYmVyLnBhcnNlSW50KG1hdGNoWzFdKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb2wgPSBOdW1iZXIucGFyc2VJbnQobWF0Y2hbMl0pO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcihwYXRoLmJhc2VuYW1lKHNlcnZlckVudHJ5KSArICcgJyArIHJvdyArICc6JyArIGNvbCk7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKHRleHRSb3dzW3JvdyAtIDJdKTtcbiAgICAgICAgICAgICAgICBsb2cuZXJyb3IodGV4dFJvd3Nbcm93IC0gMV0pO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcihBcnJheShjb2wpLmpvaW4oJyAnKSArICdeJyk7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKHRleHRSb3dzW3Jvd10pO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcih0ZXh0Um93c1tyb3cgKyAxXSk7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKHRleHRSb3dzW3JvdyArIDJdKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBkaXNrRnMud3JpdGVGaWxlU3luYyhzZXJ2ZXJFbnRyeSwgZmlsZVRleHQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGxvZy5lcnJvcignT25seSBjb21waWxlciBvbmUgc3RhdCcpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICk7XG4gIH07XG4gIGNvbnN0IHN0b3BTZXJ2ZXIgPSBhc3luYyAoKSA9PiB7XG4gICAgbG9nLmluZm8oJ1N0b3BwaW5nIHNlcnZlci4uLicpO1xuICAgIGF3YWl0IGRldlNlcnZlci5zdG9wKCk7XG4gICAgbG9nLmluZm8oJ1NlcnZlciBjbG9zZWQnKTtcbiAgfTtcblxuICBwcm9jZXNzLm9uKCdTSUdJTlQnLCAoKSA9PiB7XG4gICAgbG9nLndhcm4oJ1JlY2VpdmVkIFNJR0lOVCwgZGV2c2VydmVyIHNodXR0aW5nIGRvd24nKTtcbiAgICBzdG9wU2VydmVyKCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfSk7XG5cbiAgcnVuU2VydmVyKCk7XG59XG4iXSwibWFwcGluZ3MiOiJBQUFBO0FBQ0FB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
234
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJPYmplY3QiLCJoYXNPd24iLCJpdCIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRpc2tGcyIsImNyZWF0ZUZzUmVxdWlyZSIsImNyZWF0ZUZzRnJvbVZvbHVtZSIsIlZvbHVtZSIsInBhdGgiLCJzb3VyY2VNYXBTdXBwb3J0IiwidG1wIiwidWZzIiwicHJvbWlzaWZ5Iiwid2VicGFjayIsImxvZ2dpbmciLCJXZWJwYWNrRGV2U2VydmVyIiwiZ2V0V2VicGFja0NvbmZpZyIsImltcG9ydCIsIm1ldGEiLCJlbnRyeXBvaW50IiwicHJvY2VzcyIsImFyZ3YiLCJjb25zb2xlIiwibG9nIiwiZXhpdCIsInN0YXJ0RGV2U2VydmVyIiwic2VydmVyRmlsZUNvbnRlbnRzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJzZXJ2ZXJFbnRyeSIsImVudiIsIl93ZWJwYWNrQ29uZmlncyQiLCJ3ZWJwYWNrQ29uZmlnIiwiZ2V0TG9nZ2VyIiwidm9sdW1lIiwiZnMiLCJ1c2UiLCJmc1JlcXVpcmUiLCJyZWFkRmlsZSIsInNlcnZlciIsImhvdEVudHJ5IiwiZW50cnlQYXRoIiwiZ2VuZXJhdGVkRW50cnlwb2ludCIsImZpbGVTeW5jIiwicG9zdGZpeCIsIndyaXRlU3luYyIsImZkIiwiY3dkIiwid2VicGFja0NvbmZpZ3MiLCJlbnRyeXBhdGgiLCJuYW1lIiwibW9kZSIsInJlcGxhY2UiLCJCUk9XU0VSU0xJU1RfRU5WIiwidGFyZ2V0IiwiY29tcGlsZXIiLCJpbnN0YWxsIiwiaG9va1JlcXVpcmUiLCJnZXRTZXJ2ZXJCdW5kbGUiLCJzZXJ2ZXJTdGF0cyIsIl9zZXJ2ZXJKc29uJG91dHB1dFBhdCIsInNlcnZlckpzb24iLCJ0b0pzb24iLCJhc3NldHMiLCJqb2luIiwib3V0cHV0UGF0aCIsImhhbmRsZUVycm9ycyIsImZuIiwicmVxIiwicmVzIiwibmV4dCIsIngiLCJpbml0UmVuZGVyIiwicmVuZGVyIiwiYXJncyIsIl9pbml0UmVuZGVyIiwicHVzaCIsImltcG9ydFJlbmRlciIsInN0YXRzIiwiX2NsaWVudFN0YXRzJGNvbXBpbGF0IiwiX3NlcnZlclN0YXRzJGNvbXBpbGF0IiwiY2xpZW50U3RhdHMiLCJjb21waWxhdGlvbiIsImVycm9ycyIsImxlbmd0aCIsImVycm9yIiwiQXJyYXkiLCJpc0FycmF5IiwiaW5mbyIsImNsaWVudE1hbmlmZXN0IiwidGhlbiIsImJ1ZiIsInRvU3RyaW5nIiwia2V5cyIsImNhY2hlIiwiZm9yRWFjaCIsImRlZmF1bHQiLCJiaW5kIiwidW5kZWZpbmVkIiwiaW5pdCIsImUiLCJkZXZTZXJ2ZXIiLCJkZXZNaWRkbGV3YXJlIiwib3V0cHV0RmlsZVN5c3RlbSIsInNldHVwTWlkZGxld2FyZXMiLCJtaWRkbGV3YXJlcyIsIl93ZWJwYWNrQ29uZmlncyQwJGRldiIsIl93ZWJwYWNrQ29uZmlncyQwJGRldjIiLCJfZGV2U2VydmVyJGFwcCIsIl93ZWJwYWNrQ29uZmlncyQwJGRldjMiLCJFcnJvciIsIm90aGVyUm91dGVzIiwiV0VCUEFDS19QVUJMSUNfUEFUSCIsInByb3h5IiwiYXBwIiwiZ2V0IiwiUmVnRXhwIiwidXJsIiwiZW5kc1dpdGgiLCJzdGF0dXNDb2RlIiwic2V0SGVhZGVyIiwic2VuZCIsInNvY2tldCIsIm9uIiwiY29kZSIsInJ1blNlcnZlciIsInN0YXJ0IiwiaG9va3MiLCJkb25lIiwidGFwIiwibXVsdGlTdGF0cyIsImZpbmRlciIsImZpbGVUZXh0IiwidGV4dFJvd3MiLCJzcGxpdCIsIm1hdGNoIiwiX2Ukc3RhY2skbWF0Y2hBbGwiLCJzdGFjayIsIm1hdGNoQWxsIiwicm93IiwiTnVtYmVyIiwicGFyc2VJbnQiLCJjb2wiLCJiYXNlbmFtZSIsIndyaXRlRmlsZVN5bmMiLCJzdG9wU2VydmVyIiwic3RvcCIsIndhcm4iXSwic291cmNlcyI6WyIuLi8uLi9zcmMvc2NyaXB0cy9zdGFydERldnNlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5PYmplY3QuaGFzT3duID1cbiAgT2JqZWN0Lmhhc093biB8fFxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqLyBmdW5jdGlvbiBoYXNPd24oaXQsIGtleSkge1xuICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoaXQsIGtleSk7XG4gIH07XG5pbXBvcnQgdHlwZSB7IE5leHRGdW5jdGlvbiB9IGZyb20gJ2V4cHJlc3MnO1xuaW1wb3J0IGRpc2tGcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBjcmVhdGVGc1JlcXVpcmUgfSBmcm9tICdmcy1yZXF1aXJlJztcbmltcG9ydCB7IFNlcnZlciwgSW5jb21pbmdNZXNzYWdlLCBTZXJ2ZXJSZXNwb25zZSB9IGZyb20gJ2h0dHAnO1xuaW1wb3J0IHsgY3JlYXRlRnNGcm9tVm9sdW1lLCBWb2x1bWUgfSBmcm9tICdtZW1mcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBzb3VyY2VNYXBTdXBwb3J0IGZyb20gJ3NvdXJjZS1tYXAtc3VwcG9ydCc7XG5pbXBvcnQgdG1wIGZyb20gJ3RtcCc7XG5pbXBvcnQgeyB1ZnMgfSBmcm9tICd1bmlvbmZzJztcbmltcG9ydCB7IHByb21pc2lmeSB9IGZyb20gJ3V0aWwnO1xuaW1wb3J0IHdlYnBhY2ssIHsgTXVsdGlDb21waWxlciB9IGZyb20gJ3dlYnBhY2snO1xuaW1wb3J0IGxvZ2dpbmcgZnJvbSAnd2VicGFjay9saWIvbG9nZ2luZy9ydW50aW1lLmpzJztcbmltcG9ydCBXZWJwYWNrRGV2U2VydmVyIGZyb20gJ3dlYnBhY2stZGV2LXNlcnZlcic7XG5cbmltcG9ydCAnY3Jvc3MtZmV0Y2gvZGlzdC9ub2RlLXBvbHlmaWxsLmpzJztcbmltcG9ydCB7IGdldFdlYnBhY2tDb25maWcgfSBmcm9tICcuL2dldFdlYnBhY2tDb25maWcuanMnO1xuaW1wb3J0IHsgQm91bmRSZW5kZXIgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuLy8gcnVuIGRpcmVjdGx5IGZyb20gbm9kZVxuaWYgKCdtYWluJyBpbiBpbXBvcnQubWV0YSkge1xuICBjb25zdCBlbnRyeXBvaW50ID0gcHJvY2Vzcy5hcmd2WzJdO1xuXG4gIGlmICghZW50cnlwb2ludCkge1xuICAgIGNvbnNvbGUubG9nKGBVc2FnZTogc3RhcnQtYW5hbnNpIDxlbnRyeXBvaW50LWZpbGU+YCk7XG4gICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgfVxuXG4gIHN0YXJ0RGV2U2VydmVyKGVudHJ5cG9pbnQpO1xufVxuXG5sZXQgc2VydmVyRmlsZUNvbnRlbnRzOiBQcm9taXNlPHN0cmluZz4gPSBQcm9taXNlLnJlc29sdmUoJycpO1xubGV0IHNlcnZlckVudHJ5ID0gJyc7XG5cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0RGV2U2VydmVyKFxuICBlbnRyeXBvaW50OiBzdHJpbmcsXG4gIGVudjogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSxcbikge1xuICBjb25zdCB3ZWJwYWNrQ29uZmlnID0gYXdhaXQgZ2V0V2VicGFja0NvbmZpZygpO1xuXG4gIGNvbnN0IGxvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKCdhbmFuc2ktZGV2c2VydmVyJyk7XG5cbiAgLy8gU2V0IHVwIGluIG1lbW9yeSBmaWxlc3lzdGVtXG4gIGNvbnN0IHZvbHVtZSA9IG5ldyBWb2x1bWUoKTtcbiAgY29uc3QgZnMgPSBjcmVhdGVGc0Zyb21Wb2x1bWUodm9sdW1lKTtcbiAgdWZzLnVzZShkaXNrRnMpLnVzZShmcyBhcyBhbnkpO1xuXG4gIGNvbnN0IGZzUmVxdWlyZSA9IGNyZWF0ZUZzUmVxdWlyZSh1ZnMpO1xuICBjb25zdCByZWFkRmlsZSA9IHByb21pc2lmeSh1ZnMucmVhZEZpbGUpO1xuICBsZXQgc2VydmVyOiBTZXJ2ZXIgfCB1bmRlZmluZWQ7XG5cbiAgLy8gR2VuZXJhdGUgYSB0ZW1wb3JhcnkgZmlsZSBzbyB3ZSBjYW4gaG90IHJlbG9hZCBmcm9tIHRoZSByb290IG9mIHRoZSBhcHBsaWNhdGlvblxuICBmdW5jdGlvbiBob3RFbnRyeShlbnRyeVBhdGg6IHN0cmluZykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIC8vIEB0cy1pZ25vcmUgZm9yIHNvbWUgcmVhc29uIGl0J3Mgbm90IHBpY2tpbmcgdXAgdGhhdCBvdGhlciBvcHRpb25zIGFyZSBvcHRpb25hbFxuICAgIGNvbnN0IGdlbmVyYXRlZEVudHJ5cG9pbnQgPSB0bXAuZmlsZVN5bmMoeyBwb3N0Zml4OiAnLmpzJyB9KTtcbiAgICBkaXNrRnMud3JpdGVTeW5jKFxuICAgICAgZ2VuZXJhdGVkRW50cnlwb2ludC5mZCxcbiAgICAgIGBcbiAgaW1wb3J0IGVudHJ5IGZyb20gXCIke3BhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBlbnRyeVBhdGgpfVwiO1xuXG4gIGlmIChpbXBvcnQubWV0YS53ZWJwYWNrSG90KSB7XG4gICAgaW1wb3J0Lm1ldGEud2VicGFja0hvdC5hY2NlcHQoKTtcbiAgfVxuXG4gIGV4cG9ydCBkZWZhdWx0IGVudHJ5O1xuICAgIGAsXG4gICAgKTtcbiAgICByZXR1cm4gZ2VuZXJhdGVkRW50cnlwb2ludDtcbiAgfVxuXG4gIGNvbnN0IHdlYnBhY2tDb25maWdzID0gW1xuICAgIHdlYnBhY2tDb25maWcoXG4gICAgICB7XG4gICAgICAgIC4uLmVudixcbiAgICAgICAgZW50cnlwYXRoOiBob3RFbnRyeShlbnRyeXBvaW50KS5uYW1lLFxuICAgICAgICBuYW1lOiAnY2xpZW50JyxcbiAgICAgIH0sXG4gICAgICB7IG1vZGU6ICdkZXZlbG9wbWVudCcgfSxcbiAgICApLFxuICAgIHdlYnBhY2tDb25maWcoXG4gICAgICB7XG4gICAgICAgIC4uLmVudixcbiAgICAgICAgZW50cnlwYXRoOiBlbnRyeXBvaW50LnJlcGxhY2UoJy50c3gnLCAnLnNlcnZlci50c3gnKSxcbiAgICAgICAgbmFtZTogJ3NlcnZlcicsXG4gICAgICAgIEJST1dTRVJTTElTVF9FTlY6ICdjdXJyZW50IG5vZGUnLFxuICAgICAgfSxcbiAgICAgIHsgbW9kZTogJ2RldmVsb3BtZW50JywgdGFyZ2V0OiAnbm9kZScgfSxcbiAgICApLFxuICBdIGFzIGNvbnN0O1xuXG4gIC8vIGluaXRpYWxpemUgdGhlIHdlYnBhY2sgY29tcGlsZXJcbiAgY29uc3QgY29tcGlsZXI6IE11bHRpQ29tcGlsZXIgPSB3ZWJwYWNrKHdlYnBhY2tDb25maWdzKTtcblxuICBzb3VyY2VNYXBTdXBwb3J0Lmluc3RhbGwoeyBob29rUmVxdWlyZTogdHJ1ZSB9KTtcblxuICBmdW5jdGlvbiBnZXRTZXJ2ZXJCdW5kbGUoc2VydmVyU3RhdHM6IHdlYnBhY2suU3RhdHMpIHtcbiAgICBjb25zdCBzZXJ2ZXJKc29uID0gc2VydmVyU3RhdHMudG9Kc29uKHsgYXNzZXRzOiB0cnVlIH0pO1xuICAgIHJldHVybiBwYXRoLmpvaW4oc2VydmVySnNvbi5vdXRwdXRQYXRoID8/ICcnLCAnc2VydmVyLmpzJyk7XG4gIH1cbiAgZnVuY3Rpb24gaGFuZGxlRXJyb3JzPFxuICAgIEYgZXh0ZW5kcyAoXG4gICAgICByZXE6IFJlcXVlc3QgfCBJbmNvbWluZ01lc3NhZ2UsXG4gICAgICByZXM6IFJlc3BvbnNlIHwgU2VydmVyUmVzcG9uc2UsXG4gICAgKSA9PiBQcm9taXNlPHZvaWQ+LFxuICA+KGZuOiBGKSB7XG4gICAgcmV0dXJuIGFzeW5jIGZ1bmN0aW9uIChcbiAgICAgIHJlcTogUmVxdWVzdCB8IEluY29taW5nTWVzc2FnZSxcbiAgICAgIHJlczogUmVzcG9uc2UgfCBTZXJ2ZXJSZXNwb25zZSxcbiAgICAgIG5leHQ6IE5leHRGdW5jdGlvbixcbiAgICApIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBmbihyZXEsIHJlcyk7XG4gICAgICB9IGNhdGNoICh4KSB7XG4gICAgICAgIG5leHQoeCk7XG4gICAgICB9XG4gICAgfTtcbiAgfVxuXG4gIGxldCBpbml0UmVuZGVyOlxuICAgIHwgeyBhcmdzOiBQYXJhbWV0ZXJzPEJvdW5kUmVuZGVyPjsgcmVzb2x2ZTogKCkgPT4gdm9pZCB9W11cbiAgICB8IHVuZGVmaW5lZCA9IFtdO1xuICBsZXQgcmVuZGVyOiBCb3VuZFJlbmRlciA9ICguLi5hcmdzKSA9PlxuICAgIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xuICAgICAgaW5pdFJlbmRlcj8ucHVzaCh7IGFyZ3MsIHJlc29sdmUgfSk7XG4gICAgfSk7XG5cbiAgZnVuY3Rpb24gaW1wb3J0UmVuZGVyKHN0YXRzOiB3ZWJwYWNrLlN0YXRzW10pIHtcbiAgICBjb25zdCBbY2xpZW50U3RhdHMsIHNlcnZlclN0YXRzXSA9IHN0YXRzO1xuICAgIGlmIChcbiAgICAgIGNsaWVudFN0YXRzPy5jb21waWxhdGlvbj8uZXJyb3JzPy5sZW5ndGggfHxcbiAgICAgIHNlcnZlclN0YXRzPy5jb21waWxhdGlvbj8uZXJyb3JzPy5sZW5ndGhcbiAgICApIHtcbiAgICAgIGxvZy5lcnJvcignRXJyb3JzIGZvciBjbGllbnQgYnVpbGQ6ICcgKyBjbGllbnRTdGF0cy5jb21waWxhdGlvbi5lcnJvcnMpO1xuICAgICAgbG9nLmVycm9yKCdFcnJvcnMgZm9yIHNlcnZlciBidWlsZDogJyArIHNlcnZlclN0YXRzLmNvbXBpbGF0aW9uLmVycm9ycyk7XG4gICAgICAvLyBmaXJzdCB0aW1lLCByYXRoZXIgdGhhbiByZS1yZW5kZXJcbiAgICAgIGlmIChBcnJheS5pc0FycmF5KGluaXRSZW5kZXIpKSB7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gICAgICB9XG4gICAgICBsb2cuZXJyb3IoJ0Fib3ZlIGNvbXBpbGVyIGVycm9ycyBibG9ja2luZyByZWxvYWQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9nLmluZm8oJ0xhdW5jaGluZyBTU1InKTtcbiAgICB9XG5cbiAgICAvLyBBU1NFVFNcbiAgICBjb25zdCBjbGllbnRNYW5pZmVzdCA9IGNsaWVudFN0YXRzLnRvSnNvbigpO1xuXG4gICAgc2VydmVyRW50cnkgPSBnZXRTZXJ2ZXJCdW5kbGUoc2VydmVyU3RhdHMpO1xuICAgIHNlcnZlckZpbGVDb250ZW50cyA9IHJlYWRGaWxlKHNlcnZlckVudHJ5KS50aGVuKGJ1ZiA9PiBidWYudG9TdHJpbmcoKSk7XG4gICAgLy8gcmVsb2FkIG1vZHVsZXNcbiAgICBPYmplY3Qua2V5cyhmc1JlcXVpcmUuY2FjaGUpLmZvckVhY2goa2V5ID0+IHtcbiAgICAgIGRlbGV0ZSBmc1JlcXVpcmUuY2FjaGVba2V5XTtcbiAgICB9KTtcbiAgICByZW5kZXIgPSAoZnNSZXF1aXJlKHNlcnZlckVudHJ5KSBhcyBhbnkpLmRlZmF1bHQuYmluZChcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIGNsaWVudE1hbmlmZXN0LFxuICAgICk7XG4gICAgLy8gU0VSVkVSIFNJREUgRU5UUllQT0lOVFxuICAgIGlmIChBcnJheS5pc0FycmF5KGluaXRSZW5kZXIpKSB7XG4gICAgICBpbml0UmVuZGVyLmZvckVhY2goYXN5bmMgaW5pdCA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbG9nLmluZm8oJ1Jlc29sdmluZyBxdWV1ZWQgcmVxdWVzdHMnKTtcbiAgICAgICAgICBhd2FpdCByZW5kZXIoLi4uaW5pdC5hcmdzKTtcbiAgICAgICAgICBpbml0LnJlc29sdmUoKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGxvZy5lcnJvcignRXJyb3Igd2hlbiBhdHRlbXB0aW5nIHRvIHJlbmRlciBxdWV1ZWQgcmVxdWVzdHMnKTtcbiAgICAgICAgICBsb2cuZXJyb3IoZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgaW5pdFJlbmRlciA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBjb25zdCBkZXZTZXJ2ZXIgPSBuZXcgV2VicGFja0RldlNlcnZlcihcbiAgICAvLyB3cml0ZSB0byBtZW1vcnkgZmlsZXN5c3RlbSBzbyB3ZSBjYW4gaW1wb3J0XG4gICAge1xuICAgICAgLi4ud2VicGFja0NvbmZpZ3NbMF0uZGV2U2VydmVyLFxuICAgICAgZGV2TWlkZGxld2FyZToge1xuICAgICAgICAuLi53ZWJwYWNrQ29uZmlnc1swXT8uZGV2U2VydmVyPy5kZXZNaWRkbGV3YXJlLFxuICAgICAgICBvdXRwdXRGaWxlU3lzdGVtOiB7XG4gICAgICAgICAgLi4uZnMsXG4gICAgICAgICAgam9pbjogcGF0aC5qb2luIGFzIGFueSxcbiAgICAgICAgfSBhcyBhbnksXG4gICAgICB9LFxuICAgICAgc2V0dXBNaWRkbGV3YXJlczogKG1pZGRsZXdhcmVzLCBkZXZTZXJ2ZXIpID0+IHtcbiAgICAgICAgaWYgKCFkZXZTZXJ2ZXIpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ3dlYnBhY2stZGV2LXNlcnZlciBpcyBub3QgZGVmaW5lZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3Qgb3RoZXJSb3V0ZXMgPSBbXG4gICAgICAgICAgcHJvY2Vzcy5lbnYuV0VCUEFDS19QVUJMSUNfUEFUSCxcbiAgICAgICAgICAuLi5PYmplY3Qua2V5cyh3ZWJwYWNrQ29uZmlnc1swXS5kZXZTZXJ2ZXI/LnByb3h5ID8/IHt9KSxcbiAgICAgICAgXTtcbiAgICAgICAgLy8gc2VydmUgU1NSIGZvciBub24tV0VCUEFDS19QVUJMSUNfUEFUSFxuICAgICAgICBkZXZTZXJ2ZXIuYXBwPy5nZXQoXG4gICAgICAgICAgbmV3IFJlZ0V4cChgXig/ISR7b3RoZXJSb3V0ZXMuam9pbignfCcpfSlgKSxcbiAgICAgICAgICBoYW5kbGVFcnJvcnMoYXN5bmMgZnVuY3Rpb24gKHJlcTogYW55LCByZXM6IGFueSkge1xuICAgICAgICAgICAgaWYgKHJlcS51cmwuZW5kc1dpdGgoJ2Zhdmljb24uaWNvJykpIHtcbiAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NvbnRlbnQtdHlwZScsICd0ZXh0L2h0bWwnKTtcbiAgICAgICAgICAgICAgcmVzLnNlbmQoJ25vdCBmb3VuZCcpO1xuICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXMuc29ja2V0Lm9uKCdlcnJvcicsIChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICBsb2cuZXJyb3IoJ0ZhdGFsOicsIGVycm9yKTtcbiAgICAgICAgICAgICAgaWYgKChlcnJvciBhcyBhbnkpLmNvZGUgPT09ICdFQ09OTlJFU0VUJykge1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcihcbiAgICAgICAgICAgICAgICAgICdFQ09OTlJFU0VUIGlzIHVzdWFsbHkgZHVlIHRvIGJyb3dzZXIgY2xvc2luZyB0aGUgY29ubmVjdGlvbicsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGF3YWl0IHJlbmRlcihyZXEsIHJlcyk7XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG5cbiAgICAgICAgaWYgKHdlYnBhY2tDb25maWdzWzBdLmRldlNlcnZlcj8uc2V0dXBNaWRkbGV3YXJlcykge1xuICAgICAgICAgIHJldHVybiB3ZWJwYWNrQ29uZmlnc1swXS5kZXZTZXJ2ZXIuc2V0dXBNaWRkbGV3YXJlcyhcbiAgICAgICAgICAgIG1pZGRsZXdhcmVzLFxuICAgICAgICAgICAgZGV2U2VydmVyLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWlkZGxld2FyZXM7XG4gICAgICB9LFxuICAgIH0sXG4gICAgY29tcGlsZXIsXG4gICk7XG4gIGNvbnN0IHJ1blNlcnZlciA9IGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBkZXZTZXJ2ZXIuc3RhcnQoKTtcbiAgICBkZXZTZXJ2ZXIuY29tcGlsZXIuaG9va3MuZG9uZS50YXAoXG4gICAgICAnQW5hbnNpIFNlcnZlcicsXG4gICAgICAobXVsdGlTdGF0czogd2VicGFjay5NdWx0aVN0YXRzIHwgd2VicGFjay5TdGF0cykgPT4ge1xuICAgICAgICBpZiAoIW11bHRpU3RhdHMpIHtcbiAgICAgICAgICBsb2cuZXJyb3IoJ3N0YXRzIG5vdCBzZW5kJyk7XG4gICAgICAgICAgcHJvY2Vzcy5leGl0KC0xKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghT2JqZWN0Lmhhc093bihtdWx0aVN0YXRzLCAnc3RhdHMnKSkgcmV0dXJuO1xuICAgICAgICBpZiAoKG11bHRpU3RhdHMgYXMgd2VicGFjay5NdWx0aVN0YXRzKS5zdGF0cy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGltcG9ydFJlbmRlcigobXVsdGlTdGF0cyBhcyB3ZWJwYWNrLk11bHRpU3RhdHMpLnN0YXRzKTtcbiAgICAgICAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgICAgICAgIGxvZy5lcnJvcignRmFpbGVkIHRvIGxvYWQgc2VydmUgZW50cnlwb2ludCcpO1xuICAgICAgICAgICAgY29uc3QgZmluZGVyID0gbmV3IFJlZ0V4cChgJHtzZXJ2ZXJFbnRyeX06KFtcXFxcZF0rKTooW1xcXFxkXSspYCwgJ2cnKTtcbiAgICAgICAgICAgIHNlcnZlckZpbGVDb250ZW50cy50aGVuKGZpbGVUZXh0ID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgdGV4dFJvd3MgPSBmaWxlVGV4dC5zcGxpdCgnXFxuJyk7XG4gICAgICAgICAgICAgIGxvZy5lcnJvcignPj4+IFN0YWNrIENvbnRleHQgW3NlcnZlIGVudHJ5cG9pbnRdIDw8PCcpO1xuICAgICAgICAgICAgICBmb3IgKGNvbnN0IG1hdGNoIG9mIGUuc3RhY2subWF0Y2hBbGwoZmluZGVyKSA/PyBbXSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdyA9IE51bWJlci5wYXJzZUludChtYXRjaFsxXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgY29sID0gTnVtYmVyLnBhcnNlSW50KG1hdGNoWzJdKTtcbiAgICAgICAgICAgICAgICBsb2cuZXJyb3IocGF0aC5iYXNlbmFtZShzZXJ2ZXJFbnRyeSkgKyAnICcgKyByb3cgKyAnOicgKyBjb2wpO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcih0ZXh0Um93c1tyb3cgLSAyXSk7XG4gICAgICAgICAgICAgICAgbG9nLmVycm9yKHRleHRSb3dzW3JvdyAtIDFdKTtcbiAgICAgICAgICAgICAgICBsb2cuZXJyb3IoQXJyYXkoY29sKS5qb2luKCcgJykgKyAnXicpO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcih0ZXh0Um93c1tyb3ddKTtcbiAgICAgICAgICAgICAgICBsb2cuZXJyb3IodGV4dFJvd3Nbcm93ICsgMV0pO1xuICAgICAgICAgICAgICAgIGxvZy5lcnJvcih0ZXh0Um93c1tyb3cgKyAyXSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgZGlza0ZzLndyaXRlRmlsZVN5bmMoc2VydmVyRW50cnksIGZpbGVUZXh0KTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsb2cuZXJyb3IoJ09ubHkgY29tcGlsZXIgb25lIHN0YXQnKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICApO1xuICB9O1xuICBjb25zdCBzdG9wU2VydmVyID0gYXN5bmMgKCkgPT4ge1xuICAgIGxvZy5pbmZvKCdTdG9wcGluZyBzZXJ2ZXIuLi4nKTtcbiAgICBhd2FpdCBkZXZTZXJ2ZXIuc3RvcCgpO1xuICAgIGxvZy5pbmZvKCdTZXJ2ZXIgY2xvc2VkJyk7XG4gIH07XG5cbiAgcHJvY2Vzcy5vbignU0lHSU5UJywgKCkgPT4ge1xuICAgIGxvZy53YXJuKCdSZWNlaXZlZCBTSUdJTlQsIGRldnNlcnZlciBzaHV0dGluZyBkb3duJyk7XG4gICAgc3RvcFNlcnZlcigpO1xuICAgIHByb2Nlc3MuZXhpdCgtMSk7XG4gIH0pO1xuXG4gIHJ1blNlcnZlcigpO1xufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUNBQSxNQUFNLENBQUNDLE1BQU0sR0FDWEQsTUFBTSxDQUFDQyxNQUFNLElBQ2IsMEJBQTJCLFNBQVNBLE1BQU1BLENBQUNDLEVBQUUs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
@@ -17,9 +17,9 @@ export default function dataClientSpout(options = {}) {
17
17
  ...nextProps,
18
18
  app: /*#__PURE__*/_jsx(CacheProvider, {
19
19
  initialState: data,
20
- managers: options == null ? void 0 : options.getManagers == null ? void 0 : options.getManagers()
20
+ managers: options == null || options.getManagers == null ? void 0 : options.getManagers()
21
21
  }, void 0, nextProps.app)
22
22
  };
23
23
  };
24
24
  }
25
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbml0aWFsU3RhdGUiLCJkYXRhQ2xpZW50U3BvdXQiLCJvcHRpb25zIiwibmV4dCIsInByb3BzIiwibmV4dFByb3BzIiwiZGF0YSIsIkNhY2hlUHJvdmlkZXIiLCJQcm9taXNlIiwiYWxsIiwiZ2V0SW5pdGlhbERhdGEiLCJjYXRjaCIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJhcHAiLCJfanN4IiwibWFuYWdlcnMiLCJnZXRNYW5hZ2VycyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvZGF0YUNsaWVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBNYW5hZ2VyIH0gZnJvbSAnQGRhdGEtY2xpZW50L3JlYWN0JztcbmltcG9ydCB7IGluaXRpYWxTdGF0ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9yZWR1eCc7XG5cbmltcG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGF0YUNsaWVudFNwb3V0KFxuICBvcHRpb25zOiB7XG4gICAgZ2V0TWFuYWdlcnM/OiAoKSA9PiBNYW5hZ2VyW107XG4gIH0gPSB7fSxcbik6IENsaWVudFNwb3V0PHsgZ2V0SW5pdGlhbERhdGE6IChrZXk6IHN0cmluZykgPT4gUHJvbWlzZTxhbnk+IH0+IHtcbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQocHJvcHMpO1xuICAgIGNvbnN0IFtkYXRhLCB7IENhY2hlUHJvdmlkZXIgfV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBwcm9wcy5nZXRJbml0aWFsRGF0YSgnZGF0YWNsaWVudCcpLmNhdGNoKGUgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdEYXRhIENsaWVudCBpbml0aWFsIGRhdGEgY291bGQgbm90IGxvYWQ6JywgZSk7XG4gICAgICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gICAgICB9KSxcbiAgICAgIGltcG9ydCgnLi9kYXRhQ2xpZW50LnByb3ZpZGVyLmpzJyksXG4gICAgXSk7XG5cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0RhdGEgQ2xpZW50IGluaXQgZGF0YSBub3QgZm91bmQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgYXBwOiAoXG4gICAgICAgIDxDYWNoZVByb3ZpZGVyIGluaXRpYWxTdGF0ZT17ZGF0YX0gbWFuYWdlcnM9e29wdGlvbnM/LmdldE1hbmFnZXJzPy4oKX0+XG4gICAgICAgICAge25leHRQcm9wcy5hcHB9XG4gICAgICAgIDwvQ2FjaGVQcm92aWRlcj5cbiAgICAgICksXG4gICAgfTtcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFDQSxTQUFTQSxZQUFZLFFBQVEsb0JBQW9CO0FBSWpELGVBQWUsU0FBU0MsZUFBZUEsQ0FDckNDLE9BRUMsR0FBRyxDQUFDLENBQUMsRUFDMEQ7RUFDaEUsT0FBT0MsSUFBSSxJQUFJLE1BQU1DLEtBQUssSUFBSTtJQUM1QixNQUFNQyxTQUFTLEdBQUcsTUFBTUYsSUFBSSxDQUFDQyxLQUFLLENBQUM7SUFDbkMsTUFBTSxDQUFDRSxJQUFJLEVBQUU7TUFBRUM7SUFBYyxDQUFDLENBQUMsR0FBRyxNQUFNQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUNsREwsS0FBSyxDQUFDTSxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUNDLEtBQUssQ0FBQ0MsQ0FBQyxJQUFJO01BQzVDQyxPQUFPLENBQUNDLEtBQUssQ0FBQywwQ0FBMEMsRUFBRUYsQ0FBQyxDQUFDO01BQzVELE9BQU9aLFlBQVk7SUFDckIsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQ25DLENBQUM7SUFFRixJQUFJLENBQUNNLElBQUksRUFBRTtNQUNUTyxPQUFPLENBQUNDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQztJQUNsRDtJQUVBLE9BQU87TUFDTCxHQUFHVCxTQUFTO01BQ1pVLEdBQUcsZUFDREMsSUFBQSxDQUFDVCxhQUFhO1FBQUNQLFlBQVksRUFBRU0sSUFBSztRQUFDVyxRQUFRLEVBQUVmLE9BQU8sb0JBQVBBLE9BQU8sQ0FBRWdCLFdBQVcsb0JBQXBCaEIsT0FBTyxDQUFFZ0IsV0FBVyxDQUFHO01BQUUsV0FDbkViLFNBQVMsQ0FBQ1UsR0FDRTtJQUVuQixDQUFDO0VBQ0gsQ0FBQztBQUNIIn0=
25
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpbml0aWFsU3RhdGUiLCJkYXRhQ2xpZW50U3BvdXQiLCJvcHRpb25zIiwibmV4dCIsInByb3BzIiwibmV4dFByb3BzIiwiZGF0YSIsIkNhY2hlUHJvdmlkZXIiLCJQcm9taXNlIiwiYWxsIiwiZ2V0SW5pdGlhbERhdGEiLCJjYXRjaCIsImUiLCJjb25zb2xlIiwiZXJyb3IiLCJhcHAiLCJfanN4IiwibWFuYWdlcnMiLCJnZXRNYW5hZ2VycyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zcG91dHMvZGF0YUNsaWVudC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBNYW5hZ2VyIH0gZnJvbSAnQGRhdGEtY2xpZW50L3JlYWN0JztcbmltcG9ydCB7IGluaXRpYWxTdGF0ZSB9IGZyb20gJ0BkYXRhLWNsaWVudC9yZWR1eCc7XG5cbmltcG9ydCB0eXBlIHsgQ2xpZW50U3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGF0YUNsaWVudFNwb3V0KFxuICBvcHRpb25zOiB7XG4gICAgZ2V0TWFuYWdlcnM/OiAoKSA9PiBNYW5hZ2VyW107XG4gIH0gPSB7fSxcbik6IENsaWVudFNwb3V0PHsgZ2V0SW5pdGlhbERhdGE6IChrZXk6IHN0cmluZykgPT4gUHJvbWlzZTxhbnk+IH0+IHtcbiAgcmV0dXJuIG5leHQgPT4gYXN5bmMgcHJvcHMgPT4ge1xuICAgIGNvbnN0IG5leHRQcm9wcyA9IGF3YWl0IG5leHQocHJvcHMpO1xuICAgIGNvbnN0IFtkYXRhLCB7IENhY2hlUHJvdmlkZXIgfV0gPSBhd2FpdCBQcm9taXNlLmFsbChbXG4gICAgICBwcm9wcy5nZXRJbml0aWFsRGF0YSgnZGF0YWNsaWVudCcpLmNhdGNoKGUgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdEYXRhIENsaWVudCBpbml0aWFsIGRhdGEgY291bGQgbm90IGxvYWQ6JywgZSk7XG4gICAgICAgIHJldHVybiBpbml0aWFsU3RhdGU7XG4gICAgICB9KSxcbiAgICAgIGltcG9ydCgnLi9kYXRhQ2xpZW50LnByb3ZpZGVyLmpzJyksXG4gICAgXSk7XG5cbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ0RhdGEgQ2xpZW50IGluaXQgZGF0YSBub3QgZm91bmQnKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgYXBwOiAoXG4gICAgICAgIDxDYWNoZVByb3ZpZGVyIGluaXRpYWxTdGF0ZT17ZGF0YX0gbWFuYWdlcnM9e29wdGlvbnM/LmdldE1hbmFnZXJzPy4oKX0+XG4gICAgICAgICAge25leHRQcm9wcy5hcHB9XG4gICAgICAgIDwvQ2FjaGVQcm92aWRlcj5cbiAgICAgICksXG4gICAgfTtcbiAgfTtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7QUFDQSxTQUFTQSxZQUFZLFFBQVEsb0JBQW9CO0FBSWpELGVBQWUsU0FBU0MsZUFBZUEsQ0FDckNDLE9BRUMsR0FBRyxDQUFDLENBQUMsRUFDMEQ7RUFDaEUsT0FBT0MsSUFBSSxJQUFJLE1BQU1DLEtBQUssSUFBSTtJQUM1QixNQUFNQyxTQUFTLEdBQUcsTUFBTUYsSUFBSSxDQUFDQyxLQUFLLENBQUM7SUFDbkMsTUFBTSxDQUFDRSxJQUFJLEVBQUU7TUFBRUM7SUFBYyxDQUFDLENBQUMsR0FBRyxNQUFNQyxPQUFPLENBQUNDLEdBQUcsQ0FBQyxDQUNsREwsS0FBSyxDQUFDTSxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUNDLEtBQUssQ0FBQ0MsQ0FBQyxJQUFJO01BQzVDQyxPQUFPLENBQUNDLEtBQUssQ0FBQywwQ0FBMEMsRUFBRUYsQ0FBQyxDQUFDO01BQzVELE9BQU9aLFlBQVk7SUFDckIsQ0FBQyxDQUFDLEVBQ0YsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQ25DLENBQUM7SUFFRixJQUFJLENBQUNNLElBQUksRUFBRTtNQUNUTyxPQUFPLENBQUNDLEtBQUssQ0FBQyxpQ0FBaUMsQ0FBQztJQUNsRDtJQUVBLE9BQU87TUFDTCxHQUFHVCxTQUFTO01BQ1pVLEdBQUcsZUFDREMsSUFBQSxDQUFDVCxhQUFhO1FBQUNQLFlBQVksRUFBRU0sSUFBSztRQUFDVyxRQUFRLEVBQUVmLE9BQU8sWUFBUEEsT0FBTyxDQUFFZ0IsV0FBVyxvQkFBcEJoQixPQUFPLENBQUVnQixXQUFXLENBQUc7TUFBRSxXQUNuRWIsU0FBUyxDQUFDVSxHQUNFO0lBRW5CLENBQUM7RUFDSCxDQUFDO0FBQ0gifQ==
@@ -3,7 +3,7 @@ import React from "react";
3
3
  export default function dataClientSpout(options = {}) {
4
4
  return next => async props => {
5
5
  var _options$getManagers;
6
- const managers = (_options$getManagers = options == null ? void 0 : options.getManagers == null ? void 0 : options.getManagers()) != null ? _options$getManagers : [new (await import('@data-client/react')).NetworkManager()];
6
+ const managers = (_options$getManagers = options == null || options.getManagers == null ? void 0 : options.getManagers()) != null ? _options$getManagers : [new (await import('@data-client/react')).NetworkManager()];
7
7
  const {
8
8
  createPersistedStore
9
9
  } = await import('@data-client/ssr');
@@ -26,4 +26,4 @@ export default function dataClientSpout(options = {}) {
26
26
  };
27
27
  };
28
28
  }
29
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkYXRhQ2xpZW50U3BvdXQiLCJvcHRpb25zIiwibmV4dCIsInByb3BzIiwiX29wdGlvbnMkZ2V0TWFuYWdlcnMiLCJtYW5hZ2VycyIsImdldE1hbmFnZXJzIiwiTmV0d29ya01hbmFnZXIiLCJjcmVhdGVQZXJzaXN0ZWRTdG9yZSIsIlNlcnZlckNhY2hlUHJvdmlkZXIiLCJ1c2VSZWFkeUNhY2hlU3RhdGUiLCJjb250cm9sbGVyIiwic3RvcmUiLCJuZXh0UHJvcHMiLCJpbml0RGF0YSIsImRhdGFjbGllbnQiLCJhcHAiLCJfanN4Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nwb3V0cy9kYXRhQ2xpZW50LnNlcnZlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDb250cm9sbGVyLFxuICB0eXBlIE1hbmFnZXIsXG4gIHR5cGUgU3RhdGUsXG4gIHR5cGUgU3RvcmUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9yZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgU2VydmVyU3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGF0YUNsaWVudFNwb3V0KFxuICBvcHRpb25zOiB7XG4gICAgZ2V0TWFuYWdlcnM/OiAoKSA9PiBNYW5hZ2VyW107XG4gIH0gPSB7fSxcbik6IFNlcnZlclNwb3V0PFxuICBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgeyBjb250cm9sbGVyOiBDb250cm9sbGVyIH0gJiB7IHN0b3JlOiBTdG9yZTxTdGF0ZTx1bmtub3duPj4gfSxcbiAgeyBpbml0RGF0YT86IFJlY29yZDxzdHJpbmcsICgpID0+IHVua25vd24+OyBzY3JpcHRzPzogUmVhY3QuUmVhY3ROb2RlW10gfVxuPiB7XG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCBtYW5hZ2VycyA9IG9wdGlvbnM/LmdldE1hbmFnZXJzPy4oKSA/PyBbXG4gICAgICBuZXcgKGF3YWl0IGltcG9ydCgnQGRhdGEtY2xpZW50L3JlYWN0JykpLk5ldHdvcmtNYW5hZ2VyKCksXG4gICAgXTtcbiAgICBjb25zdCB7IGNyZWF0ZVBlcnNpc3RlZFN0b3JlIH0gPSBhd2FpdCBpbXBvcnQoJ0BkYXRhLWNsaWVudC9zc3InKTtcbiAgICBjb25zdCBbU2VydmVyQ2FjaGVQcm92aWRlciwgdXNlUmVhZHlDYWNoZVN0YXRlLCBjb250cm9sbGVyLCBzdG9yZV0gPVxuICAgICAgY3JlYXRlUGVyc2lzdGVkU3RvcmUobWFuYWdlcnMpO1xuXG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dCh7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNvbnRyb2xsZXIsXG4gICAgICBzdG9yZSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgaW5pdERhdGE6IHtcbiAgICAgICAgLi4ubmV4dFByb3BzLmluaXREYXRhLFxuICAgICAgICBkYXRhY2xpZW50OiB1c2VSZWFkeUNhY2hlU3RhdGUsXG4gICAgICB9LFxuICAgICAgYXBwOiA8U2VydmVyQ2FjaGVQcm92aWRlcj57bmV4dFByb3BzLmFwcH08L1NlcnZlckNhY2hlUHJvdmlkZXI+LFxuICAgICAgLy8gVE9ETzogZmlndXJlIG91dCBob3cgdG8gb25seSBpbmplY3QgaW4gbmV4dCBhbmQgbm90IGhhdmUgdG8gYWxzbyBwdXQgaGVyZVxuICAgICAgY29udHJvbGxlcixcbiAgICAgIHN0b3JlLFxuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBU0EsZUFBZSxTQUFTQSxlQUFlQSxDQUNyQ0MsT0FFQyxHQUFHLENBQUMsQ0FBQyxFQUtOO0VBQ0EsT0FBT0MsSUFBSSxJQUFJLE1BQU1DLEtBQUssSUFBSTtJQUFBLElBQUFDLG9CQUFBO0lBQzVCLE1BQU1DLFFBQVEsSUFBQUQsb0JBQUEsR0FBR0gsT0FBTyxvQkFBUEEsT0FBTyxDQUFFSyxXQUFXLG9CQUFwQkwsT0FBTyxDQUFFSyxXQUFXLENBQUcsQ0FBQyxZQUFBRixvQkFBQSxHQUFJLENBQzNDLElBQUksQ0FBQyxNQUFNLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFRyxjQUFjLENBQUMsQ0FBQyxDQUMxRDtJQUNELE1BQU07TUFBRUM7SUFBcUIsQ0FBQyxHQUFHLE1BQU0sTUFBTSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pFLE1BQU0sQ0FBQ0MsbUJBQW1CLEVBQUVDLGtCQUFrQixFQUFFQyxVQUFVLEVBQUVDLEtBQUssQ0FBQyxHQUNoRUosb0JBQW9CLENBQUNILFFBQVEsQ0FBQztJQUVoQyxNQUFNUSxTQUFTLEdBQUcsTUFBTVgsSUFBSSxDQUFDO01BQzNCLEdBQUdDLEtBQUs7TUFDUlEsVUFBVTtNQUNWQztJQUNGLENBQUMsQ0FBQztJQUNGLE9BQU87TUFDTCxHQUFHQyxTQUFTO01BQ1pDLFFBQVEsRUFBRTtRQUNSLEdBQUdELFNBQVMsQ0FBQ0MsUUFBUTtRQUNyQkMsVUFBVSxFQUFFTDtNQUNkLENBQUM7TUFDRE0sR0FBRyxlQUFFQyxJQUFBLENBQUNSLG1CQUFtQixjQUFFSSxTQUFTLENBQUNHLEdBQXlCLENBQUM7TUFDL0Q7TUFDQUwsVUFBVTtNQUNWQztJQUNGLENBQUM7RUFDSCxDQUFDO0FBQ0gifQ==
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkYXRhQ2xpZW50U3BvdXQiLCJvcHRpb25zIiwibmV4dCIsInByb3BzIiwiX29wdGlvbnMkZ2V0TWFuYWdlcnMiLCJtYW5hZ2VycyIsImdldE1hbmFnZXJzIiwiTmV0d29ya01hbmFnZXIiLCJjcmVhdGVQZXJzaXN0ZWRTdG9yZSIsIlNlcnZlckNhY2hlUHJvdmlkZXIiLCJ1c2VSZWFkeUNhY2hlU3RhdGUiLCJjb250cm9sbGVyIiwic3RvcmUiLCJuZXh0UHJvcHMiLCJpbml0RGF0YSIsImRhdGFjbGllbnQiLCJhcHAiLCJfanN4Il0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Nwb3V0cy9kYXRhQ2xpZW50LnNlcnZlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDb250cm9sbGVyLFxuICB0eXBlIE1hbmFnZXIsXG4gIHR5cGUgU3RhdGUsXG4gIHR5cGUgU3RvcmUsXG59IGZyb20gJ0BkYXRhLWNsaWVudC9yZWFjdCc7XG5cbmltcG9ydCB0eXBlIHsgU2VydmVyU3BvdXQgfSBmcm9tICcuL3R5cGVzLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gZGF0YUNsaWVudFNwb3V0KFxuICBvcHRpb25zOiB7XG4gICAgZ2V0TWFuYWdlcnM/OiAoKSA9PiBNYW5hZ2VyW107XG4gIH0gPSB7fSxcbik6IFNlcnZlclNwb3V0PFxuICBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgeyBjb250cm9sbGVyOiBDb250cm9sbGVyIH0gJiB7IHN0b3JlOiBTdG9yZTxTdGF0ZTx1bmtub3duPj4gfSxcbiAgeyBpbml0RGF0YT86IFJlY29yZDxzdHJpbmcsICgpID0+IHVua25vd24+OyBzY3JpcHRzPzogUmVhY3QuUmVhY3ROb2RlW10gfVxuPiB7XG4gIHJldHVybiBuZXh0ID0+IGFzeW5jIHByb3BzID0+IHtcbiAgICBjb25zdCBtYW5hZ2VycyA9IG9wdGlvbnM/LmdldE1hbmFnZXJzPy4oKSA/PyBbXG4gICAgICBuZXcgKGF3YWl0IGltcG9ydCgnQGRhdGEtY2xpZW50L3JlYWN0JykpLk5ldHdvcmtNYW5hZ2VyKCksXG4gICAgXTtcbiAgICBjb25zdCB7IGNyZWF0ZVBlcnNpc3RlZFN0b3JlIH0gPSBhd2FpdCBpbXBvcnQoJ0BkYXRhLWNsaWVudC9zc3InKTtcbiAgICBjb25zdCBbU2VydmVyQ2FjaGVQcm92aWRlciwgdXNlUmVhZHlDYWNoZVN0YXRlLCBjb250cm9sbGVyLCBzdG9yZV0gPVxuICAgICAgY3JlYXRlUGVyc2lzdGVkU3RvcmUobWFuYWdlcnMpO1xuXG4gICAgY29uc3QgbmV4dFByb3BzID0gYXdhaXQgbmV4dCh7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGNvbnRyb2xsZXIsXG4gICAgICBzdG9yZSxcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4ubmV4dFByb3BzLFxuICAgICAgaW5pdERhdGE6IHtcbiAgICAgICAgLi4ubmV4dFByb3BzLmluaXREYXRhLFxuICAgICAgICBkYXRhY2xpZW50OiB1c2VSZWFkeUNhY2hlU3RhdGUsXG4gICAgICB9LFxuICAgICAgYXBwOiA8U2VydmVyQ2FjaGVQcm92aWRlcj57bmV4dFByb3BzLmFwcH08L1NlcnZlckNhY2hlUHJvdmlkZXI+LFxuICAgICAgLy8gVE9ETzogZmlndXJlIG91dCBob3cgdG8gb25seSBpbmplY3QgaW4gbmV4dCBhbmQgbm90IGhhdmUgdG8gYWxzbyBwdXQgaGVyZVxuICAgICAgY29udHJvbGxlcixcbiAgICAgIHN0b3JlLFxuICAgIH07XG4gIH07XG59XG4iXSwibWFwcGluZ3MiOiI7O0FBU0EsZUFBZSxTQUFTQSxlQUFlQSxDQUNyQ0MsT0FFQyxHQUFHLENBQUMsQ0FBQyxFQUtOO0VBQ0EsT0FBT0MsSUFBSSxJQUFJLE1BQU1DLEtBQUssSUFBSTtJQUFBLElBQUFDLG9CQUFBO0lBQzVCLE1BQU1DLFFBQVEsSUFBQUQsb0JBQUEsR0FBR0gsT0FBTyxZQUFQQSxPQUFPLENBQUVLLFdBQVcsb0JBQXBCTCxPQUFPLENBQUVLLFdBQVcsQ0FBRyxDQUFDLFlBQUFGLG9CQUFBLEdBQUksQ0FDM0MsSUFBSSxDQUFDLE1BQU0sTUFBTSxDQUFDLG9CQUFvQixDQUFDLEVBQUVHLGNBQWMsQ0FBQyxDQUFDLENBQzFEO0lBQ0QsTUFBTTtNQUFFQztJQUFxQixDQUFDLEdBQUcsTUFBTSxNQUFNLENBQUMsa0JBQWtCLENBQUM7SUFDakUsTUFBTSxDQUFDQyxtQkFBbUIsRUFBRUMsa0JBQWtCLEVBQUVDLFVBQVUsRUFBRUMsS0FBSyxDQUFDLEdBQ2hFSixvQkFBb0IsQ0FBQ0gsUUFBUSxDQUFDO0lBRWhDLE1BQU1RLFNBQVMsR0FBRyxNQUFNWCxJQUFJLENBQUM7TUFDM0IsR0FBR0MsS0FBSztNQUNSUSxVQUFVO01BQ1ZDO0lBQ0YsQ0FBQyxDQUFDO0lBQ0YsT0FBTztNQUNMLEdBQUdDLFNBQVM7TUFDWkMsUUFBUSxFQUFFO1FBQ1IsR0FBR0QsU0FBUyxDQUFDQyxRQUFRO1FBQ3JCQyxVQUFVLEVBQUVMO01BQ2QsQ0FBQztNQUNETSxHQUFHLGVBQUVDLElBQUEsQ0FBQ1IsbUJBQW1CLGNBQUVJLFNBQVMsQ0FBQ0csR0FBeUIsQ0FBQztNQUMvRDtNQUNBTCxVQUFVO01BQ1ZDO0lBQ0YsQ0FBQztFQUNILENBQUM7QUFDSCJ9
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anansi/core",
3
- "version": "0.18.13",
3
+ "version": "0.18.15",
4
4
  "description": "React 18 Framework",
5
5
  "homepage": "https://github.com/ntucker/anansi/tree/master/packages/core#readme",
6
6
  "repository": {
@@ -67,8 +67,8 @@
67
67
  ],
68
68
  "devDependencies": {
69
69
  "@ant-design/cssinjs": "^1.7.1",
70
- "@data-client/react": "^0.9.0",
71
- "@data-client/redux": "^0.9.0",
70
+ "@data-client/react": "^0.10.0",
71
+ "@data-client/redux": "^0.10.0",
72
72
  "@types/compression": "1.7.5",
73
73
  "@types/express": "^4.17.17",
74
74
  "@types/node": "^20.0.0",
@@ -84,7 +84,7 @@
84
84
  "dependencies": {
85
85
  "@anansi/router": "^0.9.3",
86
86
  "@babel/runtime": "^7.17.0",
87
- "@data-client/ssr": "^0.9.9",
87
+ "@data-client/ssr": "^0.10.0",
88
88
  "chalk": "^4.1.2",
89
89
  "compression": "^1.7.4",
90
90
  "cross-fetch": "^4.0.0",
@@ -95,7 +95,7 @@
95
95
  "http-proxy-middleware": "^2.0.6",
96
96
  "memfs": "^3.5.3",
97
97
  "ora": "^6.3.1",
98
- "redux": "^5.0.0",
98
+ "redux": "^5.0.1",
99
99
  "source-map-support": "^0.5.21",
100
100
  "tmp": "^0.2.1",
101
101
  "unionfs": "^4.5.1",
@@ -104,8 +104,8 @@
104
104
  },
105
105
  "peerDependencies": {
106
106
  "@ant-design/cssinjs": "^1.5.1",
107
- "@data-client/react": "^0.1.0 || ^0.2.0 || ^0.3.0 || ^0.4.0 || ^1.0.0 || ^0.8.0 || ^0.9.0",
108
- "@data-client/redux": "^0.1.0 || ^0.2.0 || ^0.3.0 || ^0.4.0 || ^1.0.0 || ^0.8.0 || ^0.9.0",
107
+ "@data-client/react": "^0.1.0 || ^0.2.0 || ^0.3.0 || ^0.4.0 || ^1.0.0 || ^0.8.0 || ^0.9.0 || ^0.10.0",
108
+ "@data-client/redux": "^0.1.0 || ^0.2.0 || ^0.3.0 || ^0.4.0 || ^1.0.0 || ^0.8.0 || ^0.9.0 || ^0.10.0",
109
109
  "@types/react": "^17.0.40 || ^18.0.0",
110
110
  "@types/react-dom": "^17.0.40 || ^18.0.0",
111
111
  "react": "^18.0.0",