@kando-env/kando-ui 1.2.358-alpha.8 → 1.2.358-alpha.9
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/lib/Widgets/Map/Map.js +2 -1
- package/lib/Widgets/Map/edges/Edge.js +2 -2
- package/lib/Widgets/Map/events/EventIndicator.js +4 -4
- package/lib/Widgets/Map/events/EventUtils.js +2 -2
- package/lib/macros/getVersion.js +1 -1
- package/lib/utilities/polylinedecorator.js +2 -1
- package/package.json +1 -1
package/lib/Widgets/Map/Map.js
CHANGED
|
@@ -108,6 +108,7 @@ const Map = _ref => {
|
|
|
108
108
|
setEdgesCheckbox(checkbox.checked);
|
|
109
109
|
console.warn('ROOT L', window.L);
|
|
110
110
|
console.warn('ROOT L.Symbol', window.L.Symbol);
|
|
111
|
+
console.warn('ROOT L.polylineDecorator', window.L.polylineDecorator);
|
|
111
112
|
});
|
|
112
113
|
};
|
|
113
114
|
const zoomRulesForEventsView = () => {
|
|
@@ -230,4 +231,4 @@ const Map = _ref => {
|
|
|
230
231
|
}), (0, _MapUtils.shoudLoadDependentMapObjects)(edges, areas, global_data, mapRef, points) && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, memoizedEvent, memoizedZoomControl, children))));
|
|
231
232
|
};
|
|
232
233
|
exports.Map = Map;
|
|
233
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfRXJyb3JCb3VuZGFyeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXJlYVBvbHlnb25zIiwiX0VkZ2VzIiwiX1BvaW50TWFya2VycyIsIl9FdmVudCIsIl9NYXBVdGlscyIsIl90aGVtZSIsIl9pMThuIiwiX0xpc3RDb250ZXh0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIk1hcCIsIl9yZWYiLCJhcmVhcyIsImVkZ2VzIiwicG9pbnRzIiwiZ2xvYmFsX2RhdGEiLCJhcmVhVG9DZW50ZXJCeSIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsImhpZGVFZGdlcyIsIm1hcEJveFN0eWxlIiwibGVhZmxldE1hcCIsIm1hcERlZmF1bHQiLCJjaGlsZHJlbiIsImluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyIsImluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMiLCJmb3JFdmVudHNWaWV3Iiwic3R5bGUiLCJmb3JXV1RQRGFzaGJvYXJkIiwibWFwIiwibWFwUmVmIiwidXNlUmVmIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIm1hcFpvb21MZXZlbCIsInNldE1hcFpvb21MZXZlbCIsInVzZVN0YXRlIiwic2VsZWN0ZWRJdGVtIiwidXNlU2VsZWN0ZWRJdGVtIiwiZXZlbnRzRGF0YSIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJldmVudHNfZGF0YSIsImhvdmVyZWRFdmVudFByZXNlbnQiLCJ1c2VNZW1vIiwidW5kZWZpbmVkIiwiZm9jdXNlZEV2ZW50UHJlc2VudCIsImZhY3Rvcmllc0NsdXN0ZXJHcm91cCIsIndpbmRvdyIsImN1c3RvbUxlYWZsZXQiLCJtYXJrZXJDbHVzdGVyR3JvdXAiLCJzcGlkZXJmeU9uTWF4Wm9vbSIsInNob3dDb3ZlcmFnZU9uSG92ZXIiLCJ6b29tVG9Cb3VuZHNPbkNsaWNrIiwiYW5pbWF0ZSIsImRpc2FibGVDbHVzdGVyaW5nQXRab29tIiwicmVtb3ZlT3V0c2lkZVZpc2libGVCb3VuZHMiLCJjaHVua2VkTG9hZGluZyIsImljb25DcmVhdGVGdW5jdGlvbiIsImNsdXN0ZXIiLCJEaXZJY29uIiwiaHRtbCIsIl9jaGlsZENvdW50IiwiaTE4biIsInQiLCJjbGFzc05hbWUiLCJpY29uU2l6ZSIsIlBvaW50Iiwid3d0cHNMYXllckdyb3VwIiwibGF5ZXJHcm91cCIsImNvbGxlY3RvcnNMYXllckdyb3VwIiwiYXJlYXNMYXllckdyb3VwIiwiRmVhdHVyZUdyb3VwIiwiZWRnZXNDaGVja2JveCIsInNldEVkZ2VzQ2hlY2tib3giLCJtZW1vaXplZFBvaW50cyIsImN1cnJlbnQiLCJjcmVhdGVFbGVtZW50IiwiUG9pbnRNYXJrZXJzIiwicmVyZW5kZXIiLCJ6b29tTGV2ZWxzIiwiZmFjdG9yaWVzR3JvdXAiLCJ3d3Rwc0dyb3VwIiwiY29sbGVjdG9yc0dyb3VwIiwidHJhY2tMYXllcmJveCIsImNoZWNrYm94IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiYWRkRXZlbnRMaXN0ZW5lciIsImNoZWNrZWQiLCJjb25zb2xlIiwid2FybiIsIlN5bWJvbCIsInpvb21SdWxlc0ZvckV2ZW50c1ZpZXciLCJwYXlsb2FkIiwiRnJhZ21lbnQiLCJoaWRlQXJyb3dzIiwiYWxsb3dVbm1vbml0b3JlZERlc2NlbmRhbnRzIiwiem9vbVJ1bGVzRm9yRGFzaGFib2FyZE1hcHMiLCJtZW1vaXplZFpvb21Db250cm9sIiwiaXNGZXRjaGluZyIsIm1lbW9pemVkRXZlbnQiLCJmb2N1c2VkIiwiaG92ZXJlZCIsIkV2ZW50IiwiZXZlbnQiLCJpbmNsdWRlTmV0d29yayIsImV2ZW50RmlsdGVyUGFyYW0iLCJ1c2VFZmZlY3QiLCJjbGVhbnVwIiwiX21hcFJlZiRjdXJyZW50IiwiY2xlYXJMYXllcnMiLCJyZW1vdmVMYXllciIsImluaXRpYWxpemVNYXAiLCJzYXRlbGxpdGUiLCJpc1ZhbGlkQXJlYSIsInJlbW92ZSIsIndhdGVyQXV0aG9yaXR5SWQiLCJnZXRab29tIiwiYXJlYSIsInNoYXBlX2RhdGEiLCJmbGF0IiwiYXJlYUZvY3VzTG9naWMiLCJfbWFwUmVmJGN1cnJlbnQyIiwiY2xpY2tlZCIsImVhY2hMYXllciIsImxheWVyIiwia2FuZG9fb2JqZWN0X2lkIiwiaXNQb3B1cE9wZW4iLCJNYXJrZXIiLCJmaXJlIiwiUG9seWdvbiIsInNpZGVuYXZFeHBhbmRlZCIsImlkIiwic2hvdWxkTG9hZE1hcE9iamVjdHMiLCJBcmVhUG9seWdvbnMiLCJtYXBab29tIiwiZmVhdHVyZUdyb3VwIiwic2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvV2lkZ2V0cy9NYXAvTWFwLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtaWdub3JlXG5pbXBvcnQgKiBhcyBMIGZyb20gJ2xlYWZsZXQnO1xuaW1wb3J0ICdzcmMvdXRpbGl0aWVzL3BvbHlsaW5lZGVjb3JhdG9yJztcbmltcG9ydCAnbGVhZmxldC5tYXJrZXJjbHVzdGVyJztcbmltcG9ydCAnbGVhZmxldC5wYXR0ZXJuJztcbmltcG9ydCBSZWFjdCwge1xuICBDU1NQcm9wZXJ0aWVzLFxuICB1c2VFZmZlY3QsXG4gIHVzZU1lbW8sXG4gIHVzZVJlZixcbiAgdXNlU3RhdGUsXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZURpc3BhdGNoLCB1c2VTZWxlY3RvciB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IElBcmVhIH0gZnJvbSAnc3JjL3N0b3JlL2FyZWFzL21vZGVscy9JQXJlYSc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9tb2RlbHMvSUVkZ2UnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9tb2RlbHMvSUV2ZW50Jztcbi8vIGltcG9ydCB7IHN0b3JlTWFwIH0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9hY3Rpb25zJztcbmltcG9ydCB7IElHbG9iYWxTdGF0ZSB9IGZyb20gJ3NyYy9zdG9yZS9nbG9iYWwvbW9kZWxzL0lHbG9iYWxTdGF0ZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICdzcmMvc3RvcmUvcG9pbnRzL21vZGVscy9JUG9pbnQnO1xuaW1wb3J0IEVycm9yQm91bmRhcnkgZnJvbSAnc3JjL3V0aWxpdGllcy9FcnJvckJvdW5kYXJ5JztcbmltcG9ydCB7IEFyZWFQb2x5Z29ucyB9IGZyb20gJy4vYXJlYXMvQXJlYVBvbHlnb25zJztcbmltcG9ydCBFZGdlcyBmcm9tICcuL2VkZ2VzL0VkZ2VzJztcbmltcG9ydCAnLi9NYXAuc2Nzcyc7XG5pbXBvcnQgJy4vcG9pbnRzL1BvaW50SWNvbi5zY3NzJztcbmltcG9ydCB7IFBvaW50TWFya2VycyB9IGZyb20gJy4vcG9pbnRzL1BvaW50TWFya2Vycyc7XG5pbXBvcnQgeyBhcHBSZWR1Y2VyIH0gZnJvbSAnLi4vLi4vc3RvcmUvcm9vdFJlZHVjZXInO1xuaW1wb3J0IHsgRXZlbnQgfSBmcm9tICcuL2V2ZW50cy9FdmVudCc7XG5pbXBvcnQge1xuICBhcmVhRm9jdXNMb2dpYyxcbiAgaW5pdGlhbGl6ZU1hcCxcbiAgaXNWYWxpZEFyZWEsXG4gIHNob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMsXG4gIHNob3VsZExvYWRNYXBPYmplY3RzLFxuICB6b29tTGV2ZWxzLFxufSBmcm9tICcuL01hcFV0aWxzJztcbmltcG9ydCB7IGxlYWZsZXRNYXAgfSBmcm9tICcuLi8uLi9zdHlsZXMvdGhlbWUvdGhlbWUnO1xuaW1wb3J0IGkxOG4gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2kxOG4nO1xuaW1wb3J0IHsgdXNlU2VsZWN0ZWRJdGVtIH0gZnJvbSAnc3JjL3BhZ2VzL0Rhc2hib2FyZE1hcC9MaXN0Q29udGV4dCc7XG5yZXF1aXJlKCdsZWFmbGV0Lm1hcmtlcmNsdXN0ZXInKTtcbnJlcXVpcmUoJ3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3InKTtcblxuaW50ZXJmYWNlIE1hcFByb3BzIHtcbiAgYXJlYXM6IElBcmVhW107XG4gIGVkZ2VzPzogSUVkZ2VbXTtcbiAgcG9pbnRzPzogSVBvaW50W107XG4gIGdsb2JhbF9kYXRhOiBJR2xvYmFsU3RhdGU7XG4gIGFyZWFUb0NlbnRlckJ5PzogYW55O1xuICBmb2N1c2VkRXZlbnQ/OiBJRXZlbnQgfCBudWxsO1xuICBob3ZlcmVkRXZlbnQ/OiBJRXZlbnQgfCBudWxsO1xuICBoaWRlRWRnZXM/OiBib29sZWFuO1xuICBtYXBCb3hTdHlsZT86IHN0cmluZztcbiAgY2hpbGRyZW4/OiBhbnk7XG4gIHN0eWxlPzogQ1NTUHJvcGVydGllcztcbiAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzPzogYm9vbGVhbjtcbiAgaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcz86IGJvb2xlYW47XG4gIGZvckV2ZW50c1ZpZXc6IGJvb2xlYW47XG4gIGZvcldXVFBEYXNoYm9hcmQ/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY29uc3QgTWFwOiBSZWFjdC5GQzxNYXBQcm9wcz4gPSAoe1xuICBhcmVhcyxcbiAgZWRnZXMsXG4gIHBvaW50cyxcbiAgZ2xvYmFsX2RhdGEsXG4gIGFyZWFUb0NlbnRlckJ5LFxuICBmb2N1c2VkRXZlbnQsXG4gIGhvdmVyZWRFdmVudCxcbiAgaGlkZUVkZ2VzID0gZmFsc2UsXG4gIG1hcEJveFN0eWxlID0gbGVhZmxldE1hcC5tYXBEZWZhdWx0LFxuICBjaGlsZHJlbixcbiAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzID0gdHJ1ZSxcbiAgaW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlcyA9IGZhbHNlLFxuICBmb3JFdmVudHNWaWV3ID0gZmFsc2UsXG4gIHN0eWxlID0ge30sXG4gIGZvcldXVFBEYXNoYm9hcmQgPSBmYWxzZSxcbn0pID0+IHtcbiAgY29uc3QgeyBtYXAgfSA9IGdsb2JhbF9kYXRhO1xuICBjb25zdCBtYXBSZWYgPSB1c2VSZWY8TC5NYXAgfCBudWxsPihudWxsKTtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBbbWFwWm9vbUxldmVsLCBzZXRNYXBab29tTGV2ZWxdID0gdXNlU3RhdGUoMik7XG4gIGNvbnN0IHsgc2VsZWN0ZWRJdGVtIH0gPSB1c2VTZWxlY3RlZEl0ZW0oKTtcbiAgY29uc3QgZXZlbnRzRGF0YSA9IHVzZVNlbGVjdG9yKFxuICAgIChzdGF0ZTogUmV0dXJuVHlwZTx0eXBlb2YgYXBwUmVkdWNlcj4pID0+IHN0YXRlLmV2ZW50c19kYXRhLFxuICApO1xuICBjb25zdCBob3ZlcmVkRXZlbnRQcmVzZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgcmV0dXJuIGhvdmVyZWRFdmVudCAhPT0gbnVsbCAmJiBob3ZlcmVkRXZlbnQgIT09IHVuZGVmaW5lZDtcbiAgfSwgW2hvdmVyZWRFdmVudF0pO1xuXG4gIGNvbnN0IGZvY3VzZWRFdmVudFByZXNlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gZm9jdXNlZEV2ZW50ICE9PSBudWxsICYmIGZvY3VzZWRFdmVudCAhPT0gdW5kZWZpbmVkO1xuICB9LCBbZm9jdXNlZEV2ZW50XSk7XG5cbiAgY29uc3QgW2ZhY3Rvcmllc0NsdXN0ZXJHcm91cF0gPSB1c2VTdGF0ZShcbiAgICB3aW5kb3cuY3VzdG9tTGVhZmxldC5tYXJrZXJDbHVzdGVyR3JvdXAoe1xuICAgICAgc3BpZGVyZnlPbk1heFpvb206IGZhbHNlLFxuICAgICAgc2hvd0NvdmVyYWdlT25Ib3ZlcjogZmFsc2UsXG4gICAgICB6b29tVG9Cb3VuZHNPbkNsaWNrOiB0cnVlLFxuICAgICAgYW5pbWF0ZTogdHJ1ZSxcbiAgICAgIGRpc2FibGVDbHVzdGVyaW5nQXRab29tOiAxNSxcbiAgICAgIHJlbW92ZU91dHNpZGVWaXNpYmxlQm91bmRzOiBmYWxzZSxcbiAgICAgIGNodW5rZWRMb2FkaW5nOiB0cnVlLFxuICAgICAgaWNvbkNyZWF0ZUZ1bmN0aW9uOiBmdW5jdGlvbiAoY2x1c3Rlcikge1xuICAgICAgICByZXR1cm4gbmV3IEwuRGl2SWNvbih7XG4gICAgICAgICAgaHRtbDogYDxkaXY+PHNwYW4+JHtcbiAgICAgICAgICAgIGNsdXN0ZXIuX2NoaWxkQ291bnRcbiAgICAgICAgICB9PC9zcGFuPjwvZGl2PjxkaXYgY2xhc3M9J21hcmtlci1jbHVzdGVyLW5hbWUnPiR7aTE4bi50KFxuICAgICAgICAgICAgJ2luZHVzdHJpZXMnLFxuICAgICAgICAgICl9PC9kaXY+YCxcbiAgICAgICAgICBjbGFzc05hbWU6ICdtYXJrZXItY2x1c3RlcicsXG4gICAgICAgICAgaWNvblNpemU6IG5ldyBMLlBvaW50KDQwLCA0MCksXG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICB9KSxcbiAgKTtcblxuICBjb25zdCBbd3d0cHNMYXllckdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2NvbGxlY3RvcnNMYXllckdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgLy9jb25zdCBbZmFjdG9yaWVzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShMLmxheWVyR3JvdXAoKSk7XG4gIGNvbnN0IFthcmVhc0xheWVyR3JvdXBdID0gdXNlU3RhdGUobmV3IEwuRmVhdHVyZUdyb3VwKCkpO1xuICBjb25zdCBbZWRnZXNDaGVja2JveCwgc2V0RWRnZXNDaGVja2JveF0gPSB1c2VTdGF0ZShmYWxzZSk7XG5cbiAgY29uc3QgbWVtb2l6ZWRQb2ludHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiZcbiAgICAgIHBvaW50cyAmJiAoXG4gICAgICAgIDxQb2ludE1hcmtlcnNcbiAgICAgICAgICBtYXA9e21hcFJlZi5jdXJyZW50fVxuICAgICAgICAgIHBvaW50cz17cG9pbnRzfVxuICAgICAgICAgIGluY2x1ZGVVbm1vbml0b3JlZFBvaW50cz17aW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzfVxuICAgICAgICAgIHJlcmVuZGVyPXt6b29tTGV2ZWxzW21hcFpvb21MZXZlbF19XG4gICAgICAgICAgZmFjdG9yaWVzR3JvdXA9e2ZhY3Rvcmllc0NsdXN0ZXJHcm91cH1cbiAgICAgICAgICB3d3Rwc0dyb3VwPXt3d3Rwc0xheWVyR3JvdXB9XG4gICAgICAgICAgY29sbGVjdG9yc0dyb3VwPXtjb2xsZWN0b3JzTGF5ZXJHcm91cH1cbiAgICAgICAgICBmb3JFdmVudHNWaWV3PXtmYWxzZX1cbiAgICAgICAgLz5cbiAgICAgIClcbiAgICApO1xuICB9LCBbbWFwUmVmLmN1cnJlbnQsIHBvaW50cywgZm9jdXNlZEV2ZW50UHJlc2VudCwgbWFwWm9vbUxldmVsXSk7XG5cbiAgLy8gY29uc3QgYWN0aXZhdGVab29tQ29udHJvbEZvckljb25zID0gdXNlTWVtbygoKSA9PiB7XG4gIC8vICAgbWFwUmVmLmN1cnJlbnQgIT09IG51bGwgJiYgaWNvblpvb21Db250cm9sKG1hcFJlZi5jdXJyZW50KTtcbiAgLy8gfSwgW21hcFJlZi5jdXJyZW50LCBwb2ludHMsIGZvY3VzZWRFdmVudFByZXNlbnRdKTtcblxuICBjb25zdCB0cmFja0xheWVyYm94ID0gKCkgPT4ge1xuICAgIGxldCBjaGVja2JveCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJyNlZGdlcy1jaGVja2JveCcpO1xuICAgIGNoZWNrYm94LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsICgpID0+IHtcbiAgICAgIHNldEVkZ2VzQ2hlY2tib3goY2hlY2tib3guY2hlY2tlZCk7XG4gICAgICBjb25zb2xlLndhcm4oJ1JPT1QgTCcsIHdpbmRvdy5MKTtcbiAgICAgIGNvbnNvbGUud2FybignUk9PVCBMLlN5bWJvbCcsIHdpbmRvdy5MLlN5bWJvbCk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3Qgem9vbVJ1bGVzRm9yRXZlbnRzVmlldyA9ICgpID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gKFxuICAgICAgPD5cbiAgICAgICAge2VkZ2VzQ2hlY2tib3ggJiYgKFxuICAgICAgICAgIDxFZGdlc1xuICAgICAgICAgICAgZWRnZXM9e2VkZ2VzIX1cbiAgICAgICAgICAgIG1hcD17bWFwUmVmLmN1cnJlbnR9XG4gICAgICAgICAgICBMPXtMfVxuICAgICAgICAgICAgcG9pbnRzPXtwb2ludHMhfVxuICAgICAgICAgICAgaGlkZUVkZ2VzPXtoaWRlRWRnZXN9XG4gICAgICAgICAgICBoaWRlQXJyb3dzPXt0cnVlfVxuICAgICAgICAgICAgYWxsb3dVbm1vbml0b3JlZERlc2NlbmRhbnRzPXtpbmNsdWRlVW5tb25pdG9yZWREZXNjZW5kYW50c0ZvckVkZ2VzfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIHttZW1vaXplZFBvaW50c31cbiAgICAgIDwvPlxuICAgICk7XG5cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfTtcblxuICBjb25zdCB6b29tUnVsZXNGb3JEYXNoYWJvYXJkTWFwcyA9ICgpID0+IHtcbiAgICBsZXQgcGF5bG9hZCA9IDw+e21lbW9pemVkUG9pbnRzfTwvPjtcbiAgICBzd2l0Y2ggKHpvb21MZXZlbHNbbWFwWm9vbUxldmVsXSkge1xuICAgICAgY2FzZSAnU21hbGwnOlxuICAgICAgY2FzZSAnTWVkaXVtJzpcbiAgICAgICAgcGF5bG9hZCA9IHpvb21SdWxlc0ZvckV2ZW50c1ZpZXcoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICAvLyBjYXNlICdNTGFyZ2UnOlxuICAgICAgLy8gY2FzZSAnTGFyZ2UnOlxuICAgICAgLy8gY2FzZSAnWExhcmdlJzpcbiAgICAgIC8vIGRlZmF1bHQ6XG4gICAgICAvLyAgIHBheWxvYWQgPSA8PnttZW1vaXplZFBvaW50c308Lz47XG4gICAgICAvLyAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9O1xuXG4gIGNvbnN0IG1lbW9pemVkWm9vbUNvbnRyb2wgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBwYXlsb2FkID0gZm9yRXZlbnRzVmlld1xuICAgICAgPyB6b29tUnVsZXNGb3JFdmVudHNWaWV3KClcbiAgICAgIDogem9vbVJ1bGVzRm9yRGFzaGFib2FyZE1hcHMoKTtcblxuICAgIHJldHVybiBwYXlsb2FkO1xuICB9LCBbXG4gICAgbWFwWm9vbUxldmVsLFxuICAgIGV2ZW50c0RhdGEuaXNGZXRjaGluZyxcbiAgICBmb2N1c2VkRXZlbnQsXG4gICAgaG92ZXJlZEV2ZW50LFxuICAgIHBvaW50cyxcbiAgICBtYXBSZWYuY3VycmVudCxcbiAgICBlZGdlc0NoZWNrYm94LFxuICBdKTtcblxuICBjb25zdCBtZW1vaXplZEV2ZW50ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKGZvY3VzZWRFdmVudFByZXNlbnQpIHtcbiAgICAgIGZvY3VzZWRFdmVudCEuZm9jdXNlZCA9IGZvY3VzZWRFdmVudFByZXNlbnQ7XG4gICAgICBmb2N1c2VkRXZlbnQhLmhvdmVyZWQgPSAhZm9jdXNlZEV2ZW50UHJlc2VudDtcbiAgICB9XG5cbiAgICBpZiAoaG92ZXJlZEV2ZW50UHJlc2VudCkge1xuICAgICAgaG92ZXJlZEV2ZW50IS5ob3ZlcmVkID0gaG92ZXJlZEV2ZW50UHJlc2VudDtcbiAgICAgIGhvdmVyZWRFdmVudCEuZm9jdXNlZCA9ICFob3ZlcmVkRXZlbnRQcmVzZW50O1xuICAgIH1cblxuICAgIGlmICghaG92ZXJlZEV2ZW50UHJlc2VudCAmJiAhZm9jdXNlZEV2ZW50UHJlc2VudCkgcmV0dXJuIDw+PC8+O1xuICAgIHJldHVybiAoXG4gICAgICA8RXZlbnRcbiAgICAgICAgZXZlbnQ9e2ZvY3VzZWRFdmVudCEgfHwgaG92ZXJlZEV2ZW50IX1cbiAgICAgICAgbWFwPXttYXB9XG4gICAgICAgIGVkZ2VzPXtlZGdlcyF9XG4gICAgICAgIHBvaW50cz17cG9pbnRzIX1cbiAgICAgICAgaW5jbHVkZU5ldHdvcms9eyFob3ZlcmVkRXZlbnRQcmVzZW50fVxuICAgICAgLz5cbiAgICApO1xuICB9LCBbZm9jdXNlZEV2ZW50LCBob3ZlcmVkRXZlbnQsIGdsb2JhbF9kYXRhLmV2ZW50RmlsdGVyUGFyYW1dKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiBmdW5jdGlvbiBjbGVhbnVwKCkge1xuICAgICAgY29sbGVjdG9yc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcihjb2xsZWN0b3JzTGF5ZXJHcm91cCk7XG4gICAgfTtcbiAgfSwgW2ZvY3VzZWRFdmVudCwgaG92ZXJlZEV2ZW50LCBnbG9iYWxfZGF0YS5ldmVudEZpbHRlclBhcmFtXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpbml0aWFsaXplTWFwKFxuICAgICAgbWFwWm9vbUxldmVsLFxuICAgICAgbWFwQm94U3R5bGUsXG4gICAgICBsZWFmbGV0TWFwLnNhdGVsbGl0ZSxcbiAgICAgIG1hcFJlZixcbiAgICAgIGRpc3BhdGNoLFxuICAgICAgaXNWYWxpZEFyZWEsXG4gICAgICBhcmVhVG9DZW50ZXJCeSxcbiAgICAgIHNldE1hcFpvb21MZXZlbCxcbiAgICAgIGZvcldXVFBEYXNoYm9hcmQsXG4gICAgICBmb3JFdmVudHNWaWV3LFxuICAgICk7XG5cbiAgICByZXR1cm4gZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICAgIC8vIGZhY3Rvcmllc0NsdXN0ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgLy8gd3d0cHNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAvLyBjb2xsZWN0b3JzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgLy8gYXJlYXNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICAvLyBtYXBSZWYuY3VycmVudD8ucmVtb3ZlTGF5ZXIoZmFjdG9yaWVzQ2x1c3Rlckdyb3VwKTtcbiAgICAgIC8vIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcih3d3Rwc0xheWVyR3JvdXApO1xuICAgICAgLy8gbWFwUmVmLmN1cnJlbnQ/LnJlbW92ZUxheWVyKGNvbGxlY3RvcnNMYXllckdyb3VwKTtcbiAgICAgIC8vIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcihhcmVhc0xheWVyR3JvdXApO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgbWFwUmVmLmN1cnJlbnQucmVtb3ZlKCk7XG4gICAgICAvLyBkaXNwYXRjaChzdG9yZU1hcCh1bmRlZmluZWQpKTtcbiAgICB9O1xuICB9LCBbZ2xvYmFsX2RhdGEud2F0ZXJBdXRob3JpdHlJZF0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFtYXBSZWYuY3VycmVudCkge1xuICAgICAgaW5pdGlhbGl6ZU1hcChcbiAgICAgICAgbWFwWm9vbUxldmVsLFxuICAgICAgICBtYXBCb3hTdHlsZSxcbiAgICAgICAgbGVhZmxldE1hcC5zYXRlbGxpdGUsXG4gICAgICAgIG1hcFJlZixcbiAgICAgICAgZGlzcGF0Y2gsXG4gICAgICAgIGlzVmFsaWRBcmVhLFxuICAgICAgICBhcmVhVG9DZW50ZXJCeSxcbiAgICAgICAgc2V0TWFwWm9vbUxldmVsLFxuICAgICAgICBmb3JXV1RQRGFzaGJvYXJkLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2V0TWFwWm9vbUxldmVsKG1hcFJlZi5jdXJyZW50LmdldFpvb20oKSk7XG4gICAgICBpZiAoIWFyZWFUb0NlbnRlckJ5KSB7XG4gICAgICAgIGFyZWFUb0NlbnRlckJ5ID0gYXJlYXMubWFwKChhcmVhKSA9PiBhcmVhLnNoYXBlX2RhdGEpLmZsYXQoKTtcbiAgICAgIH1cblxuICAgICAgYXJlYUZvY3VzTG9naWMobWFwUmVmLCBpc1ZhbGlkQXJlYSwgYXJlYVRvQ2VudGVyQnkpO1xuICAgICAgdHJhY2tMYXllcmJveCgpO1xuICAgIH1cbiAgfSwgW21hcFJlZi5jdXJyZW50LCBhcmVhVG9DZW50ZXJCeV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbGV0IGNsaWNrZWQgPSBmYWxzZTtcblxuICAgIG1hcFJlZi5jdXJyZW50Py5lYWNoTGF5ZXIoKGxheWVyKSA9PiB7XG4gICAgICBpZiAoY2xpY2tlZCkgcmV0dXJuO1xuXG4gICAgICBpZiAoXG4gICAgICAgIGxheWVyPy5rYW5kb19vYmplY3RfaWQgPT09IHNlbGVjdGVkSXRlbSAmJlxuICAgICAgICBsYXllci5pc1BvcHVwT3BlbigpID09PSBmYWxzZVxuICAgICAgKSB7XG4gICAgICAgIGlmIChsYXllciBpbnN0YW5jZW9mIEwuTWFya2VyKSB7XG4gICAgICAgICAgbGF5ZXIuZmlyZSgnY2xpY2snKTtcbiAgICAgICAgfSBlbHNlIGlmIChsYXllciBpbnN0YW5jZW9mIEwuUG9seWdvbikge1xuICAgICAgICAgIGxheWVyLmZpcmUoJ2NsaWNrLWV2ZW50Jyk7XG4gICAgICAgIH1cbiAgICAgICAgY2xpY2tlZCA9IHRydWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH0sIFtzZWxlY3RlZEl0ZW1dKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwia2QtbWFwLWNvbnRhaW5lclwiIHN0eWxlPXtzdHlsZX0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzTmFtZT17YCBtYXAtY29udGFpbmVyICR7XG4gICAgICAgICAgZ2xvYmFsX2RhdGEuc2lkZW5hdkV4cGFuZGVkID8gJycgOiAnbWFwLWNvbnRhaW5lci0tc2lkZW5hdi1jb2xsYXBzZWQnXG4gICAgICAgIH1gfVxuICAgICAgPlxuICAgICAgICA8RXJyb3JCb3VuZGFyeT5cbiAgICAgICAgICA8ZGl2IGlkPVwibWFwXCI+PC9kaXY+XG4gICAgICAgICAge3Nob3VsZExvYWRNYXBPYmplY3RzKGdsb2JhbF9kYXRhLCBtYXBSZWYsIGVkZ2VzLCBwb2ludHMpICYmIChcbiAgICAgICAgICAgIDxBcmVhUG9seWdvbnNcbiAgICAgICAgICAgICAgYXJlYXM9e2FyZWFzfVxuICAgICAgICAgICAgICBtYXA9e21hcFJlZi5jdXJyZW50fVxuICAgICAgICAgICAgICBMPXtMfVxuICAgICAgICAgICAgICBhcmVhVG9DZW50ZXJCeT17YXJlYVRvQ2VudGVyQnl9XG4gICAgICAgICAgICAgIG1hcFpvb209e21hcFpvb21MZXZlbH1cbiAgICAgICAgICAgICAgcmVyZW5kZXI9e3pvb21MZXZlbHNbbWFwWm9vbUxldmVsXX1cbiAgICAgICAgICAgICAgZ2xvYmFsX2RhdGE9e2dsb2JhbF9kYXRhfVxuICAgICAgICAgICAgICBmZWF0dXJlR3JvdXA9e2FyZWFzTGF5ZXJHcm91cH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7c2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyhcbiAgICAgICAgICAgIGVkZ2VzLFxuICAgICAgICAgICAgYXJlYXMsXG4gICAgICAgICAgICBnbG9iYWxfZGF0YSxcbiAgICAgICAgICAgIG1hcFJlZixcbiAgICAgICAgICAgIHBvaW50cyxcbiAgICAgICAgICApICYmIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHttZW1vaXplZEV2ZW50fVxuICAgICAgICAgICAgICB7bWVtb2l6ZWRab29tQ29udHJvbH1cbiAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9FcnJvckJvdW5kYXJ5PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsSUFBQUEsQ0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FB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
|
|
234
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3JlYWN0IiwiX3JlYWN0UmVkdXgiLCJfRXJyb3JCb3VuZGFyeSIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfQXJlYVBvbHlnb25zIiwiX0VkZ2VzIiwiX1BvaW50TWFya2VycyIsIl9FdmVudCIsIl9NYXBVdGlscyIsIl90aGVtZSIsIl9pMThuIiwiX0xpc3RDb250ZXh0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIk1hcCIsIl9yZWYiLCJhcmVhcyIsImVkZ2VzIiwicG9pbnRzIiwiZ2xvYmFsX2RhdGEiLCJhcmVhVG9DZW50ZXJCeSIsImZvY3VzZWRFdmVudCIsImhvdmVyZWRFdmVudCIsImhpZGVFZGdlcyIsIm1hcEJveFN0eWxlIiwibGVhZmxldE1hcCIsIm1hcERlZmF1bHQiLCJjaGlsZHJlbiIsImluY2x1ZGVVbm1vbml0b3JlZFBvaW50cyIsImluY2x1ZGVVbm1vbml0b3JlZERlc2NlbmRhbnRzRm9yRWRnZXMiLCJmb3JFdmVudHNWaWV3Iiwic3R5bGUiLCJmb3JXV1RQRGFzaGJvYXJkIiwibWFwIiwibWFwUmVmIiwidXNlUmVmIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsIm1hcFpvb21MZXZlbCIsInNldE1hcFpvb21MZXZlbCIsInVzZVN0YXRlIiwic2VsZWN0ZWRJdGVtIiwidXNlU2VsZWN0ZWRJdGVtIiwiZXZlbnRzRGF0YSIsInVzZVNlbGVjdG9yIiwic3RhdGUiLCJldmVudHNfZGF0YSIsImhvdmVyZWRFdmVudFByZXNlbnQiLCJ1c2VNZW1vIiwidW5kZWZpbmVkIiwiZm9jdXNlZEV2ZW50UHJlc2VudCIsImZhY3Rvcmllc0NsdXN0ZXJHcm91cCIsIndpbmRvdyIsImN1c3RvbUxlYWZsZXQiLCJtYXJrZXJDbHVzdGVyR3JvdXAiLCJzcGlkZXJmeU9uTWF4Wm9vbSIsInNob3dDb3ZlcmFnZU9uSG92ZXIiLCJ6b29tVG9Cb3VuZHNPbkNsaWNrIiwiYW5pbWF0ZSIsImRpc2FibGVDbHVzdGVyaW5nQXRab29tIiwicmVtb3ZlT3V0c2lkZVZpc2libGVCb3VuZHMiLCJjaHVua2VkTG9hZGluZyIsImljb25DcmVhdGVGdW5jdGlvbiIsImNsdXN0ZXIiLCJEaXZJY29uIiwiaHRtbCIsIl9jaGlsZENvdW50IiwiaTE4biIsInQiLCJjbGFzc05hbWUiLCJpY29uU2l6ZSIsIlBvaW50Iiwid3d0cHNMYXllckdyb3VwIiwibGF5ZXJHcm91cCIsImNvbGxlY3RvcnNMYXllckdyb3VwIiwiYXJlYXNMYXllckdyb3VwIiwiRmVhdHVyZUdyb3VwIiwiZWRnZXNDaGVja2JveCIsInNldEVkZ2VzQ2hlY2tib3giLCJtZW1vaXplZFBvaW50cyIsImN1cnJlbnQiLCJjcmVhdGVFbGVtZW50IiwiUG9pbnRNYXJrZXJzIiwicmVyZW5kZXIiLCJ6b29tTGV2ZWxzIiwiZmFjdG9yaWVzR3JvdXAiLCJ3d3Rwc0dyb3VwIiwiY29sbGVjdG9yc0dyb3VwIiwidHJhY2tMYXllcmJveCIsImNoZWNrYm94IiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwiYWRkRXZlbnRMaXN0ZW5lciIsImNoZWNrZWQiLCJjb25zb2xlIiwid2FybiIsIlN5bWJvbCIsInBvbHlsaW5lRGVjb3JhdG9yIiwiem9vbVJ1bGVzRm9yRXZlbnRzVmlldyIsInBheWxvYWQiLCJGcmFnbWVudCIsImhpZGVBcnJvd3MiLCJhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHMiLCJ6b29tUnVsZXNGb3JEYXNoYWJvYXJkTWFwcyIsIm1lbW9pemVkWm9vbUNvbnRyb2wiLCJpc0ZldGNoaW5nIiwibWVtb2l6ZWRFdmVudCIsImZvY3VzZWQiLCJob3ZlcmVkIiwiRXZlbnQiLCJldmVudCIsImluY2x1ZGVOZXR3b3JrIiwiZXZlbnRGaWx0ZXJQYXJhbSIsInVzZUVmZmVjdCIsImNsZWFudXAiLCJfbWFwUmVmJGN1cnJlbnQiLCJjbGVhckxheWVycyIsInJlbW92ZUxheWVyIiwiaW5pdGlhbGl6ZU1hcCIsInNhdGVsbGl0ZSIsImlzVmFsaWRBcmVhIiwicmVtb3ZlIiwid2F0ZXJBdXRob3JpdHlJZCIsImdldFpvb20iLCJhcmVhIiwic2hhcGVfZGF0YSIsImZsYXQiLCJhcmVhRm9jdXNMb2dpYyIsIl9tYXBSZWYkY3VycmVudDIiLCJjbGlja2VkIiwiZWFjaExheWVyIiwibGF5ZXIiLCJrYW5kb19vYmplY3RfaWQiLCJpc1BvcHVwT3BlbiIsIk1hcmtlciIsImZpcmUiLCJQb2x5Z29uIiwic2lkZW5hdkV4cGFuZGVkIiwiaWQiLCJzaG91bGRMb2FkTWFwT2JqZWN0cyIsIkFyZWFQb2x5Z29ucyIsIm1hcFpvb20iLCJmZWF0dXJlR3JvdXAiLCJzaG91ZExvYWREZXBlbmRlbnRNYXBPYmplY3RzIiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9NYXAudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCAqIGFzIEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgJ3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0ICdsZWFmbGV0Lm1hcmtlcmNsdXN0ZXInO1xuaW1wb3J0ICdsZWFmbGV0LnBhdHRlcm4nO1xuaW1wb3J0IFJlYWN0LCB7XG4gIENTU1Byb3BlcnRpZXMsXG4gIHVzZUVmZmVjdCxcbiAgdXNlTWVtbyxcbiAgdXNlUmVmLFxuICB1c2VTdGF0ZSxcbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgdXNlRGlzcGF0Y2gsIHVzZVNlbGVjdG9yIH0gZnJvbSAncmVhY3QtcmVkdXgnO1xuaW1wb3J0IHsgSUFyZWEgfSBmcm9tICdzcmMvc3RvcmUvYXJlYXMvbW9kZWxzL0lBcmVhJztcbmltcG9ydCB7IElFZGdlIH0gZnJvbSAnc3JjL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICdzcmMvc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuLy8gaW1wb3J0IHsgc3RvcmVNYXAgfSBmcm9tICdzcmMvc3RvcmUvZ2xvYmFsL2FjdGlvbnMnO1xuaW1wb3J0IHsgSUdsb2JhbFN0YXRlIH0gZnJvbSAnc3JjL3N0b3JlL2dsb2JhbC9tb2RlbHMvSUdsb2JhbFN0YXRlJztcbmltcG9ydCB7IElQb2ludCB9IGZyb20gJ3NyYy9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgRXJyb3JCb3VuZGFyeSBmcm9tICdzcmMvdXRpbGl0aWVzL0Vycm9yQm91bmRhcnknO1xuaW1wb3J0IHsgQXJlYVBvbHlnb25zIH0gZnJvbSAnLi9hcmVhcy9BcmVhUG9seWdvbnMnO1xuaW1wb3J0IEVkZ2VzIGZyb20gJy4vZWRnZXMvRWRnZXMnO1xuaW1wb3J0ICcuL01hcC5zY3NzJztcbmltcG9ydCAnLi9wb2ludHMvUG9pbnRJY29uLnNjc3MnO1xuaW1wb3J0IHsgUG9pbnRNYXJrZXJzIH0gZnJvbSAnLi9wb2ludHMvUG9pbnRNYXJrZXJzJztcbmltcG9ydCB7IGFwcFJlZHVjZXIgfSBmcm9tICcuLi8uLi9zdG9yZS9yb290UmVkdWNlcic7XG5pbXBvcnQgeyBFdmVudCB9IGZyb20gJy4vZXZlbnRzL0V2ZW50JztcbmltcG9ydCB7XG4gIGFyZWFGb2N1c0xvZ2ljLFxuICBpbml0aWFsaXplTWFwLFxuICBpc1ZhbGlkQXJlYSxcbiAgc2hvdWRMb2FkRGVwZW5kZW50TWFwT2JqZWN0cyxcbiAgc2hvdWxkTG9hZE1hcE9iamVjdHMsXG4gIHpvb21MZXZlbHMsXG59IGZyb20gJy4vTWFwVXRpbHMnO1xuaW1wb3J0IHsgbGVhZmxldE1hcCB9IGZyb20gJy4uLy4uL3N0eWxlcy90aGVtZS90aGVtZSc7XG5pbXBvcnQgaTE4biBmcm9tICcuLi8uLi91dGlsaXRpZXMvaTE4bic7XG5pbXBvcnQgeyB1c2VTZWxlY3RlZEl0ZW0gfSBmcm9tICdzcmMvcGFnZXMvRGFzaGJvYXJkTWFwL0xpc3RDb250ZXh0JztcbnJlcXVpcmUoJ2xlYWZsZXQubWFya2VyY2x1c3RlcicpO1xucmVxdWlyZSgnc3JjL3V0aWxpdGllcy9wb2x5bGluZWRlY29yYXRvcicpO1xuXG5pbnRlcmZhY2UgTWFwUHJvcHMge1xuICBhcmVhczogSUFyZWFbXTtcbiAgZWRnZXM/OiBJRWRnZVtdO1xuICBwb2ludHM/OiBJUG9pbnRbXTtcbiAgZ2xvYmFsX2RhdGE6IElHbG9iYWxTdGF0ZTtcbiAgYXJlYVRvQ2VudGVyQnk/OiBhbnk7XG4gIGZvY3VzZWRFdmVudD86IElFdmVudCB8IG51bGw7XG4gIGhvdmVyZWRFdmVudD86IElFdmVudCB8IG51bGw7XG4gIGhpZGVFZGdlcz86IGJvb2xlYW47XG4gIG1hcEJveFN0eWxlPzogc3RyaW5nO1xuICBjaGlsZHJlbj86IGFueTtcbiAgc3R5bGU/OiBDU1NQcm9wZXJ0aWVzO1xuICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHM/OiBib29sZWFuO1xuICBpbmNsdWRlVW5tb25pdG9yZWREZXNjZW5kYW50c0ZvckVkZ2VzPzogYm9vbGVhbjtcbiAgZm9yRXZlbnRzVmlldzogYm9vbGVhbjtcbiAgZm9yV1dUUERhc2hib2FyZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBjb25zdCBNYXA6IFJlYWN0LkZDPE1hcFByb3BzPiA9ICh7XG4gIGFyZWFzLFxuICBlZGdlcyxcbiAgcG9pbnRzLFxuICBnbG9iYWxfZGF0YSxcbiAgYXJlYVRvQ2VudGVyQnksXG4gIGZvY3VzZWRFdmVudCxcbiAgaG92ZXJlZEV2ZW50LFxuICBoaWRlRWRnZXMgPSBmYWxzZSxcbiAgbWFwQm94U3R5bGUgPSBsZWFmbGV0TWFwLm1hcERlZmF1bHQsXG4gIGNoaWxkcmVuLFxuICBpbmNsdWRlVW5tb25pdG9yZWRQb2ludHMgPSB0cnVlLFxuICBpbmNsdWRlVW5tb25pdG9yZWREZXNjZW5kYW50c0ZvckVkZ2VzID0gZmFsc2UsXG4gIGZvckV2ZW50c1ZpZXcgPSBmYWxzZSxcbiAgc3R5bGUgPSB7fSxcbiAgZm9yV1dUUERhc2hib2FyZCA9IGZhbHNlLFxufSkgPT4ge1xuICBjb25zdCB7IG1hcCB9ID0gZ2xvYmFsX2RhdGE7XG4gIGNvbnN0IG1hcFJlZiA9IHVzZVJlZjxMLk1hcCB8IG51bGw+KG51bGwpO1xuICBjb25zdCBkaXNwYXRjaCA9IHVzZURpc3BhdGNoKCk7XG4gIGNvbnN0IFttYXBab29tTGV2ZWwsIHNldE1hcFpvb21MZXZlbF0gPSB1c2VTdGF0ZSgyKTtcbiAgY29uc3QgeyBzZWxlY3RlZEl0ZW0gfSA9IHVzZVNlbGVjdGVkSXRlbSgpO1xuICBjb25zdCBldmVudHNEYXRhID0gdXNlU2VsZWN0b3IoXG4gICAgKHN0YXRlOiBSZXR1cm5UeXBlPHR5cGVvZiBhcHBSZWR1Y2VyPikgPT4gc3RhdGUuZXZlbnRzX2RhdGEsXG4gICk7XG4gIGNvbnN0IGhvdmVyZWRFdmVudFByZXNlbnQgPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gaG92ZXJlZEV2ZW50ICE9PSBudWxsICYmIGhvdmVyZWRFdmVudCAhPT0gdW5kZWZpbmVkO1xuICB9LCBbaG92ZXJlZEV2ZW50XSk7XG5cbiAgY29uc3QgZm9jdXNlZEV2ZW50UHJlc2VudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBmb2N1c2VkRXZlbnQgIT09IG51bGwgJiYgZm9jdXNlZEV2ZW50ICE9PSB1bmRlZmluZWQ7XG4gIH0sIFtmb2N1c2VkRXZlbnRdKTtcblxuICBjb25zdCBbZmFjdG9yaWVzQ2x1c3Rlckdyb3VwXSA9IHVzZVN0YXRlKFxuICAgIHdpbmRvdy5jdXN0b21MZWFmbGV0Lm1hcmtlckNsdXN0ZXJHcm91cCh7XG4gICAgICBzcGlkZXJmeU9uTWF4Wm9vbTogZmFsc2UsXG4gICAgICBzaG93Q292ZXJhZ2VPbkhvdmVyOiBmYWxzZSxcbiAgICAgIHpvb21Ub0JvdW5kc09uQ2xpY2s6IHRydWUsXG4gICAgICBhbmltYXRlOiB0cnVlLFxuICAgICAgZGlzYWJsZUNsdXN0ZXJpbmdBdFpvb206IDE1LFxuICAgICAgcmVtb3ZlT3V0c2lkZVZpc2libGVCb3VuZHM6IGZhbHNlLFxuICAgICAgY2h1bmtlZExvYWRpbmc6IHRydWUsXG4gICAgICBpY29uQ3JlYXRlRnVuY3Rpb246IGZ1bmN0aW9uIChjbHVzdGVyKSB7XG4gICAgICAgIHJldHVybiBuZXcgTC5EaXZJY29uKHtcbiAgICAgICAgICBodG1sOiBgPGRpdj48c3Bhbj4ke1xuICAgICAgICAgICAgY2x1c3Rlci5fY2hpbGRDb3VudFxuICAgICAgICAgIH08L3NwYW4+PC9kaXY+PGRpdiBjbGFzcz0nbWFya2VyLWNsdXN0ZXItbmFtZSc+JHtpMThuLnQoXG4gICAgICAgICAgICAnaW5kdXN0cmllcycsXG4gICAgICAgICAgKX08L2Rpdj5gLFxuICAgICAgICAgIGNsYXNzTmFtZTogJ21hcmtlci1jbHVzdGVyJyxcbiAgICAgICAgICBpY29uU2l6ZTogbmV3IEwuUG9pbnQoNDAsIDQwKSxcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgIH0pLFxuICApO1xuXG4gIGNvbnN0IFt3d3Rwc0xheWVyR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICBjb25zdCBbY29sbGVjdG9yc0xheWVyR3JvdXBdID0gdXNlU3RhdGUoTC5sYXllckdyb3VwKCkpO1xuICAvL2NvbnN0IFtmYWN0b3JpZXNMYXllckdyb3VwXSA9IHVzZVN0YXRlKEwubGF5ZXJHcm91cCgpKTtcbiAgY29uc3QgW2FyZWFzTGF5ZXJHcm91cF0gPSB1c2VTdGF0ZShuZXcgTC5GZWF0dXJlR3JvdXAoKSk7XG4gIGNvbnN0IFtlZGdlc0NoZWNrYm94LCBzZXRFZGdlc0NoZWNrYm94XSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICBjb25zdCBtZW1vaXplZFBvaW50cyA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICBtYXBSZWYuY3VycmVudCAhPT0gbnVsbCAmJlxuICAgICAgcG9pbnRzICYmIChcbiAgICAgICAgPFBvaW50TWFya2Vyc1xuICAgICAgICAgIG1hcD17bWFwUmVmLmN1cnJlbnR9XG4gICAgICAgICAgcG9pbnRzPXtwb2ludHN9XG4gICAgICAgICAgaW5jbHVkZVVubW9uaXRvcmVkUG9pbnRzPXtpbmNsdWRlVW5tb25pdG9yZWRQb2ludHN9XG4gICAgICAgICAgcmVyZW5kZXI9e3pvb21MZXZlbHNbbWFwWm9vbUxldmVsXX1cbiAgICAgICAgICBmYWN0b3JpZXNHcm91cD17ZmFjdG9yaWVzQ2x1c3Rlckdyb3VwfVxuICAgICAgICAgIHd3dHBzR3JvdXA9e3d3dHBzTGF5ZXJHcm91cH1cbiAgICAgICAgICBjb2xsZWN0b3JzR3JvdXA9e2NvbGxlY3RvcnNMYXllckdyb3VwfVxuICAgICAgICAgIGZvckV2ZW50c1ZpZXc9e2ZhbHNlfVxuICAgICAgICAvPlxuICAgICAgKVxuICAgICk7XG4gIH0sIFttYXBSZWYuY3VycmVudCwgcG9pbnRzLCBmb2N1c2VkRXZlbnRQcmVzZW50LCBtYXBab29tTGV2ZWxdKTtcblxuICAvLyBjb25zdCBhY3RpdmF0ZVpvb21Db250cm9sRm9ySWNvbnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgLy8gICBtYXBSZWYuY3VycmVudCAhPT0gbnVsbCAmJiBpY29uWm9vbUNvbnRyb2wobWFwUmVmLmN1cnJlbnQpO1xuICAvLyB9LCBbbWFwUmVmLmN1cnJlbnQsIHBvaW50cywgZm9jdXNlZEV2ZW50UHJlc2VudF0pO1xuXG4gIGNvbnN0IHRyYWNrTGF5ZXJib3ggPSAoKSA9PiB7XG4gICAgbGV0IGNoZWNrYm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI2VkZ2VzLWNoZWNrYm94Jyk7XG4gICAgY2hlY2tib3guYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKCkgPT4ge1xuICAgICAgc2V0RWRnZXNDaGVja2JveChjaGVja2JveC5jaGVja2VkKTtcbiAgICAgIGNvbnNvbGUud2FybignUk9PVCBMJywgd2luZG93LkwpO1xuICAgICAgY29uc29sZS53YXJuKCdST09UIEwuU3ltYm9sJywgd2luZG93LkwuU3ltYm9sKTtcbiAgICAgIGNvbnNvbGUud2FybignUk9PVCBMLnBvbHlsaW5lRGVjb3JhdG9yJywgd2luZG93LkwucG9seWxpbmVEZWNvcmF0b3IpO1xuICAgIH0pO1xuICB9O1xuXG4gIGNvbnN0IHpvb21SdWxlc0ZvckV2ZW50c1ZpZXcgPSAoKSA9PiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IChcbiAgICAgIDw+XG4gICAgICAgIHtlZGdlc0NoZWNrYm94ICYmIChcbiAgICAgICAgICA8RWRnZXNcbiAgICAgICAgICAgIGVkZ2VzPXtlZGdlcyF9XG4gICAgICAgICAgICBtYXA9e21hcFJlZi5jdXJyZW50fVxuICAgICAgICAgICAgTD17TH1cbiAgICAgICAgICAgIHBvaW50cz17cG9pbnRzIX1cbiAgICAgICAgICAgIGhpZGVFZGdlcz17aGlkZUVkZ2VzfVxuICAgICAgICAgICAgaGlkZUFycm93cz17dHJ1ZX1cbiAgICAgICAgICAgIGFsbG93VW5tb25pdG9yZWREZXNjZW5kYW50cz17aW5jbHVkZVVubW9uaXRvcmVkRGVzY2VuZGFudHNGb3JFZGdlc31cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7bWVtb2l6ZWRQb2ludHN9XG4gICAgICA8Lz5cbiAgICApO1xuXG4gICAgcmV0dXJuIHBheWxvYWQ7XG4gIH07XG5cbiAgY29uc3Qgem9vbVJ1bGVzRm9yRGFzaGFib2FyZE1hcHMgPSAoKSA9PiB7XG4gICAgbGV0IHBheWxvYWQgPSA8PnttZW1vaXplZFBvaW50c308Lz47XG4gICAgc3dpdGNoICh6b29tTGV2ZWxzW21hcFpvb21MZXZlbF0pIHtcbiAgICAgIGNhc2UgJ1NtYWxsJzpcbiAgICAgIGNhc2UgJ01lZGl1bSc6XG4gICAgICAgIHBheWxvYWQgPSB6b29tUnVsZXNGb3JFdmVudHNWaWV3KCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgLy8gY2FzZSAnTUxhcmdlJzpcbiAgICAgIC8vIGNhc2UgJ0xhcmdlJzpcbiAgICAgIC8vIGNhc2UgJ1hMYXJnZSc6XG4gICAgICAvLyBkZWZhdWx0OlxuICAgICAgLy8gICBwYXlsb2FkID0gPD57bWVtb2l6ZWRQb2ludHN9PC8+O1xuICAgICAgLy8gICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfTtcblxuICBjb25zdCBtZW1vaXplZFpvb21Db250cm9sID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgcGF5bG9hZCA9IGZvckV2ZW50c1ZpZXdcbiAgICAgID8gem9vbVJ1bGVzRm9yRXZlbnRzVmlldygpXG4gICAgICA6IHpvb21SdWxlc0ZvckRhc2hhYm9hcmRNYXBzKCk7XG5cbiAgICByZXR1cm4gcGF5bG9hZDtcbiAgfSwgW1xuICAgIG1hcFpvb21MZXZlbCxcbiAgICBldmVudHNEYXRhLmlzRmV0Y2hpbmcsXG4gICAgZm9jdXNlZEV2ZW50LFxuICAgIGhvdmVyZWRFdmVudCxcbiAgICBwb2ludHMsXG4gICAgbWFwUmVmLmN1cnJlbnQsXG4gICAgZWRnZXNDaGVja2JveCxcbiAgXSk7XG5cbiAgY29uc3QgbWVtb2l6ZWRFdmVudCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGlmIChmb2N1c2VkRXZlbnRQcmVzZW50KSB7XG4gICAgICBmb2N1c2VkRXZlbnQhLmZvY3VzZWQgPSBmb2N1c2VkRXZlbnRQcmVzZW50O1xuICAgICAgZm9jdXNlZEV2ZW50IS5ob3ZlcmVkID0gIWZvY3VzZWRFdmVudFByZXNlbnQ7XG4gICAgfVxuXG4gICAgaWYgKGhvdmVyZWRFdmVudFByZXNlbnQpIHtcbiAgICAgIGhvdmVyZWRFdmVudCEuaG92ZXJlZCA9IGhvdmVyZWRFdmVudFByZXNlbnQ7XG4gICAgICBob3ZlcmVkRXZlbnQhLmZvY3VzZWQgPSAhaG92ZXJlZEV2ZW50UHJlc2VudDtcbiAgICB9XG5cbiAgICBpZiAoIWhvdmVyZWRFdmVudFByZXNlbnQgJiYgIWZvY3VzZWRFdmVudFByZXNlbnQpIHJldHVybiA8PjwvPjtcbiAgICByZXR1cm4gKFxuICAgICAgPEV2ZW50XG4gICAgICAgIGV2ZW50PXtmb2N1c2VkRXZlbnQhIHx8IGhvdmVyZWRFdmVudCF9XG4gICAgICAgIG1hcD17bWFwfVxuICAgICAgICBlZGdlcz17ZWRnZXMhfVxuICAgICAgICBwb2ludHM9e3BvaW50cyF9XG4gICAgICAgIGluY2x1ZGVOZXR3b3JrPXshaG92ZXJlZEV2ZW50UHJlc2VudH1cbiAgICAgIC8+XG4gICAgKTtcbiAgfSwgW2ZvY3VzZWRFdmVudCwgaG92ZXJlZEV2ZW50LCBnbG9iYWxfZGF0YS5ldmVudEZpbHRlclBhcmFtXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZXR1cm4gZnVuY3Rpb24gY2xlYW51cCgpIHtcbiAgICAgIGNvbGxlY3RvcnNMYXllckdyb3VwLmNsZWFyTGF5ZXJzKCk7XG4gICAgICBtYXBSZWYuY3VycmVudD8ucmVtb3ZlTGF5ZXIoY29sbGVjdG9yc0xheWVyR3JvdXApO1xuICAgIH07XG4gIH0sIFtmb2N1c2VkRXZlbnQsIGhvdmVyZWRFdmVudCwgZ2xvYmFsX2RhdGEuZXZlbnRGaWx0ZXJQYXJhbV0pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaW5pdGlhbGl6ZU1hcChcbiAgICAgIG1hcFpvb21MZXZlbCxcbiAgICAgIG1hcEJveFN0eWxlLFxuICAgICAgbGVhZmxldE1hcC5zYXRlbGxpdGUsXG4gICAgICBtYXBSZWYsXG4gICAgICBkaXNwYXRjaCxcbiAgICAgIGlzVmFsaWRBcmVhLFxuICAgICAgYXJlYVRvQ2VudGVyQnksXG4gICAgICBzZXRNYXBab29tTGV2ZWwsXG4gICAgICBmb3JXV1RQRGFzaGJvYXJkLFxuICAgICAgZm9yRXZlbnRzVmlldyxcbiAgICApO1xuXG4gICAgcmV0dXJuIGZ1bmN0aW9uIGNsZWFudXAoKSB7XG4gICAgICAvLyBmYWN0b3JpZXNDbHVzdGVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgIC8vIHd3dHBzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgLy8gY29sbGVjdG9yc0xheWVyR3JvdXAuY2xlYXJMYXllcnMoKTtcbiAgICAgIC8vIGFyZWFzTGF5ZXJHcm91cC5jbGVhckxheWVycygpO1xuICAgICAgLy8gbWFwUmVmLmN1cnJlbnQ/LnJlbW92ZUxheWVyKGZhY3Rvcmllc0NsdXN0ZXJHcm91cCk7XG4gICAgICAvLyBtYXBSZWYuY3VycmVudD8ucmVtb3ZlTGF5ZXIod3d0cHNMYXllckdyb3VwKTtcbiAgICAgIC8vIG1hcFJlZi5jdXJyZW50Py5yZW1vdmVMYXllcihjb2xsZWN0b3JzTGF5ZXJHcm91cCk7XG4gICAgICAvLyBtYXBSZWYuY3VycmVudD8ucmVtb3ZlTGF5ZXIoYXJlYXNMYXllckdyb3VwKTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIG1hcFJlZi5jdXJyZW50LnJlbW92ZSgpO1xuICAgICAgLy8gZGlzcGF0Y2goc3RvcmVNYXAodW5kZWZpbmVkKSk7XG4gICAgfTtcbiAgfSwgW2dsb2JhbF9kYXRhLndhdGVyQXV0aG9yaXR5SWRdKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghbWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIGluaXRpYWxpemVNYXAoXG4gICAgICAgIG1hcFpvb21MZXZlbCxcbiAgICAgICAgbWFwQm94U3R5bGUsXG4gICAgICAgIGxlYWZsZXRNYXAuc2F0ZWxsaXRlLFxuICAgICAgICBtYXBSZWYsXG4gICAgICAgIGRpc3BhdGNoLFxuICAgICAgICBpc1ZhbGlkQXJlYSxcbiAgICAgICAgYXJlYVRvQ2VudGVyQnksXG4gICAgICAgIHNldE1hcFpvb21MZXZlbCxcbiAgICAgICAgZm9yV1dUUERhc2hib2FyZCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldE1hcFpvb21MZXZlbChtYXBSZWYuY3VycmVudC5nZXRab29tKCkpO1xuICAgICAgaWYgKCFhcmVhVG9DZW50ZXJCeSkge1xuICAgICAgICBhcmVhVG9DZW50ZXJCeSA9IGFyZWFzLm1hcCgoYXJlYSkgPT4gYXJlYS5zaGFwZV9kYXRhKS5mbGF0KCk7XG4gICAgICB9XG5cbiAgICAgIGFyZWFGb2N1c0xvZ2ljKG1hcFJlZiwgaXNWYWxpZEFyZWEsIGFyZWFUb0NlbnRlckJ5KTtcbiAgICAgIHRyYWNrTGF5ZXJib3goKTtcbiAgICB9XG4gIH0sIFttYXBSZWYuY3VycmVudCwgYXJlYVRvQ2VudGVyQnldKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxldCBjbGlja2VkID0gZmFsc2U7XG5cbiAgICBtYXBSZWYuY3VycmVudD8uZWFjaExheWVyKChsYXllcikgPT4ge1xuICAgICAgaWYgKGNsaWNrZWQpIHJldHVybjtcblxuICAgICAgaWYgKFxuICAgICAgICBsYXllcj8ua2FuZG9fb2JqZWN0X2lkID09PSBzZWxlY3RlZEl0ZW0gJiZcbiAgICAgICAgbGF5ZXIuaXNQb3B1cE9wZW4oKSA9PT0gZmFsc2VcbiAgICAgICkge1xuICAgICAgICBpZiAobGF5ZXIgaW5zdGFuY2VvZiBMLk1hcmtlcikge1xuICAgICAgICAgIGxheWVyLmZpcmUoJ2NsaWNrJyk7XG4gICAgICAgIH0gZWxzZSBpZiAobGF5ZXIgaW5zdGFuY2VvZiBMLlBvbHlnb24pIHtcbiAgICAgICAgICBsYXllci5maXJlKCdjbGljay1ldmVudCcpO1xuICAgICAgICB9XG4gICAgICAgIGNsaWNrZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0pO1xuICB9LCBbc2VsZWN0ZWRJdGVtXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImtkLW1hcC1jb250YWluZXJcIiBzdHlsZT17c3R5bGV9PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2AgbWFwLWNvbnRhaW5lciAke1xuICAgICAgICAgIGdsb2JhbF9kYXRhLnNpZGVuYXZFeHBhbmRlZCA/ICcnIDogJ21hcC1jb250YWluZXItLXNpZGVuYXYtY29sbGFwc2VkJ1xuICAgICAgICB9YH1cbiAgICAgID5cbiAgICAgICAgPEVycm9yQm91bmRhcnk+XG4gICAgICAgICAgPGRpdiBpZD1cIm1hcFwiPjwvZGl2PlxuICAgICAgICAgIHtzaG91bGRMb2FkTWFwT2JqZWN0cyhnbG9iYWxfZGF0YSwgbWFwUmVmLCBlZGdlcywgcG9pbnRzKSAmJiAoXG4gICAgICAgICAgICA8QXJlYVBvbHlnb25zXG4gICAgICAgICAgICAgIGFyZWFzPXthcmVhc31cbiAgICAgICAgICAgICAgbWFwPXttYXBSZWYuY3VycmVudH1cbiAgICAgICAgICAgICAgTD17TH1cbiAgICAgICAgICAgICAgYXJlYVRvQ2VudGVyQnk9e2FyZWFUb0NlbnRlckJ5fVxuICAgICAgICAgICAgICBtYXBab29tPXttYXBab29tTGV2ZWx9XG4gICAgICAgICAgICAgIHJlcmVuZGVyPXt6b29tTGV2ZWxzW21hcFpvb21MZXZlbF19XG4gICAgICAgICAgICAgIGdsb2JhbF9kYXRhPXtnbG9iYWxfZGF0YX1cbiAgICAgICAgICAgICAgZmVhdHVyZUdyb3VwPXthcmVhc0xheWVyR3JvdXB9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge3Nob3VkTG9hZERlcGVuZGVudE1hcE9iamVjdHMoXG4gICAgICAgICAgICBlZGdlcyxcbiAgICAgICAgICAgIGFyZWFzLFxuICAgICAgICAgICAgZ2xvYmFsX2RhdGEsXG4gICAgICAgICAgICBtYXBSZWYsXG4gICAgICAgICAgICBwb2ludHMsXG4gICAgICAgICAgKSAmJiAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICB7bWVtb2l6ZWRFdmVudH1cbiAgICAgICAgICAgICAge21lbW9pemVkWm9vbUNvbnRyb2x9XG4gICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAg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
|
|
@@ -56,7 +56,7 @@ const Edge = _ref => {
|
|
|
56
56
|
polylineFront.bringToFront();
|
|
57
57
|
let tailDash;
|
|
58
58
|
if (window.L.Symbol !== undefined) {
|
|
59
|
-
tailDash = L.polylineDecorator(polylineBack._latlngs, {
|
|
59
|
+
tailDash = window.L.polylineDecorator(polylineBack._latlngs, {
|
|
60
60
|
patterns: [
|
|
61
61
|
// defines a pattern of 10px-wide dashes, repeated every 20px on the line
|
|
62
62
|
{
|
|
@@ -86,4 +86,4 @@ const Edge = _ref => {
|
|
|
86
86
|
const connector = (0, _reactRedux.connect)(null);
|
|
87
87
|
var _default = connector(Edge);
|
|
88
88
|
exports.default = _default;
|
|
89
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkVkZ2UiLCJfcmVmIiwiTCIsIm1hcCIsImVkZ2UiLCJwb2ludHMiLCJoaWRlRWRnZXMiLCJhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHMiLCJzcGVjaWZpY0V2ZW50IiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsInNoYXBlRGF0YUV4aXN0Iiwia2V5cyIsInNoYXBlX2RhdGEiLCJsZW5ndGgiLCJmaW5kIiwiZGF0YSIsImxhdCIsImxuZyIsInVuZGVmaW5lZCIsInVzZUVmZmVjdCIsImxhdGxuZ3MiLCJmb3JFYWNoIiwicHVzaCIsInNvdXJjZVBvaW50IiwiZmlsdGVyIiwicG9pbnQiLCJpZCIsInNvdXJjZV9wb2ludF9pZCIsInRhcmdldFBvaW50IiwidGFyZ2V0X3BvaW50X2lkIiwicG9seWxpbmVCYWNrIiwicG9seWxpbmUiLCJjb2xvciIsIndlaWdodCIsIm9wYWNpdHkiLCJhZGRUbyIsImJpbmRQb3B1cCIsImdyb3VwIiwibmFtZSIsImRpc3RhbmNlIiwiYnJpbmdUb0Zyb250IiwicG9seWxpbmVGcm9udCIsInRhaWxEYXNoIiwid2luZG93IiwiU3ltYm9sIiwicG9seWxpbmVEZWNvcmF0b3IiLCJfbGF0bG5ncyIsInBhdHRlcm5zIiwib2Zmc2V0IiwicmVwZWF0Iiwic3ltYm9sIiwiYXJyb3dIZWFkIiwicGl4ZWxTaXplIiwicG9seWdvbiIsInBhdGhPcHRpb25zIiwic3Ryb2tlIiwic2V0SG92ZXJlZEVkZ2VQYXRocyIsImNyZWF0ZUVsZW1lbnQiLCJjb25uZWN0b3IiLCJjb25uZWN0IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL2VkZ2VzL0VkZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb25uZWN0LCBDb25uZWN0ZWRQcm9wcywgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9tb2RlbHMvSUVkZ2UnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCAnLi9FZGdlLnNjc3MnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgc2V0SG92ZXJlZEVkZ2VQYXRocyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbnR5cGUgUHJvcHMgPSBDb25uZWN0ZWRQcm9wczx0eXBlb2YgY29ubmVjdG9yPiAmIHtcbiAgbWFwOiBhbnk7XG4gIEw6IGFueTtcbiAgZWRnZTogSUVkZ2U7XG4gIHBvaW50czogYW55O1xuICBoaWRlRWRnZXM/OiBib29sZWFuO1xuICBzcGVjaWZpY0V2ZW50PzogSUV2ZW50O1xuICBhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHM/OiBib29sZWFuO1xufTtcblxuY29uc3QgRWRnZTogUmVhY3QuRkM8UHJvcHM+ID0gKHtcbiAgTCxcbiAgbWFwLFxuICBlZGdlLFxuICBwb2ludHMsXG4gIGhpZGVFZGdlcyA9IGZhbHNlLFxuICBhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHMgPSBmYWxzZSxcbiAgc3BlY2lmaWNFdmVudCxcbn0pID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBzaGFwZURhdGFFeGlzdCA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgT2JqZWN0LmtleXMoZWRnZS5zaGFwZV9kYXRhKS5sZW5ndGggIT09IDAgJiZcbiAgICAgIGVkZ2Uuc2hhcGVfZGF0YS5maW5kKFxuICAgICAgICAoZGF0YTogYW55KSA9PiBkYXRhLmxhdCA9PT0gbnVsbCB8fCBkYXRhLmxuZyA9PT0gbnVsbCxcbiAgICAgICkgPT09IHVuZGVmaW5lZFxuICAgICk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2hhcGVEYXRhRXhpc3QoKSkge1xuICAgICAgbGV0IGxhdGxuZ3M6IGFueSA9IFtdO1xuICAgICAgZWRnZS5zaGFwZV9kYXRhLmZvckVhY2goKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBsYXRsbmdzLnB1c2goW2RhdGEubGF0LCBkYXRhLmxuZ10pO1xuICAgICAgfSk7XG5cbiAgICAgIGxldCBzb3VyY2VQb2ludCA9IHBvaW50cy5maWx0ZXIoXG4gICAgICAgIChwb2ludDogSVBvaW50KSA9PiBwb2ludC5pZCA9PT0gZWRnZS5zb3VyY2VfcG9pbnRfaWQsXG4gICAgICApO1xuICAgICAgbGV0IHRhcmdldFBvaW50ID0gcG9pbnRzLmZpbHRlcihcbiAgICAgICAgKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LmlkID09PSBlZGdlLnRhcmdldF9wb2ludF9pZCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgICBpZiAoc291cmNlUG9pbnRbMF0gPT09IHVuZGVmaW5lZCB8fCB0YXJnZXRQb2ludFswXSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG5cbiAgICAgIGxldCBwb2x5bGluZUJhY2s6IGFueSA9IEwucG9seWxpbmUobGF0bG5ncywge1xuICAgICAgICBjb2xvcjogJ3JnYigyMjcsMjI3LDIyNyknLFxuICAgICAgICB3ZWlnaHQ6IGhpZGVFZGdlcyA/IDAgOiA2LFxuICAgICAgICBvcGFjaXR5OiBoaWRlRWRnZXMgPyAwIDogMSxcbiAgICAgIH0pLmFkZFRvKG1hcCk7XG5cbiAgICAgIHBvbHlsaW5lQmFjay5iaW5kUG9wdXAoYEVkZ2UgSUQ6ICR7ZWRnZS5pZH0sPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZSBwb2ludDogJHtzb3VyY2VQb2ludFswXS5ncm91cC5uYW1lfSw8YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0IHBvaW50OiAke3RhcmdldFBvaW50WzBdLmdyb3VwLm5hbWV9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3RhbmNlOiAke2VkZ2UuZGlzdGFuY2V9YCk7XG5cbiAgICAgIHBvbHlsaW5lQmFja1sna2FuZG9fb2JqZWN0X2lkJ10gPSBlZGdlLmlkO1xuICAgICAgcG9seWxpbmVCYWNrWydrYW5kb19vYmplY3QnXSA9ICdFZGdlJztcblxuICAgICAgcG9seWxpbmVCYWNrLmJyaW5nVG9Gcm9udCgpO1xuXG4gICAgICBsZXQgcG9seWxpbmVGcm9udDogYW55ID0gTC5wb2x5bGluZShsYXRsbmdzLCB7XG4gICAgICAgIGNvbG9yOiAncmdiKDE1NywxNTcsMTU3KScsXG4gICAgICAgIHdlaWdodDogaGlkZUVkZ2VzID8gMCA6IDEsXG4gICAgICAgIG9wYWNpdHk6IGhpZGVFZGdlcyA/IDAgOiAxLFxuICAgICAgfSkuYWRkVG8obWFwKTtcblxuICAgICAgcG9seWxpbmVGcm9udFsna2FuZG9fb2JqZWN0X2lkJ10gPSBlZGdlLmlkO1xuICAgICAgcG9seWxpbmVGcm9udFsna2FuZG9fb2JqZWN0J10gPSAnRWRnZUZyb250JztcbiAgICAgIHBvbHlsaW5lRnJvbnQuYnJpbmdUb0Zyb250KCk7XG5cbiAgICAgIGxldCB0YWlsRGFzaDogYW55O1xuICAgICAgaWYgKHdpbmRvdy5MLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRhaWxEYXNoID0gTC5wb2x5bGluZURlY29yYXRvcihwb2x5bGluZUJhY2suX2xhdGxuZ3MsIHtcbiAgICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBvZmZzZXQ6IDE1LFxuICAgICAgICAgICAgICByZXBlYXQ6IDI1LFxuICAgICAgICAgICAgICBzeW1ib2w6IHdpbmRvdy5MLlN5bWJvbC5hcnJvd0hlYWQoe1xuICAgICAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBwYXRoT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2IoMTQ4LDE0OCwxNDgpJyxcbiAgICAgICAgICAgICAgICAgIHdlaWdodDogaGlkZUVkZ2VzID8gMCA6IDEsXG4gICAgICAgICAgICAgICAgICBvcGFjaXR5OiBoaWRlRWRnZXMgPyAwIDogMSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgdGFpbERhc2hbJ2thbmRvX29iamVjdCddID0gJ0Fycm93JztcbiAgICAgIH1cblxuICAgICAgaWYgKHNwZWNpZmljRXZlbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRWRnZVBhdGhzKFtwb2x5bGluZUJhY2ssIHBvbHlsaW5lRnJvbnRdKSk7XG4gICAgICB9XG4gICAgfVxuICB9LCBbZWRnZSwgc3BlY2lmaWNFdmVudF0pO1xuXG4gIHJldHVybiA8ZGl2PjwvZGl2Pjtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobnVsbCk7XG5leHBvcnQgZGVmYXVsdCBjb25uZWN0b3IoRWRnZSk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUQsT0FBQTtBQUdBQSxPQUFBO0FBRUEsSUFBQUUsUUFBQSxHQUFBRixPQUFBO0FBQW9FLFNBQUFHLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFMLHdCQUFBUyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJBQUFFLE9BQUEsRUFBQUYsR0FBQSxVQUFBRyxLQUFBLEdBQUFSLHdCQUFBLENBQUFDLFdBQUEsT0FBQU8sS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUosR0FBQSxZQUFBRyxLQUFBLENBQUFFLEdBQUEsQ0FBQUwsR0FBQSxTQUFBTSxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVgsR0FBQSxRQUFBVyxHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFkLEdBQUEsRUFBQVcsR0FBQSxTQUFBSSxJQUFBLEdBQUFSLHFCQUFB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
|
|
89
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIkVkZ2UiLCJfcmVmIiwiTCIsIm1hcCIsImVkZ2UiLCJwb2ludHMiLCJoaWRlRWRnZXMiLCJhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHMiLCJzcGVjaWZpY0V2ZW50IiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsInNoYXBlRGF0YUV4aXN0Iiwia2V5cyIsInNoYXBlX2RhdGEiLCJsZW5ndGgiLCJmaW5kIiwiZGF0YSIsImxhdCIsImxuZyIsInVuZGVmaW5lZCIsInVzZUVmZmVjdCIsImxhdGxuZ3MiLCJmb3JFYWNoIiwicHVzaCIsInNvdXJjZVBvaW50IiwiZmlsdGVyIiwicG9pbnQiLCJpZCIsInNvdXJjZV9wb2ludF9pZCIsInRhcmdldFBvaW50IiwidGFyZ2V0X3BvaW50X2lkIiwicG9seWxpbmVCYWNrIiwicG9seWxpbmUiLCJjb2xvciIsIndlaWdodCIsIm9wYWNpdHkiLCJhZGRUbyIsImJpbmRQb3B1cCIsImdyb3VwIiwibmFtZSIsImRpc3RhbmNlIiwiYnJpbmdUb0Zyb250IiwicG9seWxpbmVGcm9udCIsInRhaWxEYXNoIiwid2luZG93IiwiU3ltYm9sIiwicG9seWxpbmVEZWNvcmF0b3IiLCJfbGF0bG5ncyIsInBhdHRlcm5zIiwib2Zmc2V0IiwicmVwZWF0Iiwic3ltYm9sIiwiYXJyb3dIZWFkIiwicGl4ZWxTaXplIiwicG9seWdvbiIsInBhdGhPcHRpb25zIiwic3Ryb2tlIiwic2V0SG92ZXJlZEVkZ2VQYXRocyIsImNyZWF0ZUVsZW1lbnQiLCJjb25uZWN0b3IiLCJjb25uZWN0IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL2VkZ2VzL0VkZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyBjb25uZWN0LCBDb25uZWN0ZWRQcm9wcywgdXNlRGlzcGF0Y2ggfSBmcm9tICdyZWFjdC1yZWR1eCc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJ3NyYy9zdG9yZS9lZGdlcy9tb2RlbHMvSUVkZ2UnO1xuaW1wb3J0IHsgSVBvaW50IH0gZnJvbSAnc3JjL3N0b3JlL3BvaW50cy9tb2RlbHMvSVBvaW50JztcbmltcG9ydCAnLi9FZGdlLnNjc3MnO1xuaW1wb3J0IHsgSUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZXZlbnRzL21vZGVscy9JRXZlbnQnO1xuaW1wb3J0IHsgc2V0SG92ZXJlZEVkZ2VQYXRocyB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbnR5cGUgUHJvcHMgPSBDb25uZWN0ZWRQcm9wczx0eXBlb2YgY29ubmVjdG9yPiAmIHtcbiAgbWFwOiBhbnk7XG4gIEw6IGFueTtcbiAgZWRnZTogSUVkZ2U7XG4gIHBvaW50czogYW55O1xuICBoaWRlRWRnZXM/OiBib29sZWFuO1xuICBzcGVjaWZpY0V2ZW50PzogSUV2ZW50O1xuICBhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHM/OiBib29sZWFuO1xufTtcblxuY29uc3QgRWRnZTogUmVhY3QuRkM8UHJvcHM+ID0gKHtcbiAgTCxcbiAgbWFwLFxuICBlZGdlLFxuICBwb2ludHMsXG4gIGhpZGVFZGdlcyA9IGZhbHNlLFxuICBhbGxvd1VubW9uaXRvcmVkRGVzY2VuZGFudHMgPSBmYWxzZSxcbiAgc3BlY2lmaWNFdmVudCxcbn0pID0+IHtcbiAgY29uc3QgZGlzcGF0Y2ggPSB1c2VEaXNwYXRjaCgpO1xuICBjb25zdCBzaGFwZURhdGFFeGlzdCA9ICgpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgT2JqZWN0LmtleXMoZWRnZS5zaGFwZV9kYXRhKS5sZW5ndGggIT09IDAgJiZcbiAgICAgIGVkZ2Uuc2hhcGVfZGF0YS5maW5kKFxuICAgICAgICAoZGF0YTogYW55KSA9PiBkYXRhLmxhdCA9PT0gbnVsbCB8fCBkYXRhLmxuZyA9PT0gbnVsbCxcbiAgICAgICkgPT09IHVuZGVmaW5lZFxuICAgICk7XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAoc2hhcGVEYXRhRXhpc3QoKSkge1xuICAgICAgbGV0IGxhdGxuZ3M6IGFueSA9IFtdO1xuICAgICAgZWRnZS5zaGFwZV9kYXRhLmZvckVhY2goKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICBsYXRsbmdzLnB1c2goW2RhdGEubGF0LCBkYXRhLmxuZ10pO1xuICAgICAgfSk7XG5cbiAgICAgIGxldCBzb3VyY2VQb2ludCA9IHBvaW50cy5maWx0ZXIoXG4gICAgICAgIChwb2ludDogSVBvaW50KSA9PiBwb2ludC5pZCA9PT0gZWRnZS5zb3VyY2VfcG9pbnRfaWQsXG4gICAgICApO1xuICAgICAgbGV0IHRhcmdldFBvaW50ID0gcG9pbnRzLmZpbHRlcihcbiAgICAgICAgKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LmlkID09PSBlZGdlLnRhcmdldF9wb2ludF9pZCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChwb2ludHMubGVuZ3RoID09PSAwKSByZXR1cm47XG4gICAgICBpZiAoc291cmNlUG9pbnRbMF0gPT09IHVuZGVmaW5lZCB8fCB0YXJnZXRQb2ludFswXSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG5cbiAgICAgIGxldCBwb2x5bGluZUJhY2s6IGFueSA9IEwucG9seWxpbmUobGF0bG5ncywge1xuICAgICAgICBjb2xvcjogJ3JnYigyMjcsMjI3LDIyNyknLFxuICAgICAgICB3ZWlnaHQ6IGhpZGVFZGdlcyA/IDAgOiA2LFxuICAgICAgICBvcGFjaXR5OiBoaWRlRWRnZXMgPyAwIDogMSxcbiAgICAgIH0pLmFkZFRvKG1hcCk7XG5cbiAgICAgIHBvbHlsaW5lQmFjay5iaW5kUG9wdXAoYEVkZ2UgSUQ6ICR7ZWRnZS5pZH0sPGJyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZSBwb2ludDogJHtzb3VyY2VQb2ludFswXS5ncm91cC5uYW1lfSw8YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0IHBvaW50OiAke3RhcmdldFBvaW50WzBdLmdyb3VwLm5hbWV9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERpc3RhbmNlOiAke2VkZ2UuZGlzdGFuY2V9YCk7XG5cbiAgICAgIHBvbHlsaW5lQmFja1sna2FuZG9fb2JqZWN0X2lkJ10gPSBlZGdlLmlkO1xuICAgICAgcG9seWxpbmVCYWNrWydrYW5kb19vYmplY3QnXSA9ICdFZGdlJztcblxuICAgICAgcG9seWxpbmVCYWNrLmJyaW5nVG9Gcm9udCgpO1xuXG4gICAgICBsZXQgcG9seWxpbmVGcm9udDogYW55ID0gTC5wb2x5bGluZShsYXRsbmdzLCB7XG4gICAgICAgIGNvbG9yOiAncmdiKDE1NywxNTcsMTU3KScsXG4gICAgICAgIHdlaWdodDogaGlkZUVkZ2VzID8gMCA6IDEsXG4gICAgICAgIG9wYWNpdHk6IGhpZGVFZGdlcyA/IDAgOiAxLFxuICAgICAgfSkuYWRkVG8obWFwKTtcblxuICAgICAgcG9seWxpbmVGcm9udFsna2FuZG9fb2JqZWN0X2lkJ10gPSBlZGdlLmlkO1xuICAgICAgcG9seWxpbmVGcm9udFsna2FuZG9fb2JqZWN0J10gPSAnRWRnZUZyb250JztcbiAgICAgIHBvbHlsaW5lRnJvbnQuYnJpbmdUb0Zyb250KCk7XG5cbiAgICAgIGxldCB0YWlsRGFzaDogYW55O1xuICAgICAgaWYgKHdpbmRvdy5MLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRhaWxEYXNoID0gd2luZG93LkwucG9seWxpbmVEZWNvcmF0b3IocG9seWxpbmVCYWNrLl9sYXRsbmdzLCB7XG4gICAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICAgIC8vIGRlZmluZXMgYSBwYXR0ZXJuIG9mIDEwcHgtd2lkZSBkYXNoZXMsIHJlcGVhdGVkIGV2ZXJ5IDIwcHggb24gdGhlIGxpbmVcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb2Zmc2V0OiAxNSxcbiAgICAgICAgICAgICAgcmVwZWF0OiAyNSxcbiAgICAgICAgICAgICAgc3ltYm9sOiB3aW5kb3cuTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgICBwaXhlbFNpemU6IDMsXG4gICAgICAgICAgICAgICAgcG9seWdvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiKDE0OCwxNDgsMTQ4KScsXG4gICAgICAgICAgICAgICAgICB3ZWlnaHQ6IGhpZGVFZGdlcyA/IDAgOiAxLFxuICAgICAgICAgICAgICAgICAgb3BhY2l0eTogaGlkZUVkZ2VzID8gMCA6IDEsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgIHRhaWxEYXNoWydrYW5kb19vYmplY3QnXSA9ICdBcnJvdyc7XG4gICAgICB9XG5cbiAgICAgIGlmIChzcGVjaWZpY0V2ZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgZGlzcGF0Y2goc2V0SG92ZXJlZEVkZ2VQYXRocyhbcG9seWxpbmVCYWNrLCBwb2x5bGluZUZyb250XSkpO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW2VkZ2UsIHNwZWNpZmljRXZlbnRdKTtcblxuICByZXR1cm4gPGRpdj48L2Rpdj47XG59O1xuXG5jb25zdCBjb25uZWN0b3IgPSBjb25uZWN0KG51bGwpO1xuZXhwb3J0IGRlZmF1bHQgY29ubmVjdG9yKEVkZ2UpO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFELE9BQUE7QUFHQUEsT0FBQTtBQUVBLElBQUFFLFFBQUEsR0FBQUYsT0FBQTtBQUFvRSxTQUFBRyx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEsQ0FBQUMsV0FBQSxXQUFBQSxXQUFBLEdBQUFHLGdCQUFBLEdBQUFELGlCQUFBLEtBQUFGLFdBQUE7QUFBQSxTQUFBTCx3QkFBQVMsR0FBQSxFQUFBSixXQUFBLFNBQUFBLFdBQUEsSUFBQUksR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsV0FBQUQsR0FBQSxRQUFBQSxHQUFBLG9CQUFBQSxHQUFBLHdCQUFBQSxHQUFBLDRCQUFBRSxPQUFBLEVBQUFGLEdBQUEsVUFBQUcsS0FBQSxHQUFBUix3QkFBQSxDQUFBQyxXQUFBLE9BQUFPLEtBQUEsSUFBQUEsS0FBQSxDQUFBQyxHQUFBLENBQUFKLEdBQUEsWUFBQUcsS0FBQSxDQUFBRSxHQUFBLENBQUFMLEdBQUEsU0FBQU0sTUFBQSxXQUFBQyxxQkFBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxHQUFBLElBQUFYLEdBQUEsUUFBQVcsR0FBQSxrQkFBQUgsTUFBQSxDQUFBSSxTQUFBLENBQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBZCxHQUFBLEVBQUFXLEdBQUEsU0FBQUksSUFBQSxHQUFB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
|
|
@@ -138,7 +138,7 @@ const EventIndicator = props => {
|
|
|
138
138
|
eventBody.bringToFront();
|
|
139
139
|
let tailDash;
|
|
140
140
|
if (window.L.Symbol !== undefined) {
|
|
141
|
-
tailDash = L.polylineDecorator(eventTail._latlngs, {
|
|
141
|
+
tailDash = window.L.polylineDecorator(eventTail._latlngs, {
|
|
142
142
|
patterns: [
|
|
143
143
|
// defines a pattern of 10px-wide dashes, repeated every 20px on the line
|
|
144
144
|
{
|
|
@@ -169,7 +169,7 @@ const EventIndicator = props => {
|
|
|
169
169
|
tailLine['kando_object'] = 'Decorator';
|
|
170
170
|
let arrowHead;
|
|
171
171
|
if (window.L.Symbol !== undefined) {
|
|
172
|
-
arrowHead = L.polylineDecorator(eventBody, {
|
|
172
|
+
arrowHead = window.L.polylineDecorator(eventBody, {
|
|
173
173
|
patterns: [
|
|
174
174
|
// defines a pattern of 10px-wide dashes, repeated every 20px on the line
|
|
175
175
|
{
|
|
@@ -201,7 +201,7 @@ const EventIndicator = props => {
|
|
|
201
201
|
eventTail['kando_object'] = 'EventTail';
|
|
202
202
|
let tailDash;
|
|
203
203
|
if (window.L.Symbol !== undefined) {
|
|
204
|
-
tailDash = L.polylineDecorator(eventTail._latlngs, {
|
|
204
|
+
tailDash = window.L.polylineDecorator(eventTail._latlngs, {
|
|
205
205
|
patterns: [
|
|
206
206
|
// defines a pattern of 10px-wide dashes, repeated every 20px on the line
|
|
207
207
|
{
|
|
@@ -242,4 +242,4 @@ const EventIndicator = props => {
|
|
|
242
242
|
const connector = (0, _reactRedux.connect)(mapStateToProps);
|
|
243
243
|
var _default = connector(EventIndicator);
|
|
244
244
|
exports.default = _default;
|
|
245
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldEdlb21ldHJ5dXRpbCIsInJlcXVpcmUiLCJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3QiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX3VzZVVwZGF0ZUV2ZW50Qm9keVRhaWwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJnbG9iYWxfZGF0YSIsImVkZ2VzX2RhdGEiLCJFdmVudEluZGljYXRvciIsInByb3BzIiwibWFwIiwiZXZlbnQiLCJwYXRocyIsImV2ZW50SW5kaWNhdG9yIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsImV2ZW50UGFydHMiLCJyZW1vdmVFeGlzdGluZ0luZGljYXRvciIsImVhY2hMYXllciIsImxheWVyIiwicmVtb3ZlTGF5ZXIiLCJtYWtlUGFpcnMiLCJhcnJheSIsInBhaXJzIiwiaSIsImxlbmd0aCIsInB1c2giLCJjYWxjdWxhdGVCb2R5QW5kVGFpbCIsInNlZ21lbnQiLCJib2R5U3RhcnQiLCJib2R5RW5kIiwidGFpbFBhdGgiLCJib2R5UGF0aCIsImZvdW5kQm9keVN0YXJ0IiwiZXZlbnRCb2R5U3RhcnRNYXJrZXIiLCJfbGF0bG5nIiwiZXZlbnRCb2R5RW5kTWFya2VyIiwic3ViU2VnbWVudHMiLCJfbGF0bG5ncyIsInNob3VsZENvbnRpbnVlIiwiZm91bmRCb2R5U3RhcnRPbkN1cnJlbnRTdWJTZWdtZW50IiwiYmVsb25nc1NlZ21lbnQiLCJiZWdpbm5pbmdPZkJvZHkiLCJyZW5kZXJFdmVudEluZGljYXRvciIsInBhdGgiLCJ1bmRlZmluZWQiLCJldmVudF9ib2R5X3BhcnQiLCJldmVudEJvZHlTdGFydCIsIm1hcmtlciIsImludGVycG9sYXRlT25MaW5lIiwiZXZlbnRfdGFpbF9wYXJ0IiwibGF0TG5nIiwiaWNvbiIsImRpdkljb24iLCJpY29uQW5jaG9yIiwiaWNvblNpemUiLCJvcGFjaXR5IiwiYWRkVG8iLCJpZCIsImV2ZW50Qm9keUVuZCIsImV2ZW50VGFpbCIsInBvbHlsaW5lIiwiY29sb3IiLCJ3ZWlnaHQiLCJjbGFzc05hbWUiLCJldmVudEJvZHkiLCJicmluZ1RvRnJvbnQiLCJ0YWlsRGFzaCIsIndpbmRvdyIsIlN5bWJvbCIsInBvbHlsaW5lRGVjb3JhdG9yIiwicGF0dGVybnMiLCJvZmZzZXQiLCJyZXBlYXQiLCJzeW1ib2wiLCJhcnJvd0hlYWQiLCJwaXhlbFNpemUiLCJwb2x5Z29uIiwicGF0aE9wdGlvbnMiLCJzdHJva2UiLCJib2R5TGluZSIsInRhaWxMaW5lIiwic2V0RXZlbnRJbmRpY2F0b3IiLCJsYXllckdyb3VwIiwidXNlVXBkYXRlRXZlbnRCb2R5VGFpbCIsImN1cnJlbnRfdGltZSIsImhvdmVyZWQiLCJ1c2VFZmZlY3QiLCJjcmVhdGVFbGVtZW50IiwiY29ubmVjdG9yIiwiY29ubmVjdCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRJbmRpY2F0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IGludGVycG9sYXRlT25MaW5lLCBiZWxvbmdzU2VnbWVudCB9IGZyb20gJ2xlYWZsZXQtZ2VvbWV0cnl1dGlsJztcbmltcG9ydCAqIGFzIEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgJ3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHNldEV2ZW50SW5kaWNhdG9yIH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgdXNlVXBkYXRlRXZlbnRCb2R5VGFpbCBmcm9tICdzcmMvaG9va3MvdXNlVXBkYXRlRXZlbnRCb2R5VGFpbCc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgZXZlbnRzX2RhdGEsIGdsb2JhbF9kYXRhLCBlZGdlc19kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICAgIGVkZ2VzX2RhdGEsXG4gIH07XG59XG5cbnR5cGUgSVByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIG1hcDogYW55O1xuICBwYXRoczogYW55O1xuICBldmVudDogSUV2ZW50O1xufTtcblxuY29uc3QgRXZlbnRJbmRpY2F0b3I6IFJlYWN0LkZDPElQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBtYXAsIGV2ZW50c19kYXRhLCBlZGdlc19kYXRhLCBnbG9iYWxfZGF0YSwgZXZlbnQsIHBhdGhzIH0gPSBwcm9wcztcbiAgY29uc3QgeyBldmVudEluZGljYXRvciB9ID0gZXZlbnRzX2RhdGE7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgbGV0IGV2ZW50UGFydHM6IGFueVtdID0gW107XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBldGMvbm8tY29tbWVudGVkLW91dC1jb2RlXG5cbiAgY29uc3QgcmVtb3ZlRXhpc3RpbmdJbmRpY2F0b3IgPSAoKSA9PiB7XG4gICAgaWYgKGV2ZW50SW5kaWNhdG9yICE9PSBudWxsKSB7XG4gICAgICBldmVudEluZGljYXRvci5lYWNoTGF5ZXIoKGxheWVyOiBhbnkpID0+IHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBtYWtlUGFpcnMgPSAoYXJyYXk6IFtdKSA9PiB7XG4gICAgbGV0IHBhaXJzOiBhbnlbXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpIDwgYXJyYXkubGVuZ3RoIC0gMSkge1xuICAgICAgICBwYWlycy5wdXNoKFthcnJheVtpXSwgYXJyYXlbaSArIDFdXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhaXJzO1xuICB9O1xuXG4gIGNvbnN0IGNhbGN1bGF0ZUJvZHlBbmRUYWlsID0gKHNlZ21lbnQ6IGFueSwgYm9keVN0YXJ0OiBhbnksIGJvZHlFbmQ6IGFueSkgPT4ge1xuICAgIGxldCB0YWlsUGF0aDogYW55W10gPSBbXTtcbiAgICBsZXQgYm9keVBhdGg6IGFueVtdID0gW107XG4gICAgbGV0IGZvdW5kQm9keVN0YXJ0ID0gZmFsc2U7XG4gICAgbGV0IGV2ZW50Qm9keVN0YXJ0TWFya2VyID0gYm9keVN0YXJ0Ll9sYXRsbmc7XG4gICAgbGV0IGV2ZW50Qm9keUVuZE1hcmtlciA9IGJvZHlFbmQuX2xhdGxuZztcbiAgICBsZXQgc3ViU2VnbWVudHMgPSBtYWtlUGFpcnMoc2VnbWVudC5fbGF0bG5ncyk7XG4gICAgbGV0IHNob3VsZENvbnRpbnVlID0gdHJ1ZTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3ViU2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBmb3VuZEJvZHlTdGFydE9uQ3VycmVudFN1YlNlZ21lbnQgPSBmYWxzZTtcblxuICAgICAgaWYgKHNob3VsZENvbnRpbnVlICYmICFmb3VuZEJvZHlTdGFydCkge1xuICAgICAgICAvLyBpZiBib2R5U3RhcnRNYXJrZXIgZXhpc3Qgb24gc3ViU2VnbWVudFxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBiZWxvbmdzU2VnbWVudChcbiAgICAgICAgICAgIGV2ZW50Qm9keVN0YXJ0TWFya2VyLFxuICAgICAgICAgICAgc3ViU2VnbWVudHNbaV1bMF0sXG4gICAgICAgICAgICBzdWJTZWdtZW50c1tpXVsxXSxcbiAgICAgICAgICAgIDAuMDAwMDAwMSxcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIHRhaWxQYXRoLnB1c2goW3N1YlNlZ21lbnRzW2ldWzBdLCBldmVudEJvZHlTdGFydE1hcmtlcl0pO1xuXG4gICAgICAgICAgZm91bmRCb2R5U3RhcnQgPSB0cnVlO1xuICAgICAgICAgIGZvdW5kQm9keVN0YXJ0T25DdXJyZW50U3ViU2VnbWVudCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFpbFBhdGgucHVzaChbc3ViU2VnbWVudHNbaV1bMF0sIHN1YlNlZ21lbnRzW2ldWzFdXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNob3VsZENvbnRpbnVlICYmIGZvdW5kQm9keVN0YXJ0KSB7XG4gICAgICAgIGxldCBiZWdpbm5pbmdPZkJvZHkgPSBmb3VuZEJvZHlTdGFydE9uQ3VycmVudFN1YlNlZ21lbnRcbiAgICAgICAgICA/IGV2ZW50Qm9keVN0YXJ0TWFya2VyXG4gICAgICAgICAgOiBzdWJTZWdtZW50c1tpXVswXTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgYmVsb25nc1NlZ21lbnQoXG4gICAgICAgICAgICBldmVudEJvZHlFbmRNYXJrZXIsXG4gICAgICAgICAgICBzdWJTZWdtZW50c1tpXVswXSxcbiAgICAgICAgICAgIHN1YlNlZ21lbnRzW2ldWzFdLFxuICAgICAgICAgICAgMC4wMDAwMDAxLFxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgYm9keVBhdGgucHVzaChbYmVnaW5uaW5nT2ZCb2R5LCBldmVudEJvZHlFbmRNYXJrZXJdKTtcbiAgICAgICAgICBzaG91bGRDb250aW51ZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJvZHlQYXRoLnB1c2goW2JlZ2lubmluZ09mQm9keSwgc3ViU2VnbWVudHNbaV1bMV1dKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0YWlsUGF0aDogdGFpbFBhdGgsXG4gICAgICBib2R5UGF0aDogYm9keVBhdGgsXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJFdmVudEluZGljYXRvciA9ICgpID0+IHtcbiAgICBpZiAoZXZlbnQgIT09IG51bGwgJiYgZXZlbnQucGF0aC5sZW5ndGggPj0gMSkge1xuICAgICAgcmVtb3ZlRXhpc3RpbmdJbmRpY2F0b3IoKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZXZlbnQucGF0aC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQucGF0aFtpXSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgZXZlbnQucGF0aFtpXS5ldmVudF9ib2R5X3BhcnQgPD0gMTAwICYmXG4gICAgICAgICAgZXZlbnQucGF0aFtpXS5ldmVudF9ib2R5X3BhcnQgPiAwICYmXG4gICAgICAgICAgcGF0aHNbaV0gIT09IHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBsZXQgZXZlbnRCb2R5U3RhcnQgPSBMLm1hcmtlcihcbiAgICAgICAgICAgIGludGVycG9sYXRlT25MaW5lKFxuICAgICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICAgIHBhdGhzW2ldLl9sYXRsbmdzLFxuICAgICAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X3RhaWxfcGFydCAvIDEwMCxcbiAgICAgICAgICAgICkubGF0TG5nLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpY29uOiBMLmRpdkljb24oe1xuICAgICAgICAgICAgICAgIGljb25BbmNob3I6IFswLCAwXSxcbiAgICAgICAgICAgICAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50Qm9keVN0YXJ0WydrYW5kb19vYmplY3RfaWQnXSA9IGV2ZW50LmlkO1xuICAgICAgICAgIGV2ZW50Qm9keVN0YXJ0WydrYW5kb19vYmplY3QnXSA9ICdFdmVudEJvZHlTdGFydCc7XG5cbiAgICAgICAgICBsZXQgZXZlbnRCb2R5RW5kID0gTC5tYXJrZXIoXG4gICAgICAgICAgICBpbnRlcnBvbGF0ZU9uTGluZShcbiAgICAgICAgICAgICAgbWFwLFxuICAgICAgICAgICAgICBwYXRoc1tpXS5fbGF0bG5ncyxcbiAgICAgICAgICAgICAgKGV2ZW50LnBhdGhbaV0uZXZlbnRfYm9keV9wYXJ0ICsgZXZlbnQucGF0aFtpXS5ldmVudF90YWlsX3BhcnQpIC9cbiAgICAgICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICApLmxhdExuZyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWNvbjogTC5kaXZJY29uKHtcbiAgICAgICAgICAgICAgICBpY29uQW5jaG9yOiBbMCwgMF0sXG4gICAgICAgICAgICAgICAgaWNvblNpemU6IFswLCAwXSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICkuYWRkVG8obWFwKTtcbiAgICAgICAgICBldmVudEJvZHlFbmRbJ2thbmRvX29iamVjdF9pZCddID0gZXZlbnQuaWQ7XG4gICAgICAgICAgZXZlbnRCb2R5RW5kWydrYW5kb19vYmplY3QnXSA9ICdFdmVudEJvZHlFbmQnO1xuXG4gICAgICAgICAgbGV0IHBhdGggPSBjYWxjdWxhdGVCb2R5QW5kVGFpbChcbiAgICAgICAgICAgIHBhdGhzW2ldLFxuICAgICAgICAgICAgZXZlbnRCb2R5U3RhcnQsXG4gICAgICAgICAgICBldmVudEJvZHlFbmQsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGxldCBldmVudFRhaWwgPSBMLnBvbHlsaW5lKHBhdGgudGFpbFBhdGgsIHtcbiAgICAgICAgICAgIGNvbG9yOiAnI2Y1MGI1NicsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEyLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtdGFpbCcsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjMsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICBldmVudFRhaWxbJ2thbmRvX29iamVjdF9pZCddID0gZXZlbnQuaWQ7XG4gICAgICAgICAgZXZlbnRUYWlsWydrYW5kb19vYmplY3QnXSA9ICdFdmVudFRhaWwnO1xuXG4gICAgICAgICAgbGV0IGV2ZW50Qm9keSA9IEwucG9seWxpbmUocGF0aC5ib2R5UGF0aCwge1xuICAgICAgICAgICAgY29sb3I6ICcjZjUwYjU2JyxcbiAgICAgICAgICAgIHdlaWdodDogMTIsXG4gICAgICAgICAgICBjbGFzc05hbWU6ICdldmVudC1ib2R5JyxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50Qm9keVsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudEJvZHlbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50Qm9keSc7XG4gICAgICAgICAgZXZlbnRCb2R5LmJyaW5nVG9Gcm9udCgpO1xuXG4gICAgICAgICAgbGV0IHRhaWxEYXNoOiBhbnk7XG4gICAgICAgICAgaWYgKHdpbmRvdy5MLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0YWlsRGFzaCA9IEwucG9seWxpbmVEZWNvcmF0b3IoZXZlbnRUYWlsLl9sYXRsbmdzLCB7XG4gICAgICAgICAgICAgIHBhdHRlcm5zOiBbXG4gICAgICAgICAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG9mZnNldDogMTUsXG4gICAgICAgICAgICAgICAgICByZXBlYXQ6IDI1LFxuICAgICAgICAgICAgICAgICAgc3ltYm9sOiB3aW5kb3cuTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgICAgICAgcGl4ZWxTaXplOiAzLFxuICAgICAgICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgICAgICBzdHJva2U6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwyNTUsMjU1LDEpJyxcbiAgICAgICAgICAgICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICAgIHRhaWxEYXNoWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHZhciBib2R5TGluZSA9IEwucG9seWxpbmUoZXZlbnRCb2R5Ll9sYXRsbmdzLCB7XG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LCAyNTUsIDI1NSwgLjYpJyxcbiAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIGJvZHlMaW5lWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuXG4gICAgICAgICAgdmFyIHRhaWxMaW5lID0gTC5wb2x5bGluZShldmVudFRhaWwuX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsIDI1NSwgMjU1KScsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICB0YWlsTGluZVsna2FuZG9fb2JqZWN0J10gPSAnRGVjb3JhdG9yJztcblxuICAgICAgICAgIGxldCBhcnJvd0hlYWQ6IGFueTtcbiAgICAgICAgICBpZiAod2luZG93LkwuU3ltYm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGFycm93SGVhZCA9IEwucG9seWxpbmVEZWNvcmF0b3IoZXZlbnRCb2R5LCB7XG4gICAgICAgICAgICAgIHBhdHRlcm5zOiBbXG4gICAgICAgICAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgIG9mZnNldDogNSxcbiAgICAgICAgICAgICAgICAgIHJlcGVhdDogMjUsXG4gICAgICAgICAgICAgICAgICBzeW1ib2w6IHdpbmRvdy5MLlN5bWJvbC5hcnJvd0hlYWQoe1xuICAgICAgICAgICAgICAgICAgICBwaXhlbFNpemU6IDMsXG4gICAgICAgICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBwYXRoT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxuICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgICAgYXJyb3dIZWFkWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoTC5TeW1ib2wgIT09IHVuZGVmaW5lZCkgZXZlbnRQYXJ0cy5wdXNoKHRhaWxEYXNoKTtcbiAgICAgICAgICBldmVudFBhcnRzLnB1c2goZXZlbnRCb2R5LCBldmVudFRhaWwsIGJvZHlMaW5lLCBhcnJvd0hlYWQsIHRhaWxMaW5lKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICBldmVudC5wYXRoW2ldICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X2JvZHlfcGFydCA9PT0gMCAmJlxuICAgICAgICAgIGV2ZW50LnBhdGhbaV0uZXZlbnRfdGFpbF9wYXJ0ID4gMCAmJlxuICAgICAgICAgIHBhdGhzW2ldICE9PSB1bmRlZmluZWRcbiAgICAgICAgKSB7XG4gICAgICAgICAgbGV0IGV2ZW50VGFpbCA9IEwucG9seWxpbmUocGF0aHNbaV0uX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgIGNvbG9yOiAnI2Y1MGI1NicsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEyLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtdGFpbCcsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjMsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcblxuICAgICAgICAgIGV2ZW50VGFpbFsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudFRhaWxbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50VGFpbCc7XG5cbiAgICAgICAgICBsZXQgdGFpbERhc2g6IGFueTtcbiAgICAgICAgICBpZiAod2luZG93LkwuU3ltYm9sICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRhaWxEYXNoID0gTC5wb2x5bGluZURlY29yYXRvcihldmVudFRhaWwuX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICAgICAgICAvLyBkZWZpbmVzIGEgcGF0dGVybiBvZiAxMHB4LXdpZGUgZGFzaGVzLCByZXBlYXRlZCBldmVyeSAyMHB4IG9uIHRoZSBsaW5lXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAxNSxcbiAgICAgICAgICAgICAgICAgIHJlcGVhdDogMjUsXG4gICAgICAgICAgICAgICAgICBzeW1ib2w6IHdpbmRvdy5MLlN5bWJvbC5hcnJvd0hlYWQoe1xuICAgICAgICAgICAgICAgICAgICBwaXhlbFNpemU6IDMsXG4gICAgICAgICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBwYXRoT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxuICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgICAgdGFpbERhc2hbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGFpbExpbmUgPSBMLnBvbHlsaW5lKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwgMjU1LCAyNTUpJyxcbiAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIHRhaWxMaW5lWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuICAgICAgICAgIHRhaWxEYXNoLmJyaW5nVG9Gcm9udCgpO1xuXG4gICAgICAgICAgZXZlbnRQYXJ0cy5wdXNoKGV2ZW50VGFpbCwgdGFpbExpbmUpO1xuICAgICAgICAgIGlmIChMLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSBldmVudFBhcnRzLnB1c2godGFpbERhc2gpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRpc3BhdGNoKHNldEV2ZW50SW5kaWNhdG9yKEwubGF5ZXJHcm91cChldmVudFBhcnRzKSkpO1xuICAgIH1cbiAgfTtcblxuICB1c2VVcGRhdGVFdmVudEJvZHlUYWlsKFxuICAgIGV2ZW50ICE9PSBudWxsID8gZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lIDogMCxcbiAgICBldmVudCxcbiAgICBlZGdlc19kYXRhLFxuICAgIGV2ZW50LmhvdmVyZWQsXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZW5kZXJFdmVudEluZGljYXRvcigpO1xuICB9LCBbcGF0aHMsIGdsb2JhbF9kYXRhLmN1cnJlbnRfdGltZV0pO1xuXG4gIHJldHVybiA8ZGl2PjwvZGl2Pjtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihFdmVudEluZGljYXRvcik7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxJQUFBQSxvQkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsQ0FBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFELHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFMLE9BQUE7QUFHQSxJQUFBTSx1QkFBQSxHQUFBQyxzQkFBQSxDQUFBUCxPQUFBO0FBQXNFLFNBQUFRLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFQLHdCQUFBVyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJBQUFFLE9BQUEsRUFBQUYsR0FBQSxVQUFBRyxLQUFBLEdBQUFSLHdCQUFBLENBQUFDLFdBQUEsT0FBQU8sS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUosR0FBQSxZQUFBRyxLQUFBLENBQUFFLEdBQUEsQ0FBQUwsR0FBQSxTQUFBTSxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVgsR0FBQSxRQUFBVyxHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFkLEdBQUEsRUFBQVcsR0FBQSxTQUFBSSxJQUFBLEdBQUFSLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQVYsR0FBQSxFQUFBVyxHQUFBLGNBQUFJLElBQUEsS0FBQUEsSUFBQSxDQUFBVixHQUFBLElBQUFVLElBQUEsQ0FBQUMsR0FBQSxLQUFBUixNQUFBLENBQUFDLGNBQUEsQ0FBQUgsTUFBQSxFQUFBSyxHQUFBLEVBQUFJLElBQUEsWUFBQVQsTUFBQSxDQUFBSyxHQUFBLElBQUFYLEdBQUEsQ0FBQVcsR0FBQSxTQUFBTCxNQUFBLENBQUFKLE9BQUEsR0FBQUYsR0FBQSxNQUFBRyxLQUFBLElBQUFBLEtBQUEsQ0FBQWEsR0FBQSxDQUFBaEIsR0FBQSxFQUFBTSxNQUFBLFlBQUFBLE1BQUE7QUFUdEU7O0FBV0EsU0FBU1csZUFBZUEsQ0FBQ0MsS0FBZ0IsRUFBRTtFQUN6QyxNQUFNO0lBQUVDLFdBQVc7SUFBRUMsV0FBVztJQUFFQztFQUFXLENBQUMsR0FBR0gsS0FBSztFQUV0RCxPQUFPO0lBQ0xDLFdBQVc7SUFDWEMsV0FBVztJQUNYQztFQUNGLENBQUM7QUFDSDtBQVFBLE1BQU1DLGNBQWdDLEdBQUlDLEtBQUssSUFBSztFQUNsRCxNQUFNO0lBQUVDLEdBQUc7SUFBRUwsV0FBVztJQUFFRSxVQUFVO0lBQUVELFdBQVc7SUFBRUssS0FBSztJQUFFQztFQUFNLENBQUMsR0FBR0gsS0FBSztFQUN6RSxNQUFNO0lBQUVJO0VBQWUsQ0FBQyxHQUFHUixXQUFXO0VBQ3RDLE1BQU1TLFFBQVEsR0FBRyxJQUFBQyx1QkFBVyxFQUFDLENBQUM7RUFDOUIsSUFBSUMsVUFBaUIsR0FBRyxFQUFFO0VBQzFCOztFQUVBLE1BQU1DLHVCQUF1QixHQUFHQSxDQUFBLEtBQU07SUFDcEMsSUFBSUosY0FBYyxLQUFLLElBQUksRUFBRTtNQUMzQkEsY0FBYyxDQUFDSyxTQUFTLENBQUVDLEtBQVUsSUFBSztRQUN2Q1QsR0FBRyxDQUFDVSxXQUFXLENBQUNELEtBQUssQ0FBQztNQUN4QixDQUFDLENBQUM7SUFDSjtFQUNGLENBQUM7RUFFRCxNQUFNRSxTQUFTLEdBQUlDLEtBQVMsSUFBSztJQUMvQixJQUFJQyxLQUFZLEdBQUcsRUFBRTtJQUNyQixLQUFLLElBQUlDLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR0YsS0FBSyxDQUFDRyxNQUFNLEVBQUVELENBQUMsRUFBRSxFQUFFO01BQ3JDLElBQUlBLENBQUMsR0FBR0YsS0FBSyxDQUFDRyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQ3hCRixLQUFLLENBQUNHLElBQUksQ0FBQyxDQUFDSixLQUFLLENBQUNFLENBQUMsQ0FBQyxFQUFFRixLQUFLLENBQUNFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO01BQ3RDO0lBQ0Y7SUFFQSxPQUFPRCxLQUFLO0VBQ2QsQ0FBQztFQUVELE1BQU1JLG9CQUFvQixHQUFHQSxDQUFDQyxPQUFZLEVBQUVDLFNBQWMsRUFBRUMsT0FBWSxLQUFLO0lBQzNFLElBQUlDLFFBQWUsR0FBRyxFQUFFO0lBQ3hCLElBQUlDLFFBQWUsR0FBRyxFQUFFO0lBQ3hCLElBQUlDLGNBQWMsR0FBRyxLQUFLO0lBQzFCLElBQUlDLG9CQUFvQixHQUFHTCxTQUFTLENBQUNNLE9BQU87SUFDNUMsSUFBSUMsa0JBQWtCLEdBQUdOLE9BQU8sQ0FBQ0ssT0FBTztJQUN4QyxJQUFJRSxXQUFXLEdBQUdoQixTQUFTLENBQUNPLE9BQU8sQ0FBQ1UsUUFBUSxDQUFDO0lBQzdDLElBQUlDLGNBQWMsR0FBRyxJQUFJO0lBRXpCLEtBQUssSUFBSWYsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHYSxXQUFXLENBQUNaLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7TUFDM0MsSUFBSWdCLGlDQUFpQyxHQUFHLEtBQUs7TUFFN0MsSUFBSUQsY0FBYyxJQUFJLENBQUNOLGNBQWMsRUFBRTtRQUNyQzs7UUFFQSxJQUNFLElBQUFRLG1DQUFjLEVBQ1pQLG9CQUFvQixFQUNwQkcsV0FBVyxDQUFDYixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDakJhLFdBQVcsQ0FBQ2IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2pCLFNBQ0YsQ0FBQyxFQUNEO1VBQ0FPLFFBQVEsQ0FBQ0wsSUFBSSxDQUFDLENBQUNXLFdBQVcsQ0FBQ2IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUVVLG9CQUFvQixDQUFDLENBQUM7VUFFeERELGNBQWMsR0FBRyxJQUFJO1VBQ3JCTyxpQ0FBaUMsR0FBRyxJQUFJO1FBQzFDLENBQUMsTUFBTTtVQUNMVCxRQUFRLENBQUNMLElBQUksQ0FBQyxDQUFDVyxXQUFXLENBQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFYSxXQUFXLENBQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdkQ7TUFDRjtNQUVBLElBQUllLGNBQWMsSUFBSU4sY0FBYyxFQUFFO1FBQ3BDLElBQUlTLGVBQWUsR0FBR0YsaUNBQWlDLEdBQ25ETixvQkFBb0IsR0FDcEJHLFdBQVcsQ0FBQ2IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXJCLElBQ0UsSUFBQWlCLG1DQUFjLEVBQ1pMLGtCQUFrQixFQUNsQkMsV0FBVyxDQUFDYixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFDakJhLFdBQVcsQ0FBQ2IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQ2pCLFNBQ0YsQ0FBQyxFQUNEO1VBQ0FRLFFBQVEsQ0FBQ04sSUFBSSxDQUFDLENBQUNnQixlQUFlLEVBQUVOLGtCQUFrQixDQUFDLENBQUM7VUFDcERHLGNBQWMsR0FBRyxLQUFLO1FBQ3hCLENBQUMsTUFBTTtVQUNMUCxRQUFRLENBQUNOLElBQUksQ0FBQyxDQUFDZ0IsZUFBZSxFQUFFTCxXQUFXLENBQUNiLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckQ7TUFDRjtJQUNGO0lBRUEsT0FBTztNQUNMTyxRQUFRLEVBQUVBLFFBQVE7TUFDbEJDLFFBQVEsRUFBRUE7SUFDWixDQUFDO0VBQ0gsQ0FBQztFQUVELE1BQU1XLG9CQUFvQixHQUFHQSxDQUFBLEtBQU07SUFDakMsSUFBSWhDLEtBQUssS0FBSyxJQUFJLElBQUlBLEtBQUssQ0FBQ2lDLElBQUksQ0FBQ25CLE1BQU0sSUFBSSxDQUFDLEVBQUU7TUFDNUNSLHVCQUF1QixDQUFDLENBQUM7TUFDekIsS0FBSyxJQUFJTyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdiLEtBQUssQ0FBQ2lDLElBQUksQ0FBQ25CLE1BQU0sRUFBRUQsQ0FBQyxFQUFFLEVBQUU7UUFDMUMsSUFDRWIsS0FBSyxDQUFDaUMsSUFBSSxDQUFDcEIsQ0FBQyxDQUFDLEtBQUtxQixTQUFTLElBQzNCbEMsS0FBSyxDQUFDaUMsSUFBSSxDQUFDcEIsQ0FBQyxDQUFDLENBQUNzQixlQUFlLElBQUksR0FBRyxJQUNwQ25DLEtBQUssQ0FBQ2lDLElBQUksQ0FBQ3BCLENBQUMsQ0FBQyxDQUFDc0IsZUFBZSxHQUFHLENBQUMsSUFDakNsQyxLQUFLLENBQUNZLENBQUMsQ0FBQyxLQUFLcUIsU0FBUyxFQUN0QjtVQUNBLElBQUlFLGNBQWMsR0FBR3pFLENBQUMsQ0FBQzBFLE1BQU0sQ0FDM0IsSUFBQUMsc0NBQWlCLEVBQ2Z2QyxHQUFHLEVBQ0hFLEtBQUssQ0FBQ1ksQ0FBQyxDQUFDLENBQUNjLFFBQVEsRUFDakIzQixLQUFLLENBQUNpQyxJQUFJLENBQUNwQixDQUFDLENBQUMsQ0FBQzBCLGVBQWUsR0FBRyxHQUNsQyxDQUFDLENBQUNDLE1BQU0sRUFDUjtZQUNFQyxJQUFJLEVBQUU5RSxDQUFDLENBQUMrRSxPQUFPLENBQUM7Y0FDZEMsVUFBVSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztjQUNsQkMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakIsQ0FBQyxDQUFDO1lBQ0ZDLE9BQU8sRUFBRTtVQUNYLENBQ0YsQ0FBQyxDQUFDQyxLQUFLLENBQUMvQyxHQUFHLENBQUM7VUFDWnFDLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHcEMsS0FBSyxDQUFDK0MsRUFBRTtVQUM1Q1gsY0FBYyxDQUFDLGNBQWMsQ0FBQyxHQUFHLGdCQUFnQjtVQUVqRCxJQUFJWSxZQUFZLEdBQUdyRixDQUFDLENBQUMwRSxNQUFNLENBQ3pCLElBQUFDLHNDQUFpQixFQUNmdkMsR0FBRyxFQUNIRSxLQUFLLENBQUNZLENBQUMsQ0FBQyxDQUFDYyxRQUFRLEVBQ2pCLENBQUMzQixLQUFLLENBQUNpQyxJQUFJLENBQUNwQixDQUFDLENBQUMsQ0FBQ3NCLGVBQWUsR0FBR25DLEtBQUssQ0FBQ2lDLElBQUksQ0FBQ3BCLENBQUMsQ0FBQyxDQUFDMEIsZUFBZSxJQUM1RCxHQUNKLENBQUMsQ0FBQ0MsTUFBTSxFQUNSO1lBQ0VDLElBQUksRUFBRTlFLENBQUMsQ0FBQytFLE9BQU8sQ0FBQztjQUNkQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2NBQ2xCQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNqQixDQUFDLENBQUM7WUFDRkMsT0FBTyxFQUFFO1VBQ1gsQ0FDRixDQUFDLENBQUNDLEtBQUssQ0FBQy9DLEdBQUcsQ0FBQztVQUNaaUQsWUFBWSxDQUFDLGlCQUFpQixDQUFDLEdBQUdoRCxLQUFLLENBQUMrQyxFQUFFO1VBQzFDQyxZQUFZLENBQUMsY0FBYyxDQUFDLEdBQUcsY0FBYztVQUU3QyxJQUFJZixJQUFJLEdBQUdqQixvQkFBb0IsQ0FDN0JmLEtBQUssQ0FBQ1ksQ0FBQyxDQUFDLEVBQ1J1QixjQUFjLEVBQ2RZLFlBQ0YsQ0FBQztVQUVELElBQUlDLFNBQVMsR0FBR3RGLENBQUMsQ0FBQ3VGLFFBQVEsQ0FBQ2pCLElBQUksQ0FBQ2IsUUFBUSxFQUFFO1lBQ3hDK0IsS0FBSyxFQUFFLFNBQVM7WUFDaEJDLE1BQU0sRUFBRSxFQUFFO1lBQ1ZDLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCUixPQUFPLEVBQUU7VUFDWCxDQUFDLENBQUMsQ0FBQ0MsS0FBSyxDQUFDL0MsR0FBRyxDQUFDO1VBQ2JrRCxTQUFTLENBQUMsaUJBQWlCLENBQUMsR0FBR2pELEtBQUssQ0FBQytDLEVBQUU7VUFDdkNFLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxXQUFXO1VBRXZDLElBQUlLLFNBQVMsR0FBRzNGLENBQUMsQ0FBQ3VGLFFBQVEsQ0FBQ2pCLElBQUksQ0FBQ1osUUFBUSxFQUFFO1lBQ3hDOEIsS0FBSyxFQUFFLFNBQVM7WUFDaEJDLE1BQU0sRUFBRSxFQUFFO1lBQ1ZDLFNBQVMsRUFBRTtVQUNiLENBQUMsQ0FBQyxDQUFDUCxLQUFLLENBQUMvQyxHQUFHLENBQUM7VUFDYnVELFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHdEQsS0FBSyxDQUFDK0MsRUFBRTtVQUN2Q08sU0FBUyxDQUFDLGNBQWMsQ0FBQyxHQUFHLFdBQVc7VUFDdkNBLFNBQVMsQ0FBQ0MsWUFBWSxDQUFDLENBQUM7VUFFeEIsSUFBSUMsUUFBYTtVQUNqQixJQUFJQyxNQUFNLENBQUM5RixDQUFDLENBQUMrRixNQUFNLEtBQUt4QixTQUFTLEVBQUU7WUFDakNzQixRQUFRLEdBQUc3RixDQUFDLENBQUNnRyxpQkFBaUIsQ0FBQ1YsU0FBUyxDQUFDdEIsUUFBUSxFQUFFO2NBQ2pEaUMsUUFBUSxFQUFFO2NBQ1I7Y0FDQTtnQkFDRUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ1ZDLE1BQU0sRUFBRSxFQUFFO2dCQUNWQyxNQUFNLEVBQUVOLE1BQU0sQ0FBQzlGLENBQUMsQ0FBQytGLE1BQU0sQ0FBQ00sU0FBUyxDQUFDO2tCQUNoQ0MsU0FBUyxFQUFFLENBQUM7a0JBQ1pDLE9BQU8sRUFBRSxLQUFLO2tCQUNkQyxXQUFXLEVBQUU7b0JBQ1hDLE1BQU0sRUFBRSxJQUFJO29CQUNaakIsS0FBSyxFQUFFLHFCQUFxQjtvQkFDNUJDLE1BQU0sRUFBRTtrQkFDVjtnQkFDRixDQUFDO2NBQ0gsQ0FBQztZQUVMLENBQUMsQ0FBQyxDQUFDTixLQUFLLENBQUMvQyxHQUFHLENBQUM7WUFDYnlELFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxXQUFXO1VBQ3hDO1VBRUEsSUFBSWEsUUFBUSxHQUFHMUcsQ0FBQyxDQUFDdUYsUUFBUSxDQUFDSSxTQUFTLENBQUMzQixRQUFRLEVBQUU7WUFDNUN3QixLQUFLLEVBQUUseUJBQXlCO1lBQ2hDQyxNQUFNLEVBQUU7VUFDVixDQUFDLENBQUMsQ0FBQ04sS0FBSyxDQUFDL0MsR0FBRyxDQUFDO1VBQ2JzRSxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsV0FBVztVQUV0QyxJQUFJQyxRQUFRLEdBQUczRyxDQUFDLENBQUN1RixRQUFRLENBQUNELFNBQVMsQ0FBQ3RCLFFBQVEsRUFBRTtZQUM1Q3dCLEtBQUssRUFBRSxxQkFBcUI7WUFDNUJDLE1BQU0sRUFBRTtVQUNWLENBQUMsQ0FBQyxDQUFDTixLQUFLLENBQUMvQyxHQUFHLENBQUM7VUFDYnVFLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxXQUFXO1VBRXRDLElBQUlOLFNBQWM7VUFDbEIsSUFBSVAsTUFBTSxDQUFDOUYsQ0FBQyxDQUFDK0YsTUFBTSxLQUFLeEIsU0FBUyxFQUFFO1lBQ2pDOEIsU0FBUyxHQUFHckcsQ0FBQyxDQUFDZ0csaUJBQWlCLENBQUNMLFNBQVMsRUFBRTtjQUN6Q00sUUFBUSxFQUFFO2NBQ1I7Y0FDQTtnQkFDRUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1RDLE1BQU0sRUFBRSxFQUFFO2dCQUNWQyxNQUFNLEVBQUVOLE1BQU0sQ0FBQzlGLENBQUMsQ0FBQytGLE1BQU0sQ0FBQ00sU0FBUyxDQUFDO2tCQUNoQ0MsU0FBUyxFQUFFLENBQUM7a0JBQ1pDLE9BQU8sRUFBRSxLQUFLO2tCQUNkQyxXQUFXLEVBQUU7b0JBQ1hDLE1BQU0sRUFBRSxJQUFJO29CQUNaakIsS0FBSyxFQUFFLHFCQUFxQjtvQkFDNUJDLE1BQU0sRUFBRTtrQkFDVjtnQkFDRixDQUFDO2NBQ0gsQ0FBQztZQUVMLENBQUMsQ0FBQyxDQUFDTixLQUFLLENBQUMvQyxHQUFHLENBQUM7WUFDYmlFLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxXQUFXO1VBQ3pDO1VBQ0EsSUFBSXJHLENBQUMsQ0FBQytGLE1BQU0sS0FBS3hCLFNBQVMsRUFBRTdCLFVBQVUsQ0FBQ1UsSUFBSSxDQUFDeUMsUUFBUSxDQUFDO1VBQ3JEbkQsVUFBVSxDQUFDVSxJQUFJLENBQUN1QyxTQUFTLEVBQUVMLFNBQVMsRUFBRW9CLFFBQVEsRUFBRUwsU0FBUyxFQUFFTSxRQUFRLENBQUM7UUFDdEUsQ0FBQyxNQUFNLElBQ0x0RSxLQUFLLENBQUNpQyxJQUFJLENBQUNwQixDQUFDLENBQUMsS0FBS3FCLFNBQVMsSUFDM0JsQyxLQUFLLENBQUNpQyxJQUFJLENBQUNwQixDQUFDLENBQUMsQ0FBQ3NCLGVBQWUsS0FBSyxDQUFDLElBQ25DbkMsS0FBSyxDQUFDaUMsSUFBSSxDQUFDcEIsQ0FBQyxDQUFDLENBQUMwQixlQUFlLEdBQUcsQ0FBQyxJQUNqQ3RDLEtBQUssQ0FBQ1ksQ0FBQyxDQUFDLEtBQUtxQixTQUFTLEVBQ3RCO1VBQ0EsSUFBSWUsU0FBUyxHQUFHdEYsQ0FBQyxDQUFDdUYsUUFBUSxDQUFDakQsS0FBSyxDQUFDWSxDQUFDLENBQUMsQ0FBQ2MsUUFBUSxFQUFFO1lBQzVDd0IsS0FBSyxFQUFFLFNBQVM7WUFDaEJDLE1BQU0sRUFBRSxFQUFFO1lBQ1ZDLFNBQVMsRUFBRSxZQUFZO1lBQ3ZCUixPQUFPLEVBQUU7VUFDWCxDQUFDLENBQUMsQ0FBQ0MsS0FBSyxDQUFDL0MsR0FBRyxDQUFDO1VBRWJrRCxTQUFTLENBQUMsaUJBQWlCLENBQUMsR0FBR2pELEtBQUssQ0FBQytDLEVBQUU7VUFDdkNFLFNBQVMsQ0FBQyxjQUFjLENBQUMsR0FBRyxXQUFXO1VBRXZDLElBQUlPLFFBQWE7VUFDakIsSUFBSUMsTUFBTSxDQUFDOUYsQ0FBQyxDQUFDK0YsTUFBTSxLQUFLeEIsU0FBUyxFQUFFO1lBQ2pDc0IsUUFBUSxHQUFHN0YsQ0FBQyxDQUFDZ0csaUJBQWlCLENBQUNWLFNBQVMsQ0FBQ3RCLFFBQVEsRUFBRTtjQUNqRGlDLFFBQVEsRUFBRTtjQUNSO2NBQ0E7Z0JBQ0VDLE1BQU0sRUFBRSxFQUFFO2dCQUNWQyxNQUFNLEVBQUUsRUFBRTtnQkFDVkMsTUFBTSxFQUFFTixNQUFNLENBQUM5RixDQUFDLENBQUMrRixNQUFNLENBQUNNLFNBQVMsQ0FBQztrQkFDaENDLFNBQVMsRUFBRSxDQUFDO2tCQUNaQyxPQUFPLEVBQUUsS0FBSztrQkFDZEMsV0FBVyxFQUFFO29CQUNYQyxNQUFNLEVBQUUsSUFBSTtvQkFDWmpCLEtBQUssRUFBRSxxQkFBcUI7b0JBQzVCQyxNQUFNLEVBQUU7a0JBQ1Y7Z0JBQ0YsQ0FBQztjQUNILENBQUM7WUFFTCxDQUFDLENBQUMsQ0FBQ04sS0FBSyxDQUFDL0MsR0FBRyxDQUFDO1lBQ2J5RCxRQUFRLENBQUMsY0FBYyxDQUFDLEdBQUcsV0FBVztVQUN4QztVQUVBYyxRQUFRLEdBQUczRyxDQUFDLENBQUN1RixRQUFRLENBQUNELFNBQVMsQ0FBQ3RCLFFBQVEsRUFBRTtZQUN4Q3dCLEtBQUssRUFBRSxxQkFBcUI7WUFDNUJDLE1BQU0sRUFBRTtVQUNWLENBQUMsQ0FBQyxDQUFDTixLQUFLLENBQUMvQyxHQUFHLENBQUM7VUFDYnVFLFFBQVEsQ0FBQyxjQUFjLENBQUMsR0FBRyxXQUFXO1VBQ3RDZCxRQUFRLENBQUNELFlBQVksQ0FBQyxDQUFDO1VBRXZCbEQsVUFBVSxDQUFDVSxJQUFJLENBQUNrQyxTQUFTLEVBQUVxQixRQUFRLENBQUM7VUFDcEMsSUFBSTNHLENBQUMsQ0FBQytGLE1BQU0sS0FBS3hCLFNBQVMsRUFBRTdCLFVBQVUsQ0FBQ1UsSUFBSSxDQUFDeUMsUUFBUSxDQUFDO1FBQ3ZEO01BQ0Y7TUFFQXJELFFBQVEsQ0FBQyxJQUFBb0UsMEJBQWlCLEVBQUM1RyxDQUFDLENBQUM2RyxVQUFVLENBQUNuRSxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3ZEO0VBQ0YsQ0FBQztFQUVELElBQUFvRSwrQkFBc0IsRUFDcEJ6RSxLQUFLLEtBQUssSUFBSSxHQUFHTCxXQUFXLENBQUMrRSxZQUFZLEdBQUcsQ0FBQyxFQUM3QzFFLEtBQUssRUFDTEosVUFBVSxFQUNWSSxLQUFLLENBQUMyRSxPQUNSLENBQUM7RUFFRCxJQUFBQyxnQkFBUyxFQUFDLE1BQU07SUFDZDVDLG9CQUFvQixDQUFDLENBQUM7RUFDeEIsQ0FBQyxFQUFFLENBQUMvQixLQUFLLEVBQUVOLFdBQVcsQ0FBQytFLFlBQVksQ0FBQyxDQUFDO0VBRXJDLG9CQUFPN0csTUFBQSxDQUFBWSxPQUFBLENBQUFvRyxhQUFBLFlBQVUsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTUMsU0FBUyxHQUFHLElBQUFDLG1CQUFPLEVBQUN2RixlQUFlLENBQUM7QUFBQyxJQUFBd0YsUUFBQSxHQUM1QkYsU0FBUyxDQUFDakYsY0FBYyxDQUFDO0FBQUFvRixPQUFBLENBQUF4RyxPQUFBLEdBQUF1RyxRQUFBIn0=
|
|
245
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldEdlb21ldHJ5dXRpbCIsInJlcXVpcmUiLCJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfcmVhY3QiLCJfcmVhY3RSZWR1eCIsIl9hY3Rpb25zIiwiX3VzZVVwZGF0ZUV2ZW50Qm9keVRhaWwiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJjYWNoZSIsImhhcyIsImdldCIsIm5ld09iaiIsImhhc1Byb3BlcnR5RGVzY3JpcHRvciIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwia2V5IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiZGVzYyIsInNldCIsIm1hcFN0YXRlVG9Qcm9wcyIsInN0YXRlIiwiZXZlbnRzX2RhdGEiLCJnbG9iYWxfZGF0YSIsImVkZ2VzX2RhdGEiLCJFdmVudEluZGljYXRvciIsInByb3BzIiwibWFwIiwiZXZlbnQiLCJwYXRocyIsImV2ZW50SW5kaWNhdG9yIiwiZGlzcGF0Y2giLCJ1c2VEaXNwYXRjaCIsImV2ZW50UGFydHMiLCJyZW1vdmVFeGlzdGluZ0luZGljYXRvciIsImVhY2hMYXllciIsImxheWVyIiwicmVtb3ZlTGF5ZXIiLCJtYWtlUGFpcnMiLCJhcnJheSIsInBhaXJzIiwiaSIsImxlbmd0aCIsInB1c2giLCJjYWxjdWxhdGVCb2R5QW5kVGFpbCIsInNlZ21lbnQiLCJib2R5U3RhcnQiLCJib2R5RW5kIiwidGFpbFBhdGgiLCJib2R5UGF0aCIsImZvdW5kQm9keVN0YXJ0IiwiZXZlbnRCb2R5U3RhcnRNYXJrZXIiLCJfbGF0bG5nIiwiZXZlbnRCb2R5RW5kTWFya2VyIiwic3ViU2VnbWVudHMiLCJfbGF0bG5ncyIsInNob3VsZENvbnRpbnVlIiwiZm91bmRCb2R5U3RhcnRPbkN1cnJlbnRTdWJTZWdtZW50IiwiYmVsb25nc1NlZ21lbnQiLCJiZWdpbm5pbmdPZkJvZHkiLCJyZW5kZXJFdmVudEluZGljYXRvciIsInBhdGgiLCJ1bmRlZmluZWQiLCJldmVudF9ib2R5X3BhcnQiLCJldmVudEJvZHlTdGFydCIsIm1hcmtlciIsImludGVycG9sYXRlT25MaW5lIiwiZXZlbnRfdGFpbF9wYXJ0IiwibGF0TG5nIiwiaWNvbiIsImRpdkljb24iLCJpY29uQW5jaG9yIiwiaWNvblNpemUiLCJvcGFjaXR5IiwiYWRkVG8iLCJpZCIsImV2ZW50Qm9keUVuZCIsImV2ZW50VGFpbCIsInBvbHlsaW5lIiwiY29sb3IiLCJ3ZWlnaHQiLCJjbGFzc05hbWUiLCJldmVudEJvZHkiLCJicmluZ1RvRnJvbnQiLCJ0YWlsRGFzaCIsIndpbmRvdyIsIlN5bWJvbCIsInBvbHlsaW5lRGVjb3JhdG9yIiwicGF0dGVybnMiLCJvZmZzZXQiLCJyZXBlYXQiLCJzeW1ib2wiLCJhcnJvd0hlYWQiLCJwaXhlbFNpemUiLCJwb2x5Z29uIiwicGF0aE9wdGlvbnMiLCJzdHJva2UiLCJib2R5TGluZSIsInRhaWxMaW5lIiwic2V0RXZlbnRJbmRpY2F0b3IiLCJsYXllckdyb3VwIiwidXNlVXBkYXRlRXZlbnRCb2R5VGFpbCIsImN1cnJlbnRfdGltZSIsImhvdmVyZWQiLCJ1c2VFZmZlY3QiLCJjcmVhdGVFbGVtZW50IiwiY29ubmVjdG9yIiwiY29ubmVjdCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9XaWRnZXRzL01hcC9ldmVudHMvRXZlbnRJbmRpY2F0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1pZ25vcmVcbmltcG9ydCB7IGludGVycG9sYXRlT25MaW5lLCBiZWxvbmdzU2VnbWVudCB9IGZyb20gJ2xlYWZsZXQtZ2VvbWV0cnl1dGlsJztcbmltcG9ydCAqIGFzIEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgJ3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IGNvbm5lY3QsIENvbm5lY3RlZFByb3BzLCB1c2VEaXNwYXRjaCB9IGZyb20gJ3JlYWN0LXJlZHV4JztcbmltcG9ydCB7IHNldEV2ZW50SW5kaWNhdG9yIH0gZnJvbSAnc3JjL3N0b3JlL2V2ZW50cy9hY3Rpb25zJztcbmltcG9ydCB7IElBcHBTdGF0ZSB9IGZyb20gJ3NyYy9tb2RlbHMvSUFwcFN0YXRlJztcbmltcG9ydCB7IElFdmVudCB9IGZyb20gJ3NyYy9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgdXNlVXBkYXRlRXZlbnRCb2R5VGFpbCBmcm9tICdzcmMvaG9va3MvdXNlVXBkYXRlRXZlbnRCb2R5VGFpbCc7XG5cbmZ1bmN0aW9uIG1hcFN0YXRlVG9Qcm9wcyhzdGF0ZTogSUFwcFN0YXRlKSB7XG4gIGNvbnN0IHsgZXZlbnRzX2RhdGEsIGdsb2JhbF9kYXRhLCBlZGdlc19kYXRhIH0gPSBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIGV2ZW50c19kYXRhLFxuICAgIGdsb2JhbF9kYXRhLFxuICAgIGVkZ2VzX2RhdGEsXG4gIH07XG59XG5cbnR5cGUgSVByb3BzID0gQ29ubmVjdGVkUHJvcHM8dHlwZW9mIGNvbm5lY3Rvcj4gJiB7XG4gIG1hcDogYW55O1xuICBwYXRoczogYW55O1xuICBldmVudDogSUV2ZW50O1xufTtcblxuY29uc3QgRXZlbnRJbmRpY2F0b3I6IFJlYWN0LkZDPElQcm9wcz4gPSAocHJvcHMpID0+IHtcbiAgY29uc3QgeyBtYXAsIGV2ZW50c19kYXRhLCBlZGdlc19kYXRhLCBnbG9iYWxfZGF0YSwgZXZlbnQsIHBhdGhzIH0gPSBwcm9wcztcbiAgY29uc3QgeyBldmVudEluZGljYXRvciB9ID0gZXZlbnRzX2RhdGE7XG4gIGNvbnN0IGRpc3BhdGNoID0gdXNlRGlzcGF0Y2goKTtcbiAgbGV0IGV2ZW50UGFydHM6IGFueVtdID0gW107XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBldGMvbm8tY29tbWVudGVkLW91dC1jb2RlXG5cbiAgY29uc3QgcmVtb3ZlRXhpc3RpbmdJbmRpY2F0b3IgPSAoKSA9PiB7XG4gICAgaWYgKGV2ZW50SW5kaWNhdG9yICE9PSBudWxsKSB7XG4gICAgICBldmVudEluZGljYXRvci5lYWNoTGF5ZXIoKGxheWVyOiBhbnkpID0+IHtcbiAgICAgICAgbWFwLnJlbW92ZUxheWVyKGxheWVyKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBjb25zdCBtYWtlUGFpcnMgPSAoYXJyYXk6IFtdKSA9PiB7XG4gICAgbGV0IHBhaXJzOiBhbnlbXSA9IFtdO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcbiAgICAgIGlmIChpIDwgYXJyYXkubGVuZ3RoIC0gMSkge1xuICAgICAgICBwYWlycy5wdXNoKFthcnJheVtpXSwgYXJyYXlbaSArIDFdXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHBhaXJzO1xuICB9O1xuXG4gIGNvbnN0IGNhbGN1bGF0ZUJvZHlBbmRUYWlsID0gKHNlZ21lbnQ6IGFueSwgYm9keVN0YXJ0OiBhbnksIGJvZHlFbmQ6IGFueSkgPT4ge1xuICAgIGxldCB0YWlsUGF0aDogYW55W10gPSBbXTtcbiAgICBsZXQgYm9keVBhdGg6IGFueVtdID0gW107XG4gICAgbGV0IGZvdW5kQm9keVN0YXJ0ID0gZmFsc2U7XG4gICAgbGV0IGV2ZW50Qm9keVN0YXJ0TWFya2VyID0gYm9keVN0YXJ0Ll9sYXRsbmc7XG4gICAgbGV0IGV2ZW50Qm9keUVuZE1hcmtlciA9IGJvZHlFbmQuX2xhdGxuZztcbiAgICBsZXQgc3ViU2VnbWVudHMgPSBtYWtlUGFpcnMoc2VnbWVudC5fbGF0bG5ncyk7XG4gICAgbGV0IHNob3VsZENvbnRpbnVlID0gdHJ1ZTtcblxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3ViU2VnbWVudHMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGxldCBmb3VuZEJvZHlTdGFydE9uQ3VycmVudFN1YlNlZ21lbnQgPSBmYWxzZTtcblxuICAgICAgaWYgKHNob3VsZENvbnRpbnVlICYmICFmb3VuZEJvZHlTdGFydCkge1xuICAgICAgICAvLyBpZiBib2R5U3RhcnRNYXJrZXIgZXhpc3Qgb24gc3ViU2VnbWVudFxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICBiZWxvbmdzU2VnbWVudChcbiAgICAgICAgICAgIGV2ZW50Qm9keVN0YXJ0TWFya2VyLFxuICAgICAgICAgICAgc3ViU2VnbWVudHNbaV1bMF0sXG4gICAgICAgICAgICBzdWJTZWdtZW50c1tpXVsxXSxcbiAgICAgICAgICAgIDAuMDAwMDAwMSxcbiAgICAgICAgICApXG4gICAgICAgICkge1xuICAgICAgICAgIHRhaWxQYXRoLnB1c2goW3N1YlNlZ21lbnRzW2ldWzBdLCBldmVudEJvZHlTdGFydE1hcmtlcl0pO1xuXG4gICAgICAgICAgZm91bmRCb2R5U3RhcnQgPSB0cnVlO1xuICAgICAgICAgIGZvdW5kQm9keVN0YXJ0T25DdXJyZW50U3ViU2VnbWVudCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGFpbFBhdGgucHVzaChbc3ViU2VnbWVudHNbaV1bMF0sIHN1YlNlZ21lbnRzW2ldWzFdXSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKHNob3VsZENvbnRpbnVlICYmIGZvdW5kQm9keVN0YXJ0KSB7XG4gICAgICAgIGxldCBiZWdpbm5pbmdPZkJvZHkgPSBmb3VuZEJvZHlTdGFydE9uQ3VycmVudFN1YlNlZ21lbnRcbiAgICAgICAgICA/IGV2ZW50Qm9keVN0YXJ0TWFya2VyXG4gICAgICAgICAgOiBzdWJTZWdtZW50c1tpXVswXTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgYmVsb25nc1NlZ21lbnQoXG4gICAgICAgICAgICBldmVudEJvZHlFbmRNYXJrZXIsXG4gICAgICAgICAgICBzdWJTZWdtZW50c1tpXVswXSxcbiAgICAgICAgICAgIHN1YlNlZ21lbnRzW2ldWzFdLFxuICAgICAgICAgICAgMC4wMDAwMDAxLFxuICAgICAgICAgIClcbiAgICAgICAgKSB7XG4gICAgICAgICAgYm9keVBhdGgucHVzaChbYmVnaW5uaW5nT2ZCb2R5LCBldmVudEJvZHlFbmRNYXJrZXJdKTtcbiAgICAgICAgICBzaG91bGRDb250aW51ZSA9IGZhbHNlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGJvZHlQYXRoLnB1c2goW2JlZ2lubmluZ09mQm9keSwgc3ViU2VnbWVudHNbaV1bMV1dKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICB0YWlsUGF0aDogdGFpbFBhdGgsXG4gICAgICBib2R5UGF0aDogYm9keVBhdGgsXG4gICAgfTtcbiAgfTtcblxuICBjb25zdCByZW5kZXJFdmVudEluZGljYXRvciA9ICgpID0+IHtcbiAgICBpZiAoZXZlbnQgIT09IG51bGwgJiYgZXZlbnQucGF0aC5sZW5ndGggPj0gMSkge1xuICAgICAgcmVtb3ZlRXhpc3RpbmdJbmRpY2F0b3IoKTtcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZXZlbnQucGF0aC5sZW5ndGg7IGkrKykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQucGF0aFtpXSAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgZXZlbnQucGF0aFtpXS5ldmVudF9ib2R5X3BhcnQgPD0gMTAwICYmXG4gICAgICAgICAgZXZlbnQucGF0aFtpXS5ldmVudF9ib2R5X3BhcnQgPiAwICYmXG4gICAgICAgICAgcGF0aHNbaV0gIT09IHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBsZXQgZXZlbnRCb2R5U3RhcnQgPSBMLm1hcmtlcihcbiAgICAgICAgICAgIGludGVycG9sYXRlT25MaW5lKFxuICAgICAgICAgICAgICBtYXAsXG4gICAgICAgICAgICAgIHBhdGhzW2ldLl9sYXRsbmdzLFxuICAgICAgICAgICAgICBldmVudC5wYXRoW2ldLmV2ZW50X3RhaWxfcGFydCAvIDEwMCxcbiAgICAgICAgICAgICkubGF0TG5nLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpY29uOiBMLmRpdkljb24oe1xuICAgICAgICAgICAgICAgIGljb25BbmNob3I6IFswLCAwXSxcbiAgICAgICAgICAgICAgICBpY29uU2l6ZTogWzAsIDBdLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgb3BhY2l0eTogMCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgKS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50Qm9keVN0YXJ0WydrYW5kb19vYmplY3RfaWQnXSA9IGV2ZW50LmlkO1xuICAgICAgICAgIGV2ZW50Qm9keVN0YXJ0WydrYW5kb19vYmplY3QnXSA9ICdFdmVudEJvZHlTdGFydCc7XG5cbiAgICAgICAgICBsZXQgZXZlbnRCb2R5RW5kID0gTC5tYXJrZXIoXG4gICAgICAgICAgICBpbnRlcnBvbGF0ZU9uTGluZShcbiAgICAgICAgICAgICAgbWFwLFxuICAgICAgICAgICAgICBwYXRoc1tpXS5fbGF0bG5ncyxcbiAgICAgICAgICAgICAgKGV2ZW50LnBhdGhbaV0uZXZlbnRfYm9keV9wYXJ0ICsgZXZlbnQucGF0aFtpXS5ldmVudF90YWlsX3BhcnQpIC9cbiAgICAgICAgICAgICAgICAxMDAsXG4gICAgICAgICAgICApLmxhdExuZyxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWNvbjogTC5kaXZJY29uKHtcbiAgICAgICAgICAgICAgICBpY29uQW5jaG9yOiBbMCwgMF0sXG4gICAgICAgICAgICAgICAgaWNvblNpemU6IFswLCAwXSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDAsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICkuYWRkVG8obWFwKTtcbiAgICAgICAgICBldmVudEJvZHlFbmRbJ2thbmRvX29iamVjdF9pZCddID0gZXZlbnQuaWQ7XG4gICAgICAgICAgZXZlbnRCb2R5RW5kWydrYW5kb19vYmplY3QnXSA9ICdFdmVudEJvZHlFbmQnO1xuXG4gICAgICAgICAgbGV0IHBhdGggPSBjYWxjdWxhdGVCb2R5QW5kVGFpbChcbiAgICAgICAgICAgIHBhdGhzW2ldLFxuICAgICAgICAgICAgZXZlbnRCb2R5U3RhcnQsXG4gICAgICAgICAgICBldmVudEJvZHlFbmQsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGxldCBldmVudFRhaWwgPSBMLnBvbHlsaW5lKHBhdGgudGFpbFBhdGgsIHtcbiAgICAgICAgICAgIGNvbG9yOiAnI2Y1MGI1NicsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEyLFxuICAgICAgICAgICAgY2xhc3NOYW1lOiAnZXZlbnQtdGFpbCcsXG4gICAgICAgICAgICBvcGFjaXR5OiAwLjMsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICBldmVudFRhaWxbJ2thbmRvX29iamVjdF9pZCddID0gZXZlbnQuaWQ7XG4gICAgICAgICAgZXZlbnRUYWlsWydrYW5kb19vYmplY3QnXSA9ICdFdmVudFRhaWwnO1xuXG4gICAgICAgICAgbGV0IGV2ZW50Qm9keSA9IEwucG9seWxpbmUocGF0aC5ib2R5UGF0aCwge1xuICAgICAgICAgICAgY29sb3I6ICcjZjUwYjU2JyxcbiAgICAgICAgICAgIHdlaWdodDogMTIsXG4gICAgICAgICAgICBjbGFzc05hbWU6ICdldmVudC1ib2R5JyxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIGV2ZW50Qm9keVsna2FuZG9fb2JqZWN0X2lkJ10gPSBldmVudC5pZDtcbiAgICAgICAgICBldmVudEJvZHlbJ2thbmRvX29iamVjdCddID0gJ0V2ZW50Qm9keSc7XG4gICAgICAgICAgZXZlbnRCb2R5LmJyaW5nVG9Gcm9udCgpO1xuXG4gICAgICAgICAgbGV0IHRhaWxEYXNoOiBhbnk7XG4gICAgICAgICAgaWYgKHdpbmRvdy5MLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0YWlsRGFzaCA9IHdpbmRvdy5MLnBvbHlsaW5lRGVjb3JhdG9yKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgICAgICAgIC8vIGRlZmluZXMgYSBwYXR0ZXJuIG9mIDEwcHgtd2lkZSBkYXNoZXMsIHJlcGVhdGVkIGV2ZXJ5IDIwcHggb24gdGhlIGxpbmVcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBvZmZzZXQ6IDE1LFxuICAgICAgICAgICAgICAgICAgcmVwZWF0OiAyNSxcbiAgICAgICAgICAgICAgICAgIHN5bWJvbDogd2luZG93LkwuU3ltYm9sLmFycm93SGVhZCh7XG4gICAgICAgICAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgICAgICAgICAgcG9seWdvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHBhdGhPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwxKScsXG4gICAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgICB0YWlsRGFzaFsna2FuZG9fb2JqZWN0J10gPSAnRGVjb3JhdG9yJztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB2YXIgYm9keUxpbmUgPSBMLnBvbHlsaW5lKGV2ZW50Qm9keS5fbGF0bG5ncywge1xuICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwgMjU1LCAyNTUsIC42KScsXG4gICAgICAgICAgICB3ZWlnaHQ6IDEsXG4gICAgICAgICAgfSkuYWRkVG8obWFwKTtcbiAgICAgICAgICBib2R5TGluZVsna2FuZG9fb2JqZWN0J10gPSAnRGVjb3JhdG9yJztcblxuICAgICAgICAgIHZhciB0YWlsTGluZSA9IEwucG9seWxpbmUoZXZlbnRUYWlsLl9sYXRsbmdzLCB7XG4gICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LCAyNTUsIDI1NSknLFxuICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgdGFpbExpbmVbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG5cbiAgICAgICAgICBsZXQgYXJyb3dIZWFkOiBhbnk7XG4gICAgICAgICAgaWYgKHdpbmRvdy5MLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICBhcnJvd0hlYWQgPSB3aW5kb3cuTC5wb2x5bGluZURlY29yYXRvcihldmVudEJvZHksIHtcbiAgICAgICAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICAgICAgICAvLyBkZWZpbmVzIGEgcGF0dGVybiBvZiAxMHB4LXdpZGUgZGFzaGVzLCByZXBlYXRlZCBldmVyeSAyMHB4IG9uIHRoZSBsaW5lXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgb2Zmc2V0OiA1LFxuICAgICAgICAgICAgICAgICAgcmVwZWF0OiAyNSxcbiAgICAgICAgICAgICAgICAgIHN5bWJvbDogd2luZG93LkwuU3ltYm9sLmFycm93SGVhZCh7XG4gICAgICAgICAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgICAgICAgICAgcG9seWdvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHBhdGhPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgyNTUsMjU1LDI1NSwxKScsXG4gICAgICAgICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLmFkZFRvKG1hcCk7XG4gICAgICAgICAgICBhcnJvd0hlYWRbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChMLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSBldmVudFBhcnRzLnB1c2godGFpbERhc2gpO1xuICAgICAgICAgIGV2ZW50UGFydHMucHVzaChldmVudEJvZHksIGV2ZW50VGFpbCwgYm9keUxpbmUsIGFycm93SGVhZCwgdGFpbExpbmUpO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGV2ZW50LnBhdGhbaV0gIT09IHVuZGVmaW5lZCAmJlxuICAgICAgICAgIGV2ZW50LnBhdGhbaV0uZXZlbnRfYm9keV9wYXJ0ID09PSAwICYmXG4gICAgICAgICAgZXZlbnQucGF0aFtpXS5ldmVudF90YWlsX3BhcnQgPiAwICYmXG4gICAgICAgICAgcGF0aHNbaV0gIT09IHVuZGVmaW5lZFxuICAgICAgICApIHtcbiAgICAgICAgICBsZXQgZXZlbnRUYWlsID0gTC5wb2x5bGluZShwYXRoc1tpXS5fbGF0bG5ncywge1xuICAgICAgICAgICAgY29sb3I6ICcjZjUwYjU2JyxcbiAgICAgICAgICAgIHdlaWdodDogMTIsXG4gICAgICAgICAgICBjbGFzc05hbWU6ICdldmVudC10YWlsJyxcbiAgICAgICAgICAgIG9wYWNpdHk6IDAuMyxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuXG4gICAgICAgICAgZXZlbnRUYWlsWydrYW5kb19vYmplY3RfaWQnXSA9IGV2ZW50LmlkO1xuICAgICAgICAgIGV2ZW50VGFpbFsna2FuZG9fb2JqZWN0J10gPSAnRXZlbnRUYWlsJztcblxuICAgICAgICAgIGxldCB0YWlsRGFzaDogYW55O1xuICAgICAgICAgIGlmICh3aW5kb3cuTC5TeW1ib2wgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGFpbERhc2ggPSB3aW5kb3cuTC5wb2x5bGluZURlY29yYXRvcihldmVudFRhaWwuX2xhdGxuZ3MsIHtcbiAgICAgICAgICAgICAgcGF0dGVybnM6IFtcbiAgICAgICAgICAgICAgICAvLyBkZWZpbmVzIGEgcGF0dGVybiBvZiAxMHB4LXdpZGUgZGFzaGVzLCByZXBlYXRlZCBldmVyeSAyMHB4IG9uIHRoZSBsaW5lXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAxNSxcbiAgICAgICAgICAgICAgICAgIHJlcGVhdDogMjUsXG4gICAgICAgICAgICAgICAgICBzeW1ib2w6IHdpbmRvdy5MLlN5bWJvbC5hcnJvd0hlYWQoe1xuICAgICAgICAgICAgICAgICAgICBwaXhlbFNpemU6IDMsXG4gICAgICAgICAgICAgICAgICAgIHBvbHlnb246IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBwYXRoT3B0aW9uczoge1xuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJ3JnYmEoMjU1LDI1NSwyNTUsMSknLFxuICAgICAgICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgICAgdGFpbERhc2hbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGFpbExpbmUgPSBMLnBvbHlsaW5lKGV2ZW50VGFpbC5fbGF0bG5ncywge1xuICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDI1NSwgMjU1LCAyNTUpJyxcbiAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICB9KS5hZGRUbyhtYXApO1xuICAgICAgICAgIHRhaWxMaW5lWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuICAgICAgICAgIHRhaWxEYXNoLmJyaW5nVG9Gcm9udCgpO1xuXG4gICAgICAgICAgZXZlbnRQYXJ0cy5wdXNoKGV2ZW50VGFpbCwgdGFpbExpbmUpO1xuICAgICAgICAgIGlmIChMLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSBldmVudFBhcnRzLnB1c2godGFpbERhc2gpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGRpc3BhdGNoKHNldEV2ZW50SW5kaWNhdG9yKEwubGF5ZXJHcm91cChldmVudFBhcnRzKSkpO1xuICAgIH1cbiAgfTtcblxuICB1c2VVcGRhdGVFdmVudEJvZHlUYWlsKFxuICAgIGV2ZW50ICE9PSBudWxsID8gZ2xvYmFsX2RhdGEuY3VycmVudF90aW1lIDogMCxcbiAgICBldmVudCxcbiAgICBlZGdlc19kYXRhLFxuICAgIGV2ZW50LmhvdmVyZWQsXG4gICk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICByZW5kZXJFdmVudEluZGljYXRvcigpO1xuICB9LCBbcGF0aHMsIGdsb2JhbF9kYXRhLmN1cnJlbnRfdGltZV0pO1xuXG4gIHJldHVybiA8ZGl2PjwvZGl2Pjtcbn07XG5cbmNvbnN0IGNvbm5lY3RvciA9IGNvbm5lY3QobWFwU3RhdGVUb1Byb3BzKTtcbmV4cG9ydCBkZWZhdWx0IGNvbm5lY3RvcihFdmVudEluZGljYXRvcik7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFDQSxJQUFBQSxvQkFBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsQ0FBQSxHQUFBQyx1QkFBQSxDQUFBRixPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBRyxNQUFBLEdBQUFELHVCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFMLE9BQUE7QUFHQSxJQUFBTSx1QkFBQSxH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
|
|
@@ -117,7 +117,7 @@ const drawNetwork = (edges, points, dispatch, map, event, layerGroup, flowRateUn
|
|
|
117
117
|
});
|
|
118
118
|
let tailDash;
|
|
119
119
|
if (window.L.Symbol !== undefined) {
|
|
120
|
-
tailDash = L.polylineDecorator(polylineBack._latlngs, {
|
|
120
|
+
tailDash = window.L.polylineDecorator(polylineBack._latlngs, {
|
|
121
121
|
patterns: [
|
|
122
122
|
// defines a pattern of 10px-wide dashes, repeated every 20px on the line
|
|
123
123
|
{
|
|
@@ -209,4 +209,4 @@ const createPointLogic = (point, map, layerGroup, flowRateUnit) => {
|
|
|
209
209
|
}
|
|
210
210
|
(0, _PointUtils.createBubblePoint)([point.latitude, point.longitude], point, map, null, layerGroup, flowRateUnit);
|
|
211
211
|
};
|
|
212
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3doaXRlUG9pbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2FjdGlvbnMiLCJfUG9pbnRVdGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJkcmF3TWFuaG9sZUljb24iLCJzb3VyY2VQb2ludCIsIm1hcCIsInBvaW50SWNvbiIsImljb24iLCJpY29uVXJsIiwid2hpdGVQb2ludCIsImljb25TaXplIiwiaWNvbkFuY2hvciIsIm1hbmhvbGVJY29uIiwibWFya2VyIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJyaXNlT25Ib3ZlciIsImFkZFRvIiwiYmluZFRvb2x0aXAiLCJncm91cCIsIm5hbWUiLCJzZWN0b3JfbmFtZSIsImlkIiwiZXhwb3J0cyIsImdldEZpcnN0RWRnZU9mRXZlbnRQYXRoIiwiZWRnZXMiLCJldmVudCIsInBhdGgiLCJ1bmRlZmluZWQiLCJmaW5kIiwiZWRnZSIsImVkZ2VfaWQiLCJmaW5kRWRnZXMiLCJuZXh0VXBzdHJlYW1MZXZlbElkcyIsImZpbHRlciIsImluY2x1ZGVzIiwidGFyZ2V0X3BvaW50X2lkIiwicmVjdXJzaXZlVXBzdHJlYW1TZWFyY2giLCJuZXh0TGV2ZWwiLCJtYXBBbGxFZGdlc05lc3RpbmciLCJhbGxVcHN0cmVhbUVkZ2VzIiwic291cmNlX3BvaW50X2lkIiwibGVuZ3RoIiwicHVzaCIsIm1hcHBlZCIsImZvckVhY2giLCJnZXRVcHN0cmVhbUVkZ2VzIiwiZmlyc3RFZGdlIiwiZmlyc3RVcHN0cmVhbUxldmVsIiwiZmluZFVwc3RyZWFtRWRnZXNUb0RyYXciLCJ1cHN0cmVhbUVkZ2VzIiwiZWRnZXNUb0RyYXciLCJwb2ludHMiLCJ1cHN0cmVhbUVkZ2UiLCJwb2ludCIsImNvbm5lY3Rpb25FZGdlcyIsImZpbmREb3duc3RyZWFtRWRnZXNUb0RyYXciLCJkb3duc3RyZWFtTmV0d29yayIsInJlY3Vyc2l2ZURvd25TdHJlYW1TZWFyY2giLCJkb3duU3RyZWFtRWRnZSIsImxhc3REb3duU3RyZWFtRWRnZSIsIm5leHRMZXZlbERvd25TdHJlYW0iLCJmaW5kRWRnZXNGcm9tRXZlbnRQYXRoVG9EcmF3IiwicGFydCIsIm1hdGNoZWRQYXJ0IiwiZHJhd05ldHdvcmsiLCJkaXNwYXRjaCIsImxheWVyR3JvdXAiLCJmbG93UmF0ZVVuaXQiLCJsYXRsbmdzIiwic2hhcGVfZGF0YSIsImRhdGEiLCJsYXQiLCJsbmciLCJwb2x5bGluZUJhY2siLCJwb2x5bGluZSIsImNvbG9yIiwid2VpZ2h0Iiwib3BhY2l0eSIsInRhaWxEYXNoIiwid2luZG93IiwiU3ltYm9sIiwicG9seWxpbmVEZWNvcmF0b3IiLCJfbGF0bG5ncyIsInBhdHRlcm5zIiwib2Zmc2V0IiwicmVwZWF0Iiwic3ltYm9sIiwiYXJyb3dIZWFkIiwicGl4ZWxTaXplIiwicG9seWdvbiIsInBhdGhPcHRpb25zIiwic3Ryb2tlIiwiYWRkTGF5ZXIiLCJob3ZlcmVkIiwiZm9jdXNlZCIsImJyaW5nVG9Gcm9udCIsInBvbHlsaW5lRnJvbnQiLCJzZXRIb3ZlcmVkRWRnZVBhdGhzIiwicG9pbnRGaW5kZXIiLCJ0YXJnZXRQb2ludCIsImJpbmRQb3B1cCIsImRpc3RhbmNlIiwiY3JlYXRlUG9pbnRMb2dpYyIsImRlc2lyZWRQb2ludElkIiwiZGVzaXJlZFBvaW50IiwiZmluZEFuZERyYXdFdmVudE5ldHdvcmtFZGdlcyIsInBvaW50SXNPYnNlcnZhdGlvbiIsIm9ic2VydmF0aW9ucyIsIm9icyIsInBvaW50X2lkIiwicG9pbnRJc0NvbGxlY3RvciIsInR5cGUiLCJpc0NvbGxlY3RvclVubW9uaXRvcmVkIiwiaGFzX2RldmljZSIsImNyZWF0ZUJ1YmJsZVBvaW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL2V2ZW50cy9FdmVudFV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgJ3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0IHdoaXRlUG9pbnQgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3doaXRlLXBvaW50LnBuZyc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBzZXRIb3ZlcmVkRWRnZVBhdGhzIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgY3JlYXRlQnViYmxlUG9pbnQgfSBmcm9tICcuLi9wb2ludHMvUG9pbnRVdGlscyc7XG5cbmV4cG9ydCBjb25zdCBkcmF3TWFuaG9sZUljb24gPSAoc291cmNlUG9pbnQ6IElQb2ludCwgbWFwOiBMLk1hcCkgPT4ge1xuICBsZXQgcG9pbnRJY29uID0gTC5pY29uKHtcbiAgICBpY29uVXJsOiB3aGl0ZVBvaW50LFxuICAgIGljb25TaXplOiBbOSwgOV0sXG4gICAgaWNvbkFuY2hvcjogWzQuNSwgNC41XSxcbiAgfSk7XG5cbiAgbGV0IG1hbmhvbGVJY29uOiBhbnkgPSBMLm1hcmtlcihcbiAgICBbc291cmNlUG9pbnQubGF0aXR1ZGUsIHNvdXJjZVBvaW50LmxvbmdpdHVkZV0sXG4gICAge1xuICAgICAgaWNvbjogcG9pbnRJY29uLFxuICAgICAgcmlzZU9uSG92ZXI6IHRydWUsXG4gICAgfSxcbiAgKS5hZGRUbyhtYXApO1xuICBtYW5ob2xlSWNvbi5iaW5kVG9vbHRpcChcbiAgICBgJHtzb3VyY2VQb2ludC5ncm91cC5uYW1lfSAoJHtzb3VyY2VQb2ludC5ncm91cC5zZWN0b3JfbmFtZX0pYCxcbiAgKTtcbiAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdF9pZCddID0gc291cmNlUG9pbnQuaWQ7XG4gIG1hbmhvbGVJY29uWydrYW5kb19vYmplY3QnXSA9ICdVcHN0cmVhbVBvaW50Jztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdEVkZ2VPZkV2ZW50UGF0aCA9IChlZGdlczogSUVkZ2VbXSwgZXZlbnQ6IElFdmVudCkgPT4ge1xuICBpZiAoZXZlbnQucGF0aFswXSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gIHJldHVybiBlZGdlcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBldmVudC5wYXRoWzBdLmVkZ2VfaWQpO1xufTtcblxuY29uc3QgZmluZEVkZ2VzID0gKGVkZ2VzLCBuZXh0VXBzdHJlYW1MZXZlbElkcykgPT4ge1xuICByZXR1cm4gZWRnZXMuZmlsdGVyKChlZGdlOiBJRWRnZSkgPT5cbiAgICBuZXh0VXBzdHJlYW1MZXZlbElkcy5pbmNsdWRlcyhlZGdlLnRhcmdldF9wb2ludF9pZCksXG4gICk7XG59O1xuXG5jb25zdCByZWN1cnNpdmVVcHN0cmVhbVNlYXJjaCA9IChcbiAgbmV4dExldmVsLFxuICBlZGdlcyxcbiAgbWFwQWxsRWRnZXNOZXN0aW5nLFxuICBhbGxVcHN0cmVhbUVkZ2VzLFxuKSA9PiB7XG4gIGxldCBuZXh0VXBzdHJlYW1MZXZlbElkcyA9IG5leHRMZXZlbC5tYXAoKGVkZ2UpID0+IGVkZ2Uuc291cmNlX3BvaW50X2lkKTtcbiAgaWYgKGZpbmRFZGdlcyhlZGdlcywgbmV4dFVwc3RyZWFtTGV2ZWxJZHMpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBtYXBBbGxFZGdlc05lc3RpbmcoW25leHRMZXZlbF0pO1xuICB9IGVsc2Uge1xuICAgIGFsbFVwc3RyZWFtRWRnZXMucHVzaChmaW5kRWRnZXMoZWRnZXMsIG5leHRVcHN0cmVhbUxldmVsSWRzKSk7XG4gICAgcmVjdXJzaXZlVXBzdHJlYW1TZWFyY2goXG4gICAgICBmaW5kRWRnZXMoZWRnZXMsIG5leHRVcHN0cmVhbUxldmVsSWRzKSxcbiAgICAgIGVkZ2VzLFxuICAgICAgbWFwQWxsRWRnZXNOZXN0aW5nLFxuICAgICAgYWxsVXBzdHJlYW1FZGdlcyxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIG1hcEFsbEVkZ2VzTmVzdGluZyhhbGxVcHN0cmVhbUVkZ2VzKTtcbn07XG5cbmNvbnN0IG1hcEFsbEVkZ2VzTmVzdGluZyA9IChhbGxVcHN0cmVhbUVkZ2VzKSA9PiB7XG4gIGxldCBtYXBwZWQ6IGFueVtdID0gW107XG4gIGFsbFVwc3RyZWFtRWRnZXMuZm9yRWFjaCgoZWRnZXMpID0+IHtcbiAgICBlZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBtYXBwZWQucHVzaChlZGdlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIG1hcHBlZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVcHN0cmVhbUVkZ2VzID0gKGZpcnN0RWRnZTogSUVkZ2UsIGVkZ2VzOiBJRWRnZVtdKSA9PiB7XG4gIGxldCBhbGxVcHN0cmVhbUVkZ2VzOiBhbnlbXSA9IFtdO1xuICBsZXQgZmlyc3RVcHN0cmVhbUxldmVsOiBJRWRnZVtdID0gZWRnZXMuZmlsdGVyKFxuICAgIChlZGdlKSA9PiBlZGdlLnRhcmdldF9wb2ludF9pZCA9PT0gZmlyc3RFZGdlIS5zb3VyY2VfcG9pbnRfaWQsXG4gICk7XG5cbiAgcmV0dXJuIHJlY3Vyc2l2ZVVwc3RyZWFtU2VhcmNoKFxuICAgIGZpcnN0VXBzdHJlYW1MZXZlbCxcbiAgICBlZGdlcyxcbiAgICBtYXBBbGxFZGdlc05lc3RpbmcsXG4gICAgYWxsVXBzdHJlYW1FZGdlcyxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kVXBzdHJlYW1FZGdlc1RvRHJhdyA9IChcbiAgdXBzdHJlYW1FZGdlczogSUVkZ2VbXSxcbiAgZWRnZXNUb0RyYXc6IElFZGdlW10sXG4gIHBvaW50czogSVBvaW50W10sXG4gIGVkZ2VzOiBJRWRnZVtdLFxuKSA9PiB7XG4gIHVwc3RyZWFtRWRnZXMuZm9yRWFjaCgodXBzdHJlYW1FZGdlKSA9PiB7XG4gICAgaWYgKHVwc3RyZWFtRWRnZSkge1xuICAgICAgbGV0IHNvdXJjZVBvaW50ID0gcG9pbnRzLmZpbmQoXG4gICAgICAgIChwb2ludCkgPT4gcG9pbnQuaWQgPT09IHVwc3RyZWFtRWRnZSEuc291cmNlX3BvaW50X2lkLFxuICAgICAgKTtcblxuICAgICAgaWYgKHNvdXJjZVBvaW50KSBlZGdlc1RvRHJhdy5wdXNoKHVwc3RyZWFtRWRnZSk7XG5cbiAgICAgIGxldCBjb25uZWN0aW9uRWRnZXMgPSBlZGdlcy5maWx0ZXIoXG4gICAgICAgIChlZGdlKSA9PiBlZGdlLnNvdXJjZV9wb2ludF9pZCA9PT0gdXBzdHJlYW1FZGdlLnRhcmdldF9wb2ludF9pZCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChjb25uZWN0aW9uRWRnZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIGNvbm5lY3Rpb25FZGdlcy5mb3JFYWNoKChlZGdlKSA9PiBlZGdlc1RvRHJhdy5wdXNoKGVkZ2UpKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBlZGdlc1RvRHJhdztcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kRG93bnN0cmVhbUVkZ2VzVG9EcmF3ID0gKFxuICBmaXJzdEVkZ2U6IElFZGdlLFxuICBlZGdlczogSUVkZ2VbXSxcbiAgZG93bnN0cmVhbU5ldHdvcmssXG4gIGVkZ2VzVG9EcmF3LFxuKSA9PiB7XG4gIHJlY3Vyc2l2ZURvd25TdHJlYW1TZWFyY2goZG93bnN0cmVhbU5ldHdvcmssIGVkZ2VzKS5mb3JFYWNoKFxuICAgIChkb3duU3RyZWFtRWRnZSkgPT4ge1xuICAgICAgZWRnZXNUb0RyYXcucHVzaChkb3duU3RyZWFtRWRnZSk7XG4gICAgfSxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZWN1cnNpdmVEb3duU3RyZWFtU2VhcmNoID0gKFxuICBkb3duc3RyZWFtTmV0d29yazogSUVkZ2VbXSxcbiAgZWRnZXM6IElFZGdlW10sXG4pID0+IHtcbiAgbGV0IGxhc3REb3duU3RyZWFtRWRnZSA9IGRvd25zdHJlYW1OZXR3b3JrW2Rvd25zdHJlYW1OZXR3b3JrLmxlbmd0aCAtIDFdO1xuXG4gIGlmIChuZXh0TGV2ZWxEb3duU3RyZWFtKGxhc3REb3duU3RyZWFtRWRnZSwgZWRnZXMpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBkb3duc3RyZWFtTmV0d29yaztcbiAgfSBlbHNlIHtcbiAgICBuZXh0TGV2ZWxEb3duU3RyZWFtKGxhc3REb3duU3RyZWFtRWRnZSwgZWRnZXMpLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICAgIGRvd25zdHJlYW1OZXR3b3JrLnB1c2goZWRnZSk7XG4gICAgICByZWN1cnNpdmVEb3duU3RyZWFtU2VhcmNoKGRvd25zdHJlYW1OZXR3b3JrLCBlZGdlcyk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZG93bnN0cmVhbU5ldHdvcms7XG59O1xuXG5leHBvcnQgY29uc3QgbmV4dExldmVsRG93blN0cmVhbSA9IChmaXJzdEVkZ2U6IElFZGdlLCBlZGdlczogSUVkZ2VbXSkgPT4ge1xuICByZXR1cm4gZWRnZXMuZmlsdGVyKFxuICAgIChlZGdlKSA9PiBlZGdlLnNvdXJjZV9wb2ludF9pZCA9PT0gZmlyc3RFZGdlLnRhcmdldF9wb2ludF9pZCxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kRWRnZXNGcm9tRXZlbnRQYXRoVG9EcmF3ID0gKFxuICBlZGdlc1RvRHJhdzogSUVkZ2VbXSxcbiAgZXZlbnQ6IElFdmVudCxcbiAgZWRnZXM6IElFZGdlW10sXG4pID0+IHtcbiAgZXZlbnQucGF0aC5mb3JFYWNoKChwYXJ0KSA9PiB7XG4gICAgbGV0IG1hdGNoZWRQYXJ0ID0gZWRnZXMuZmluZCgoZWRnZSkgPT4gZWRnZS5pZCA9PT0gcGFydC5lZGdlX2lkKTtcbiAgICBpZiAobWF0Y2hlZFBhcnQgIT09IHVuZGVmaW5lZCkgZWRnZXNUb0RyYXcucHVzaChtYXRjaGVkUGFydCk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGRyYXdOZXR3b3JrID0gKFxuICBlZGdlczogSUVkZ2VbXSxcbiAgcG9pbnRzOiBJUG9pbnRbXSxcbiAgZGlzcGF0Y2gsXG4gIG1hcCxcbiAgZXZlbnQsXG4gIGxheWVyR3JvdXAsXG4gIGZsb3dSYXRlVW5pdCxcbikgPT4ge1xuICBsZXQgbGF0bG5nczogYW55ID0gW107XG4gIGVkZ2VzLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICBlZGdlLnNoYXBlX2RhdGEuZm9yRWFjaCgoZGF0YTogYW55KSA9PiB7XG4gICAgICBsYXRsbmdzLnB1c2goW2RhdGEubGF0LCBkYXRhLmxuZ10pO1xuICAgIH0pO1xuXG4gICAgbGV0IHBvbHlsaW5lQmFjazogYW55ID0gTC5wb2x5bGluZShsYXRsbmdzLCB7XG4gICAgICBjb2xvcjogJ3JnYigyMjcsMjI3LDIyNyknLFxuICAgICAgd2VpZ2h0OiA2LFxuICAgICAgb3BhY2l0eTogMSxcbiAgICB9KTtcblxuICAgIGxldCB0YWlsRGFzaDogYW55O1xuXG4gICAgaWYgKHdpbmRvdy5MLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YWlsRGFzaCA9IEwucG9seWxpbmVEZWNvcmF0b3IocG9seWxpbmVCYWNrLl9sYXRsbmdzLCB7XG4gICAgICAgIHBhdHRlcm5zOiBbXG4gICAgICAgICAgLy8gZGVmaW5lcyBhIHBhdHRlcm4gb2YgMTBweC13aWRlIGRhc2hlcywgcmVwZWF0ZWQgZXZlcnkgMjBweCBvbiB0aGUgbGluZVxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9mZnNldDogMTUsXG4gICAgICAgICAgICByZXBlYXQ6IDI1LFxuICAgICAgICAgICAgc3ltYm9sOiB3aW5kb3cuTC5TeW1ib2wuYXJyb3dIZWFkKHtcbiAgICAgICAgICAgICAgcGl4ZWxTaXplOiAzLFxuICAgICAgICAgICAgICBwb2x5Z29uOiBmYWxzZSxcbiAgICAgICAgICAgICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBzdHJva2U6IHRydWUsXG4gICAgICAgICAgICAgICAgY29sb3I6ICdyZ2JhKDAsMCwwKScsXG4gICAgICAgICAgICAgICAgd2VpZ2h0OiAxLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuICAgICAgdGFpbERhc2hbJ2thbmRvX29iamVjdCddID0gJ0RlY29yYXRvcic7XG4gICAgICBsYXllckdyb3VwLmFkZExheWVyKHRhaWxEYXNoKTtcbiAgICB9XG5cbiAgICBwb2x5bGluZUJhY2tbJ2thbmRvX29iamVjdF9pZCddID0gZWRnZS5pZDtcbiAgICBpZiAoZXZlbnQuaG92ZXJlZCkgcG9seWxpbmVCYWNrWydrYW5kb19vYmplY3QnXSA9ICdIb3ZlcmVkRWRnZSc7XG4gICAgaWYgKGV2ZW50LmZvY3VzZWQpIHBvbHlsaW5lQmFja1sna2FuZG9fb2JqZWN0J10gPSAnRm9jdXNlZEVkZ2UnO1xuICAgIGlmIChtYXAgIT09IG51bGwpIGxheWVyR3JvdXAuYWRkTGF5ZXIocG9seWxpbmVCYWNrKTtcbiAgICBwb2x5bGluZUJhY2suYnJpbmdUb0Zyb250KCk7XG4gICAgaWYgKEwuU3ltYm9sICE9PSB1bmRlZmluZWQpIHRhaWxEYXNoLmJyaW5nVG9Gcm9udCgpO1xuXG4gICAgbGV0IHBvbHlsaW5lRnJvbnQ6IGFueSA9IEwucG9seWxpbmUobGF0bG5ncywge1xuICAgICAgY29sb3I6ICdyZ2IoMjksMjksMjkpJyxcbiAgICAgIHdlaWdodDogMSxcbiAgICAgIG9wYWNpdHk6IDEsXG4gICAgfSk7XG5cbiAgICBwb2x5bGluZUZyb250WydrYW5kb19vYmplY3RfaWQnXSA9IGVkZ2UuaWQ7XG4gICAgaWYgKGV2ZW50LmhvdmVyZWQpIHBvbHlsaW5lRnJvbnRbJ2thbmRvX29iamVjdCddID0gJ0hvdmVyZWRFZGdlRnJvbnQnO1xuICAgIGlmIChldmVudC5mb2N1c2VkKSBwb2x5bGluZUZyb250WydrYW5kb19vYmplY3QnXSA9ICdGb2N1c2VkRWRnZUZyb250JztcbiAgICBpZiAobWFwICE9PSBudWxsKSBsYXllckdyb3VwLmFkZExheWVyKHBvbHlsaW5lRnJvbnQpO1xuICAgIHBvbHlsaW5lQmFjay5hZGRUbyhtYXApO1xuICAgIHBvbHlsaW5lRnJvbnQuYWRkVG8obWFwKTtcblxuICAgIHBvbHlsaW5lRnJvbnQuYnJpbmdUb0Zyb250KCk7XG4gICAgaWYgKGV2ZW50LmhvdmVyZWQpXG4gICAgICBkaXNwYXRjaChzZXRIb3ZlcmVkRWRnZVBhdGhzKFtwb2x5bGluZUJhY2ssIHBvbHlsaW5lRnJvbnRdKSk7XG4gICAgbGF0bG5ncyA9IFtdO1xuXG4gICAgaWYgKHBvaW50cy5sZW5ndGggIT09IDApIHtcbiAgICAgIGxldCBzb3VyY2VQb2ludDogSVBvaW50ID0gcG9pbnRGaW5kZXIocG9pbnRzLCBlZGdlLnNvdXJjZV9wb2ludF9pZCk7XG4gICAgICBsZXQgdGFyZ2V0UG9pbnQ6IElQb2ludCA9IHBvaW50RmluZGVyKHBvaW50cywgZWRnZS50YXJnZXRfcG9pbnRfaWQpO1xuICAgICAgaWYgKHNvdXJjZVBvaW50ICE9PSB1bmRlZmluZWQgJiYgdGFyZ2V0UG9pbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwb2x5bGluZUJhY2suYmluZFBvcHVwKGBFZGdlIElEOiAke2VkZ2UuaWR9LDxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU291cmNlIHBvaW50OiAke3NvdXJjZVBvaW50Lmdyb3VwLm5hbWV9LDxicj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFyZ2V0IHBvaW50OiAke3RhcmdldFBvaW50Lmdyb3VwLm5hbWV9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEaXN0YW5jZTogJHtlZGdlLmRpc3RhbmNlfWApO1xuICAgICAgfVxuICAgICAgY3JlYXRlUG9pbnRMb2dpYyhzb3VyY2VQb2ludCwgbWFwLCBsYXllckdyb3VwLCBmbG93UmF0ZVVuaXQpO1xuICAgICAgaWYgKGVkZ2VzW2VkZ2VzLmxlbmd0aCAtIDFdLnRhcmdldF9wb2ludF9pZCA9PT0gZWRnZS50YXJnZXRfcG9pbnRfaWQpIHtcbiAgICAgICAgY3JlYXRlUG9pbnRMb2dpYyh0YXJnZXRQb2ludCwgbWFwLCBsYXllckdyb3VwKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xufTtcblxuY29uc3QgcG9pbnRGaW5kZXIgPSAocG9pbnRzLCBkZXNpcmVkUG9pbnRJZCkgPT4ge1xuICBsZXQgZGVzaXJlZFBvaW50OiBJUG9pbnQgPSBwb2ludHMuZmluZChcbiAgICAocG9pbnQ6IElQb2ludCkgPT4gcG9pbnQuaWQgPT09IGRlc2lyZWRQb2ludElkLFxuICApO1xuXG4gIHJldHVybiBkZXNpcmVkUG9pbnQ7XG59O1xuXG5leHBvcnQgY29uc3QgZmluZEFuZERyYXdFdmVudE5ldHdvcmtFZGdlcyA9IChcbiAgZWRnZXM6IElFZGdlW10sXG4gIGV2ZW50OiBJRXZlbnQsXG4gIHBvaW50czogSVBvaW50W10sXG4gIGRpc3BhdGNoLFxuICBtYXAsXG4gIGxheWVyR3JvdXAsXG4gIGZsb3dSYXRlVW5pdCxcbikgPT4ge1xuICBsZXQgZWRnZXNUb0RyYXc6IElFZGdlW10gPSBbXTtcbiAgbGV0IGZpcnN0RWRnZSA9IGdldEZpcnN0RWRnZU9mRXZlbnRQYXRoKGVkZ2VzLCBldmVudCk7XG5cbiAgaWYgKGZpcnN0RWRnZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgbGV0IGRvd25zdHJlYW1OZXR3b3JrOiBJRWRnZVtdID0gW2ZpcnN0RWRnZV07XG4gICAgbGV0IHVwc3RyZWFtRWRnZXMgPSBnZXRVcHN0cmVhbUVkZ2VzKGZpcnN0RWRnZSwgZWRnZXMpO1xuICAgIGlmICh1cHN0cmVhbUVkZ2VzID09PSB1bmRlZmluZWQpIHJldHVybjtcbiAgICBpZiAodXBzdHJlYW1FZGdlcy5sZW5ndGggIT09IDApXG4gICAgICBmaW5kVXBzdHJlYW1FZGdlc1RvRHJhdyh1cHN0cmVhbUVkZ2VzLCBlZGdlc1RvRHJhdywgcG9pbnRzLCBlZGdlcyk7XG4gICAgZmluZERvd25zdHJlYW1FZGdlc1RvRHJhdyhmaXJzdEVkZ2UsIGVkZ2VzLCBkb3duc3RyZWFtTmV0d29yaywgZWRnZXNUb0RyYXcpO1xuICB9XG5cbiAgZHJhd05ldHdvcmsoXG4gICAgZWRnZXNUb0RyYXcsXG4gICAgcG9pbnRzLFxuICAgIGRpc3BhdGNoLFxuICAgIG1hcCxcbiAgICBldmVudCxcbiAgICBsYXllckdyb3VwLFxuICAgIGZsb3dSYXRlVW5pdCxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBwb2ludElzT2JzZXJ2YXRpb24gPSAoZXZlbnQ6IElFdmVudCwgcG9pbnQ6IElQb2ludCkgPT4ge1xuICByZXR1cm4gZXZlbnQub2JzZXJ2YXRpb25zLmZpbmQoKG9icykgPT4gb2JzLnBvaW50X2lkID09PSBwb2ludC5pZCk7XG59O1xuXG5leHBvcnQgY29uc3QgcG9pbnRJc0NvbGxlY3RvciA9IChwb2ludDogSVBvaW50KSA9PiB7XG4gIHJldHVybiBwb2ludC5ncm91cC50eXBlID09PSAnR3JvdXBzOjpDb2xsZWN0b3JzJztcbn07XG5cbmV4cG9ydCBjb25zdCBpc0NvbGxlY3RvclVubW9uaXRvcmVkID0gKHBvaW50OiBJUG9pbnQpID0+IHtcbiAgcmV0dXJuIHBvaW50SXNDb2xsZWN0b3IocG9pbnQpICYmICFwb2ludC5oYXNfZGV2aWNlO1xufTtcblxuY29uc3QgY3JlYXRlUG9pbnRMb2dpYyA9IChwb2ludDogSVBvaW50LCBtYXAsIGxheWVyR3JvdXAsIGZsb3dSYXRlVW5pdCkgPT4ge1xuICBpZiAoaXNDb2xsZWN0b3JVbm1vbml0b3JlZChwb2ludCkpIHtcbiAgICByZXR1cm47XG4gIH1cblxuICBjcmVhdGVCdWJibGVQb2ludChcbiAgICBbcG9pbnQubGF0aXR1ZGUsIHBvaW50LmxvbmdpdHVkZV0sXG4gICAgcG9pbnQsXG4gICAgbWFwLFxuICAgIG51bGwsXG4gICAgbGF5ZXJHcm91cCxcbiAgICBmbG93UmF0ZVVuaXQsXG4gICk7XG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsQ0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFJQSxJQUFBRyxRQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxXQUFBLEdBQUFKLE9BQUE7QUFBeUQsU0FBQUsseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLENBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQVAsd0JBQUFXLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxvQkFBQUEsR0FBQSx3QkFBQUEsR0FBQSw0QkFBQUUsT0FBQSxFQUFBRixHQUFBLFVBQUFHLEtBQUEsR0FBQVIsd0JBQUEsQ0FBQUMsV0FBQSxPQUFBTyxLQUFBLElBQUFBLEtBQUEsQ0FBQUMsR0FBQSxDQUFBSixHQUFBLFlBQUFHLEtBQUEsQ0FBQUUsR0FBQSxDQUFBTCxHQUFBLFNBQUFNLE1BQUEsV0FBQUMscUJBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsR0FBQSxJQUFBWCxHQUFBLFFBQUFXLEdBQUEsa0JBQUFILE1B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
|
|
212
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMIiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJyZXF1aXJlIiwiX3doaXRlUG9pbnQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2FjdGlvbnMiLCJfUG9pbnRVdGlscyIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJkcmF3TWFuaG9sZUljb24iLCJzb3VyY2VQb2ludCIsIm1hcCIsInBvaW50SWNvbiIsImljb24iLCJpY29uVXJsIiwid2hpdGVQb2ludCIsImljb25TaXplIiwiaWNvbkFuY2hvciIsIm1hbmhvbGVJY29uIiwibWFya2VyIiwibGF0aXR1ZGUiLCJsb25naXR1ZGUiLCJyaXNlT25Ib3ZlciIsImFkZFRvIiwiYmluZFRvb2x0aXAiLCJncm91cCIsIm5hbWUiLCJzZWN0b3JfbmFtZSIsImlkIiwiZXhwb3J0cyIsImdldEZpcnN0RWRnZU9mRXZlbnRQYXRoIiwiZWRnZXMiLCJldmVudCIsInBhdGgiLCJ1bmRlZmluZWQiLCJmaW5kIiwiZWRnZSIsImVkZ2VfaWQiLCJmaW5kRWRnZXMiLCJuZXh0VXBzdHJlYW1MZXZlbElkcyIsImZpbHRlciIsImluY2x1ZGVzIiwidGFyZ2V0X3BvaW50X2lkIiwicmVjdXJzaXZlVXBzdHJlYW1TZWFyY2giLCJuZXh0TGV2ZWwiLCJtYXBBbGxFZGdlc05lc3RpbmciLCJhbGxVcHN0cmVhbUVkZ2VzIiwic291cmNlX3BvaW50X2lkIiwibGVuZ3RoIiwicHVzaCIsIm1hcHBlZCIsImZvckVhY2giLCJnZXRVcHN0cmVhbUVkZ2VzIiwiZmlyc3RFZGdlIiwiZmlyc3RVcHN0cmVhbUxldmVsIiwiZmluZFVwc3RyZWFtRWRnZXNUb0RyYXciLCJ1cHN0cmVhbUVkZ2VzIiwiZWRnZXNUb0RyYXciLCJwb2ludHMiLCJ1cHN0cmVhbUVkZ2UiLCJwb2ludCIsImNvbm5lY3Rpb25FZGdlcyIsImZpbmREb3duc3RyZWFtRWRnZXNUb0RyYXciLCJkb3duc3RyZWFtTmV0d29yayIsInJlY3Vyc2l2ZURvd25TdHJlYW1TZWFyY2giLCJkb3duU3RyZWFtRWRnZSIsImxhc3REb3duU3RyZWFtRWRnZSIsIm5leHRMZXZlbERvd25TdHJlYW0iLCJmaW5kRWRnZXNGcm9tRXZlbnRQYXRoVG9EcmF3IiwicGFydCIsIm1hdGNoZWRQYXJ0IiwiZHJhd05ldHdvcmsiLCJkaXNwYXRjaCIsImxheWVyR3JvdXAiLCJmbG93UmF0ZVVuaXQiLCJsYXRsbmdzIiwic2hhcGVfZGF0YSIsImRhdGEiLCJsYXQiLCJsbmciLCJwb2x5bGluZUJhY2siLCJwb2x5bGluZSIsImNvbG9yIiwid2VpZ2h0Iiwib3BhY2l0eSIsInRhaWxEYXNoIiwid2luZG93IiwiU3ltYm9sIiwicG9seWxpbmVEZWNvcmF0b3IiLCJfbGF0bG5ncyIsInBhdHRlcm5zIiwib2Zmc2V0IiwicmVwZWF0Iiwic3ltYm9sIiwiYXJyb3dIZWFkIiwicGl4ZWxTaXplIiwicG9seWdvbiIsInBhdGhPcHRpb25zIiwic3Ryb2tlIiwiYWRkTGF5ZXIiLCJob3ZlcmVkIiwiZm9jdXNlZCIsImJyaW5nVG9Gcm9udCIsInBvbHlsaW5lRnJvbnQiLCJzZXRIb3ZlcmVkRWRnZVBhdGhzIiwicG9pbnRGaW5kZXIiLCJ0YXJnZXRQb2ludCIsImJpbmRQb3B1cCIsImRpc3RhbmNlIiwiY3JlYXRlUG9pbnRMb2dpYyIsImRlc2lyZWRQb2ludElkIiwiZGVzaXJlZFBvaW50IiwiZmluZEFuZERyYXdFdmVudE5ldHdvcmtFZGdlcyIsInBvaW50SXNPYnNlcnZhdGlvbiIsIm9ic2VydmF0aW9ucyIsIm9icyIsInBvaW50X2lkIiwicG9pbnRJc0NvbGxlY3RvciIsInR5cGUiLCJpc0NvbGxlY3RvclVubW9uaXRvcmVkIiwiaGFzX2RldmljZSIsImNyZWF0ZUJ1YmJsZVBvaW50Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL1dpZGdldHMvTWFwL2V2ZW50cy9FdmVudFV0aWxzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIEwgZnJvbSAnbGVhZmxldCc7XG5pbXBvcnQgJ3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3InO1xuaW1wb3J0IHdoaXRlUG9pbnQgZnJvbSAnLi4vLi4vLi4vYXNzZXRzL3doaXRlLXBvaW50LnBuZyc7XG5pbXBvcnQgeyBJRWRnZSB9IGZyb20gJy4uLy4uLy4uL3N0b3JlL2VkZ2VzL21vZGVscy9JRWRnZSc7XG5pbXBvcnQgeyBJUG9pbnQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9wb2ludHMvbW9kZWxzL0lQb2ludCc7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9zdG9yZS9ldmVudHMvbW9kZWxzL0lFdmVudCc7XG5pbXBvcnQgeyBzZXRIb3ZlcmVkRWRnZVBhdGhzIH0gZnJvbSAnLi4vLi4vLi4vc3RvcmUvZXZlbnRzL2FjdGlvbnMnO1xuaW1wb3J0IHsgY3JlYXRlQnViYmxlUG9pbnQgfSBmcm9tICcuLi9wb2ludHMvUG9pbnRVdGlscyc7XG5cbmV4cG9ydCBjb25zdCBkcmF3TWFuaG9sZUljb24gPSAoc291cmNlUG9pbnQ6IElQb2ludCwgbWFwOiBMLk1hcCkgPT4ge1xuICBsZXQgcG9pbnRJY29uID0gTC5pY29uKHtcbiAgICBpY29uVXJsOiB3aGl0ZVBvaW50LFxuICAgIGljb25TaXplOiBbOSwgOV0sXG4gICAgaWNvbkFuY2hvcjogWzQuNSwgNC41XSxcbiAgfSk7XG5cbiAgbGV0IG1hbmhvbGVJY29uOiBhbnkgPSBMLm1hcmtlcihcbiAgICBbc291cmNlUG9pbnQubGF0aXR1ZGUsIHNvdXJjZVBvaW50LmxvbmdpdHVkZV0sXG4gICAge1xuICAgICAgaWNvbjogcG9pbnRJY29uLFxuICAgICAgcmlzZU9uSG92ZXI6IHRydWUsXG4gICAgfSxcbiAgKS5hZGRUbyhtYXApO1xuICBtYW5ob2xlSWNvbi5iaW5kVG9vbHRpcChcbiAgICBgJHtzb3VyY2VQb2ludC5ncm91cC5uYW1lfSAoJHtzb3VyY2VQb2ludC5ncm91cC5zZWN0b3JfbmFtZX0pYCxcbiAgKTtcbiAgbWFuaG9sZUljb25bJ2thbmRvX29iamVjdF9pZCddID0gc291cmNlUG9pbnQuaWQ7XG4gIG1hbmhvbGVJY29uWydrYW5kb19vYmplY3QnXSA9ICdVcHN0cmVhbVBvaW50Jztcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRGaXJzdEVkZ2VPZkV2ZW50UGF0aCA9IChlZGdlczogSUVkZ2VbXSwgZXZlbnQ6IElFdmVudCkgPT4ge1xuICBpZiAoZXZlbnQucGF0aFswXSA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gIHJldHVybiBlZGdlcy5maW5kKChlZGdlKSA9PiBlZGdlLmlkID09PSBldmVudC5wYXRoWzBdLmVkZ2VfaWQpO1xufTtcblxuY29uc3QgZmluZEVkZ2VzID0gKGVkZ2VzLCBuZXh0VXBzdHJlYW1MZXZlbElkcykgPT4ge1xuICByZXR1cm4gZWRnZXMuZmlsdGVyKChlZGdlOiBJRWRnZSkgPT5cbiAgICBuZXh0VXBzdHJlYW1MZXZlbElkcy5pbmNsdWRlcyhlZGdlLnRhcmdldF9wb2ludF9pZCksXG4gICk7XG59O1xuXG5jb25zdCByZWN1cnNpdmVVcHN0cmVhbVNlYXJjaCA9IChcbiAgbmV4dExldmVsLFxuICBlZGdlcyxcbiAgbWFwQWxsRWRnZXNOZXN0aW5nLFxuICBhbGxVcHN0cmVhbUVkZ2VzLFxuKSA9PiB7XG4gIGxldCBuZXh0VXBzdHJlYW1MZXZlbElkcyA9IG5leHRMZXZlbC5tYXAoKGVkZ2UpID0+IGVkZ2Uuc291cmNlX3BvaW50X2lkKTtcbiAgaWYgKGZpbmRFZGdlcyhlZGdlcywgbmV4dFVwc3RyZWFtTGV2ZWxJZHMpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBtYXBBbGxFZGdlc05lc3RpbmcoW25leHRMZXZlbF0pO1xuICB9IGVsc2Uge1xuICAgIGFsbFVwc3RyZWFtRWRnZXMucHVzaChmaW5kRWRnZXMoZWRnZXMsIG5leHRVcHN0cmVhbUxldmVsSWRzKSk7XG4gICAgcmVjdXJzaXZlVXBzdHJlYW1TZWFyY2goXG4gICAgICBmaW5kRWRnZXMoZWRnZXMsIG5leHRVcHN0cmVhbUxldmVsSWRzKSxcbiAgICAgIGVkZ2VzLFxuICAgICAgbWFwQWxsRWRnZXNOZXN0aW5nLFxuICAgICAgYWxsVXBzdHJlYW1FZGdlcyxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIG1hcEFsbEVkZ2VzTmVzdGluZyhhbGxVcHN0cmVhbUVkZ2VzKTtcbn07XG5cbmNvbnN0IG1hcEFsbEVkZ2VzTmVzdGluZyA9IChhbGxVcHN0cmVhbUVkZ2VzKSA9PiB7XG4gIGxldCBtYXBwZWQ6IGFueVtdID0gW107XG4gIGFsbFVwc3RyZWFtRWRnZXMuZm9yRWFjaCgoZWRnZXMpID0+IHtcbiAgICBlZGdlcy5mb3JFYWNoKChlZGdlKSA9PiB7XG4gICAgICBtYXBwZWQucHVzaChlZGdlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgcmV0dXJuIG1hcHBlZDtcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRVcHN0cmVhbUVkZ2VzID0gKGZpcnN0RWRnZTogSUVkZ2UsIGVkZ2VzOiBJRWRnZVtdKSA9PiB7XG4gIGxldCBhbGxVcHN0cmVhbUVkZ2VzOiBhbnlbXSA9IFtdO1xuICBsZXQgZmlyc3RVcHN0cmVhbUxldmVsOiBJRWRnZVtdID0gZWRnZXMuZmlsdGVyKFxuICAgIChlZGdlKSA9PiBlZGdlLnRhcmdldF9wb2ludF9pZCA9PT0gZmlyc3RFZGdlIS5zb3VyY2VfcG9pbnRfaWQsXG4gICk7XG5cbiAgcmV0dXJuIHJlY3Vyc2l2ZVVwc3RyZWFtU2VhcmNoKFxuICAgIGZpcnN0VXBzdHJlYW1MZXZlbCxcbiAgICBlZGdlcyxcbiAgICBtYXBBbGxFZGdlc05lc3RpbmcsXG4gICAgYWxsVXBzdHJlYW1FZGdlcyxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kVXBzdHJlYW1FZGdlc1RvRHJhdyA9IChcbiAgdXBzdHJlYW1FZGdlczogSUVkZ2VbXSxcbiAgZWRnZXNUb0RyYXc6IElFZGdlW10sXG4gIHBvaW50czogSVBvaW50W10sXG4gIGVkZ2VzOiBJRWRnZVtdLFxuKSA9PiB7XG4gIHVwc3RyZWFtRWRnZXMuZm9yRWFjaCgodXBzdHJlYW1FZGdlKSA9PiB7XG4gICAgaWYgKHVwc3RyZWFtRWRnZSkge1xuICAgICAgbGV0IHNvdXJjZVBvaW50ID0gcG9pbnRzLmZpbmQoXG4gICAgICAgIChwb2ludCkgPT4gcG9pbnQuaWQgPT09IHVwc3RyZWFtRWRnZSEuc291cmNlX3BvaW50X2lkLFxuICAgICAgKTtcblxuICAgICAgaWYgKHNvdXJjZVBvaW50KSBlZGdlc1RvRHJhdy5wdXNoKHVwc3RyZWFtRWRnZSk7XG5cbiAgICAgIGxldCBjb25uZWN0aW9uRWRnZXMgPSBlZGdlcy5maWx0ZXIoXG4gICAgICAgIChlZGdlKSA9PiBlZGdlLnNvdXJjZV9wb2ludF9pZCA9PT0gdXBzdHJlYW1FZGdlLnRhcmdldF9wb2ludF9pZCxcbiAgICAgICk7XG5cbiAgICAgIGlmIChjb25uZWN0aW9uRWRnZXMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgIGNvbm5lY3Rpb25FZGdlcy5mb3JFYWNoKChlZGdlKSA9PiBlZGdlc1RvRHJhdy5wdXNoKGVkZ2UpKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBlZGdlc1RvRHJhdztcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kRG93bnN0cmVhbUVkZ2VzVG9EcmF3ID0gKFxuICBmaXJzdEVkZ2U6IElFZGdlLFxuICBlZGdlczogSUVkZ2VbXSxcbiAgZG93bnN0cmVhbU5ldHdvcmssXG4gIGVkZ2VzVG9EcmF3LFxuKSA9PiB7XG4gIHJlY3Vyc2l2ZURvd25TdHJlYW1TZWFyY2goZG93bnN0cmVhbU5ldHdvcmssIGVkZ2VzKS5mb3JFYWNoKFxuICAgIChkb3duU3RyZWFtRWRnZSkgPT4ge1xuICAgICAgZWRnZXNUb0RyYXcucHVzaChkb3duU3RyZWFtRWRnZSk7XG4gICAgfSxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCByZWN1cnNpdmVEb3duU3RyZWFtU2VhcmNoID0gKFxuICBkb3duc3RyZWFtTmV0d29yazogSUVkZ2VbXSxcbiAgZWRnZXM6IElFZGdlW10sXG4pID0+IHtcbiAgbGV0IGxhc3REb3duU3RyZWFtRWRnZSA9IGRvd25zdHJlYW1OZXR3b3JrW2Rvd25zdHJlYW1OZXR3b3JrLmxlbmd0aCAtIDFdO1xuXG4gIGlmIChuZXh0TGV2ZWxEb3duU3RyZWFtKGxhc3REb3duU3RyZWFtRWRnZSwgZWRnZXMpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiBkb3duc3RyZWFtTmV0d29yaztcbiAgfSBlbHNlIHtcbiAgICBuZXh0TGV2ZWxEb3duU3RyZWFtKGxhc3REb3duU3RyZWFtRWRnZSwgZWRnZXMpLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICAgIGRvd25zdHJlYW1OZXR3b3JrLnB1c2goZWRnZSk7XG4gICAgICByZWN1cnNpdmVEb3duU3RyZWFtU2VhcmNoKGRvd25zdHJlYW1OZXR3b3JrLCBlZGdlcyk7XG4gICAgfSk7XG4gIH1cblxuICByZXR1cm4gZG93bnN0cmVhbU5ldHdvcms7XG59O1xuXG5leHBvcnQgY29uc3QgbmV4dExldmVsRG93blN0cmVhbSA9IChmaXJzdEVkZ2U6IElFZGdlLCBlZGdlczogSUVkZ2VbXSkgPT4ge1xuICByZXR1cm4gZWRnZXMuZmlsdGVyKFxuICAgIChlZGdlKSA9PiBlZGdlLnNvdXJjZV9wb2ludF9pZCA9PT0gZmlyc3RFZGdlLnRhcmdldF9wb2ludF9pZCxcbiAgKTtcbn07XG5cbmV4cG9ydCBjb25zdCBmaW5kRWRnZXNGcm9tRXZlbnRQYXRoVG9EcmF3ID0gKFxuICBlZGdlc1RvRHJhdzogSUVkZ2VbXSxcbiAgZXZlbnQ6IElFdmVudCxcbiAgZWRnZXM6IElFZGdlW10sXG4pID0+IHtcbiAgZXZlbnQucGF0aC5mb3JFYWNoKChwYXJ0KSA9PiB7XG4gICAgbGV0IG1hdGNoZWRQYXJ0ID0gZWRnZXMuZmluZCgoZWRnZSkgPT4gZWRnZS5pZCA9PT0gcGFydC5lZGdlX2lkKTtcbiAgICBpZiAobWF0Y2hlZFBhcnQgIT09IHVuZGVmaW5lZCkgZWRnZXNUb0RyYXcucHVzaChtYXRjaGVkUGFydCk7XG4gIH0pO1xufTtcblxuZXhwb3J0IGNvbnN0IGRyYXdOZXR3b3JrID0gKFxuICBlZGdlczogSUVkZ2VbXSxcbiAgcG9pbnRzOiBJUG9pbnRbXSxcbiAgZGlzcGF0Y2gsXG4gIG1hcCxcbiAgZXZlbnQsXG4gIGxheWVyR3JvdXAsXG4gIGZsb3dSYXRlVW5pdCxcbikgPT4ge1xuICBsZXQgbGF0bG5nczogYW55ID0gW107XG4gIGVkZ2VzLmZvckVhY2goKGVkZ2UpID0+IHtcbiAgICBlZGdlLnNoYXBlX2RhdGEuZm9yRWFjaCgoZGF0YTogYW55KSA9PiB7XG4gICAgICBsYXRsbmdzLnB1c2goW2RhdGEubGF0LCBkYXRhLmxuZ10pO1xuICAgIH0pO1xuXG4gICAgbGV0IHBvbHlsaW5lQmFjazogYW55ID0gTC5wb2x5bGluZShsYXRsbmdzLCB7XG4gICAgICBjb2xvcjogJ3JnYigyMjcsMjI3LDIyNyknLFxuICAgICAgd2VpZ2h0OiA2LFxuICAgICAgb3BhY2l0eTogMSxcbiAgICB9KTtcblxuICAgIGxldCB0YWlsRGFzaDogYW55O1xuXG4gICAgaWYgKHdpbmRvdy5MLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0YWlsRGFzaCA9IHdpbmRvdy5MLnBvbHlsaW5lRGVjb3JhdG9yKHBvbHlsaW5lQmFjay5fbGF0bG5ncywge1xuICAgICAgICBwYXR0ZXJuczogW1xuICAgICAgICAgIC8vIGRlZmluZXMgYSBwYXR0ZXJuIG9mIDEwcHgtd2lkZSBkYXNoZXMsIHJlcGVhdGVkIGV2ZXJ5IDIwcHggb24gdGhlIGxpbmVcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvZmZzZXQ6IDE1LFxuICAgICAgICAgICAgcmVwZWF0OiAyNSxcbiAgICAgICAgICAgIHN5bWJvbDogd2luZG93LkwuU3ltYm9sLmFycm93SGVhZCh7XG4gICAgICAgICAgICAgIHBpeGVsU2l6ZTogMyxcbiAgICAgICAgICAgICAgcG9seWdvbjogZmFsc2UsXG4gICAgICAgICAgICAgIHBhdGhPcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgc3Ryb2tlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGNvbG9yOiAncmdiYSgwLDAsMCknLFxuICAgICAgICAgICAgICAgIHdlaWdodDogMSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICAgIHRhaWxEYXNoWydrYW5kb19vYmplY3QnXSA9ICdEZWNvcmF0b3InO1xuICAgICAgbGF5ZXJHcm91cC5hZGRMYXllcih0YWlsRGFzaCk7XG4gICAgfVxuXG4gICAgcG9seWxpbmVCYWNrWydrYW5kb19vYmplY3RfaWQnXSA9IGVkZ2UuaWQ7XG4gICAgaWYgKGV2ZW50LmhvdmVyZWQpIHBvbHlsaW5lQmFja1sna2FuZG9fb2JqZWN0J10gPSAnSG92ZXJlZEVkZ2UnO1xuICAgIGlmIChldmVudC5mb2N1c2VkKSBwb2x5bGluZUJhY2tbJ2thbmRvX29iamVjdCddID0gJ0ZvY3VzZWRFZGdlJztcbiAgICBpZiAobWFwICE9PSBudWxsKSBsYXllckdyb3VwLmFkZExheWVyKHBvbHlsaW5lQmFjayk7XG4gICAgcG9seWxpbmVCYWNrLmJyaW5nVG9Gcm9udCgpO1xuICAgIGlmIChMLlN5bWJvbCAhPT0gdW5kZWZpbmVkKSB0YWlsRGFzaC5icmluZ1RvRnJvbnQoKTtcblxuICAgIGxldCBwb2x5bGluZUZyb250OiBhbnkgPSBMLnBvbHlsaW5lKGxhdGxuZ3MsIHtcbiAgICAgIGNvbG9yOiAncmdiKDI5LDI5LDI5KScsXG4gICAgICB3ZWlnaHQ6IDEsXG4gICAgICBvcGFjaXR5OiAxLFxuICAgIH0pO1xuXG4gICAgcG9seWxpbmVGcm9udFsna2FuZG9fb2JqZWN0X2lkJ10gPSBlZGdlLmlkO1xuICAgIGlmIChldmVudC5ob3ZlcmVkKSBwb2x5bGluZUZyb250WydrYW5kb19vYmplY3QnXSA9ICdIb3ZlcmVkRWRnZUZyb250JztcbiAgICBpZiAoZXZlbnQuZm9jdXNlZCkgcG9seWxpbmVGcm9udFsna2FuZG9fb2JqZWN0J10gPSAnRm9jdXNlZEVkZ2VGcm9udCc7XG4gICAgaWYgKG1hcCAhPT0gbnVsbCkgbGF5ZXJHcm91cC5hZGRMYXllcihwb2x5bGluZUZyb250KTtcbiAgICBwb2x5bGluZUJhY2suYWRkVG8obWFwKTtcbiAgICBwb2x5bGluZUZyb250LmFkZFRvKG1hcCk7XG5cbiAgICBwb2x5bGluZUZyb250LmJyaW5nVG9Gcm9udCgpO1xuICAgIGlmIChldmVudC5ob3ZlcmVkKVxuICAgICAgZGlzcGF0Y2goc2V0SG92ZXJlZEVkZ2VQYXRocyhbcG9seWxpbmVCYWNrLCBwb2x5bGluZUZyb250XSkpO1xuICAgIGxhdGxuZ3MgPSBbXTtcblxuICAgIGlmIChwb2ludHMubGVuZ3RoICE9PSAwKSB7XG4gICAgICBsZXQgc291cmNlUG9pbnQ6IElQb2ludCA9IHBvaW50RmluZGVyKHBvaW50cywgZWRnZS5zb3VyY2VfcG9pbnRfaWQpO1xuICAgICAgbGV0IHRhcmdldFBvaW50OiBJUG9pbnQgPSBwb2ludEZpbmRlcihwb2ludHMsIGVkZ2UudGFyZ2V0X3BvaW50X2lkKTtcbiAgICAgIGlmIChzb3VyY2VQb2ludCAhPT0gdW5kZWZpbmVkICYmIHRhcmdldFBvaW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcG9seWxpbmVCYWNrLmJpbmRQb3B1cChgRWRnZSBJRDogJHtlZGdlLmlkfSw8YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvdXJjZSBwb2ludDogJHtzb3VyY2VQb2ludC5ncm91cC5uYW1lfSw8YnI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRhcmdldCBwb2ludDogJHt0YXJnZXRQb2ludC5ncm91cC5uYW1lfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRGlzdGFuY2U6ICR7ZWRnZS5kaXN0YW5jZX1gKTtcbiAgICAgIH1cbiAgICAgIGNyZWF0ZVBvaW50TG9naWMoc291cmNlUG9pbnQsIG1hcCwgbGF5ZXJHcm91cCwgZmxvd1JhdGVVbml0KTtcbiAgICAgIGlmIChlZGdlc1tlZGdlcy5sZW5ndGggLSAxXS50YXJnZXRfcG9pbnRfaWQgPT09IGVkZ2UudGFyZ2V0X3BvaW50X2lkKSB7XG4gICAgICAgIGNyZWF0ZVBvaW50TG9naWModGFyZ2V0UG9pbnQsIG1hcCwgbGF5ZXJHcm91cCk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn07XG5cbmNvbnN0IHBvaW50RmluZGVyID0gKHBvaW50cywgZGVzaXJlZFBvaW50SWQpID0+IHtcbiAgbGV0IGRlc2lyZWRQb2ludDogSVBvaW50ID0gcG9pbnRzLmZpbmQoXG4gICAgKHBvaW50OiBJUG9pbnQpID0+IHBvaW50LmlkID09PSBkZXNpcmVkUG9pbnRJZCxcbiAgKTtcblxuICByZXR1cm4gZGVzaXJlZFBvaW50O1xufTtcblxuZXhwb3J0IGNvbnN0IGZpbmRBbmREcmF3RXZlbnROZXR3b3JrRWRnZXMgPSAoXG4gIGVkZ2VzOiBJRWRnZVtdLFxuICBldmVudDogSUV2ZW50LFxuICBwb2ludHM6IElQb2ludFtdLFxuICBkaXNwYXRjaCxcbiAgbWFwLFxuICBsYXllckdyb3VwLFxuICBmbG93UmF0ZVVuaXQsXG4pID0+IHtcbiAgbGV0IGVkZ2VzVG9EcmF3OiBJRWRnZVtdID0gW107XG4gIGxldCBmaXJzdEVkZ2UgPSBnZXRGaXJzdEVkZ2VPZkV2ZW50UGF0aChlZGdlcywgZXZlbnQpO1xuXG4gIGlmIChmaXJzdEVkZ2UgIT09IHVuZGVmaW5lZCkge1xuICAgIGxldCBkb3duc3RyZWFtTmV0d29yazogSUVkZ2VbXSA9IFtmaXJzdEVkZ2VdO1xuICAgIGxldCB1cHN0cmVhbUVkZ2VzID0gZ2V0VXBzdHJlYW1FZGdlcyhmaXJzdEVkZ2UsIGVkZ2VzKTtcbiAgICBpZiAodXBzdHJlYW1FZGdlcyA9PT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgaWYgKHVwc3RyZWFtRWRnZXMubGVuZ3RoICE9PSAwKVxuICAgICAgZmluZFVwc3RyZWFtRWRnZXNUb0RyYXcodXBzdHJlYW1FZGdlcywgZWRnZXNUb0RyYXcsIHBvaW50cywgZWRnZXMpO1xuICAgIGZpbmREb3duc3RyZWFtRWRnZXNUb0RyYXcoZmlyc3RFZGdlLCBlZGdlcywgZG93bnN0cmVhbU5ldHdvcmssIGVkZ2VzVG9EcmF3KTtcbiAgfVxuXG4gIGRyYXdOZXR3b3JrKFxuICAgIGVkZ2VzVG9EcmF3LFxuICAgIHBvaW50cyxcbiAgICBkaXNwYXRjaCxcbiAgICBtYXAsXG4gICAgZXZlbnQsXG4gICAgbGF5ZXJHcm91cCxcbiAgICBmbG93UmF0ZVVuaXQsXG4gICk7XG59O1xuXG5leHBvcnQgY29uc3QgcG9pbnRJc09ic2VydmF0aW9uID0gKGV2ZW50OiBJRXZlbnQsIHBvaW50OiBJUG9pbnQpID0+IHtcbiAgcmV0dXJuIGV2ZW50Lm9ic2VydmF0aW9ucy5maW5kKChvYnMpID0+IG9icy5wb2ludF9pZCA9PT0gcG9pbnQuaWQpO1xufTtcblxuZXhwb3J0IGNvbnN0IHBvaW50SXNDb2xsZWN0b3IgPSAocG9pbnQ6IElQb2ludCkgPT4ge1xuICByZXR1cm4gcG9pbnQuZ3JvdXAudHlwZSA9PT0gJ0dyb3Vwczo6Q29sbGVjdG9ycyc7XG59O1xuXG5leHBvcnQgY29uc3QgaXNDb2xsZWN0b3JVbm1vbml0b3JlZCA9IChwb2ludDogSVBvaW50KSA9PiB7XG4gIHJldHVybiBwb2ludElzQ29sbGVjdG9yKHBvaW50KSAmJiAhcG9pbnQuaGFzX2RldmljZTtcbn07XG5cbmNvbnN0IGNyZWF0ZVBvaW50TG9naWMgPSAocG9pbnQ6IElQb2ludCwgbWFwLCBsYXllckdyb3VwLCBmbG93UmF0ZVVuaXQpID0+IHtcbiAgaWYgKGlzQ29sbGVjdG9yVW5tb25pdG9yZWQocG9pbnQpKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY3JlYXRlQnViYmxlUG9pbnQoXG4gICAgW3BvaW50LmxhdGl0dWRlLCBwb2ludC5sb25naXR1ZGVdLFxuICAgIHBvaW50LFxuICAgIG1hcCxcbiAgICBudWxsLFxuICAgIGxheWVyR3JvdXAsXG4gICAgZmxvd1JhdGVVbml0LFxuICApO1xufTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUFBLENBQUEsR0FBQUMsdUJBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBSUEsSUFBQUcsUUFBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBSixPQUFBO0FBQXlELFNBQUFLLHlCQUFBQyxXQUFBLGVBQUFDLE9BQUEsa0NBQUFDLGlCQUFBLE9BQUFELE9BQUEsUUFBQUUsZ0JBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSxDQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFQLHdCQUFBVyxHQUFBLEVBQUFKLFdBQUEsU0FBQUEsV0FBQSxJQUFBSSxHQUFBLElBQUFBLEdBQUEsQ0FBQUMsVUFBQSxXQUFBRCxHQUFBLFFBQUFBLEdBQUEsb0JBQUFBLEdBQUEsd0JBQUFBLEdBQUEsNEJBQUFFLE9BQUEsRUFBQUYsR0FBQSxVQUFBRyxLQUFBLEdBQUFSLHdCQUFBLENBQUFDLFdBQUEsT0FBQU8sS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUosR0FBQSxZQUFBRyxLQUFBLENBQUFFLEdBQUEsQ0FBQUwsR0FBQSxTQUFBTSxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVgsR0FBQSxRQUFBVyxHQUFBLGtC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
|
package/lib/macros/getVersion.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
const packageJsonVersion = "1.2.358-alpha.
|
|
3
|
+
const packageJsonVersion = "1.2.358-alpha.9";
|
|
4
4
|
if (typeof packageJsonVersion === 'string') {
|
|
5
5
|
// eslint-disable-next-line no-console
|
|
6
6
|
console.log(`%c Kando UI %c v${packageJsonVersion} `, 'font-size: 15px; background-color: #fff; color: #e20f53;', 'font-weight: bold; font-size: 15px; background-color: #e20f53; color: #fff;', `with NODE_ENV=${process.env.NODE_ENV}`);
|
|
@@ -356,5 +356,6 @@ function interpolateBetweenPoints(ptA, ptB, ratio) {
|
|
|
356
356
|
};
|
|
357
357
|
}
|
|
358
358
|
window.L = _leaflet.default;
|
|
359
|
+
window.L.polylineDecorator = _leaflet.default.polylineDecorator;
|
|
359
360
|
window.L.Symbol = _leaflet.default.Symbol;
|
|
360
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiTCIsIlN5bWJvbCIsIkRhc2giLCJDbGFzcyIsImV4dGVuZCIsIm9wdGlvbnMiLCJwaXhlbFNpemUiLCJwYXRoT3B0aW9ucyIsImluaXRpYWxpemUiLCJVdGlsIiwic2V0T3B0aW9ucyIsImNsaWNrYWJsZSIsImJ1aWxkU3ltYm9sIiwiZGlyUG9pbnQiLCJsYXRMbmdzIiwibWFwIiwiaW5kZXgiLCJ0b3RhbCIsIm9wdHMiLCJkMnIiLCJNYXRoIiwiUEkiLCJwb2x5bGluZSIsImxhdExuZyIsIm1pZFBvaW50IiwicHJvamVjdCIsImFuZ2xlIiwiaGVhZGluZyIsImEiLCJwb2ludCIsIngiLCJjb3MiLCJ5Iiwic2luIiwiYiIsImFkZCIsInN1YnRyYWN0IiwidW5wcm9qZWN0IiwiZGFzaCIsIkFycm93SGVhZCIsInBvbHlnb24iLCJoZWFkQW5nbGUiLCJzdHJva2UiLCJ3ZWlnaHQiLCJfYnVpbGRBcnJvd1BhdGgiLCJ0aXBQb2ludCIsImRpcmVjdGlvbiIsInJhZGlhbkFycm93QW5nbGUiLCJoZWFkQW5nbGUxIiwiaGVhZEFuZ2xlMiIsImFycm93SGVhZDEiLCJhcnJvd0hlYWQyIiwiYXJyb3dIZWFkIiwiTWFya2VyIiwibWFya2VyT3B0aW9ucyIsInJvdGF0ZSIsImRyYWdnYWJsZSIsImRpcmVjdGlvblBvaW50Iiwicm90YXRpb25BbmdsZSIsImFuZ2xlQ29ycmVjdGlvbiIsIm1hcmtlciIsImlzQ29vcmQiLCJjIiwiTGF0TG5nIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiaXNDb29yZEFycmF5IiwibGwiLCJQb2x5bGluZURlY29yYXRvciIsIkZlYXR1cmVHcm91cCIsInBhdHRlcm5zIiwicGF0aHMiLCJwcm90b3R5cGUiLCJjYWxsIiwiX21hcCIsIl9wYXRocyIsIl9pbml0UGF0aHMiLCJfYm91bmRzIiwiX2luaXRCb3VuZHMiLCJfcGF0dGVybnMiLCJfaW5pdFBhdHRlcm5zIiwiaW5wdXQiLCJpc1BvbHlnb24iLCJjb29yZHMiLCJjb25jYXQiLCJQb2x5bGluZSIsImdldExhdExuZ3MiLCJQb2x5Z29uIiwicmVkdWNlIiwiZmxhdEFycmF5IiwicCIsInBhdHRlcm5EZWZzIiwiX3BhcnNlUGF0dGVybkRlZiIsInNldFBhdHRlcm5zIiwicmVkcmF3Iiwic2V0UGF0aHMiLCJwYXR0ZXJuRGVmIiwic3ltYm9sRmFjdG9yeSIsInN5bWJvbCIsIm9mZnNldCIsInBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUiLCJlbmRPZmZzZXQiLCJyZXBlYXQiLCJvbkFkZCIsIl9kcmF3Iiwib24iLCJvblJlbW92ZSIsIm9mZiIsImFsbFBhdGhDb29yZHMiLCJhY2MiLCJwYXRoIiwibGF0TG5nQm91bmRzIiwiZ2V0Qm91bmRzIiwiX2J1aWxkU3ltYm9scyIsImRpcmVjdGlvblBvaW50cyIsImkiLCJfZ2V0RGlyZWN0aW9uUG9pbnRzIiwicGF0dGVybiIsInBhdGhBc1BvaW50cyIsInByb2plY3RQYXR0ZXJuT25Qb2ludFBhdGgiLCJwdCIsImNsZWFyTGF5ZXJzIiwiX2dldFBhdHRlcm5MYXllcnMiLCJtYXBCb3VuZHMiLCJwYWQiLCJmaWx0ZXIiLCJjb250YWlucyIsImZlYXR1cmVHcm91cCIsImZvckVhY2giLCJsYXllcnMiLCJhZGRMYXllciIsInBvbHlsaW5lRGVjb3JhdG9yIiwicG9pbnREaXN0YW5jZSIsInB0QSIsInB0QiIsInNxcnQiLCJjb21wdXRlU2VnbWVudEhlYWRpbmciLCJhdGFuMiIsImV4cG9ydHMiLCJhc1JhdGlvVG9QYXRoTGVuZ3RoIiwiX3JlZiIsInRvdGFsUGF0aExlbmd0aCIsInZhbHVlIiwiaXNJblBpeGVscyIsImluZGV4T2YiLCJwYXJzZUZsb2F0IiwicGFyc2VkVmFsdWUiLCJwb2ludHNFcXVhbCIsInBvaW50c1RvU2VnbWVudHMiLCJwdHMiLCJzZWdtZW50cyIsImlkeCIsInBvaW50cyIsImRpc3RBIiwiZGlzdEIiLCJkaXN0QUIiLCJwdXNoIiwibmJTZWdtZW50cyIsInJlcGVhdEludGVydmFsUGl4ZWxzIiwic3RhcnRPZmZzZXRQaXhlbHMiLCJlbmRPZmZzZXRQaXhlbHMiLCJwb3NpdGlvbk9mZnNldHMiLCJwb3NpdGlvbk9mZnNldCIsInNlZ21lbnRJbmRleCIsInNlZ21lbnQiLCJzZWdtZW50UmF0aW8iLCJpbnRlcnBvbGF0ZUJldHdlZW5Qb2ludHMiLCJyYXRpbyIsIndpbmRvdyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEwgZnJvbSAnbGVhZmxldCc7XG4vLyBlbmFibGUgcm90YXRpb25BbmdsZSBhbmQgcm90YXRpb25PcmlnaW4gc3VwcG9ydCBvbiBMLk1hcmtlclxuaW1wb3J0ICdsZWFmbGV0LXJvdGF0ZWRtYXJrZXInO1xuXG4vKipcbiAqIERlZmluZXMgc2V2ZXJhbCBjbGFzc2VzIG9mIHN5bWJvbCBmYWN0b3JpZXMsXG4gKiB0byBiZSB1c2VkIHdpdGggTC5Qb2x5bGluZURlY29yYXRvclxuICovXG5cbkwuU3ltYm9sID0gTC5TeW1ib2wgfHwge307XG5cbi8qKlxuICogQSBzaW1wbGUgZGFzaCBzeW1ib2wsIGRyYXduIGFzIGEgUG9seWxpbmUuXG4gKiBDYW4gYWxzbyBiZSB1c2VkIGZvciBkb3RzLCBpZiAncGl4ZWxTaXplJyBvcHRpb24gaXMgZ2l2ZW4gdGhlIDAgdmFsdWUuXG4gKi9cbkwuU3ltYm9sLkRhc2ggPSBMLkNsYXNzLmV4dGVuZCh7XG4gIG9wdGlvbnM6IHtcbiAgICBwaXhlbFNpemU6IDEwLFxuICAgIHBhdGhPcHRpb25zOiB7fSxcbiAgfSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIEwuVXRpbC5zZXRPcHRpb25zKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMub3B0aW9ucy5wYXRoT3B0aW9ucy5jbGlja2FibGUgPSBmYWxzZTtcbiAgfSxcblxuICBidWlsZFN5bWJvbDogZnVuY3Rpb24gKGRpclBvaW50LCBsYXRMbmdzLCBtYXAsIGluZGV4LCB0b3RhbCkge1xuICAgIGNvbnN0IG9wdHMgPSB0aGlzLm9wdGlvbnM7XG4gICAgY29uc3QgZDJyID0gTWF0aC5QSSAvIDE4MDtcblxuICAgIC8vIGZvciBhIGRvdCwgbm90aGluZyBtb3JlIHRvIGNvbXB1dGVcbiAgICBpZiAob3B0cy5waXhlbFNpemUgPD0gMSkge1xuICAgICAgcmV0dXJuIEwucG9seWxpbmUoW2RpclBvaW50LmxhdExuZywgZGlyUG9pbnQubGF0TG5nXSwgb3B0cy5wYXRoT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY29uc3QgbWlkUG9pbnQgPSBtYXAucHJvamVjdChkaXJQb2ludC5sYXRMbmcpO1xuICAgIGNvbnN0IGFuZ2xlID0gLShkaXJQb2ludC5oZWFkaW5nIC0gOTApICogZDJyO1xuICAgIGNvbnN0IGEgPSBMLnBvaW50KFxuICAgICAgbWlkUG9pbnQueCArIChvcHRzLnBpeGVsU2l6ZSAqIE1hdGguY29zKGFuZ2xlICsgTWF0aC5QSSkpIC8gMixcbiAgICAgIG1pZFBvaW50LnkgKyAob3B0cy5waXhlbFNpemUgKiBNYXRoLnNpbihhbmdsZSkpIC8gMixcbiAgICApO1xuICAgIC8vIGNvbXB1dGUgc2Vjb25kIHBvaW50IGJ5IGNlbnRyYWwgc3ltbWV0cnkgdG8gYXZvaWQgdW5lY2Vzc2FyeSBjb3Mvc2luXG4gICAgY29uc3QgYiA9IG1pZFBvaW50LmFkZChtaWRQb2ludC5zdWJ0cmFjdChhKSk7XG4gICAgcmV0dXJuIEwucG9seWxpbmUoW21hcC51bnByb2plY3QoYSksIG1hcC51bnByb2plY3QoYildLCBvcHRzLnBhdGhPcHRpb25zKTtcbiAgfSxcbn0pO1xuXG5MLlN5bWJvbC5kYXNoID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBMLlN5bWJvbC5EYXNoKG9wdGlvbnMpO1xufTtcblxuTC5TeW1ib2wuQXJyb3dIZWFkID0gTC5DbGFzcy5leHRlbmQoe1xuICBvcHRpb25zOiB7XG4gICAgcG9seWdvbjogdHJ1ZSxcbiAgICBwaXhlbFNpemU6IDEwLFxuICAgIGhlYWRBbmdsZTogNjAsXG4gICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgIHN0cm9rZTogZmFsc2UsXG4gICAgICB3ZWlnaHQ6IDIsXG4gICAgfSxcbiAgfSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIEwuVXRpbC5zZXRPcHRpb25zKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMub3B0aW9ucy5wYXRoT3B0aW9ucy5jbGlja2FibGUgPSBmYWxzZTtcbiAgfSxcblxuICBidWlsZFN5bWJvbDogZnVuY3Rpb24gKGRpclBvaW50LCBsYXRMbmdzLCBtYXAsIGluZGV4LCB0b3RhbCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucG9seWdvblxuICAgICAgPyBMLnBvbHlnb24odGhpcy5fYnVpbGRBcnJvd1BhdGgoZGlyUG9pbnQsIG1hcCksIHRoaXMub3B0aW9ucy5wYXRoT3B0aW9ucylcbiAgICAgIDogTC5wb2x5bGluZShcbiAgICAgICAgICB0aGlzLl9idWlsZEFycm93UGF0aChkaXJQb2ludCwgbWFwKSxcbiAgICAgICAgICB0aGlzLm9wdGlvbnMucGF0aE9wdGlvbnMsXG4gICAgICAgICk7XG4gIH0sXG5cbiAgX2J1aWxkQXJyb3dQYXRoOiBmdW5jdGlvbiAoZGlyUG9pbnQsIG1hcCkge1xuICAgIGNvbnN0IGQyciA9IE1hdGguUEkgLyAxODA7XG4gICAgY29uc3QgdGlwUG9pbnQgPSBtYXAucHJvamVjdChkaXJQb2ludC5sYXRMbmcpO1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IC0oZGlyUG9pbnQuaGVhZGluZyAtIDkwKSAqIGQycjtcbiAgICBjb25zdCByYWRpYW5BcnJvd0FuZ2xlID0gKHRoaXMub3B0aW9ucy5oZWFkQW5nbGUgLyAyKSAqIGQycjtcblxuICAgIGNvbnN0IGhlYWRBbmdsZTEgPSBkaXJlY3Rpb24gKyByYWRpYW5BcnJvd0FuZ2xlO1xuICAgIGNvbnN0IGhlYWRBbmdsZTIgPSBkaXJlY3Rpb24gLSByYWRpYW5BcnJvd0FuZ2xlO1xuICAgIGNvbnN0IGFycm93SGVhZDEgPSBMLnBvaW50KFxuICAgICAgdGlwUG9pbnQueCAtIHRoaXMub3B0aW9ucy5waXhlbFNpemUgKiBNYXRoLmNvcyhoZWFkQW5nbGUxKSxcbiAgICAgIHRpcFBvaW50LnkgKyB0aGlzLm9wdGlvbnMucGl4ZWxTaXplICogTWF0aC5zaW4oaGVhZEFuZ2xlMSksXG4gICAgKTtcbiAgICBjb25zdCBhcnJvd0hlYWQyID0gTC5wb2ludChcbiAgICAgIHRpcFBvaW50LnggLSB0aGlzLm9wdGlvbnMucGl4ZWxTaXplICogTWF0aC5jb3MoaGVhZEFuZ2xlMiksXG4gICAgICB0aXBQb2ludC55ICsgdGhpcy5vcHRpb25zLnBpeGVsU2l6ZSAqIE1hdGguc2luKGhlYWRBbmdsZTIpLFxuICAgICk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgbWFwLnVucHJvamVjdChhcnJvd0hlYWQxKSxcbiAgICAgIGRpclBvaW50LmxhdExuZyxcbiAgICAgIG1hcC51bnByb2plY3QoYXJyb3dIZWFkMiksXG4gICAgXTtcbiAgfSxcbn0pO1xuXG5MLlN5bWJvbC5hcnJvd0hlYWQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICByZXR1cm4gbmV3IEwuU3ltYm9sLkFycm93SGVhZChvcHRpb25zKTtcbn07XG5cbkwuU3ltYm9sLk1hcmtlciA9IEwuQ2xhc3MuZXh0ZW5kKHtcbiAgb3B0aW9uczoge1xuICAgIG1hcmtlck9wdGlvbnM6IHt9LFxuICAgIHJvdGF0ZTogZmFsc2UsXG4gIH0sXG5cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICBMLlV0aWwuc2V0T3B0aW9ucyh0aGlzLCBvcHRpb25zKTtcbiAgICB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucy5jbGlja2FibGUgPSBmYWxzZTtcbiAgICB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucy5kcmFnZ2FibGUgPSBmYWxzZTtcbiAgfSxcblxuICBidWlsZFN5bWJvbDogZnVuY3Rpb24gKGRpcmVjdGlvblBvaW50LCBsYXRMbmdzLCBtYXAsIGluZGV4LCB0b3RhbCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMucm90YXRlKSB7XG4gICAgICB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucy5yb3RhdGlvbkFuZ2xlID1cbiAgICAgICAgZGlyZWN0aW9uUG9pbnQuaGVhZGluZyArICh0aGlzLm9wdGlvbnMuYW5nbGVDb3JyZWN0aW9uIHx8IDApO1xuICAgIH1cbiAgICByZXR1cm4gTC5tYXJrZXIoZGlyZWN0aW9uUG9pbnQubGF0TG5nLCB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucyk7XG4gIH0sXG59KTtcblxuTC5TeW1ib2wubWFya2VyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBMLlN5bWJvbC5NYXJrZXIob3B0aW9ucyk7XG59O1xuXG5jb25zdCBpc0Nvb3JkID0gKGMpID0+XG4gIGMgaW5zdGFuY2VvZiBMLkxhdExuZyB8fFxuICAoQXJyYXkuaXNBcnJheShjKSAmJiBjLmxlbmd0aCA9PT0gMiAmJiB0eXBlb2YgY1swXSA9PT0gJ251bWJlcicpO1xuXG5jb25zdCBpc0Nvb3JkQXJyYXkgPSAobGwpID0+IEFycmF5LmlzQXJyYXkobGwpICYmIGlzQ29vcmQobGxbMF0pO1xuXG5MLlBvbHlsaW5lRGVjb3JhdG9yID0gTC5GZWF0dXJlR3JvdXAuZXh0ZW5kKHtcbiAgb3B0aW9uczoge1xuICAgIHBhdHRlcm5zOiBbXSxcbiAgfSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAocGF0aHMsIG9wdGlvbnMpIHtcbiAgICBMLkZlYXR1cmVHcm91cC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMpO1xuICAgIEwuVXRpbC5zZXRPcHRpb25zKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMuX21hcCA9IG51bGw7XG4gICAgdGhpcy5fcGF0aHMgPSB0aGlzLl9pbml0UGF0aHMocGF0aHMpO1xuICAgIHRoaXMuX2JvdW5kcyA9IHRoaXMuX2luaXRCb3VuZHMoKTtcbiAgICB0aGlzLl9wYXR0ZXJucyA9IHRoaXMuX2luaXRQYXR0ZXJucyh0aGlzLm9wdGlvbnMucGF0dGVybnMpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBEZWFscyB3aXRoIGFsbCB0aGUgZGlmZmVyZW50IGNhc2VzLiBpbnB1dCBjYW4gYmUgb25lIG9mIHRoZXNlIHR5cGVzOlxuICAgKiBhcnJheSBvZiBMYXRMbmcsIGFycmF5IG9mIDItbnVtYmVyIGFycmF5cywgUG9seWxpbmUsIFBvbHlnb24sXG4gICAqIGFycmF5IG9mIG9uZSBvZiB0aGUgcHJldmlvdXMuXG4gICAqL1xuICBfaW5pdFBhdGhzOiBmdW5jdGlvbiAoaW5wdXQsIGlzUG9seWdvbikge1xuICAgIGlmIChpc0Nvb3JkQXJyYXkoaW5wdXQpKSB7XG4gICAgICAvLyBMZWFmbGV0IFBvbHlnb25zIGRvbid0IG5lZWQgdGhlIGZpcnN0IHBvaW50IHRvIGJlIHJlcGVhdGVkLCBidXQgd2UgZG9cbiAgICAgIGNvbnN0IGNvb3JkcyA9IGlzUG9seWdvbiA/IGlucHV0LmNvbmNhdChbaW5wdXRbMF1dKSA6IGlucHV0O1xuICAgICAgcmV0dXJuIFtjb29yZHNdO1xuICAgIH1cbiAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBMLlBvbHlsaW5lKSB7XG4gICAgICAvLyB3ZSBuZWVkIHNvbWUgcmVjdXJzaXZpdHkgdG8gc3VwcG9ydCBtdWx0aS1wb2x5KlxuICAgICAgcmV0dXJuIHRoaXMuX2luaXRQYXRocyhpbnB1dC5nZXRMYXRMbmdzKCksIGlucHV0IGluc3RhbmNlb2YgTC5Qb2x5Z29uKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSB7XG4gICAgICAvLyBmbGF0dGVuIGV2ZXJ5dGhpbmcsIHdlIGp1c3QgbmVlZCBjb29yZGluYXRlIGxpc3RzIHRvIGFwcGx5IHBhdHRlcm5zXG4gICAgICByZXR1cm4gaW5wdXQucmVkdWNlKFxuICAgICAgICAoZmxhdEFycmF5LCBwKSA9PiBmbGF0QXJyYXkuY29uY2F0KHRoaXMuX2luaXRQYXRocyhwLCBpc1BvbHlnb24pKSxcbiAgICAgICAgW10sXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH0sXG5cbiAgLy8gcGFyc2UgcGF0dGVybiBkZWZpbml0aW9ucyBhbmQgcHJlY29tcHV0ZSBzb21lIHZhbHVlc1xuICBfaW5pdFBhdHRlcm5zOiBmdW5jdGlvbiAocGF0dGVybkRlZnMpIHtcbiAgICByZXR1cm4gcGF0dGVybkRlZnMubWFwKHRoaXMuX3BhcnNlUGF0dGVybkRlZik7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHBhdHRlcm5zIHVzZWQgYnkgdGhpcyBkZWNvcmF0b3JcbiAgICogYW5kIHJlZHJhd3MgdGhlIG5ldyBvbmUuXG4gICAqL1xuICBzZXRQYXR0ZXJuczogZnVuY3Rpb24gKHBhdHRlcm5zKSB7XG4gICAgdGhpcy5vcHRpb25zLnBhdHRlcm5zID0gcGF0dGVybnM7XG4gICAgdGhpcy5fcGF0dGVybnMgPSB0aGlzLl9pbml0UGF0dGVybnModGhpcy5vcHRpb25zLnBhdHRlcm5zKTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSBwYXR0ZXJucyB1c2VkIGJ5IHRoaXMgZGVjb3JhdG9yXG4gICAqIGFuZCByZWRyYXdzIHRoZSBuZXcgb25lLlxuICAgKi9cbiAgc2V0UGF0aHM6IGZ1bmN0aW9uIChwYXRocykge1xuICAgIHRoaXMuX3BhdGhzID0gdGhpcy5faW5pdFBhdGhzKHBhdGhzKTtcbiAgICB0aGlzLl9ib3VuZHMgPSB0aGlzLl9pbml0Qm91bmRzKCk7XG4gICAgdGhpcy5yZWRyYXcoKTtcbiAgfSxcblxuICAvKipcbiAgICogUGFyc2UgdGhlIHBhdHRlcm4gZGVmaW5pdGlvblxuICAgKi9cbiAgX3BhcnNlUGF0dGVybkRlZjogZnVuY3Rpb24gKHBhdHRlcm5EZWYsIGxhdExuZ3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3ltYm9sRmFjdG9yeTogcGF0dGVybkRlZi5zeW1ib2wsXG4gICAgICAvLyBQYXJzZSBvZmZzZXQgYW5kIHJlcGVhdCB2YWx1ZXMsIG1hbmFnaW5nIHRoZSB0d28gY2FzZXM6XG4gICAgICAvLyBhYnNvbHV0ZSAoaW4gcGl4ZWxzKSBvciByZWxhdGl2ZSAoaW4gcGVyY2VudGFnZSBvZiB0aGUgcG9seWxpbmUgbGVuZ3RoKVxuICAgICAgb2Zmc2V0OiBwYXJzZVJlbGF0aXZlT3JBYnNvbHV0ZVZhbHVlKHBhdHRlcm5EZWYub2Zmc2V0KSxcbiAgICAgIGVuZE9mZnNldDogcGFyc2VSZWxhdGl2ZU9yQWJzb2x1dGVWYWx1ZShwYXR0ZXJuRGVmLmVuZE9mZnNldCksXG4gICAgICByZXBlYXQ6IHBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUocGF0dGVybkRlZi5yZXBlYXQpLFxuICAgIH07XG4gIH0sXG5cbiAgb25BZGQ6IGZ1bmN0aW9uIChtYXApIHtcbiAgICB0aGlzLl9tYXAgPSBtYXA7XG4gICAgdGhpcy5fZHJhdygpO1xuICAgIHRoaXMuX21hcC5vbignbW92ZWVuZCcsIHRoaXMucmVkcmF3LCB0aGlzKTtcbiAgfSxcblxuICBvblJlbW92ZTogZnVuY3Rpb24gKG1hcCkge1xuICAgIHRoaXMuX21hcC5vZmYoJ21vdmVlbmQnLCB0aGlzLnJlZHJhdywgdGhpcyk7XG4gICAgdGhpcy5fbWFwID0gbnVsbDtcbiAgICBMLkZlYXR1cmVHcm91cC5wcm90b3R5cGUub25SZW1vdmUuY2FsbCh0aGlzLCBtYXApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBBcyByZWFsIHBhdHRlcm4gYm91bmRzIGRlcGVuZHMgb24gbWFwIHpvb20gYW5kIGJvdW5kcyxcbiAgICogd2UganVzdCBjb21wdXRlIHRoZSB0b3RhbCBib3VuZHMgb2YgYWxsIHBhdGhzIGRlY29yYXRlZCBieSB0aGlzIGluc3RhbmNlLlxuICAgKi9cbiAgX2luaXRCb3VuZHM6IGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBhbGxQYXRoQ29vcmRzID0gdGhpcy5fcGF0aHMucmVkdWNlKFxuICAgICAgKGFjYywgcGF0aCkgPT4gYWNjLmNvbmNhdChwYXRoKSxcbiAgICAgIFtdLFxuICAgICk7XG4gICAgcmV0dXJuIEwubGF0TG5nQm91bmRzKGFsbFBhdGhDb29yZHMpO1xuICB9LFxuXG4gIGdldEJvdW5kczogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLl9ib3VuZHM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgSUxheWVycyBvYmplY3RcbiAgICovXG4gIF9idWlsZFN5bWJvbHM6IGZ1bmN0aW9uIChsYXRMbmdzLCBzeW1ib2xGYWN0b3J5LCBkaXJlY3Rpb25Qb2ludHMpIHtcbiAgICByZXR1cm4gZGlyZWN0aW9uUG9pbnRzLm1hcCgoZGlyZWN0aW9uUG9pbnQsIGkpID0+XG4gICAgICBzeW1ib2xGYWN0b3J5LmJ1aWxkU3ltYm9sKFxuICAgICAgICBkaXJlY3Rpb25Qb2ludCxcbiAgICAgICAgbGF0TG5ncyxcbiAgICAgICAgdGhpcy5fbWFwLFxuICAgICAgICBpLFxuICAgICAgICBkaXJlY3Rpb25Qb2ludHMubGVuZ3RoLFxuICAgICAgKSxcbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIHBhaXJzIG9mIExhdExuZyBhbmQgaGVhZGluZyBhbmdsZSxcbiAgICogdGhhdCBkZWZpbmUgcG9zaXRpb25zIGFuZCBkaXJlY3Rpb25zIG9mIHRoZSBzeW1ib2xzIG9uIHRoZSBwYXRoXG4gICAqL1xuICBfZ2V0RGlyZWN0aW9uUG9pbnRzOiBmdW5jdGlvbiAobGF0TG5ncywgcGF0dGVybikge1xuICAgIGlmIChsYXRMbmdzLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgcGF0aEFzUG9pbnRzID0gbGF0TG5ncy5tYXAoKGxhdExuZykgPT4gdGhpcy5fbWFwLnByb2plY3QobGF0TG5nKSk7XG4gICAgcmV0dXJuIHByb2plY3RQYXR0ZXJuT25Qb2ludFBhdGgocGF0aEFzUG9pbnRzLCBwYXR0ZXJuKS5tYXAoKHBvaW50KSA9PiAoe1xuICAgICAgbGF0TG5nOiB0aGlzLl9tYXAudW5wcm9qZWN0KEwucG9pbnQocG9pbnQucHQpKSxcbiAgICAgIGhlYWRpbmc6IHBvaW50LmhlYWRpbmcsXG4gICAgfSkpO1xuICB9LFxuXG4gIHJlZHJhdzogZnVuY3Rpb24gKCkge1xuICAgIGlmICghdGhpcy5fbWFwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2xlYXJMYXllcnMoKTtcbiAgICB0aGlzLl9kcmF3KCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHN5bWJvbHMgZm9yIGEgZ2l2ZW4gcGF0dGVybiBhcyBhbiBhcnJheSBvZiBGZWF0dXJlR3JvdXBcbiAgICovXG4gIF9nZXRQYXR0ZXJuTGF5ZXJzOiBmdW5jdGlvbiAocGF0dGVybikge1xuICAgIGNvbnN0IG1hcEJvdW5kcyA9IHRoaXMuX21hcC5nZXRCb3VuZHMoKS5wYWQoMC4xKTtcbiAgICByZXR1cm4gdGhpcy5fcGF0aHMubWFwKChwYXRoKSA9PiB7XG4gICAgICBjb25zdCBkaXJlY3Rpb25Qb2ludHMgPSB0aGlzLl9nZXREaXJlY3Rpb25Qb2ludHMocGF0aCwgcGF0dGVybilcbiAgICAgICAgLy8gZmlsdGVyIG91dCBpbnZpc2libGUgcG9pbnRzXG4gICAgICAgIC5maWx0ZXIoKHBvaW50KSA9PiBtYXBCb3VuZHMuY29udGFpbnMocG9pbnQubGF0TG5nKSk7XG4gICAgICByZXR1cm4gTC5mZWF0dXJlR3JvdXAoXG4gICAgICAgIHRoaXMuX2J1aWxkU3ltYm9scyhwYXRoLCBwYXR0ZXJuLnN5bWJvbEZhY3RvcnksIGRpcmVjdGlvblBvaW50cyksXG4gICAgICApO1xuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBEcmF3IGFsbCBwYXR0ZXJuc1xuICAgKi9cbiAgX2RyYXc6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLl9wYXR0ZXJuc1xuICAgICAgLm1hcCgocGF0dGVybikgPT4gdGhpcy5fZ2V0UGF0dGVybkxheWVycyhwYXR0ZXJuKSlcbiAgICAgIC5mb3JFYWNoKChsYXllcnMpID0+IHtcbiAgICAgICAgdGhpcy5hZGRMYXllcihMLmZlYXR1cmVHcm91cChsYXllcnMpKTtcbiAgICAgIH0pO1xuICB9LFxufSk7XG4vKlxuICogQWxsb3dzIGNvbXBhY3Qgc3ludGF4IHRvIGJlIHVzZWRcbiAqL1xuTC5wb2x5bGluZURlY29yYXRvciA9IGZ1bmN0aW9uIChwYXRocywgb3B0aW9ucykge1xuICByZXR1cm4gbmV3IEwuUG9seWxpbmVEZWNvcmF0b3IocGF0aHMsIG9wdGlvbnMpO1xufTtcblxuLy8gZnVuY3Rpb25hbCByZS1pbXBsIG9mIEwuUG9pbnQuZGlzdGFuY2VUbyxcbi8vIHdpdGggbm8gZGVwZW5kZW5jeSBvbiBMZWFmbGV0IGZvciBlYXNpZXIgdGVzdGluZ1xuZnVuY3Rpb24gcG9pbnREaXN0YW5jZShwdEEsIHB0Qikge1xuICBjb25zdCB4ID0gcHRCLnggLSBwdEEueDtcbiAgY29uc3QgeSA9IHB0Qi55IC0gcHRBLnk7XG4gIHJldHVybiBNYXRoLnNxcnQoeCAqIHggKyB5ICogeSk7XG59XG5cbmNvbnN0IGNvbXB1dGVTZWdtZW50SGVhZGluZyA9IChhLCBiKSA9PlxuICAoKE1hdGguYXRhbjIoYi55IC0gYS55LCBiLnggLSBhLngpICogMTgwKSAvIE1hdGguUEkgKyA5MCArIDM2MCkgJSAzNjA7XG5cbmNvbnN0IGFzUmF0aW9Ub1BhdGhMZW5ndGggPSAoeyB2YWx1ZSwgaXNJblBpeGVscyB9LCB0b3RhbFBhdGhMZW5ndGgpID0+XG4gIGlzSW5QaXhlbHMgPyB2YWx1ZSAvIHRvdGFsUGF0aExlbmd0aCA6IHZhbHVlO1xuXG5mdW5jdGlvbiBwYXJzZVJlbGF0aXZlT3JBYnNvbHV0ZVZhbHVlKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmluZGV4T2YoJyUnKSAhPT0gLTEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IHBhcnNlRmxvYXQodmFsdWUpIC8gMTAwLFxuICAgICAgaXNJblBpeGVsczogZmFsc2UsXG4gICAgfTtcbiAgfVxuICBjb25zdCBwYXJzZWRWYWx1ZSA9IHZhbHVlID8gcGFyc2VGbG9hdCh2YWx1ZSkgOiAwO1xuICByZXR1cm4ge1xuICAgIHZhbHVlOiBwYXJzZWRWYWx1ZSxcbiAgICBpc0luUGl4ZWxzOiBwYXJzZWRWYWx1ZSA+IDAsXG4gIH07XG59XG5cbmNvbnN0IHBvaW50c0VxdWFsID0gKGEsIGIpID0+IGEueCA9PT0gYi54ICYmIGEueSA9PT0gYi55O1xuXG5mdW5jdGlvbiBwb2ludHNUb1NlZ21lbnRzKHB0cykge1xuICByZXR1cm4gcHRzLnJlZHVjZSgoc2VnbWVudHMsIGIsIGlkeCwgcG9pbnRzKSA9PiB7XG4gICAgLy8gdGhpcyB0ZXN0IHNraXBzIHNhbWUgYWRqYWNlbnQgcG9pbnRzXG4gICAgaWYgKGlkeCA+IDAgJiYgIXBvaW50c0VxdWFsKGIsIHBvaW50c1tpZHggLSAxXSkpIHtcbiAgICAgIGNvbnN0IGEgPSBwb2ludHNbaWR4IC0gMV07XG4gICAgICBjb25zdCBkaXN0QSA9XG4gICAgICAgIHNlZ21lbnRzLmxlbmd0aCA+IDAgPyBzZWdtZW50c1tzZWdtZW50cy5sZW5ndGggLSAxXS5kaXN0QiA6IDA7XG4gICAgICBjb25zdCBkaXN0QUIgPSBwb2ludERpc3RhbmNlKGEsIGIpO1xuICAgICAgc2VnbWVudHMucHVzaCh7XG4gICAgICAgIGEsXG4gICAgICAgIGIsXG4gICAgICAgIGRpc3RBLFxuICAgICAgICBkaXN0QjogZGlzdEEgKyBkaXN0QUIsXG4gICAgICAgIGhlYWRpbmc6IGNvbXB1dGVTZWdtZW50SGVhZGluZyhhLCBiKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc2VnbWVudHM7XG4gIH0sIFtdKTtcbn1cblxuZnVuY3Rpb24gcHJvamVjdFBhdHRlcm5PblBvaW50UGF0aChwdHMsIHBhdHRlcm4pIHtcbiAgLy8gMS4gc3BsaXQgdGhlIHBhdGggaW50byBzZWdtZW50IGluZm9zXG4gIGNvbnN0IHNlZ21lbnRzID0gcG9pbnRzVG9TZWdtZW50cyhwdHMpO1xuICBjb25zdCBuYlNlZ21lbnRzID0gc2VnbWVudHMubGVuZ3RoO1xuICBpZiAobmJTZWdtZW50cyA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHRvdGFsUGF0aExlbmd0aCA9IHNlZ21lbnRzW25iU2VnbWVudHMgLSAxXS5kaXN0QjtcblxuICBjb25zdCBvZmZzZXQgPSBhc1JhdGlvVG9QYXRoTGVuZ3RoKHBhdHRlcm4ub2Zmc2V0LCB0b3RhbFBhdGhMZW5ndGgpO1xuICBjb25zdCBlbmRPZmZzZXQgPSBhc1JhdGlvVG9QYXRoTGVuZ3RoKHBhdHRlcm4uZW5kT2Zmc2V0LCB0b3RhbFBhdGhMZW5ndGgpO1xuICBjb25zdCByZXBlYXQgPSBhc1JhdGlvVG9QYXRoTGVuZ3RoKHBhdHRlcm4ucmVwZWF0LCB0b3RhbFBhdGhMZW5ndGgpO1xuXG4gIGNvbnN0IHJlcGVhdEludGVydmFsUGl4ZWxzID0gdG90YWxQYXRoTGVuZ3RoICogcmVwZWF0O1xuICBjb25zdCBzdGFydE9mZnNldFBpeGVscyA9IG9mZnNldCA+IDAgPyB0b3RhbFBhdGhMZW5ndGggKiBvZmZzZXQgOiAwO1xuICBjb25zdCBlbmRPZmZzZXRQaXhlbHMgPSBlbmRPZmZzZXQgPiAwID8gdG90YWxQYXRoTGVuZ3RoICogZW5kT2Zmc2V0IDogMDtcblxuICAvLyAyLiBnZW5lcmF0ZSB0aGUgcG9zaXRpb25zIG9mIHRoZSBwYXR0ZXJuIGFzIG9mZnNldHMgZnJvbSB0aGUgcGF0aCBzdGFydFxuICBjb25zdCBwb3NpdGlvbk9mZnNldHMgPSBbXTtcbiAgbGV0IHBvc2l0aW9uT2Zmc2V0ID0gc3RhcnRPZmZzZXRQaXhlbHM7XG4gIGRvIHtcbiAgICBwb3NpdGlvbk9mZnNldHMucHVzaChwb3NpdGlvbk9mZnNldCk7XG4gICAgcG9zaXRpb25PZmZzZXQgKz0gcmVwZWF0SW50ZXJ2YWxQaXhlbHM7XG4gIH0gd2hpbGUgKFxuICAgIHJlcGVhdEludGVydmFsUGl4ZWxzID4gMCAmJlxuICAgIHBvc2l0aW9uT2Zmc2V0IDwgdG90YWxQYXRoTGVuZ3RoIC0gZW5kT2Zmc2V0UGl4ZWxzXG4gICk7XG5cbiAgLy8gMy4gcHJvamVjdHMgb2Zmc2V0cyB0byBzZWdtZW50c1xuICBsZXQgc2VnbWVudEluZGV4ID0gMDtcbiAgbGV0IHNlZ21lbnQgPSBzZWdtZW50c1swXTtcbiAgcmV0dXJuIHBvc2l0aW9uT2Zmc2V0cy5tYXAoKHBvc2l0aW9uT2Zmc2V0KSA9PiB7XG4gICAgLy8gZmluZCB0aGUgc2VnbWVudCBtYXRjaGluZyB0aGUgb2Zmc2V0LFxuICAgIC8vIHN0YXJ0aW5nIGZyb20gdGhlIHByZXZpb3VzIG9uZSBhcyBvZmZzZXRzIGFyZSBvcmRlcmVkXG4gICAgd2hpbGUgKHBvc2l0aW9uT2Zmc2V0ID4gc2VnbWVudC5kaXN0QiAmJiBzZWdtZW50SW5kZXggPCBuYlNlZ21lbnRzIC0gMSkge1xuICAgICAgc2VnbWVudEluZGV4Kys7XG4gICAgICBzZWdtZW50ID0gc2VnbWVudHNbc2VnbWVudEluZGV4XTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWdtZW50UmF0aW8gPVxuICAgICAgKHBvc2l0aW9uT2Zmc2V0IC0gc2VnbWVudC5kaXN0QSkgLyAoc2VnbWVudC5kaXN0QiAtIHNlZ21lbnQuZGlzdEEpO1xuICAgIHJldHVybiB7XG4gICAgICBwdDogaW50ZXJwb2xhdGVCZXR3ZWVuUG9pbnRzKHNlZ21lbnQuYSwgc2VnbWVudC5iLCBzZWdtZW50UmF0aW8pLFxuICAgICAgaGVhZGluZzogc2VnbWVudC5oZWFkaW5nLFxuICAgIH07XG4gIH0pO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBwb2ludCB3aGljaCBsaWVzIG9uIHRoZSBzZWdtZW50IGRlZmluZWQgYnkgcG9pbnRzIEEgYW5kIEIsXG4gKiBhdCB0aGUgZ2l2ZW4gcmF0aW8gb2YgdGhlIGRpc3RhbmNlIGZyb20gQSB0byBCLCBieSBsaW5lYXIgaW50ZXJwb2xhdGlvbi5cbiAqL1xuZnVuY3Rpb24gaW50ZXJwb2xhdGVCZXR3ZWVuUG9pbnRzKHB0QSwgcHRCLCByYXRpbykge1xuICBpZiAocHRCLnggIT09IHB0QS54KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IHB0QS54ICsgcmF0aW8gKiAocHRCLnggLSBwdEEueCksXG4gICAgICB5OiBwdEEueSArIHJhdGlvICogKHB0Qi55IC0gcHRBLnkpLFxuICAgIH07XG4gIH1cbiAgLy8gc3BlY2lhbCBjYXNlIHdoZXJlIHBvaW50cyBsaWUgb24gdGhlIHNhbWUgdmVydGljYWwgYXhpc1xuICByZXR1cm4ge1xuICAgIHg6IHB0QS54LFxuICAgIHk6IHB0QS55ICsgKHB0Qi55IC0gcHRBLnkpICogcmF0aW8sXG4gIH07XG59XG5cbmV4cG9ydCB7XG4gIHByb2plY3RQYXR0ZXJuT25Qb2ludFBhdGgsXG4gIHBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUsXG4gIC8vIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gYXJlIGV4cG9ydGVkIG9ubHkgZm9yIHVuaXQgdGVzdGluZyBwdXJwb3NlXG4gIGNvbXB1dGVTZWdtZW50SGVhZGluZyxcbiAgYXNSYXRpb1RvUGF0aExlbmd0aCxcbn07XG5cbndpbmRvdy5MID0gTDtcbndpbmRvdy5MLlN5bWJvbCA9IEwuU3ltYm9sO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQUEsT0FBQTtBQURBOztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBQyxnQkFBQyxDQUFDQyxNQUFNLEdBQUdELGdCQUFDLENBQUNDLE1BQU0sSUFBSSxDQUFDLENBQUM7O0FBRXpCO0FBQ0E7QUFDQTtBQUNBO0FBQ0FELGdCQUFDLENBQUNDLE1BQU0sQ0FBQ0MsSUFBSSxHQUFHRixnQkFBQyxDQUFDRyxLQUFLLENBQUNDLE1BQU0sQ0FBQztFQUM3QkMsT0FBTyxFQUFFO0lBQ1BDLFNBQVMsRUFBRSxFQUFFO0lBQ2JDLFdBQVcsRUFBRSxDQUFDO0VBQ2hCLENBQUM7RUFF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
|
|
361
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbGVhZmxldCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiTCIsIlN5bWJvbCIsIkRhc2giLCJDbGFzcyIsImV4dGVuZCIsIm9wdGlvbnMiLCJwaXhlbFNpemUiLCJwYXRoT3B0aW9ucyIsImluaXRpYWxpemUiLCJVdGlsIiwic2V0T3B0aW9ucyIsImNsaWNrYWJsZSIsImJ1aWxkU3ltYm9sIiwiZGlyUG9pbnQiLCJsYXRMbmdzIiwibWFwIiwiaW5kZXgiLCJ0b3RhbCIsIm9wdHMiLCJkMnIiLCJNYXRoIiwiUEkiLCJwb2x5bGluZSIsImxhdExuZyIsIm1pZFBvaW50IiwicHJvamVjdCIsImFuZ2xlIiwiaGVhZGluZyIsImEiLCJwb2ludCIsIngiLCJjb3MiLCJ5Iiwic2luIiwiYiIsImFkZCIsInN1YnRyYWN0IiwidW5wcm9qZWN0IiwiZGFzaCIsIkFycm93SGVhZCIsInBvbHlnb24iLCJoZWFkQW5nbGUiLCJzdHJva2UiLCJ3ZWlnaHQiLCJfYnVpbGRBcnJvd1BhdGgiLCJ0aXBQb2ludCIsImRpcmVjdGlvbiIsInJhZGlhbkFycm93QW5nbGUiLCJoZWFkQW5nbGUxIiwiaGVhZEFuZ2xlMiIsImFycm93SGVhZDEiLCJhcnJvd0hlYWQyIiwiYXJyb3dIZWFkIiwiTWFya2VyIiwibWFya2VyT3B0aW9ucyIsInJvdGF0ZSIsImRyYWdnYWJsZSIsImRpcmVjdGlvblBvaW50Iiwicm90YXRpb25BbmdsZSIsImFuZ2xlQ29ycmVjdGlvbiIsIm1hcmtlciIsImlzQ29vcmQiLCJjIiwiTGF0TG5nIiwiQXJyYXkiLCJpc0FycmF5IiwibGVuZ3RoIiwiaXNDb29yZEFycmF5IiwibGwiLCJQb2x5bGluZURlY29yYXRvciIsIkZlYXR1cmVHcm91cCIsInBhdHRlcm5zIiwicGF0aHMiLCJwcm90b3R5cGUiLCJjYWxsIiwiX21hcCIsIl9wYXRocyIsIl9pbml0UGF0aHMiLCJfYm91bmRzIiwiX2luaXRCb3VuZHMiLCJfcGF0dGVybnMiLCJfaW5pdFBhdHRlcm5zIiwiaW5wdXQiLCJpc1BvbHlnb24iLCJjb29yZHMiLCJjb25jYXQiLCJQb2x5bGluZSIsImdldExhdExuZ3MiLCJQb2x5Z29uIiwicmVkdWNlIiwiZmxhdEFycmF5IiwicCIsInBhdHRlcm5EZWZzIiwiX3BhcnNlUGF0dGVybkRlZiIsInNldFBhdHRlcm5zIiwicmVkcmF3Iiwic2V0UGF0aHMiLCJwYXR0ZXJuRGVmIiwic3ltYm9sRmFjdG9yeSIsInN5bWJvbCIsIm9mZnNldCIsInBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUiLCJlbmRPZmZzZXQiLCJyZXBlYXQiLCJvbkFkZCIsIl9kcmF3Iiwib24iLCJvblJlbW92ZSIsIm9mZiIsImFsbFBhdGhDb29yZHMiLCJhY2MiLCJwYXRoIiwibGF0TG5nQm91bmRzIiwiZ2V0Qm91bmRzIiwiX2J1aWxkU3ltYm9scyIsImRpcmVjdGlvblBvaW50cyIsImkiLCJfZ2V0RGlyZWN0aW9uUG9pbnRzIiwicGF0dGVybiIsInBhdGhBc1BvaW50cyIsInByb2plY3RQYXR0ZXJuT25Qb2ludFBhdGgiLCJwdCIsImNsZWFyTGF5ZXJzIiwiX2dldFBhdHRlcm5MYXllcnMiLCJtYXBCb3VuZHMiLCJwYWQiLCJmaWx0ZXIiLCJjb250YWlucyIsImZlYXR1cmVHcm91cCIsImZvckVhY2giLCJsYXllcnMiLCJhZGRMYXllciIsInBvbHlsaW5lRGVjb3JhdG9yIiwicG9pbnREaXN0YW5jZSIsInB0QSIsInB0QiIsInNxcnQiLCJjb21wdXRlU2VnbWVudEhlYWRpbmciLCJhdGFuMiIsImV4cG9ydHMiLCJhc1JhdGlvVG9QYXRoTGVuZ3RoIiwiX3JlZiIsInRvdGFsUGF0aExlbmd0aCIsInZhbHVlIiwiaXNJblBpeGVscyIsImluZGV4T2YiLCJwYXJzZUZsb2F0IiwicGFyc2VkVmFsdWUiLCJwb2ludHNFcXVhbCIsInBvaW50c1RvU2VnbWVudHMiLCJwdHMiLCJzZWdtZW50cyIsImlkeCIsInBvaW50cyIsImRpc3RBIiwiZGlzdEIiLCJkaXN0QUIiLCJwdXNoIiwibmJTZWdtZW50cyIsInJlcGVhdEludGVydmFsUGl4ZWxzIiwic3RhcnRPZmZzZXRQaXhlbHMiLCJlbmRPZmZzZXRQaXhlbHMiLCJwb3NpdGlvbk9mZnNldHMiLCJwb3NpdGlvbk9mZnNldCIsInNlZ21lbnRJbmRleCIsInNlZ21lbnQiLCJzZWdtZW50UmF0aW8iLCJpbnRlcnBvbGF0ZUJldHdlZW5Qb2ludHMiLCJyYXRpbyIsIndpbmRvdyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlsaXRpZXMvcG9seWxpbmVkZWNvcmF0b3IudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEwgZnJvbSAnbGVhZmxldCc7XG4vLyBlbmFibGUgcm90YXRpb25BbmdsZSBhbmQgcm90YXRpb25PcmlnaW4gc3VwcG9ydCBvbiBMLk1hcmtlclxuaW1wb3J0ICdsZWFmbGV0LXJvdGF0ZWRtYXJrZXInO1xuXG4vKipcbiAqIERlZmluZXMgc2V2ZXJhbCBjbGFzc2VzIG9mIHN5bWJvbCBmYWN0b3JpZXMsXG4gKiB0byBiZSB1c2VkIHdpdGggTC5Qb2x5bGluZURlY29yYXRvclxuICovXG5cbkwuU3ltYm9sID0gTC5TeW1ib2wgfHwge307XG5cbi8qKlxuICogQSBzaW1wbGUgZGFzaCBzeW1ib2wsIGRyYXduIGFzIGEgUG9seWxpbmUuXG4gKiBDYW4gYWxzbyBiZSB1c2VkIGZvciBkb3RzLCBpZiAncGl4ZWxTaXplJyBvcHRpb24gaXMgZ2l2ZW4gdGhlIDAgdmFsdWUuXG4gKi9cbkwuU3ltYm9sLkRhc2ggPSBMLkNsYXNzLmV4dGVuZCh7XG4gIG9wdGlvbnM6IHtcbiAgICBwaXhlbFNpemU6IDEwLFxuICAgIHBhdGhPcHRpb25zOiB7fSxcbiAgfSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIEwuVXRpbC5zZXRPcHRpb25zKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMub3B0aW9ucy5wYXRoT3B0aW9ucy5jbGlja2FibGUgPSBmYWxzZTtcbiAgfSxcblxuICBidWlsZFN5bWJvbDogZnVuY3Rpb24gKGRpclBvaW50LCBsYXRMbmdzLCBtYXAsIGluZGV4LCB0b3RhbCkge1xuICAgIGNvbnN0IG9wdHMgPSB0aGlzLm9wdGlvbnM7XG4gICAgY29uc3QgZDJyID0gTWF0aC5QSSAvIDE4MDtcblxuICAgIC8vIGZvciBhIGRvdCwgbm90aGluZyBtb3JlIHRvIGNvbXB1dGVcbiAgICBpZiAob3B0cy5waXhlbFNpemUgPD0gMSkge1xuICAgICAgcmV0dXJuIEwucG9seWxpbmUoW2RpclBvaW50LmxhdExuZywgZGlyUG9pbnQubGF0TG5nXSwgb3B0cy5wYXRoT3B0aW9ucyk7XG4gICAgfVxuXG4gICAgY29uc3QgbWlkUG9pbnQgPSBtYXAucHJvamVjdChkaXJQb2ludC5sYXRMbmcpO1xuICAgIGNvbnN0IGFuZ2xlID0gLShkaXJQb2ludC5oZWFkaW5nIC0gOTApICogZDJyO1xuICAgIGNvbnN0IGEgPSBMLnBvaW50KFxuICAgICAgbWlkUG9pbnQueCArIChvcHRzLnBpeGVsU2l6ZSAqIE1hdGguY29zKGFuZ2xlICsgTWF0aC5QSSkpIC8gMixcbiAgICAgIG1pZFBvaW50LnkgKyAob3B0cy5waXhlbFNpemUgKiBNYXRoLnNpbihhbmdsZSkpIC8gMixcbiAgICApO1xuICAgIC8vIGNvbXB1dGUgc2Vjb25kIHBvaW50IGJ5IGNlbnRyYWwgc3ltbWV0cnkgdG8gYXZvaWQgdW5lY2Vzc2FyeSBjb3Mvc2luXG4gICAgY29uc3QgYiA9IG1pZFBvaW50LmFkZChtaWRQb2ludC5zdWJ0cmFjdChhKSk7XG4gICAgcmV0dXJuIEwucG9seWxpbmUoW21hcC51bnByb2plY3QoYSksIG1hcC51bnByb2plY3QoYildLCBvcHRzLnBhdGhPcHRpb25zKTtcbiAgfSxcbn0pO1xuXG5MLlN5bWJvbC5kYXNoID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBMLlN5bWJvbC5EYXNoKG9wdGlvbnMpO1xufTtcblxuTC5TeW1ib2wuQXJyb3dIZWFkID0gTC5DbGFzcy5leHRlbmQoe1xuICBvcHRpb25zOiB7XG4gICAgcG9seWdvbjogdHJ1ZSxcbiAgICBwaXhlbFNpemU6IDEwLFxuICAgIGhlYWRBbmdsZTogNjAsXG4gICAgcGF0aE9wdGlvbnM6IHtcbiAgICAgIHN0cm9rZTogZmFsc2UsXG4gICAgICB3ZWlnaHQ6IDIsXG4gICAgfSxcbiAgfSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIEwuVXRpbC5zZXRPcHRpb25zKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMub3B0aW9ucy5wYXRoT3B0aW9ucy5jbGlja2FibGUgPSBmYWxzZTtcbiAgfSxcblxuICBidWlsZFN5bWJvbDogZnVuY3Rpb24gKGRpclBvaW50LCBsYXRMbmdzLCBtYXAsIGluZGV4LCB0b3RhbCkge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbnMucG9seWdvblxuICAgICAgPyBMLnBvbHlnb24odGhpcy5fYnVpbGRBcnJvd1BhdGgoZGlyUG9pbnQsIG1hcCksIHRoaXMub3B0aW9ucy5wYXRoT3B0aW9ucylcbiAgICAgIDogTC5wb2x5bGluZShcbiAgICAgICAgICB0aGlzLl9idWlsZEFycm93UGF0aChkaXJQb2ludCwgbWFwKSxcbiAgICAgICAgICB0aGlzLm9wdGlvbnMucGF0aE9wdGlvbnMsXG4gICAgICAgICk7XG4gIH0sXG5cbiAgX2J1aWxkQXJyb3dQYXRoOiBmdW5jdGlvbiAoZGlyUG9pbnQsIG1hcCkge1xuICAgIGNvbnN0IGQyciA9IE1hdGguUEkgLyAxODA7XG4gICAgY29uc3QgdGlwUG9pbnQgPSBtYXAucHJvamVjdChkaXJQb2ludC5sYXRMbmcpO1xuICAgIGNvbnN0IGRpcmVjdGlvbiA9IC0oZGlyUG9pbnQuaGVhZGluZyAtIDkwKSAqIGQycjtcbiAgICBjb25zdCByYWRpYW5BcnJvd0FuZ2xlID0gKHRoaXMub3B0aW9ucy5oZWFkQW5nbGUgLyAyKSAqIGQycjtcblxuICAgIGNvbnN0IGhlYWRBbmdsZTEgPSBkaXJlY3Rpb24gKyByYWRpYW5BcnJvd0FuZ2xlO1xuICAgIGNvbnN0IGhlYWRBbmdsZTIgPSBkaXJlY3Rpb24gLSByYWRpYW5BcnJvd0FuZ2xlO1xuICAgIGNvbnN0IGFycm93SGVhZDEgPSBMLnBvaW50KFxuICAgICAgdGlwUG9pbnQueCAtIHRoaXMub3B0aW9ucy5waXhlbFNpemUgKiBNYXRoLmNvcyhoZWFkQW5nbGUxKSxcbiAgICAgIHRpcFBvaW50LnkgKyB0aGlzLm9wdGlvbnMucGl4ZWxTaXplICogTWF0aC5zaW4oaGVhZEFuZ2xlMSksXG4gICAgKTtcbiAgICBjb25zdCBhcnJvd0hlYWQyID0gTC5wb2ludChcbiAgICAgIHRpcFBvaW50LnggLSB0aGlzLm9wdGlvbnMucGl4ZWxTaXplICogTWF0aC5jb3MoaGVhZEFuZ2xlMiksXG4gICAgICB0aXBQb2ludC55ICsgdGhpcy5vcHRpb25zLnBpeGVsU2l6ZSAqIE1hdGguc2luKGhlYWRBbmdsZTIpLFxuICAgICk7XG5cbiAgICByZXR1cm4gW1xuICAgICAgbWFwLnVucHJvamVjdChhcnJvd0hlYWQxKSxcbiAgICAgIGRpclBvaW50LmxhdExuZyxcbiAgICAgIG1hcC51bnByb2plY3QoYXJyb3dIZWFkMiksXG4gICAgXTtcbiAgfSxcbn0pO1xuXG5MLlN5bWJvbC5hcnJvd0hlYWQgPSBmdW5jdGlvbiAob3B0aW9ucykge1xuICByZXR1cm4gbmV3IEwuU3ltYm9sLkFycm93SGVhZChvcHRpb25zKTtcbn07XG5cbkwuU3ltYm9sLk1hcmtlciA9IEwuQ2xhc3MuZXh0ZW5kKHtcbiAgb3B0aW9uczoge1xuICAgIG1hcmtlck9wdGlvbnM6IHt9LFxuICAgIHJvdGF0ZTogZmFsc2UsXG4gIH0sXG5cbiAgaW5pdGlhbGl6ZTogZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICBMLlV0aWwuc2V0T3B0aW9ucyh0aGlzLCBvcHRpb25zKTtcbiAgICB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucy5jbGlja2FibGUgPSBmYWxzZTtcbiAgICB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucy5kcmFnZ2FibGUgPSBmYWxzZTtcbiAgfSxcblxuICBidWlsZFN5bWJvbDogZnVuY3Rpb24gKGRpcmVjdGlvblBvaW50LCBsYXRMbmdzLCBtYXAsIGluZGV4LCB0b3RhbCkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMucm90YXRlKSB7XG4gICAgICB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucy5yb3RhdGlvbkFuZ2xlID1cbiAgICAgICAgZGlyZWN0aW9uUG9pbnQuaGVhZGluZyArICh0aGlzLm9wdGlvbnMuYW5nbGVDb3JyZWN0aW9uIHx8IDApO1xuICAgIH1cbiAgICByZXR1cm4gTC5tYXJrZXIoZGlyZWN0aW9uUG9pbnQubGF0TG5nLCB0aGlzLm9wdGlvbnMubWFya2VyT3B0aW9ucyk7XG4gIH0sXG59KTtcblxuTC5TeW1ib2wubWFya2VyID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgcmV0dXJuIG5ldyBMLlN5bWJvbC5NYXJrZXIob3B0aW9ucyk7XG59O1xuXG5jb25zdCBpc0Nvb3JkID0gKGMpID0+XG4gIGMgaW5zdGFuY2VvZiBMLkxhdExuZyB8fFxuICAoQXJyYXkuaXNBcnJheShjKSAmJiBjLmxlbmd0aCA9PT0gMiAmJiB0eXBlb2YgY1swXSA9PT0gJ251bWJlcicpO1xuXG5jb25zdCBpc0Nvb3JkQXJyYXkgPSAobGwpID0+IEFycmF5LmlzQXJyYXkobGwpICYmIGlzQ29vcmQobGxbMF0pO1xuXG5MLlBvbHlsaW5lRGVjb3JhdG9yID0gTC5GZWF0dXJlR3JvdXAuZXh0ZW5kKHtcbiAgb3B0aW9uczoge1xuICAgIHBhdHRlcm5zOiBbXSxcbiAgfSxcblxuICBpbml0aWFsaXplOiBmdW5jdGlvbiAocGF0aHMsIG9wdGlvbnMpIHtcbiAgICBMLkZlYXR1cmVHcm91cC5wcm90b3R5cGUuaW5pdGlhbGl6ZS5jYWxsKHRoaXMpO1xuICAgIEwuVXRpbC5zZXRPcHRpb25zKHRoaXMsIG9wdGlvbnMpO1xuICAgIHRoaXMuX21hcCA9IG51bGw7XG4gICAgdGhpcy5fcGF0aHMgPSB0aGlzLl9pbml0UGF0aHMocGF0aHMpO1xuICAgIHRoaXMuX2JvdW5kcyA9IHRoaXMuX2luaXRCb3VuZHMoKTtcbiAgICB0aGlzLl9wYXR0ZXJucyA9IHRoaXMuX2luaXRQYXR0ZXJucyh0aGlzLm9wdGlvbnMucGF0dGVybnMpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBEZWFscyB3aXRoIGFsbCB0aGUgZGlmZmVyZW50IGNhc2VzLiBpbnB1dCBjYW4gYmUgb25lIG9mIHRoZXNlIHR5cGVzOlxuICAgKiBhcnJheSBvZiBMYXRMbmcsIGFycmF5IG9mIDItbnVtYmVyIGFycmF5cywgUG9seWxpbmUsIFBvbHlnb24sXG4gICAqIGFycmF5IG9mIG9uZSBvZiB0aGUgcHJldmlvdXMuXG4gICAqL1xuICBfaW5pdFBhdGhzOiBmdW5jdGlvbiAoaW5wdXQsIGlzUG9seWdvbikge1xuICAgIGlmIChpc0Nvb3JkQXJyYXkoaW5wdXQpKSB7XG4gICAgICAvLyBMZWFmbGV0IFBvbHlnb25zIGRvbid0IG5lZWQgdGhlIGZpcnN0IHBvaW50IHRvIGJlIHJlcGVhdGVkLCBidXQgd2UgZG9cbiAgICAgIGNvbnN0IGNvb3JkcyA9IGlzUG9seWdvbiA/IGlucHV0LmNvbmNhdChbaW5wdXRbMF1dKSA6IGlucHV0O1xuICAgICAgcmV0dXJuIFtjb29yZHNdO1xuICAgIH1cbiAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBMLlBvbHlsaW5lKSB7XG4gICAgICAvLyB3ZSBuZWVkIHNvbWUgcmVjdXJzaXZpdHkgdG8gc3VwcG9ydCBtdWx0aS1wb2x5KlxuICAgICAgcmV0dXJuIHRoaXMuX2luaXRQYXRocyhpbnB1dC5nZXRMYXRMbmdzKCksIGlucHV0IGluc3RhbmNlb2YgTC5Qb2x5Z29uKTtcbiAgICB9XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoaW5wdXQpKSB7XG4gICAgICAvLyBmbGF0dGVuIGV2ZXJ5dGhpbmcsIHdlIGp1c3QgbmVlZCBjb29yZGluYXRlIGxpc3RzIHRvIGFwcGx5IHBhdHRlcm5zXG4gICAgICByZXR1cm4gaW5wdXQucmVkdWNlKFxuICAgICAgICAoZmxhdEFycmF5LCBwKSA9PiBmbGF0QXJyYXkuY29uY2F0KHRoaXMuX2luaXRQYXRocyhwLCBpc1BvbHlnb24pKSxcbiAgICAgICAgW10sXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH0sXG5cbiAgLy8gcGFyc2UgcGF0dGVybiBkZWZpbml0aW9ucyBhbmQgcHJlY29tcHV0ZSBzb21lIHZhbHVlc1xuICBfaW5pdFBhdHRlcm5zOiBmdW5jdGlvbiAocGF0dGVybkRlZnMpIHtcbiAgICByZXR1cm4gcGF0dGVybkRlZnMubWFwKHRoaXMuX3BhcnNlUGF0dGVybkRlZik7XG4gIH0sXG5cbiAgLyoqXG4gICAqIENoYW5nZXMgdGhlIHBhdHRlcm5zIHVzZWQgYnkgdGhpcyBkZWNvcmF0b3JcbiAgICogYW5kIHJlZHJhd3MgdGhlIG5ldyBvbmUuXG4gICAqL1xuICBzZXRQYXR0ZXJuczogZnVuY3Rpb24gKHBhdHRlcm5zKSB7XG4gICAgdGhpcy5vcHRpb25zLnBhdHRlcm5zID0gcGF0dGVybnM7XG4gICAgdGhpcy5fcGF0dGVybnMgPSB0aGlzLl9pbml0UGF0dGVybnModGhpcy5vcHRpb25zLnBhdHRlcm5zKTtcbiAgICB0aGlzLnJlZHJhdygpO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDaGFuZ2VzIHRoZSBwYXR0ZXJucyB1c2VkIGJ5IHRoaXMgZGVjb3JhdG9yXG4gICAqIGFuZCByZWRyYXdzIHRoZSBuZXcgb25lLlxuICAgKi9cbiAgc2V0UGF0aHM6IGZ1bmN0aW9uIChwYXRocykge1xuICAgIHRoaXMuX3BhdGhzID0gdGhpcy5faW5pdFBhdGhzKHBhdGhzKTtcbiAgICB0aGlzLl9ib3VuZHMgPSB0aGlzLl9pbml0Qm91bmRzKCk7XG4gICAgdGhpcy5yZWRyYXcoKTtcbiAgfSxcblxuICAvKipcbiAgICogUGFyc2UgdGhlIHBhdHRlcm4gZGVmaW5pdGlvblxuICAgKi9cbiAgX3BhcnNlUGF0dGVybkRlZjogZnVuY3Rpb24gKHBhdHRlcm5EZWYsIGxhdExuZ3MpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3ltYm9sRmFjdG9yeTogcGF0dGVybkRlZi5zeW1ib2wsXG4gICAgICAvLyBQYXJzZSBvZmZzZXQgYW5kIHJlcGVhdCB2YWx1ZXMsIG1hbmFnaW5nIHRoZSB0d28gY2FzZXM6XG4gICAgICAvLyBhYnNvbHV0ZSAoaW4gcGl4ZWxzKSBvciByZWxhdGl2ZSAoaW4gcGVyY2VudGFnZSBvZiB0aGUgcG9seWxpbmUgbGVuZ3RoKVxuICAgICAgb2Zmc2V0OiBwYXJzZVJlbGF0aXZlT3JBYnNvbHV0ZVZhbHVlKHBhdHRlcm5EZWYub2Zmc2V0KSxcbiAgICAgIGVuZE9mZnNldDogcGFyc2VSZWxhdGl2ZU9yQWJzb2x1dGVWYWx1ZShwYXR0ZXJuRGVmLmVuZE9mZnNldCksXG4gICAgICByZXBlYXQ6IHBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUocGF0dGVybkRlZi5yZXBlYXQpLFxuICAgIH07XG4gIH0sXG5cbiAgb25BZGQ6IGZ1bmN0aW9uIChtYXApIHtcbiAgICB0aGlzLl9tYXAgPSBtYXA7XG4gICAgdGhpcy5fZHJhdygpO1xuICAgIHRoaXMuX21hcC5vbignbW92ZWVuZCcsIHRoaXMucmVkcmF3LCB0aGlzKTtcbiAgfSxcblxuICBvblJlbW92ZTogZnVuY3Rpb24gKG1hcCkge1xuICAgIHRoaXMuX21hcC5vZmYoJ21vdmVlbmQnLCB0aGlzLnJlZHJhdywgdGhpcyk7XG4gICAgdGhpcy5fbWFwID0gbnVsbDtcbiAgICBMLkZlYXR1cmVHcm91cC5wcm90b3R5cGUub25SZW1vdmUuY2FsbCh0aGlzLCBtYXApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBBcyByZWFsIHBhdHRlcm4gYm91bmRzIGRlcGVuZHMgb24gbWFwIHpvb20gYW5kIGJvdW5kcyxcbiAgICogd2UganVzdCBjb21wdXRlIHRoZSB0b3RhbCBib3VuZHMgb2YgYWxsIHBhdGhzIGRlY29yYXRlZCBieSB0aGlzIGluc3RhbmNlLlxuICAgKi9cbiAgX2luaXRCb3VuZHM6IGZ1bmN0aW9uICgpIHtcbiAgICBjb25zdCBhbGxQYXRoQ29vcmRzID0gdGhpcy5fcGF0aHMucmVkdWNlKFxuICAgICAgKGFjYywgcGF0aCkgPT4gYWNjLmNvbmNhdChwYXRoKSxcbiAgICAgIFtdLFxuICAgICk7XG4gICAgcmV0dXJuIEwubGF0TG5nQm91bmRzKGFsbFBhdGhDb29yZHMpO1xuICB9LFxuXG4gIGdldEJvdW5kczogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLl9ib3VuZHM7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYW4gYXJyYXkgb2YgSUxheWVycyBvYmplY3RcbiAgICovXG4gIF9idWlsZFN5bWJvbHM6IGZ1bmN0aW9uIChsYXRMbmdzLCBzeW1ib2xGYWN0b3J5LCBkaXJlY3Rpb25Qb2ludHMpIHtcbiAgICByZXR1cm4gZGlyZWN0aW9uUG9pbnRzLm1hcCgoZGlyZWN0aW9uUG9pbnQsIGkpID0+XG4gICAgICBzeW1ib2xGYWN0b3J5LmJ1aWxkU3ltYm9sKFxuICAgICAgICBkaXJlY3Rpb25Qb2ludCxcbiAgICAgICAgbGF0TG5ncyxcbiAgICAgICAgdGhpcy5fbWFwLFxuICAgICAgICBpLFxuICAgICAgICBkaXJlY3Rpb25Qb2ludHMubGVuZ3RoLFxuICAgICAgKSxcbiAgICApO1xuICB9LFxuXG4gIC8qKlxuICAgKiBDb21wdXRlIHBhaXJzIG9mIExhdExuZyBhbmQgaGVhZGluZyBhbmdsZSxcbiAgICogdGhhdCBkZWZpbmUgcG9zaXRpb25zIGFuZCBkaXJlY3Rpb25zIG9mIHRoZSBzeW1ib2xzIG9uIHRoZSBwYXRoXG4gICAqL1xuICBfZ2V0RGlyZWN0aW9uUG9pbnRzOiBmdW5jdGlvbiAobGF0TG5ncywgcGF0dGVybikge1xuICAgIGlmIChsYXRMbmdzLmxlbmd0aCA8IDIpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3QgcGF0aEFzUG9pbnRzID0gbGF0TG5ncy5tYXAoKGxhdExuZykgPT4gdGhpcy5fbWFwLnByb2plY3QobGF0TG5nKSk7XG4gICAgcmV0dXJuIHByb2plY3RQYXR0ZXJuT25Qb2ludFBhdGgocGF0aEFzUG9pbnRzLCBwYXR0ZXJuKS5tYXAoKHBvaW50KSA9PiAoe1xuICAgICAgbGF0TG5nOiB0aGlzLl9tYXAudW5wcm9qZWN0KEwucG9pbnQocG9pbnQucHQpKSxcbiAgICAgIGhlYWRpbmc6IHBvaW50LmhlYWRpbmcsXG4gICAgfSkpO1xuICB9LFxuXG4gIHJlZHJhdzogZnVuY3Rpb24gKCkge1xuICAgIGlmICghdGhpcy5fbWFwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2xlYXJMYXllcnMoKTtcbiAgICB0aGlzLl9kcmF3KCk7XG4gIH0sXG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHN5bWJvbHMgZm9yIGEgZ2l2ZW4gcGF0dGVybiBhcyBhbiBhcnJheSBvZiBGZWF0dXJlR3JvdXBcbiAgICovXG4gIF9nZXRQYXR0ZXJuTGF5ZXJzOiBmdW5jdGlvbiAocGF0dGVybikge1xuICAgIGNvbnN0IG1hcEJvdW5kcyA9IHRoaXMuX21hcC5nZXRCb3VuZHMoKS5wYWQoMC4xKTtcbiAgICByZXR1cm4gdGhpcy5fcGF0aHMubWFwKChwYXRoKSA9PiB7XG4gICAgICBjb25zdCBkaXJlY3Rpb25Qb2ludHMgPSB0aGlzLl9nZXREaXJlY3Rpb25Qb2ludHMocGF0aCwgcGF0dGVybilcbiAgICAgICAgLy8gZmlsdGVyIG91dCBpbnZpc2libGUgcG9pbnRzXG4gICAgICAgIC5maWx0ZXIoKHBvaW50KSA9PiBtYXBCb3VuZHMuY29udGFpbnMocG9pbnQubGF0TG5nKSk7XG4gICAgICByZXR1cm4gTC5mZWF0dXJlR3JvdXAoXG4gICAgICAgIHRoaXMuX2J1aWxkU3ltYm9scyhwYXRoLCBwYXR0ZXJuLnN5bWJvbEZhY3RvcnksIGRpcmVjdGlvblBvaW50cyksXG4gICAgICApO1xuICAgIH0pO1xuICB9LFxuXG4gIC8qKlxuICAgKiBEcmF3IGFsbCBwYXR0ZXJuc1xuICAgKi9cbiAgX2RyYXc6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLl9wYXR0ZXJuc1xuICAgICAgLm1hcCgocGF0dGVybikgPT4gdGhpcy5fZ2V0UGF0dGVybkxheWVycyhwYXR0ZXJuKSlcbiAgICAgIC5mb3JFYWNoKChsYXllcnMpID0+IHtcbiAgICAgICAgdGhpcy5hZGRMYXllcihMLmZlYXR1cmVHcm91cChsYXllcnMpKTtcbiAgICAgIH0pO1xuICB9LFxufSk7XG4vKlxuICogQWxsb3dzIGNvbXBhY3Qgc3ludGF4IHRvIGJlIHVzZWRcbiAqL1xuTC5wb2x5bGluZURlY29yYXRvciA9IGZ1bmN0aW9uIChwYXRocywgb3B0aW9ucykge1xuICByZXR1cm4gbmV3IEwuUG9seWxpbmVEZWNvcmF0b3IocGF0aHMsIG9wdGlvbnMpO1xufTtcblxuLy8gZnVuY3Rpb25hbCByZS1pbXBsIG9mIEwuUG9pbnQuZGlzdGFuY2VUbyxcbi8vIHdpdGggbm8gZGVwZW5kZW5jeSBvbiBMZWFmbGV0IGZvciBlYXNpZXIgdGVzdGluZ1xuZnVuY3Rpb24gcG9pbnREaXN0YW5jZShwdEEsIHB0Qikge1xuICBjb25zdCB4ID0gcHRCLnggLSBwdEEueDtcbiAgY29uc3QgeSA9IHB0Qi55IC0gcHRBLnk7XG4gIHJldHVybiBNYXRoLnNxcnQoeCAqIHggKyB5ICogeSk7XG59XG5cbmNvbnN0IGNvbXB1dGVTZWdtZW50SGVhZGluZyA9IChhLCBiKSA9PlxuICAoKE1hdGguYXRhbjIoYi55IC0gYS55LCBiLnggLSBhLngpICogMTgwKSAvIE1hdGguUEkgKyA5MCArIDM2MCkgJSAzNjA7XG5cbmNvbnN0IGFzUmF0aW9Ub1BhdGhMZW5ndGggPSAoeyB2YWx1ZSwgaXNJblBpeGVscyB9LCB0b3RhbFBhdGhMZW5ndGgpID0+XG4gIGlzSW5QaXhlbHMgPyB2YWx1ZSAvIHRvdGFsUGF0aExlbmd0aCA6IHZhbHVlO1xuXG5mdW5jdGlvbiBwYXJzZVJlbGF0aXZlT3JBYnNvbHV0ZVZhbHVlKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlLmluZGV4T2YoJyUnKSAhPT0gLTEpIHtcbiAgICByZXR1cm4ge1xuICAgICAgdmFsdWU6IHBhcnNlRmxvYXQodmFsdWUpIC8gMTAwLFxuICAgICAgaXNJblBpeGVsczogZmFsc2UsXG4gICAgfTtcbiAgfVxuICBjb25zdCBwYXJzZWRWYWx1ZSA9IHZhbHVlID8gcGFyc2VGbG9hdCh2YWx1ZSkgOiAwO1xuICByZXR1cm4ge1xuICAgIHZhbHVlOiBwYXJzZWRWYWx1ZSxcbiAgICBpc0luUGl4ZWxzOiBwYXJzZWRWYWx1ZSA+IDAsXG4gIH07XG59XG5cbmNvbnN0IHBvaW50c0VxdWFsID0gKGEsIGIpID0+IGEueCA9PT0gYi54ICYmIGEueSA9PT0gYi55O1xuXG5mdW5jdGlvbiBwb2ludHNUb1NlZ21lbnRzKHB0cykge1xuICByZXR1cm4gcHRzLnJlZHVjZSgoc2VnbWVudHMsIGIsIGlkeCwgcG9pbnRzKSA9PiB7XG4gICAgLy8gdGhpcyB0ZXN0IHNraXBzIHNhbWUgYWRqYWNlbnQgcG9pbnRzXG4gICAgaWYgKGlkeCA+IDAgJiYgIXBvaW50c0VxdWFsKGIsIHBvaW50c1tpZHggLSAxXSkpIHtcbiAgICAgIGNvbnN0IGEgPSBwb2ludHNbaWR4IC0gMV07XG4gICAgICBjb25zdCBkaXN0QSA9XG4gICAgICAgIHNlZ21lbnRzLmxlbmd0aCA+IDAgPyBzZWdtZW50c1tzZWdtZW50cy5sZW5ndGggLSAxXS5kaXN0QiA6IDA7XG4gICAgICBjb25zdCBkaXN0QUIgPSBwb2ludERpc3RhbmNlKGEsIGIpO1xuICAgICAgc2VnbWVudHMucHVzaCh7XG4gICAgICAgIGEsXG4gICAgICAgIGIsXG4gICAgICAgIGRpc3RBLFxuICAgICAgICBkaXN0QjogZGlzdEEgKyBkaXN0QUIsXG4gICAgICAgIGhlYWRpbmc6IGNvbXB1dGVTZWdtZW50SGVhZGluZyhhLCBiKSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gc2VnbWVudHM7XG4gIH0sIFtdKTtcbn1cblxuZnVuY3Rpb24gcHJvamVjdFBhdHRlcm5PblBvaW50UGF0aChwdHMsIHBhdHRlcm4pIHtcbiAgLy8gMS4gc3BsaXQgdGhlIHBhdGggaW50byBzZWdtZW50IGluZm9zXG4gIGNvbnN0IHNlZ21lbnRzID0gcG9pbnRzVG9TZWdtZW50cyhwdHMpO1xuICBjb25zdCBuYlNlZ21lbnRzID0gc2VnbWVudHMubGVuZ3RoO1xuICBpZiAobmJTZWdtZW50cyA9PT0gMCkge1xuICAgIHJldHVybiBbXTtcbiAgfVxuXG4gIGNvbnN0IHRvdGFsUGF0aExlbmd0aCA9IHNlZ21lbnRzW25iU2VnbWVudHMgLSAxXS5kaXN0QjtcblxuICBjb25zdCBvZmZzZXQgPSBhc1JhdGlvVG9QYXRoTGVuZ3RoKHBhdHRlcm4ub2Zmc2V0LCB0b3RhbFBhdGhMZW5ndGgpO1xuICBjb25zdCBlbmRPZmZzZXQgPSBhc1JhdGlvVG9QYXRoTGVuZ3RoKHBhdHRlcm4uZW5kT2Zmc2V0LCB0b3RhbFBhdGhMZW5ndGgpO1xuICBjb25zdCByZXBlYXQgPSBhc1JhdGlvVG9QYXRoTGVuZ3RoKHBhdHRlcm4ucmVwZWF0LCB0b3RhbFBhdGhMZW5ndGgpO1xuXG4gIGNvbnN0IHJlcGVhdEludGVydmFsUGl4ZWxzID0gdG90YWxQYXRoTGVuZ3RoICogcmVwZWF0O1xuICBjb25zdCBzdGFydE9mZnNldFBpeGVscyA9IG9mZnNldCA+IDAgPyB0b3RhbFBhdGhMZW5ndGggKiBvZmZzZXQgOiAwO1xuICBjb25zdCBlbmRPZmZzZXRQaXhlbHMgPSBlbmRPZmZzZXQgPiAwID8gdG90YWxQYXRoTGVuZ3RoICogZW5kT2Zmc2V0IDogMDtcblxuICAvLyAyLiBnZW5lcmF0ZSB0aGUgcG9zaXRpb25zIG9mIHRoZSBwYXR0ZXJuIGFzIG9mZnNldHMgZnJvbSB0aGUgcGF0aCBzdGFydFxuICBjb25zdCBwb3NpdGlvbk9mZnNldHMgPSBbXTtcbiAgbGV0IHBvc2l0aW9uT2Zmc2V0ID0gc3RhcnRPZmZzZXRQaXhlbHM7XG4gIGRvIHtcbiAgICBwb3NpdGlvbk9mZnNldHMucHVzaChwb3NpdGlvbk9mZnNldCk7XG4gICAgcG9zaXRpb25PZmZzZXQgKz0gcmVwZWF0SW50ZXJ2YWxQaXhlbHM7XG4gIH0gd2hpbGUgKFxuICAgIHJlcGVhdEludGVydmFsUGl4ZWxzID4gMCAmJlxuICAgIHBvc2l0aW9uT2Zmc2V0IDwgdG90YWxQYXRoTGVuZ3RoIC0gZW5kT2Zmc2V0UGl4ZWxzXG4gICk7XG5cbiAgLy8gMy4gcHJvamVjdHMgb2Zmc2V0cyB0byBzZWdtZW50c1xuICBsZXQgc2VnbWVudEluZGV4ID0gMDtcbiAgbGV0IHNlZ21lbnQgPSBzZWdtZW50c1swXTtcbiAgcmV0dXJuIHBvc2l0aW9uT2Zmc2V0cy5tYXAoKHBvc2l0aW9uT2Zmc2V0KSA9PiB7XG4gICAgLy8gZmluZCB0aGUgc2VnbWVudCBtYXRjaGluZyB0aGUgb2Zmc2V0LFxuICAgIC8vIHN0YXJ0aW5nIGZyb20gdGhlIHByZXZpb3VzIG9uZSBhcyBvZmZzZXRzIGFyZSBvcmRlcmVkXG4gICAgd2hpbGUgKHBvc2l0aW9uT2Zmc2V0ID4gc2VnbWVudC5kaXN0QiAmJiBzZWdtZW50SW5kZXggPCBuYlNlZ21lbnRzIC0gMSkge1xuICAgICAgc2VnbWVudEluZGV4Kys7XG4gICAgICBzZWdtZW50ID0gc2VnbWVudHNbc2VnbWVudEluZGV4XTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWdtZW50UmF0aW8gPVxuICAgICAgKHBvc2l0aW9uT2Zmc2V0IC0gc2VnbWVudC5kaXN0QSkgLyAoc2VnbWVudC5kaXN0QiAtIHNlZ21lbnQuZGlzdEEpO1xuICAgIHJldHVybiB7XG4gICAgICBwdDogaW50ZXJwb2xhdGVCZXR3ZWVuUG9pbnRzKHNlZ21lbnQuYSwgc2VnbWVudC5iLCBzZWdtZW50UmF0aW8pLFxuICAgICAgaGVhZGluZzogc2VnbWVudC5oZWFkaW5nLFxuICAgIH07XG4gIH0pO1xufVxuXG4vKipcbiAqIEZpbmRzIHRoZSBwb2ludCB3aGljaCBsaWVzIG9uIHRoZSBzZWdtZW50IGRlZmluZWQgYnkgcG9pbnRzIEEgYW5kIEIsXG4gKiBhdCB0aGUgZ2l2ZW4gcmF0aW8gb2YgdGhlIGRpc3RhbmNlIGZyb20gQSB0byBCLCBieSBsaW5lYXIgaW50ZXJwb2xhdGlvbi5cbiAqL1xuZnVuY3Rpb24gaW50ZXJwb2xhdGVCZXR3ZWVuUG9pbnRzKHB0QSwgcHRCLCByYXRpbykge1xuICBpZiAocHRCLnggIT09IHB0QS54KSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IHB0QS54ICsgcmF0aW8gKiAocHRCLnggLSBwdEEueCksXG4gICAgICB5OiBwdEEueSArIHJhdGlvICogKHB0Qi55IC0gcHRBLnkpLFxuICAgIH07XG4gIH1cbiAgLy8gc3BlY2lhbCBjYXNlIHdoZXJlIHBvaW50cyBsaWUgb24gdGhlIHNhbWUgdmVydGljYWwgYXhpc1xuICByZXR1cm4ge1xuICAgIHg6IHB0QS54LFxuICAgIHk6IHB0QS55ICsgKHB0Qi55IC0gcHRBLnkpICogcmF0aW8sXG4gIH07XG59XG5cbmV4cG9ydCB7XG4gIHByb2plY3RQYXR0ZXJuT25Qb2ludFBhdGgsXG4gIHBhcnNlUmVsYXRpdmVPckFic29sdXRlVmFsdWUsXG4gIC8vIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb24gYXJlIGV4cG9ydGVkIG9ubHkgZm9yIHVuaXQgdGVzdGluZyBwdXJwb3NlXG4gIGNvbXB1dGVTZWdtZW50SGVhZGluZyxcbiAgYXNSYXRpb1RvUGF0aExlbmd0aCxcbn07XG5cbndpbmRvdy5MID0gTDtcbndpbmRvdy5MLnBvbHlsaW5lRGVjb3JhdG9yID0gTC5wb2x5bGluZURlY29yYXRvcjtcbndpbmRvdy5MLlN5bWJvbCA9IEwuU3ltYm9sO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFBQSxRQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQUEsT0FBQTtBQURBOztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBQyxnQkFBQyxDQUFDQyxNQUFNLEdBQUdELGdCQUFDLENBQUNDLE1BQU0sSUFBSSxDQUFDLENBQUM7O0FBRXpCO0FBQ0E7QUFDQTtBQUNBO0FBQ0FELGdCQUFDLENBQUNDLE1BQU0sQ0FBQ0MsSUFBSSxHQUFHRixnQkFBQyxDQUFDRyxLQUFLLENBQUNDLE1BQU0sQ0FBQztFQUM3QkMsT0FBTyxFQUFFO0lBQ1BD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
|