@1money/component-ui 0.0.77 → 0.0.78

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.
Files changed (45) hide show
  1. package/es/components/Dialog/Dialog.js +11 -3
  2. package/es/components/Dialog/interface.d.ts +1 -0
  3. package/es/components/Grid/Col.js +60 -4
  4. package/es/components/Grid/Grid.d.ts +4 -1
  5. package/es/components/Grid/Grid.js +5 -4
  6. package/es/components/Grid/Row.js +7 -5
  7. package/es/components/Grid/constants.d.ts +5 -3
  8. package/es/components/Grid/constants.js +13 -4
  9. package/es/components/Grid/helper.d.ts +8 -6
  10. package/es/components/Grid/helper.js +63 -15
  11. package/es/components/Grid/interface.d.ts +2 -1
  12. package/es/components/Grid/style/Grid.css +240 -196
  13. package/es/components/ProForm/ProForm.js +3 -3
  14. package/es/components/ProForm/constants.d.ts +1 -1
  15. package/es/components/ProForm/constants.js +5 -2
  16. package/es/components/ProForm/core/devWarning.d.ts +1 -3
  17. package/es/components/ProForm/core/devWarning.js +5 -15
  18. package/es/components/ProForm/layouts/DialogForm.js +2 -4
  19. package/es/index.css +1 -1
  20. package/es/utils/devWarn.d.ts +4 -0
  21. package/es/utils/devWarn.js +23 -0
  22. package/lib/components/Dialog/Dialog.js +11 -3
  23. package/lib/components/Dialog/interface.d.ts +1 -0
  24. package/lib/components/Grid/Col.js +59 -3
  25. package/lib/components/Grid/Grid.d.ts +4 -1
  26. package/lib/components/Grid/Grid.js +5 -4
  27. package/lib/components/Grid/Row.js +6 -4
  28. package/lib/components/Grid/constants.d.ts +5 -3
  29. package/lib/components/Grid/constants.js +14 -5
  30. package/lib/components/Grid/helper.d.ts +8 -6
  31. package/lib/components/Grid/helper.js +63 -15
  32. package/lib/components/Grid/interface.d.ts +2 -1
  33. package/lib/components/Grid/style/Grid.css +240 -196
  34. package/lib/components/ProForm/ProForm.js +2 -2
  35. package/lib/components/ProForm/constants.d.ts +1 -1
  36. package/lib/components/ProForm/constants.js +5 -2
  37. package/lib/components/ProForm/core/devWarning.d.ts +1 -3
  38. package/lib/components/ProForm/core/devWarning.js +23 -24
  39. package/lib/components/ProForm/layouts/DialogForm.js +2 -4
  40. package/lib/index.css +1 -1
  41. package/lib/utils/devWarn.d.ts +4 -0
  42. package/lib/utils/devWarn.js +31 -0
  43. package/package.json +1 -1
  44. package/scripts/mcp-server/examples.generated.json +171 -57
  45. package/scripts/mcp-server/index.generated.json +94 -10
@@ -177,6 +177,7 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
177
177
  fullWidth = _props$fullWidth === void 0 ? false : _props$fullWidth,
178
178
  _props$fixed = props.fixed,
179
179
  fixed = _props$fixed === void 0 ? false : _props$fixed,
180
+ width = props.width,
180
181
  title = props.title,
181
182
  children = props.children,
182
183
  illustration = props.illustration,
@@ -199,7 +200,7 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
199
200
  footerStyle = props.footerStyle,
200
201
  cancelButtonProps = props.cancelButtonProps,
201
202
  okButtonProps = props.okButtonProps,
202
- rest = __rest(props, ["className", "style", "prefixCls", "open", "size", "maskClosable", "showCloseIcon", "showBackIcon", "fullWidth", "fixed", "title", "children", "illustration", "media", "closeIcon", "backIcon", "footer", "onOk", "onCancel", "onBack", "okText", "cancelText", "rootStyle", "wrapperStyle", "bodyStyle", "headerStyle", "contentStyle", "footerStyle", "cancelButtonProps", "okButtonProps"]);
203
+ rest = __rest(props, ["className", "style", "prefixCls", "open", "size", "maskClosable", "showCloseIcon", "showBackIcon", "fullWidth", "fixed", "width", "title", "children", "illustration", "media", "closeIcon", "backIcon", "footer", "onOk", "onCancel", "onBack", "okText", "cancelText", "rootStyle", "wrapperStyle", "bodyStyle", "headerStyle", "contentStyle", "footerStyle", "cancelButtonProps", "okButtonProps"]);
203
204
  var dialogRef = useRef(null);
204
205
  var titleId = useId();
205
206
  var handleSetDialogRef = useCallback(function (node) {
@@ -269,6 +270,13 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
269
270
  cancelButton: cancelButton,
270
271
  okButton: okButton
271
272
  });
273
+ // `width` is a convenience that sets the panel's width inline, overriding the
274
+ // `size` preset's class-level width. An explicit `style.width` still wins (it is
275
+ // spread last). Note: `width` is not meant to be combined with `fullWidth`, whose
276
+ // `max-width: none` / `width: 100%` rules govern sizing on their own.
277
+ var panelStyle = Object.assign({
278
+ width: width
279
+ }, style);
272
280
  if (!open) return null;
273
281
  return _jsx(Portal, {
274
282
  children: _jsxs("div", {
@@ -287,7 +295,7 @@ var DialogBase = /*#__PURE__*/forwardRef(function (props, ref) {
287
295
  "aria-modal": "true",
288
296
  "aria-labelledby": title ? titleId : undefined,
289
297
  tabIndex: -1,
290
- style: style,
298
+ style: panelStyle,
291
299
  className: classNames(getClassName(prefixCls), getClassName(prefixCls, undefined, size), fullWidth && getClassName(prefixCls, undefined, DIALOG_MODIFIER.fullWidth), fixed && getClassName(prefixCls, undefined, DIALOG_MODIFIER.fixed), hasMedia && getClassName(prefixCls, undefined, DIALOG_MODIFIER.withMedia), className),
292
300
  children: [closeControlNode, hasMedia && _jsx("div", {
293
301
  className: getClassName(prefixCls, DIALOG_SLOT.media),
@@ -335,4 +343,4 @@ DialogBase.displayName = 'Dialog';
335
343
  export var Dialog = /*#__PURE__*/memo(DialogBase);
336
344
  Dialog.displayName = 'Dialog';
337
345
  export default Dialog;
338
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJ1c2VFdmVudENhbGxiYWNrIiwiY2xhc3NOYW1lcyIsImZvcndhcmRSZWYiLCJpc1ZhbGlkRWxlbWVudCIsIm1lbW8iLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUlkIiwidXNlUmVmIiwiQnV0dG9uIiwiSWNvbnMiLCJQb3J0YWwiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlIZWFkbGluZSIsImZpbGxSZWYiLCJESUFMT0dfQUNUSU9OX0tJTkQiLCJESUFMT0dfQ09OVFJPTF9MQUJFTFMiLCJESUFMT0dfQ09OVFJPTF9UWVBFIiwiRElBTE9HX0RFRkFVTFRfQlVUVE9OX0NPTE9SUyIsIkRJQUxPR19ERUZBVUxUX0lDT05TIiwiRElBTE9HX0RFRkFVTFRfUFJFRklYIiwiRElBTE9HX0RFRkFVTFRTIiwiRElBTE9HX01PRElGSUVSIiwiRElBTE9HX05BTUVTUEFDRSIsIkRJQUxPR19TSVpFIiwiRElBTE9HX1NMT1QiLCJzY3JvbGxMb2NrQ291bnQiLCJnZXRDbGFzc05hbWUiLCJwcmVmaXhDbHMiLCJzbG90IiwibW9kaWZpZXIiLCJiYXNlQ2xhc3NOYW1lIiwiY29uY2F0Iiwic2V0Qm9keU92ZXJmbG93IiwidmFsdWUiLCJkb2N1bWVudCIsImJvZHkiLCJzdHlsZSIsIm92ZXJmbG93IiwibG9ja0JvZHlTY3JvbGwiLCJvdmVyZmxvd0hpZGRlbiIsInVubG9ja0JvZHlTY3JvbGwiLCJNYXRoIiwibWF4IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwib3ZlcmZsb3dSZXNldCIsInVzZUJvZHlTY3JvbGxMb2NrIiwibG9ja2VkIiwiaXNMb2NrZWRSZWYiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwidXNlRGlhbG9nRm9jdXMiLCJhY3RpdmUiLCJkaWFsb2dSZWYiLCJwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYiLCJhY3RpdmVFbGVtZW50IiwiSFRNTEVsZW1lbnQiLCJmcmFtZSIsIndpbmRvdyIsIl9hIiwiZm9jdXMiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsIl9iIiwidXNlRXNjYXBlQ2xvc2UiLCJlbmFibGVkIiwib25DbG9zZSIsImhhbmRsZUtleURvd24iLCJldmVudCIsImtleSIsImVzY2FwZUtleSIsInByZXZlbnREZWZhdWx0IiwiYWRkRXZlbnRMaXN0ZW5lciIsImtleWRvd25FdmVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW5kZXJUeXBvZ3JhcGh5Tm9kZSIsIm5vZGUiLCJyZW5kZXJUZXh0IiwicmVuZGVySWxsdXN0cmF0aW9uTm9kZSIsImlsbHVzdHJhdGlvbiIsIm5hbWUiLCJzaXplIiwiaWxsdXN0cmF0aW9uU2l6ZSIsInRvVm9pZEhhbmRsZXIiLCJhY3Rpb24iLCJjcmVhdGVBY3Rpb25IYW5kbGVyIiwiYnV0dG9uQ2xpY2siLCJkZWZhdWx0UHJldmVudGVkIiwicmVuZGVyQ29udHJvbEJ1dHRvbiIsInR5cGUiLCJpY29uTm9kZSIsIm9uQ2xpY2siLCJidXR0b25IdG1sVHlwZSIsImNsYXNzTmFtZSIsImNvbnRyb2wiLCJjaGlsZHJlbiIsInJlbmRlckFjdGlvbkJ1dHRvbiIsIl9yZWYiLCJraW5kIiwidGV4dCIsImJ1dHRvblByb3BzIiwiYXNzaWduIiwiYnV0dG9uU2l6ZSIsImNvbG9yIiwiYWN0aW9uQnV0dG9uIiwicmVzb2x2ZUZvb3Rlck5vZGUiLCJfcmVmMiIsImZvb3RlciIsImNhbmNlbEJ1dHRvbiIsIm9rQnV0dG9uIiwibGFyZ2UiLCJEaWFsb2dCYXNlIiwicHJvcHMiLCJyZWYiLCJfcHJvcHMkcHJlZml4Q2xzIiwiX3Byb3BzJG9wZW4iLCJvcGVuIiwiX3Byb3BzJHNpemUiLCJzbWFsbCIsIl9wcm9wcyRtYXNrQ2xvc2FibGUiLCJtYXNrQ2xvc2FibGUiLCJfcHJvcHMkc2hvd0Nsb3NlSWNvbiIsInNob3dDbG9zZUljb24iLCJfcHJvcHMkc2hvd0JhY2tJY29uIiwic2hvd0JhY2tJY29uIiwiX3Byb3BzJGZ1bGxXaWR0aCIsImZ1bGxXaWR0aCIsIl9wcm9wcyRmaXhlZCIsImZpeGVkIiwidGl0bGUiLCJtZWRpYSIsImNsb3NlSWNvbiIsImJhY2tJY29uIiwib25PayIsIm9uQ2FuY2VsIiwib25CYWNrIiwiX3Byb3BzJG9rVGV4dCIsIm9rVGV4dCIsIl9wcm9wcyRjYW5jZWxUZXh0IiwiY2FuY2VsVGV4dCIsInJvb3RTdHlsZSIsIndyYXBwZXJTdHlsZSIsImJvZHlTdHlsZSIsImhlYWRlclN0eWxlIiwiY29udGVudFN0eWxlIiwiZm9vdGVyU3R5bGUiLCJjYW5jZWxCdXR0b25Qcm9wcyIsIm9rQnV0dG9uUHJvcHMiLCJyZXN0IiwidGl0bGVJZCIsImhhbmRsZVNldERpYWxvZ1JlZiIsImhhbmRsZUNhbmNlbCIsImhhbmRsZU9rIiwiaGFuZGxlQmFjayIsImhhbmRsZU92ZXJsYXlDbGljayIsImhhc01lZGlhIiwiY2xvc2VDb250cm9sTm9kZSIsImNsb3NlIiwiY29udHJvbEljb25TaXplIiwiYmFja0NvbnRyb2xOb2RlIiwiYmFjayIsImlsbHVzdHJhdGlvbk5vZGUiLCJ0aXRsZU5vZGUiLCJhcyIsImNoaWxkcmVuTm9kZSIsInN0cm9uZyIsImNhbmNlbCIsIm9rIiwiZm9vdGVyTm9kZSIsInJvb3QiLCJvdmVybGF5Iiwid3JhcHBlciIsInJvbGUiLCJ0YWJJbmRleCIsIndpdGhNZWRpYSIsImlubmVyIiwiaGVhZGVyIiwiaWQiLCJjb250ZW50IiwiZGlzcGxheU5hbWUiLCJEaWFsb2ciXSwibWFwcGluZ3MiOiJB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QztnQkFBQWxDLFFBQUEsRUFDcEVtRTtjQUFTLENBQUEsQ0FFYixFQUNBRSxZQUFZLElBQ1h4SyxJQUFBLENBQUEsS0FBQSxFQUFBO2dCQUNFMEMsS0FBSyxFQUFFMEcsWUFBWTtnQkFDbkJuRCxTQUFTLEVBQUVqRSxZQUFZLENBQUNDLFNBQVMsRUFBRUgsV0FBVyxDQUFDd0osT0FBTyxDQUFDO2dCQUFBbkYsUUFBQSxFQUV0RHFFO2NBQVksQ0FBQSxDQUVoQjtZQUFBLENBQUEsQ0FDRyxFQUNMSSxVQUFVLElBQ1Q1SyxJQUFBLENBQUEsS0FBQSxFQUFBO2NBQ0UwQyxLQUFLLEVBQUUyRyxXQUFXO2NBQ2xCcEQsU0FBUyxFQUFFM0YsVUFBVSxDQUNuQjBCLFlBQVksQ0FBQ0MsU0FBUyxFQUFFSCxXQUFXLENBQUNpRixNQUFNLENBQUMsRUFDM0MvRSxZQUFZLENBQUNDLFNBQVMsRUFBRUgsV0FBVyxDQUFDaUYsTUFBTSxFQUFFMUIsSUFBSSxDQUFDLENBQ2xEO2NBQUFjLFFBQUEsRUFFQXlFO1lBQVUsQ0FBQSxDQUVkO1VBQUEsQ0FBQSxDQUNHO1FBQUEsQ0FBQSxDQUFBO01BQ0YsQ0FBQSxDQUNGO0lBQUEsQ0FBQTtFQUNGLENBQUEsQ0FDQztBQUViLENBQUMsQ0FBQztBQUVGekQsVUFBVSxDQUFDb0UsV0FBVyxHQUFHLFFBQVE7QUFFakMsT0FBTyxJQUFNQyxNQUFNLGdCQUFHL0ssSUFBSSxDQUFDMEcsVUFBVSxDQUFDO0FBRXRDcUUsTUFBTSxDQUFDRCxXQUFXLEdBQUcsUUFBUTtBQUU3QixlQUFlQyxNQUFNIiwiZmlsZSI6ImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGZvcndhcmRSZWYsIGlzVmFsaWRFbGVtZW50LCBtZW1vLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VJZCwgdXNlUmVmLCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUhlYWRsaW5lIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBmaWxsUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVmJztcbmltcG9ydCB7IERJQUxPR19BQ1RJT05fS0lORCwgRElBTE9HX0NPTlRST0xfTEFCRUxTLCBESUFMT0dfQ09OVFJPTF9UWVBFLCBESUFMT0dfREVGQVVMVF9CVVRUT05fQ09MT1JTLCBESUFMT0dfREVGQVVMVF9JQ09OUywgRElBTE9HX0RFRkFVTFRfUFJFRklYLCBESUFMT0dfREVGQVVMVFMsIERJQUxPR19NT0RJRklFUiwgRElBTE9HX05BTUVTUEFDRSwgRElBTE9HX1NJWkUsIERJQUxPR19TTE9ULCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5sZXQgc2Nyb2xsTG9ja0NvdW50ID0gMDtcbmNvbnN0IGdldENsYXNzTmFtZSA9IChwcmVmaXhDbHMsIHNsb3QsIG1vZGlmaWVyKSA9PiB7XG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZSA9IGAke0RJQUxPR19OQU1FU1BBQ0V9LSR7cHJlZml4Q2xzfSR7c2xvdCA/IGAtJHtzbG90fWAgOiAnJ31gO1xuICAgIHJldHVybiBtb2RpZmllciA/IGAke2Jhc2VDbGFzc05hbWV9LSR7bW9kaWZpZXJ9YCA6IGJhc2VDbGFzc05hbWU7XG59O1xuY29uc3Qgc2V0Qm9keU92ZXJmbG93ID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybjtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gdmFsdWU7XG59O1xuY29uc3QgbG9ja0JvZHlTY3JvbGwgPSAoKSA9PiB7XG4gICAgc2Nyb2xsTG9ja0NvdW50ICs9IDE7XG4gICAgc2V0Qm9keU92ZXJmbG93KERJQUxPR19ERUZBVUxUUy5vdmVyZmxvd0hpZGRlbik7XG59O1xuY29uc3QgdW5sb2NrQm9keVNjcm9sbCA9ICgpID0+IHtcbiAgICBzY3JvbGxMb2NrQ291bnQgPSBNYXRoLm1heCgwLCBzY3JvbGxMb2NrQ291bnQgLSAxKTtcbiAgICBpZiAoc2Nyb2xsTG9ja0NvdW50ID09PSAwKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2Nyb2xsTG9ja0NvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgc2V0Qm9keU92ZXJmbG93KERJQUxPR19ERUZBVUxUUy5vdmVyZmxvd1Jlc2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufTtcbmNvbnN0IHVzZUJvZHlTY3JvbGxMb2NrID0gKGxvY2tlZCkgPT4ge1xuICAgIGNvbnN0IGlzTG9ja2VkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWxvY2tlZCB8fCBpc0xvY2tlZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgaXNMb2NrZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIGxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzTG9ja2VkUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaXNMb2NrZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgdW5sb2NrQm9keVNjcm9sbCgpO1xuICAgICAgICB9O1xuICAgIH0sIFtsb2NrZWRdKTtcbn07XG5jb25zdCB1c2VEaWFsb2dGb2N1cyA9IChhY3RpdmUsIGRpYWxvZ1JlZikgPT4ge1xuICAgIGNvbnN0IHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWFjdGl2ZSB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmLmN1cnJlbnQgPVxuICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAoX2EgPSBkaWFsb2dSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbYWN0aXZlLCBkaWFsb2dSZWZdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoYWN0aXZlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAoX2IgPSAoX2EgPSBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7XG4gICAgICAgIHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9LCBbYWN0aXZlXSk7XG59O1xuY29uc3QgdXNlRXNjYXBlQ2xvc2UgPSAoZW5hYmxlZCwgb25DbG9zZSkgPT4ge1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZW5hYmxlZCB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gRElBTE9HX0RFRkFVTFRTLmVzY2FwZUtleSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdm9pZCAob25DbG9zZSA9PT0gbnVsbCB8fCBvbkNsb3NlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNsb3NlKCkpO1xuICAgICAgICB9O1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKERJQUxPR19ERUZBVUxUUy5rZXlkb3duRXZlbnQsIGhhbmRsZUtleURvd24pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihESUFMT0dfREVGQVVMVFMua2V5ZG93bkV2ZW50LCBoYW5kbGVLZXlEb3duKTtcbiAgICAgICAgfTtcbiAgICB9LCBbZW5hYmxlZCwgb25DbG9zZV0pO1xufTtcbmNvbnN0IHJlbmRlclR5cG9ncmFwaHlOb2RlID0gKG5vZGUsIHJlbmRlclRleHQpID0+IHtcbiAgICBpZiAobm9kZSA9PSBudWxsIHx8IHR5cGVvZiBub2RlID09PSAnYm9vbGVhbicpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG5vZGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiByZW5kZXJUZXh0KG5vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbn07XG5jb25zdCByZW5kZXJJbGx1c3RyYXRpb25Ob2RlID0gKGlsbHVzdHJhdGlvbikgPT4ge1xuICAgIGlmICghaWxsdXN0cmF0aW9uKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIGlsbHVzdHJhdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goSWNvbnMsIHsgbmFtZTogaWxsdXN0cmF0aW9uLCBzaXplOiBESUFMT0dfREVGQVVMVFMuaWxsdXN0cmF0aW9uU2l6ZSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGlzVmFsaWRFbGVtZW50KGlsbHVzdHJhdGlvbikgPyBpbGx1c3RyYXRpb24gOiBudWxsO1xufTtcbmNvbnN0IHRvVm9pZEhhbmRsZXIgPSAoYWN0aW9uKSA9PiAoKSA9PiB7XG4gICAgdm9pZCAoYWN0aW9uID09PSBudWxsIHx8IGFjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aW9uKCkpO1xufTtcbmNvbnN0IGNyZWF0ZUFjdGlvbkhhbmRsZXIgPSAoYWN0aW9uLCBidXR0b25DbGljaykgPT4gKGV2ZW50KSA9PiB7XG4gICAgYnV0dG9uQ2xpY2sgPT09IG51bGwgfHwgYnV0dG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1dHRvbkNsaWNrKGV2ZW50KTtcbiAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCB8fCAhYWN0aW9uKVxuICAgICAgICByZXR1cm47XG4gICAgdm9pZCBhY3Rpb24oKTtcbn07XG5jb25zdCByZW5kZXJDb250cm9sQnV0dG9uID0gKHByZWZpeENscywgdHlwZSwgaWNvbk5vZGUsIG9uQ2xpY2spID0+IChfanN4KFwiYnV0dG9uXCIsIHsgdHlwZTogRElBTE9HX0RFRkFVTFRTLmJ1dHRvbkh0bWxUeXBlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuY29udHJvbCksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmNvbnRyb2wsIHR5cGUpKSwgXCJhcmlhLWxhYmVsXCI6IERJQUxPR19DT05UUk9MX0xBQkVMU1t0eXBlXSwgb25DbGljazogdG9Wb2lkSGFuZGxlcihvbkNsaWNrKSwgY2hpbGRyZW46IGljb25Ob2RlIH0pKTtcbmNvbnN0IHJlbmRlckFjdGlvbkJ1dHRvbiA9ICh7IHByZWZpeENscywga2luZCwgdGV4dCwgYWN0aW9uLCBidXR0b25Qcm9wcywgfSkgPT4ge1xuICAgIHZhciBfYTtcbiAgICBpZiAodGV4dCA9PSBudWxsIHx8ICFhY3Rpb24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oe30sIGJ1dHRvblByb3BzLCB7IHR5cGU6IERJQUxPR19ERUZBVUxUUy5idXR0b25IdG1sVHlwZSwgc2l6ZTogRElBTE9HX0RFRkFVTFRTLmJ1dHRvblNpemUsIGNvbG9yOiAoX2EgPSBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuY29sb3IpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IERJQUxPR19ERUZBVUxUX0JVVFRPTl9DT0xPUlNba2luZF0sIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5hY3Rpb25CdXR0b24pLCBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5hY3Rpb25CdXR0b24sIGtpbmQpLCBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuY2xhc3NOYW1lKSwgc3R5bGU6IGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5zdHlsZSwgb25DbGljazogY3JlYXRlQWN0aW9uSGFuZGxlcihhY3Rpb24sIGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5vbkNsaWNrKSwgY2hpbGRyZW46IHRleHQgfSkpKTtcbn07XG5jb25zdCByZXNvbHZlRm9vdGVyTm9kZSA9ICh7IGZvb3Rlciwgc2l6ZSwgY2FuY2VsQnV0dG9uLCBva0J1dHRvbiwgfSkgPT4ge1xuICAgIGlmIChmb290ZXIgPT09IG51bGwpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2YgZm9vdGVyID09PSAnZnVuY3Rpb24nKVxuICAgICAgICByZXR1cm4gZm9vdGVyKGNhbmNlbEJ1dHRvbiwgb2tCdXR0b24pO1xuICAgIGlmIChmb290ZXIgIT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIGZvb3RlcjtcbiAgICBpZiAoIWNhbmNlbEJ1dHRvbiAmJiAhb2tCdXR0b24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiBzaXplID09PSBESUFMT0dfU0laRS5sYXJnZVxuICAgICAgICA/IChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtjYW5jZWxCdXR0b24sIG9rQnV0dG9uXSB9KSlcbiAgICAgICAgOiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbb2tCdXR0b24sIGNhbmNlbEJ1dHRvbl0gfSkpO1xufTtcbmNvbnN0IERpYWxvZ0Jhc2UgPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIHN0eWxlLCBwcmVmaXhDbHMgPSBESUFMT0dfREVGQVVMVF9QUkVGSVgsIG9wZW4gPSBmYWxzZSwgc2l6ZSA9IERJQUxPR19TSVpFLnNtYWxsLCBtYXNrQ2xvc2FibGUgPSB0cnVlLCBzaG93Q2xvc2VJY29uID0gdHJ1ZSwgc2hvd0JhY2tJY29uID0gZmFsc2UsIGZ1bGxXaWR0aCA9IGZhbHNlLCBmaXhlZCA9IGZhbHNlLCB0aXRsZSwgY2hpbGRyZW4sIGlsbHVzdHJhdGlvbiwgbWVkaWEsIGNsb3NlSWNvbiwgYmFja0ljb24sIGZvb3Rlciwgb25Paywgb25DYW5jZWwsIG9uQmFjaywgb2tUZXh0ID0gRElBTE9HX0RFRkFVTFRTLm9rVGV4dCwgY2FuY2VsVGV4dCA9IERJQUxPR19ERUZBVUxUUy5jYW5jZWxUZXh0LCByb290U3R5bGUsIHdyYXBwZXJTdHlsZSwgYm9keVN0eWxlLCBoZWFkZXJTdHlsZSwgY29udGVudFN0eWxlLCBmb290ZXJTdHlsZSwgY2FuY2VsQnV0dG9uUHJvcHMsIG9rQnV0dG9uUHJvcHMgfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjbGFzc05hbWVcIiwgXCJzdHlsZVwiLCBcInByZWZpeENsc1wiLCBcIm9wZW5cIiwgXCJzaXplXCIsIFwibWFza0Nsb3NhYmxlXCIsIFwic2hvd0Nsb3NlSWNvblwiLCBcInNob3dCYWNrSWNvblwiLCBcImZ1bGxXaWR0aFwiLCBcImZpeGVkXCIsIFwidGl0bGVcIiwgXCJjaGlsZHJlblwiLCBcImlsbHVzdHJhdGlvblwiLCBcIm1lZGlhXCIsIFwiY2xvc2VJY29uXCIsIFwiYmFja0ljb25cIiwgXCJmb290ZXJcIiwgXCJvbk9rXCIsIFwib25DYW5jZWxcIiwgXCJvbkJhY2tcIiwgXCJva1RleHRcIiwgXCJjYW5jZWxUZXh0XCIsIFwicm9vdFN0eWxlXCIsIFwid3JhcHBlclN0eWxlXCIsIFwiYm9keVN0eWxlXCIsIFwiaGVhZGVyU3R5bGVcIiwgXCJjb250ZW50U3R5bGVcIiwgXCJmb290ZXJTdHlsZVwiLCBcImNhbmNlbEJ1dHRvblByb3BzXCIsIFwib2tCdXR0b25Qcm9wc1wiXSk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRpdGxlSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGhhbmRsZVNldERpYWxvZ1JlZiA9IHVzZUNhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIGRpYWxvZ1JlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgZmlsbFJlZihyZWYsIG5vZGUpO1xuICAgIH0sIFtyZWZdKTtcbiAgICBjb25zdCBoYW5kbGVDYW5jZWwgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdm9pZCAob25DYW5jZWwgPT09IG51bGwgfHwgb25DYW5jZWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2FuY2VsKCkpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU9rID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uT2sgPT09IG51bGwgfHwgb25PayA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PaygpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCYWNrID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uQmFjayA9PT0gbnVsbCB8fCBvbkJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmFjaygpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPdmVybGF5Q2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKCFtYXNrQ2xvc2FibGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGhhbmRsZUNhbmNlbCgpO1xuICAgIH0pO1xuICAgIHVzZUJvZHlTY3JvbGxMb2NrKG9wZW4pO1xuICAgIHVzZURpYWxvZ0ZvY3VzKG9wZW4sIGRpYWxvZ1JlZik7XG4gICAgdXNlRXNjYXBlQ2xvc2Uob3BlbiwgaGFuZGxlQ2FuY2VsKTtcbiAgICBjb25zdCBoYXNNZWRpYSA9IG1lZGlhICE9IG51bGw7XG4gICAgY29uc3QgY2xvc2VDb250cm9sTm9kZSA9IHNob3dDbG9zZUljb25cbiAgICAgICAgPyByZW5kZXJDb250cm9sQnV0dG9uKHByZWZpeENscywgRElBTE9HX0NPTlRST0xfVFlQRS5jbG9zZSwgY2xvc2VJY29uICE9PSBudWxsICYmIGNsb3NlSWNvbiAhPT0gdm9pZCAwID8gY2xvc2VJY29uIDogKF9qc3goSWNvbnMsIHsgbmFtZTogRElBTE9HX0RFRkFVTFRfSUNPTlNbRElBTE9HX0NPTlRST0xfVFlQRS5jbG9zZV0sIHNpemU6IERJQUxPR19ERUZBVUxUUy5jb250cm9sSWNvblNpemUgfSkpLCBoYW5kbGVDYW5jZWwpXG4gICAgICAgIDogbnVsbDtcbiAgICBjb25zdCBiYWNrQ29udHJvbE5vZGUgPSBzaG93QmFja0ljb25cbiAgICAgICAgPyByZW5kZXJDb250cm9sQnV0dG9uKHByZWZpeENscywgRElBTE9HX0NPTlRST0xfVFlQRS5iYWNrLCBiYWNrSWNvbiAhPT0gbnVsbCAmJiBiYWNrSWNvbiAhPT0gdm9pZCAwID8gYmFja0ljb24gOiAoX2pzeChJY29ucywgeyBuYW1lOiBESUFMT0dfREVGQVVMVF9JQ09OU1tESUFMT0dfQ09OVFJPTF9UWVBFLmJhY2tdLCBzaXplOiBESUFMT0dfREVGQVVMVFMuY29udHJvbEljb25TaXplIH0pKSwgaGFuZGxlQmFjaylcbiAgICAgICAgOiBudWxsO1xuICAgIGNvbnN0IGlsbHVzdHJhdGlvbk5vZGUgPSByZW5kZXJJbGx1c3RyYXRpb25Ob2RlKGlsbHVzdHJhdGlvbik7XG4gICAgY29uc3QgdGl0bGVOb2RlID0gcmVuZGVyVHlwb2dyYXBoeU5vZGUodGl0bGUsICh2YWx1ZSkgPT4gKF9qc3goVHlwb2dyYXBoeUhlYWRsaW5lLCB7IHNpemU6IFwibWRcIiwgYXM6IFwiaDJcIiwgY29sb3I6IFwiZGVmYXVsdFwiLCBjaGlsZHJlbjogdmFsdWUgfSkpKTtcbiAgICBjb25zdCBjaGlsZHJlbk5vZGUgPSByZW5kZXJUeXBvZ3JhcGh5Tm9kZShjaGlsZHJlbiwgKHZhbHVlKSA9PiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBcIm1kXCIsIGFzOiBcInBcIiwgc3Ryb25nOiB0cnVlLCBjb2xvcjogXCJkZWZhdWx0LXNlY29uZGFyeVwiLCBjaGlsZHJlbjogdmFsdWUgfSkpKTtcbiAgICBjb25zdCBjYW5jZWxCdXR0b24gPSByZW5kZXJBY3Rpb25CdXR0b24oe1xuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIGtpbmQ6IERJQUxPR19BQ1RJT05fS0lORC5jYW5jZWwsXG4gICAgICAgIHRleHQ6IGNhbmNlbFRleHQsXG4gICAgICAgIGFjdGlvbjogb25DYW5jZWwsXG4gICAgICAgIGJ1dHRvblByb3BzOiBjYW5jZWxCdXR0b25Qcm9wcyxcbiAgICB9KTtcbiAgICBjb25zdCBva0J1dHRvbiA9IHJlbmRlckFjdGlvbkJ1dHRvbih7XG4gICAgICAgIHByZWZpeENscyxcbiAgICAgICAga2luZDogRElBTE9HX0FDVElPTl9LSU5ELm9rLFxuICAgICAgICB0ZXh0OiBva1RleHQsXG4gICAgICAgIGFjdGlvbjogb25PayxcbiAgICAgICAgYnV0dG9uUHJvcHM6IG9rQnV0dG9uUHJvcHMsXG4gICAgfSk7XG4gICAgY29uc3QgZm9vdGVyTm9kZSA9IHJlc29sdmVGb290ZXJOb2RlKHtcbiAgICAgICAgZm9vdGVyLFxuICAgICAgICBzaXplLFxuICAgICAgICBjYW5jZWxCdXR0b24sXG4gICAgICAgIG9rQnV0dG9uLFxuICAgIH0pO1xuICAgIGlmICghb3BlbilcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIChfanN4KFBvcnRhbCwgeyBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgeyBzdHlsZTogcm9vdFN0eWxlLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULnJvb3QpLCBjaGlsZHJlbjogW19qc3goXCJkaXZcIiwgeyBcImFyaWEtaGlkZGVuXCI6IFwidHJ1ZVwiLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULm92ZXJsYXkpLCBvbkNsaWNrOiBoYW5kbGVPdmVybGF5Q2xpY2sgfSksIF9qc3goXCJkaXZcIiwgeyBzdHlsZTogd3JhcHBlclN0eWxlLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULndyYXBwZXIpLCBjaGlsZHJlbjogX2pzeHMoXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyByZWY6IGhhbmRsZVNldERpYWxvZ1JlZiwgcm9sZTogXCJkaWFsb2dcIiwgXCJhcmlhLW1vZGFsXCI6IFwidHJ1ZVwiLCBcImFyaWEtbGFiZWxsZWRieVwiOiB0aXRsZSA/IHRpdGxlSWQgOiB1bmRlZmluZWQsIHRhYkluZGV4OiAtMSwgc3R5bGU6IHN0eWxlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscyksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIHVuZGVmaW5lZCwgc2l6ZSksIGZ1bGxXaWR0aCAmJiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIERJQUxPR19NT0RJRklFUi5mdWxsV2lkdGgpLCBmaXhlZCAmJiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIERJQUxPR19NT0RJRklFUi5maXhlZCksIGhhc01lZGlhICYmIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIHVuZGVmaW5lZCwgRElBTE9HX01PRElGSUVSLndpdGhNZWRpYSksIGNsYXNzTmFtZSksIGNoaWxkcmVuOiBbY2xvc2VDb250cm9sTm9kZSwgaGFzTWVkaWEgJiYgX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QubWVkaWEpLCBjaGlsZHJlbjogbWVkaWEgfSksIF9qc3hzKFwiZGl2XCIsIHsgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5pbm5lciksIGNoaWxkcmVuOiBbKGJhY2tDb250cm9sTm9kZSB8fCAoZml4ZWQgJiYgKGlsbHVzdHJhdGlvbk5vZGUgfHwgdGl0bGVOb2RlKSkpICYmIChfanN4cyhcImRpdlwiLCB7IHN0eWxlOiBoZWFkZXJTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5oZWFkZXIpLCBjaGlsZHJlbjogW2JhY2tDb250cm9sTm9kZSwgZml4ZWQgJiYgaWxsdXN0cmF0aW9uTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaWxsdXN0cmF0aW9uKSwgY2hpbGRyZW46IGlsbHVzdHJhdGlvbk5vZGUgfSkpLCBmaXhlZCAmJiB0aXRsZU5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBpZDogdGl0bGVJZCwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC50aXRsZSksIGNoaWxkcmVuOiB0aXRsZU5vZGUgfSkpXSB9KSksIF9qc3hzKFwiZGl2XCIsIHsgc3R5bGU6IGJvZHlTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5ib2R5KSwgY2hpbGRyZW46IFshZml4ZWQgJiYgaWxsdXN0cmF0aW9uTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaWxsdXN0cmF0aW9uKSwgY2hpbGRyZW46IGlsbHVzdHJhdGlvbk5vZGUgfSkpLCAhZml4ZWQgJiYgdGl0bGVOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgaWQ6IHRpdGxlSWQsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QudGl0bGUpLCBjaGlsZHJlbjogdGl0bGVOb2RlIH0pKSwgY2hpbGRyZW5Ob2RlICYmIChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGNvbnRlbnRTdHlsZSwgY2xhc3NOYW1lOiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5jb250ZW50KSwgY2hpbGRyZW46IGNoaWxkcmVuTm9kZSB9KSldIH0pLCBmb290ZXJOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgc3R5bGU6IGZvb3RlclN0eWxlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuZm9vdGVyKSwgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuZm9vdGVyLCBzaXplKSksIGNoaWxkcmVuOiBmb290ZXJOb2RlIH0pKV0gfSldIH0pKSB9KV0gfSkgfSkpO1xufSk7XG5EaWFsb2dCYXNlLmRpc3BsYXlOYW1lID0gJ0RpYWxvZyc7XG5leHBvcnQgY29uc3QgRGlhbG9nID0gbWVtbyhEaWFsb2dCYXNlKTtcbkRpYWxvZy5kaXNwbGF5TmFtZSA9ICdEaWFsb2cnO1xuZXhwb3J0IGRlZmF1bHQgRGlhbG9nOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
346
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy5qcyIsImNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvRGlhbG9nL0RpYWxvZy50c3giXSwibmFtZXMiOlsiX19yZXN0IiwicyIsImUiLCJ0IiwicCIsIk9iamVjdCIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImluZGV4T2YiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJpIiwibGVuZ3RoIiwicHJvcGVydHlJc0VudW1lcmFibGUiLCJqc3giLCJfanN4IiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJqc3hzIiwiX2pzeHMiLCJ1c2VFdmVudENhbGxiYWNrIiwiY2xhc3NOYW1lcyIsImZvcndhcmRSZWYiLCJpc1ZhbGlkRWxlbWVudCIsIm1lbW8iLCJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZUlkIiwidXNlUmVmIiwiQnV0dG9uIiwiSWNvbnMiLCJQb3J0YWwiLCJUeXBvZ3JhcGh5Qm9keSIsIlR5cG9ncmFwaHlIZWFkbGluZSIsImZpbGxSZWYiLCJESUFMT0dfQUNUSU9OX0tJTkQiLCJESUFMT0dfQ09OVFJPTF9MQUJFTFMiLCJESUFMT0dfQ09OVFJPTF9UWVBFIiwiRElBTE9HX0RFRkFVTFRfQlVUVE9OX0NPTE9SUyIsIkRJQUxPR19ERUZBVUxUX0lDT05TIiwiRElBTE9HX0RFRkFVTFRfUFJFRklYIiwiRElBTE9HX0RFRkFVTFRTIiwiRElBTE9HX01PRElGSUVSIiwiRElBTE9HX05BTUVTUEFDRSIsIkRJQUxPR19TSVpFIiwiRElBTE9HX1NMT1QiLCJzY3JvbGxMb2NrQ291bnQiLCJnZXRDbGFzc05hbWUiLCJwcmVmaXhDbHMiLCJzbG90IiwibW9kaWZpZXIiLCJiYXNlQ2xhc3NOYW1lIiwiY29uY2F0Iiwic2V0Qm9keU92ZXJmbG93IiwidmFsdWUiLCJkb2N1bWVudCIsImJvZHkiLCJzdHlsZSIsIm92ZXJmbG93IiwibG9ja0JvZHlTY3JvbGwiLCJvdmVyZmxvd0hpZGRlbiIsInVubG9ja0JvZHlTY3JvbGwiLCJNYXRoIiwibWF4IiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwib3ZlcmZsb3dSZXNldCIsInVzZUJvZHlTY3JvbGxMb2NrIiwibG9ja2VkIiwiaXNMb2NrZWRSZWYiLCJjdXJyZW50IiwidW5kZWZpbmVkIiwidXNlRGlhbG9nRm9jdXMiLCJhY3RpdmUiLCJkaWFsb2dSZWYiLCJwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYiLCJhY3RpdmVFbGVtZW50IiwiSFRNTEVsZW1lbnQiLCJmcmFtZSIsIndpbmRvdyIsIl9hIiwiZm9jdXMiLCJjYW5jZWxBbmltYXRpb25GcmFtZSIsIl9iIiwidXNlRXNjYXBlQ2xvc2UiLCJlbmFibGVkIiwib25DbG9zZSIsImhhbmRsZUtleURvd24iLCJldmVudCIsImtleSIsImVzY2FwZUtleSIsInByZXZlbnREZWZhdWx0IiwiYWRkRXZlbnRMaXN0ZW5lciIsImtleWRvd25FdmVudCIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJyZW5kZXJUeXBvZ3JhcGh5Tm9kZSIsIm5vZGUiLCJyZW5kZXJUZXh0IiwicmVuZGVySWxsdXN0cmF0aW9uTm9kZSIsImlsbHVzdHJhdGlvbiIsIm5hbWUiLCJzaXplIiwiaWxsdXN0cmF0aW9uU2l6ZSIsInRvVm9pZEhhbmRsZXIiLCJhY3Rpb24iLCJjcmVhdGVBY3Rpb25IYW5kbGVyIiwiYnV0dG9uQ2xpY2siLCJkZWZhdWx0UHJldmVudGVkIiwicmVuZGVyQ29udHJvbEJ1dHRvbiIsInR5cGUiLCJpY29uTm9kZSIsIm9uQ2xpY2siLCJidXR0b25IdG1sVHlwZSIsImNsYXNzTmFtZSIsImNvbnRyb2wiLCJjaGlsZHJlbiIsInJlbmRlckFjdGlvbkJ1dHRvbiIsIl9yZWYiLCJraW5kIiwidGV4dCIsImJ1dHRvblByb3BzIiwiYXNzaWduIiwiYnV0dG9uU2l6ZSIsImNvbG9yIiwiYWN0aW9uQnV0dG9uIiwicmVzb2x2ZUZvb3Rlck5vZGUiLCJfcmVmMiIsImZvb3RlciIsImNhbmNlbEJ1dHRvbiIsIm9rQnV0dG9uIiwibGFyZ2UiLCJEaWFsb2dCYXNlIiwicHJvcHMiLCJyZWYiLCJfcHJvcHMkcHJlZml4Q2xzIiwiX3Byb3BzJG9wZW4iLCJvcGVuIiwiX3Byb3BzJHNpemUiLCJzbWFsbCIsIl9wcm9wcyRtYXNrQ2xvc2FibGUiLCJtYXNrQ2xvc2FibGUiLCJfcHJvcHMkc2hvd0Nsb3NlSWNvbiIsInNob3dDbG9zZUljb24iLCJfcHJvcHMkc2hvd0JhY2tJY29uIiwic2hvd0JhY2tJY29uIiwiX3Byb3BzJGZ1bGxXaWR0aCIsImZ1bGxXaWR0aCIsIl9wcm9wcyRmaXhlZCIsImZpeGVkIiwid2lkdGgiLCJ0aXRsZSIsIm1lZGlhIiwiY2xvc2VJY29uIiwiYmFja0ljb24iLCJvbk9rIiwib25DYW5jZWwiLCJvbkJhY2siLCJfcHJvcHMkb2tUZXh0Iiwib2tUZXh0IiwiX3Byb3BzJGNhbmNlbFRleHQiLCJjYW5jZWxUZXh0Iiwicm9vdFN0eWxlIiwid3JhcHBlclN0eWxlIiwiYm9keVN0eWxlIiwiaGVhZGVyU3R5bGUiLCJjb250ZW50U3R5bGUiLCJmb290ZXJTdHlsZSIsImNhbmNlbEJ1dHRvblByb3BzIiwib2tCdXR0b25Qcm9wcyIsInJlc3QiLCJ0aXRsZUlkIiwiaGFuZGxlU2V0RGlhbG9nUmVmIiwiaGFuZGxlQ2FuY2VsIiwiaGFuZGxlT2siLCJoYW5kbGVCYWNrIiwiaGFuZGxlT3ZlcmxheUNsaWNrIiwiaGFzTWVkaWEiLCJjbG9zZUNvbnRyb2xOb2RlIiwiY2xvc2UiLCJjb250cm9sSWNvblNpemUiLCJiYWNrQ29udHJvbE5vZGUiLCJiYWNrIiwiaWxsdXN0cmF0aW9uTm9kZSIsInRpdGxlTm9kZSIsImFzIiwiY2hpbGRyZW5Ob2RlIiwic3Ryb25nIiwiY2FuY2VsIiwib2siLCJmb290ZXJOb2RlIiwicGFuZWxTdHlsZSIsInJvb3QiLCJvdmVybGF5Iiwid3JhcHBlciIsInJvbGUiLCJ0YWJJbmRleCIsIndpdGhNZWRpYSIsImlubmVyIiwiaGVhZGVyIiwiaWQiLCJjb250ZW50IiwiZGlzcGxheU5hbWUiLCJE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cyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4LCBGcmFnbWVudCBhcyBfRnJhZ21lbnQsIGpzeHMgYXMgX2pzeHMgfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB1c2VFdmVudENhbGxiYWNrIGZyb20gJ0AxbW9uZXkvaG9va3MvdXNlRXZlbnRDYWxsYmFjayc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCB7IGZvcndhcmRSZWYsIGlzVmFsaWRFbGVtZW50LCBtZW1vLCB1c2VDYWxsYmFjaywgdXNlRWZmZWN0LCB1c2VJZCwgdXNlUmVmLCB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJy4uL0J1dHRvbic7XG5pbXBvcnQgeyBJY29ucyB9IGZyb20gJy4uL0ljb25zJztcbmltcG9ydCB7IFBvcnRhbCB9IGZyb20gJy4uL1BvcnRhbCc7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5Qm9keSwgVHlwb2dyYXBoeUhlYWRsaW5lIH0gZnJvbSAnLi4vVHlwb2dyYXBoeSc7XG5pbXBvcnQgeyBmaWxsUmVmIH0gZnJvbSAnLi4vLi4vdXRpbHMvcmVmJztcbmltcG9ydCB7IERJQUxPR19BQ1RJT05fS0lORCwgRElBTE9HX0NPTlRST0xfTEFCRUxTLCBESUFMT0dfQ09OVFJPTF9UWVBFLCBESUFMT0dfREVGQVVMVF9CVVRUT05fQ09MT1JTLCBESUFMT0dfREVGQVVMVF9JQ09OUywgRElBTE9HX0RFRkFVTFRfUFJFRklYLCBESUFMT0dfREVGQVVMVFMsIERJQUxPR19NT0RJRklFUiwgRElBTE9HX05BTUVTUEFDRSwgRElBTE9HX1NJWkUsIERJQUxPR19TTE9ULCB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCAnLi9zdHlsZSc7XG5sZXQgc2Nyb2xsTG9ja0NvdW50ID0gMDtcbmNvbnN0IGdldENsYXNzTmFtZSA9IChwcmVmaXhDbHMsIHNsb3QsIG1vZGlmaWVyKSA9PiB7XG4gICAgY29uc3QgYmFzZUNsYXNzTmFtZSA9IGAke0RJQUxPR19OQU1FU1BBQ0V9LSR7cHJlZml4Q2xzfSR7c2xvdCA/IGAtJHtzbG90fWAgOiAnJ31gO1xuICAgIHJldHVybiBtb2RpZmllciA/IGAke2Jhc2VDbGFzc05hbWV9LSR7bW9kaWZpZXJ9YCA6IGJhc2VDbGFzc05hbWU7XG59O1xuY29uc3Qgc2V0Qm9keU92ZXJmbG93ID0gKHZhbHVlKSA9PiB7XG4gICAgaWYgKHR5cGVvZiBkb2N1bWVudCA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICAgIHJldHVybjtcbiAgICBkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93ID0gdmFsdWU7XG59O1xuY29uc3QgbG9ja0JvZHlTY3JvbGwgPSAoKSA9PiB7XG4gICAgc2Nyb2xsTG9ja0NvdW50ICs9IDE7XG4gICAgc2V0Qm9keU92ZXJmbG93KERJQUxPR19ERUZBVUxUUy5vdmVyZmxvd0hpZGRlbik7XG59O1xuY29uc3QgdW5sb2NrQm9keVNjcm9sbCA9ICgpID0+IHtcbiAgICBzY3JvbGxMb2NrQ291bnQgPSBNYXRoLm1heCgwLCBzY3JvbGxMb2NrQ291bnQgLSAxKTtcbiAgICBpZiAoc2Nyb2xsTG9ja0NvdW50ID09PSAwKSB7XG4gICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICBpZiAoc2Nyb2xsTG9ja0NvdW50ID09PSAwKSB7XG4gICAgICAgICAgICAgICAgc2V0Qm9keU92ZXJmbG93KERJQUxPR19ERUZBVUxUUy5vdmVyZmxvd1Jlc2V0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxufTtcbmNvbnN0IHVzZUJvZHlTY3JvbGxMb2NrID0gKGxvY2tlZCkgPT4ge1xuICAgIGNvbnN0IGlzTG9ja2VkUmVmID0gdXNlUmVmKGZhbHNlKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWxvY2tlZCB8fCBpc0xvY2tlZFJlZi5jdXJyZW50KVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgaXNMb2NrZWRSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIGxvY2tCb2R5U2Nyb2xsKCk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoIWlzTG9ja2VkUmVmLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgaXNMb2NrZWRSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgdW5sb2NrQm9keVNjcm9sbCgpO1xuICAgICAgICB9O1xuICAgIH0sIFtsb2NrZWRdKTtcbn07XG5jb25zdCB1c2VEaWFsb2dGb2N1cyA9IChhY3RpdmUsIGRpYWxvZ1JlZikgPT4ge1xuICAgIGNvbnN0IHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWFjdGl2ZSB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgcHJldmlvdXNBY3RpdmVFbGVtZW50UmVmLmN1cnJlbnQgPVxuICAgICAgICAgICAgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50ID8gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCA6IG51bGw7XG4gICAgICAgIGNvbnN0IGZyYW1lID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICB2YXIgX2E7XG4gICAgICAgICAgICAoX2EgPSBkaWFsb2dSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKGZyYW1lKTtcbiAgICAgICAgfTtcbiAgICB9LCBbYWN0aXZlLCBkaWFsb2dSZWZdKTtcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2YXIgX2EsIF9iO1xuICAgICAgICBpZiAoYWN0aXZlKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAoX2IgPSAoX2EgPSBwcmV2aW91c0FjdGl2ZUVsZW1lbnRSZWYuY3VycmVudCkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmZvY3VzKSA9PT0gbnVsbCB8fCBfYiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2IuY2FsbChfYSk7XG4gICAgICAgIHByZXZpb3VzQWN0aXZlRWxlbWVudFJlZi5jdXJyZW50ID0gbnVsbDtcbiAgICB9LCBbYWN0aXZlXSk7XG59O1xuY29uc3QgdXNlRXNjYXBlQ2xvc2UgPSAoZW5hYmxlZCwgb25DbG9zZSkgPT4ge1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmICghZW5hYmxlZCB8fCB0eXBlb2YgZG9jdW1lbnQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgICAgY29uc3QgaGFuZGxlS2V5RG93biA9IChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gRElBTE9HX0RFRkFVTFRTLmVzY2FwZUtleSlcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgdm9pZCAob25DbG9zZSA9PT0gbnVsbCB8fCBvbkNsb3NlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBvbkNsb3NlKCkpO1xuICAgICAgICB9O1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKERJQUxPR19ERUZBVUxUUy5rZXlkb3duRXZlbnQsIGhhbmRsZUtleURvd24pO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihESUFMT0dfREVGQVVMVFMua2V5ZG93bkV2ZW50LCBoYW5kbGVLZXlEb3duKTtcbiAgICAgICAgfTtcbiAgICB9LCBbZW5hYmxlZCwgb25DbG9zZV0pO1xufTtcbmNvbnN0IHJlbmRlclR5cG9ncmFwaHlOb2RlID0gKG5vZGUsIHJlbmRlclRleHQpID0+IHtcbiAgICBpZiAobm9kZSA9PSBudWxsIHx8IHR5cGVvZiBub2RlID09PSAnYm9vbGVhbicpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG5vZGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHJldHVybiByZW5kZXJUZXh0KG5vZGUpO1xuICAgIH1cbiAgICByZXR1cm4gbm9kZTtcbn07XG5jb25zdCByZW5kZXJJbGx1c3RyYXRpb25Ob2RlID0gKGlsbHVzdHJhdGlvbikgPT4ge1xuICAgIGlmICghaWxsdXN0cmF0aW9uKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICBpZiAodHlwZW9mIGlsbHVzdHJhdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIF9qc3goSWNvbnMsIHsgbmFtZTogaWxsdXN0cmF0aW9uLCBzaXplOiBESUFMT0dfREVGQVVMVFMuaWxsdXN0cmF0aW9uU2l6ZSB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGlzVmFsaWRFbGVtZW50KGlsbHVzdHJhdGlvbikgPyBpbGx1c3RyYXRpb24gOiBudWxsO1xufTtcbmNvbnN0IHRvVm9pZEhhbmRsZXIgPSAoYWN0aW9uKSA9PiAoKSA9PiB7XG4gICAgdm9pZCAoYWN0aW9uID09PSBudWxsIHx8IGFjdGlvbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogYWN0aW9uKCkpO1xufTtcbmNvbnN0IGNyZWF0ZUFjdGlvbkhhbmRsZXIgPSAoYWN0aW9uLCBidXR0b25DbGljaykgPT4gKGV2ZW50KSA9PiB7XG4gICAgYnV0dG9uQ2xpY2sgPT09IG51bGwgfHwgYnV0dG9uQ2xpY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJ1dHRvbkNsaWNrKGV2ZW50KTtcbiAgICBpZiAoZXZlbnQuZGVmYXVsdFByZXZlbnRlZCB8fCAhYWN0aW9uKVxuICAgICAgICByZXR1cm47XG4gICAgdm9pZCBhY3Rpb24oKTtcbn07XG5jb25zdCByZW5kZXJDb250cm9sQnV0dG9uID0gKHByZWZpeENscywgdHlwZSwgaWNvbk5vZGUsIG9uQ2xpY2spID0+IChfanN4KFwiYnV0dG9uXCIsIHsgdHlwZTogRElBTE9HX0RFRkFVTFRTLmJ1dHRvbkh0bWxUeXBlLCBjbGFzc05hbWU6IGNsYXNzTmFtZXMoZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuY29udHJvbCksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmNvbnRyb2wsIHR5cGUpKSwgXCJhcmlhLWxhYmVsXCI6IERJQUxPR19DT05UUk9MX0xBQkVMU1t0eXBlXSwgb25DbGljazogdG9Wb2lkSGFuZGxlcihvbkNsaWNrKSwgY2hpbGRyZW46IGljb25Ob2RlIH0pKTtcbmNvbnN0IHJlbmRlckFjdGlvbkJ1dHRvbiA9ICh7IHByZWZpeENscywga2luZCwgdGV4dCwgYWN0aW9uLCBidXR0b25Qcm9wcywgfSkgPT4ge1xuICAgIHZhciBfYTtcbiAgICBpZiAodGV4dCA9PSBudWxsIHx8ICFhY3Rpb24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiAoX2pzeChCdXR0b24sIE9iamVjdC5hc3NpZ24oe30sIGJ1dHRvblByb3BzLCB7IHR5cGU6IERJQUxPR19ERUZBVUxUUy5idXR0b25IdG1sVHlwZSwgc2l6ZTogRElBTE9HX0RFRkFVTFRTLmJ1dHRvblNpemUsIGNvbG9yOiAoX2EgPSBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuY29sb3IpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IERJQUxPR19ERUZBVUxUX0JVVFRPTl9DT0xPUlNba2luZF0sIGNsYXNzTmFtZTogY2xhc3NOYW1lcyhnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5hY3Rpb25CdXR0b24pLCBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCBESUFMT0dfU0xPVC5hY3Rpb25CdXR0b24sIGtpbmQpLCBidXR0b25Qcm9wcyA9PT0gbnVsbCB8fCBidXR0b25Qcm9wcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogYnV0dG9uUHJvcHMuY2xhc3NOYW1lKSwgc3R5bGU6IGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5zdHlsZSwgb25DbGljazogY3JlYXRlQWN0aW9uSGFuZGxlcihhY3Rpb24sIGJ1dHRvblByb3BzID09PSBudWxsIHx8IGJ1dHRvblByb3BzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBidXR0b25Qcm9wcy5vbkNsaWNrKSwgY2hpbGRyZW46IHRleHQgfSkpKTtcbn07XG5jb25zdCByZXNvbHZlRm9vdGVyTm9kZSA9ICh7IGZvb3Rlciwgc2l6ZSwgY2FuY2VsQnV0dG9uLCBva0J1dHRvbiwgfSkgPT4ge1xuICAgIGlmIChmb290ZXIgPT09IG51bGwpXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIGlmICh0eXBlb2YgZm9vdGVyID09PSAnZnVuY3Rpb24nKVxuICAgICAgICByZXR1cm4gZm9vdGVyKGNhbmNlbEJ1dHRvbiwgb2tCdXR0b24pO1xuICAgIGlmIChmb290ZXIgIT09IHVuZGVmaW5lZClcbiAgICAgICAgcmV0dXJuIGZvb3RlcjtcbiAgICBpZiAoIWNhbmNlbEJ1dHRvbiAmJiAhb2tCdXR0b24pXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIHJldHVybiBzaXplID09PSBESUFMT0dfU0laRS5sYXJnZVxuICAgICAgICA/IChfanN4cyhfRnJhZ21lbnQsIHsgY2hpbGRyZW46IFtjYW5jZWxCdXR0b24sIG9rQnV0dG9uXSB9KSlcbiAgICAgICAgOiAoX2pzeHMoX0ZyYWdtZW50LCB7IGNoaWxkcmVuOiBbb2tCdXR0b24sIGNhbmNlbEJ1dHRvbl0gfSkpO1xufTtcbmNvbnN0IERpYWxvZ0Jhc2UgPSBmb3J3YXJkUmVmKChwcm9wcywgcmVmKSA9PiB7XG4gICAgY29uc3QgeyBjbGFzc05hbWUsIHN0eWxlLCBwcmVmaXhDbHMgPSBESUFMT0dfREVGQVVMVF9QUkVGSVgsIG9wZW4gPSBmYWxzZSwgc2l6ZSA9IERJQUxPR19TSVpFLnNtYWxsLCBtYXNrQ2xvc2FibGUgPSB0cnVlLCBzaG93Q2xvc2VJY29uID0gdHJ1ZSwgc2hvd0JhY2tJY29uID0gZmFsc2UsIGZ1bGxXaWR0aCA9IGZhbHNlLCBmaXhlZCA9IGZhbHNlLCB3aWR0aCwgdGl0bGUsIGNoaWxkcmVuLCBpbGx1c3RyYXRpb24sIG1lZGlhLCBjbG9zZUljb24sIGJhY2tJY29uLCBmb290ZXIsIG9uT2ssIG9uQ2FuY2VsLCBvbkJhY2ssIG9rVGV4dCA9IERJQUxPR19ERUZBVUxUUy5va1RleHQsIGNhbmNlbFRleHQgPSBESUFMT0dfREVGQVVMVFMuY2FuY2VsVGV4dCwgcm9vdFN0eWxlLCB3cmFwcGVyU3R5bGUsIGJvZHlTdHlsZSwgaGVhZGVyU3R5bGUsIGNvbnRlbnRTdHlsZSwgZm9vdGVyU3R5bGUsIGNhbmNlbEJ1dHRvblByb3BzLCBva0J1dHRvblByb3BzIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2xhc3NOYW1lXCIsIFwic3R5bGVcIiwgXCJwcmVmaXhDbHNcIiwgXCJvcGVuXCIsIFwic2l6ZVwiLCBcIm1hc2tDbG9zYWJsZVwiLCBcInNob3dDbG9zZUljb25cIiwgXCJzaG93QmFja0ljb25cIiwgXCJmdWxsV2lkdGhcIiwgXCJmaXhlZFwiLCBcIndpZHRoXCIsIFwidGl0bGVcIiwgXCJjaGlsZHJlblwiLCBcImlsbHVzdHJhdGlvblwiLCBcIm1lZGlhXCIsIFwiY2xvc2VJY29uXCIsIFwiYmFja0ljb25cIiwgXCJmb290ZXJcIiwgXCJvbk9rXCIsIFwib25DYW5jZWxcIiwgXCJvbkJhY2tcIiwgXCJva1RleHRcIiwgXCJjYW5jZWxUZXh0XCIsIFwicm9vdFN0eWxlXCIsIFwid3JhcHBlclN0eWxlXCIsIFwiYm9keVN0eWxlXCIsIFwiaGVhZGVyU3R5bGVcIiwgXCJjb250ZW50U3R5bGVcIiwgXCJmb290ZXJTdHlsZVwiLCBcImNhbmNlbEJ1dHRvblByb3BzXCIsIFwib2tCdXR0b25Qcm9wc1wiXSk7XG4gICAgY29uc3QgZGlhbG9nUmVmID0gdXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IHRpdGxlSWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IGhhbmRsZVNldERpYWxvZ1JlZiA9IHVzZUNhbGxiYWNrKChub2RlKSA9PiB7XG4gICAgICAgIGRpYWxvZ1JlZi5jdXJyZW50ID0gbm9kZTtcbiAgICAgICAgZmlsbFJlZihyZWYsIG5vZGUpO1xuICAgIH0sIFtyZWZdKTtcbiAgICBjb25zdCBoYW5kbGVDYW5jZWwgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgdm9pZCAob25DYW5jZWwgPT09IG51bGwgfHwgb25DYW5jZWwgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQ2FuY2VsKCkpO1xuICAgIH0pO1xuICAgIGNvbnN0IGhhbmRsZU9rID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uT2sgPT09IG51bGwgfHwgb25PayA9PT0gdm9pZCAwID8gdm9pZCAwIDogb25PaygpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVCYWNrID0gdXNlRXZlbnRDYWxsYmFjaygoKSA9PiB7XG4gICAgICAgIHZvaWQgKG9uQmFjayA9PT0gbnVsbCB8fCBvbkJhY2sgPT09IHZvaWQgMCA/IHZvaWQgMCA6IG9uQmFjaygpKTtcbiAgICB9KTtcbiAgICBjb25zdCBoYW5kbGVPdmVybGF5Q2xpY2sgPSB1c2VFdmVudENhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgaWYgKCFtYXNrQ2xvc2FibGUpXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIGhhbmRsZUNhbmNlbCgpO1xuICAgIH0pO1xuICAgIHVzZUJvZHlTY3JvbGxMb2NrKG9wZW4pO1xuICAgIHVzZURpYWxvZ0ZvY3VzKG9wZW4sIGRpYWxvZ1JlZik7XG4gICAgdXNlRXNjYXBlQ2xvc2Uob3BlbiwgaGFuZGxlQ2FuY2VsKTtcbiAgICBjb25zdCBoYXNNZWRpYSA9IG1lZGlhICE9IG51bGw7XG4gICAgY29uc3QgY2xvc2VDb250cm9sTm9kZSA9IHNob3dDbG9zZUljb25cbiAgICAgICAgPyByZW5kZXJDb250cm9sQnV0dG9uKHByZWZpeENscywgRElBTE9HX0NPTlRST0xfVFlQRS5jbG9zZSwgY2xvc2VJY29uICE9PSBudWxsICYmIGNsb3NlSWNvbiAhPT0gdm9pZCAwID8gY2xvc2VJY29uIDogKF9qc3goSWNvbnMsIHsgbmFtZTogRElBTE9HX0RFRkFVTFRfSUNPTlNbRElBTE9HX0NPTlRST0xfVFlQRS5jbG9zZV0sIHNpemU6IERJQUxPR19ERUZBVUxUUy5jb250cm9sSWNvblNpemUgfSkpLCBoYW5kbGVDYW5jZWwpXG4gICAgICAgIDogbnVsbDtcbiAgICBjb25zdCBiYWNrQ29udHJvbE5vZGUgPSBzaG93QmFja0ljb25cbiAgICAgICAgPyByZW5kZXJDb250cm9sQnV0dG9uKHByZWZpeENscywgRElBTE9HX0NPTlRST0xfVFlQRS5iYWNrLCBiYWNrSWNvbiAhPT0gbnVsbCAmJiBiYWNrSWNvbiAhPT0gdm9pZCAwID8gYmFja0ljb24gOiAoX2pzeChJY29ucywgeyBuYW1lOiBESUFMT0dfREVGQVVMVF9JQ09OU1tESUFMT0dfQ09OVFJPTF9UWVBFLmJhY2tdLCBzaXplOiBESUFMT0dfREVGQVVMVFMuY29udHJvbEljb25TaXplIH0pKSwgaGFuZGxlQmFjaylcbiAgICAgICAgOiBudWxsO1xuICAgIGNvbnN0IGlsbHVzdHJhdGlvbk5vZGUgPSByZW5kZXJJbGx1c3RyYXRpb25Ob2RlKGlsbHVzdHJhdGlvbik7XG4gICAgY29uc3QgdGl0bGVOb2RlID0gcmVuZGVyVHlwb2dyYXBoeU5vZGUodGl0bGUsICh2YWx1ZSkgPT4gKF9qc3goVHlwb2dyYXBoeUhlYWRsaW5lLCB7IHNpemU6IFwibWRcIiwgYXM6IFwiaDJcIiwgY29sb3I6IFwiZGVmYXVsdFwiLCBjaGlsZHJlbjogdmFsdWUgfSkpKTtcbiAgICBjb25zdCBjaGlsZHJlbk5vZGUgPSByZW5kZXJUeXBvZ3JhcGh5Tm9kZShjaGlsZHJlbiwgKHZhbHVlKSA9PiAoX2pzeChUeXBvZ3JhcGh5Qm9keSwgeyBzaXplOiBcIm1kXCIsIGFzOiBcInBcIiwgc3Ryb25nOiB0cnVlLCBjb2xvcjogXCJkZWZhdWx0LXNlY29uZGFyeVwiLCBjaGlsZHJlbjogdmFsdWUgfSkpKTtcbiAgICBjb25zdCBjYW5jZWxCdXR0b24gPSByZW5kZXJBY3Rpb25CdXR0b24oe1xuICAgICAgICBwcmVmaXhDbHMsXG4gICAgICAgIGtpbmQ6IERJQUxPR19BQ1RJT05fS0lORC5jYW5jZWwsXG4gICAgICAgIHRleHQ6IGNhbmNlbFRleHQsXG4gICAgICAgIGFjdGlvbjogb25DYW5jZWwsXG4gICAgICAgIGJ1dHRvblByb3BzOiBjYW5jZWxCdXR0b25Qcm9wcyxcbiAgICB9KTtcbiAgICBjb25zdCBva0J1dHRvbiA9IHJlbmRlckFjdGlvbkJ1dHRvbih7XG4gICAgICAgIHByZWZpeENscyxcbiAgICAgICAga2luZDogRElBTE9HX0FDVElPTl9LSU5ELm9rLFxuICAgICAgICB0ZXh0OiBva1RleHQsXG4gICAgICAgIGFjdGlvbjogb25PayxcbiAgICAgICAgYnV0dG9uUHJvcHM6IG9rQnV0dG9uUHJvcHMsXG4gICAgfSk7XG4gICAgY29uc3QgZm9vdGVyTm9kZSA9IHJlc29sdmVGb290ZXJOb2RlKHtcbiAgICAgICAgZm9vdGVyLFxuICAgICAgICBzaXplLFxuICAgICAgICBjYW5jZWxCdXR0b24sXG4gICAgICAgIG9rQnV0dG9uLFxuICAgIH0pO1xuICAgIC8vIGB3aWR0aGAgaXMgYSBjb252ZW5pZW5jZSB0aGF0IHNldHMgdGhlIHBhbmVsJ3Mgd2lkdGggaW5saW5lLCBvdmVycmlkaW5nIHRoZVxuICAgIC8vIGBzaXplYCBwcmVzZXQncyBjbGFzcy1sZXZlbCB3aWR0aC4gQW4gZXhwbGljaXQgYHN0eWxlLndpZHRoYCBzdGlsbCB3aW5zIChpdCBpc1xuICAgIC8vIHNwcmVhZCBsYXN0KS4gTm90ZTogYHdpZHRoYCBpcyBub3QgbWVhbnQgdG8gYmUgY29tYmluZWQgd2l0aCBgZnVsbFdpZHRoYCwgd2hvc2VcbiAgICAvLyBgbWF4LXdpZHRoOiBub25lYCAvIGB3aWR0aDogMTAwJWAgcnVsZXMgZ292ZXJuIHNpemluZyBvbiB0aGVpciBvd24uXG4gICAgY29uc3QgcGFuZWxTdHlsZSA9IE9iamVjdC5hc3NpZ24oeyB3aWR0aCB9LCBzdHlsZSk7XG4gICAgaWYgKCFvcGVuKVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gKF9qc3goUG9ydGFsLCB7IGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCB7IHN0eWxlOiByb290U3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1Qucm9vdCksIGNoaWxkcmVuOiBbX2pzeChcImRpdlwiLCB7IFwiYXJpYS1oaWRkZW5cIjogXCJ0cnVlXCIsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1Qub3ZlcmxheSksIG9uQ2xpY2s6IGhhbmRsZU92ZXJsYXlDbGljayB9KSwgX2pzeChcImRpdlwiLCB7IHN0eWxlOiB3cmFwcGVyU3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1Qud3JhcHBlciksIGNoaWxkcmVuOiBfanN4cyhcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHJlZjogaGFuZGxlU2V0RGlhbG9nUmVmLCByb2xlOiBcImRpYWxvZ1wiLCBcImFyaWEtbW9kYWxcIjogXCJ0cnVlXCIsIFwiYXJpYS1sYWJlbGxlZGJ5XCI6IHRpdGxlID8gdGl0bGVJZCA6IHVuZGVmaW5lZCwgdGFiSW5kZXg6IC0xLCBzdHlsZTogcGFuZWxTdHlsZSwgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGdldENsYXNzTmFtZShwcmVmaXhDbHMpLCBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIHNpemUpLCBmdWxsV2lkdGggJiYgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgdW5kZWZpbmVkLCBESUFMT0dfTU9ESUZJRVIuZnVsbFdpZHRoKSwgZml4ZWQgJiYgZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgdW5kZWZpbmVkLCBESUFMT0dfTU9ESUZJRVIuZml4ZWQpLCBoYXNNZWRpYSAmJiBnZXRDbGFzc05hbWUocHJlZml4Q2xzLCB1bmRlZmluZWQsIERJQUxPR19NT0RJRklFUi53aXRoTWVkaWEpLCBjbGFzc05hbWUpLCBjaGlsZHJlbjogW2Nsb3NlQ29udHJvbE5vZGUsIGhhc01lZGlhICYmIF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULm1lZGlhKSwgY2hpbGRyZW46IG1lZGlhIH0pLCBfanN4cyhcImRpdlwiLCB7IGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaW5uZXIpLCBjaGlsZHJlbjogWyhiYWNrQ29udHJvbE5vZGUgfHwgKGZpeGVkICYmIChpbGx1c3RyYXRpb25Ob2RlIHx8IHRpdGxlTm9kZSkpKSAmJiAoX2pzeHMoXCJkaXZcIiwgeyBzdHlsZTogaGVhZGVyU3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuaGVhZGVyKSwgY2hpbGRyZW46IFtiYWNrQ29udHJvbE5vZGUsIGZpeGVkICYmIGlsbHVzdHJhdGlvbk5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmlsbHVzdHJhdGlvbiksIGNoaWxkcmVuOiBpbGx1c3RyYXRpb25Ob2RlIH0pKSwgZml4ZWQgJiYgdGl0bGVOb2RlICYmIChfanN4KFwiZGl2XCIsIHsgaWQ6IHRpdGxlSWQsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QudGl0bGUpLCBjaGlsZHJlbjogdGl0bGVOb2RlIH0pKV0gfSkpLCBfanN4cyhcImRpdlwiLCB7IHN0eWxlOiBib2R5U3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuYm9keSksIGNoaWxkcmVuOiBbIWZpeGVkICYmIGlsbHVzdHJhdGlvbk5vZGUgJiYgKF9qc3goXCJkaXZcIiwgeyBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmlsbHVzdHJhdGlvbiksIGNoaWxkcmVuOiBpbGx1c3RyYXRpb25Ob2RlIH0pKSwgIWZpeGVkICYmIHRpdGxlTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IGlkOiB0aXRsZUlkLCBjbGFzc05hbWU6IGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULnRpdGxlKSwgY2hpbGRyZW46IHRpdGxlTm9kZSB9KSksIGNoaWxkcmVuTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBjb250ZW50U3R5bGUsIGNsYXNzTmFtZTogZ2V0Q2xhc3NOYW1lKHByZWZpeENscywgRElBTE9HX1NMT1QuY29udGVudCksIGNoaWxkcmVuOiBjaGlsZHJlbk5vZGUgfSkpXSB9KSwgZm9vdGVyTm9kZSAmJiAoX2pzeChcImRpdlwiLCB7IHN0eWxlOiBmb290ZXJTdHlsZSwgY2xhc3NOYW1lOiBjbGFzc05hbWVzKGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmZvb3RlciksIGdldENsYXNzTmFtZShwcmVmaXhDbHMsIERJQUxPR19TTE9ULmZvb3Rlciwgc2l6ZSkpLCBjaGlsZHJlbjogZm9vdGVyTm9kZSB9KSldIH0pXSB9KSkgfSldIH0pIH0pKTtcbn0pO1xuRGlhbG9nQmFzZS5kaXNwbGF5TmFtZSA9ICdEaWFsb2cnO1xuZXhwb3J0IGNvbnN0IERpYWxvZyA9IG1lbW8oRGlhbG9nQmFzZSk7XG5EaWFsb2cuZGlzcGxheU5hbWUgPSAnRGlhbG9nJztcbmV4cG9ydCBkZWZhdWx0IERpYWxvZzsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
@@ -13,6 +13,7 @@ export interface DialogProps extends Omit<HTMLAttributes<HTMLDivElement>, 'child
13
13
  showBackIcon?: boolean;
14
14
  fullWidth?: boolean;
15
15
  fixed?: boolean;
16
+ width?: number | string;
16
17
  title?: ReactNode;
17
18
  children?: ReactNode;
18
19
  illustration?: ReactNode | IconName;
@@ -1,5 +1,6 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
2
  import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
3
4
  var __rest = this && this.__rest || function (s, e) {
4
5
  var t = {};
5
6
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];
@@ -11,8 +12,49 @@ var __rest = this && this.__rest || function (s, e) {
11
12
  import { jsx as _jsx } from "react/jsx-runtime";
12
13
  import { memo, useMemo } from 'react';
13
14
  import classnames, { joinCls } from '../../utils/classnames';
14
- import { GRID_BREAKPOINTS, GRID_CLASS, GRID_COL_PREFIX, GRID_CSS_VARS, GRID_RESPONSIVE_CSS_VARS } from './constants';
15
+ import { devWarnOnce, isProduction } from '../../utils/devWarn';
16
+ import { GRID_BREAKPOINTS, GRID_CLASS, GRID_COL_PREFIX, GRID_COLUMNS, GRID_CSS_VARS, GRID_RESPONSIVE_CSS_VARS } from './constants';
15
17
  import { normalizeColSize, normalizeFlex } from './helper';
18
+ var COL_RANGE_KEYS = ['span', 'offset', 'order', 'push', 'pull'];
19
+ // Dev-only guard: span/offset/order/push/pull — both top-level AND the responsive
20
+ // sm/md/lg equivalents — map to classes generated for 0–GRID_COLUMNS only; values
21
+ // outside that range silently produce a class with no matching CSS. Warns once per
22
+ // distinct misuse (via the shared devWarnOnce) instead of on every render.
23
+ var warnColRange = function warnColRange(scope, values) {
24
+ COL_RANGE_KEYS.forEach(function (key) {
25
+ var value = values[key];
26
+ if (value != null && (value < 0 || value > GRID_COLUMNS)) {
27
+ var usage = scope ? "".concat(scope, "={{ ").concat(key, ": ").concat(value, " }}") : "".concat(key, "={").concat(value, "}");
28
+ devWarnOnce("grid-col-range:".concat(scope, ":").concat(key, ":").concat(value), "[Grid.Col] `".concat(usage, "` is outside the 0\u2013").concat(GRID_COLUMNS, " range; no matching style is generated."));
29
+ }
30
+ });
31
+ };
32
+ // Gated by isProduction() so the per-render arg objects are never allocated in
33
+ // production builds.
34
+ var warnColRangeInDev = function warnColRangeInDev(props) {
35
+ if (isProduction()) return;
36
+ var span = props.span,
37
+ offset = props.offset,
38
+ order = props.order,
39
+ push = props.push,
40
+ pull = props.pull,
41
+ sm = props.sm,
42
+ md = props.md,
43
+ lg = props.lg;
44
+ warnColRange('', {
45
+ span: span,
46
+ offset: offset,
47
+ order: order,
48
+ push: push,
49
+ pull: pull
50
+ });
51
+ [['sm', sm], ['md', md], ['lg', lg]].forEach(function (_ref) {
52
+ var _ref2 = _slicedToArray(_ref, 2),
53
+ scope = _ref2[0],
54
+ size = _ref2[1];
55
+ if (size != null) warnColRange(scope, normalizeColSize(size));
56
+ });
57
+ };
16
58
  var buildResponsiveConfig = function buildResponsiveConfig(breakpoints, classes) {
17
59
  var classList = [];
18
60
  var flexVars = {};
@@ -26,7 +68,10 @@ var buildResponsiveConfig = function buildResponsiveConfig(breakpoints, classes)
26
68
  if (normalized.order != null) classList.push(classes("".concat(bp, "-").concat(GRID_CLASS.order, "-").concat(normalized.order)));
27
69
  if (normalized.pull != null) classList.push(classes("".concat(bp, "-").concat(GRID_CLASS.pull, "-").concat(normalized.pull)));
28
70
  if (normalized.push != null) classList.push(classes("".concat(bp, "-").concat(GRID_CLASS.push, "-").concat(normalized.push)));
29
- if (flexValue) flexVars[GRID_RESPONSIVE_CSS_VARS[bp].colFlex] = flexValue;
71
+ if (flexValue) {
72
+ classList.push(classes("".concat(bp, "-").concat(GRID_CLASS.flex)));
73
+ flexVars[GRID_RESPONSIVE_CSS_VARS[bp].colFlex] = flexValue;
74
+ }
30
75
  });
31
76
  return {
32
77
  classList: classList,
@@ -49,6 +94,16 @@ export var Col = /*#__PURE__*/memo(function (props) {
49
94
  _props$prefixCls = props.prefixCls,
50
95
  prefixCls = _props$prefixCls === void 0 ? GRID_COL_PREFIX : _props$prefixCls,
51
96
  rest = __rest(props, ["children", "span", "offset", "order", "pull", "push", "flex", "sm", "md", "lg", "className", "style", "prefixCls"]);
97
+ warnColRangeInDev({
98
+ span: span,
99
+ offset: offset,
100
+ order: order,
101
+ push: push,
102
+ pull: pull,
103
+ sm: sm,
104
+ md: md,
105
+ lg: lg
106
+ });
52
107
  var _useMemo = useMemo(function () {
53
108
  var classes = classnames(prefixCls);
54
109
  var _buildResponsiveConfi = buildResponsiveConfig({
@@ -69,8 +124,9 @@ export var Col = /*#__PURE__*/memo(function (props) {
69
124
  classNameValue = _useMemo.classNameValue,
70
125
  flexValue = _useMemo.flexValue,
71
126
  flexVars = _useMemo.flexVars;
127
+ // User-supplied `style` wins over the computed flex CSS vars.
72
128
  var mergedStyle = useMemo(function () {
73
- return Object.assign(Object.assign(Object.assign({}, style), flexValue && _defineProperty({}, GRID_CSS_VARS.colFlex, flexValue)), flexVars);
129
+ return Object.assign(Object.assign(Object.assign({}, flexValue && _defineProperty({}, GRID_CSS_VARS.colFlex, flexValue)), flexVars), style);
74
130
  }, [style, flexValue, flexVars]);
75
131
  return _jsx("div", Object.assign({}, rest, {
76
132
  style: mergedStyle,
@@ -80,4 +136,4 @@ export var Col = /*#__PURE__*/memo(function (props) {
80
136
  });
81
137
  Col.displayName = 'Col';
82
138
  export default Col;
83
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvR3JpZC9Db2wuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0dyaWQvQ29sLnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJtZW1vIiwidXNlTWVtbyIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiR1JJRF9CUkVBS1BPSU5UUyIsIkdSSURfQ0xBU1MiLCJHUklEX0NPTF9QUkVGSVgiLCJHUklEX0NTU19WQVJTIiwiR1JJRF9SRVNQT05TSVZFX0NTU19WQVJTIiwibm9ybWFsaXplQ29sU2l6ZSIsIm5vcm1hbGl6ZUZsZXgiLCJidWlsZFJlc3BvbnNpdmVDb25maWciLCJicmVha3BvaW50cyIsImNsYXNzZXMiLCJjbGFzc0xpc3QiLCJmbGV4VmFycyIsImZvckVhY2giLCJicCIsInNpemUiLCJub3JtYWxpemVkIiwiZmxleFZhbHVlIiwiZmxleCIsInNwYW4iLCJwdXNoIiwiY29uY2F0Iiwib2Zmc2V0Iiwib3JkZXIiLCJwdWxsIiwiY29sRmxleCIsIkNvbCIsInByb3BzIiwiY2hpbGRyZW4iLCJzbSIsIm1kIiwibGciLCJjbGFzc05hbWUiLCJzdHlsZSIsIl9wcm9wcyRwcmVmaXhDbHMiLCJwcmVmaXhDbHMiLCJyZXN0IiwiX3VzZU1lbW8iLCJfYnVpbGRSZXNwb25zaXZlQ29uZmkiLCJub3JtYWxpemVkRmxleCIsIm5leHRDbGFzc05hbWUiLCJhcHBseSIsIl90b0NvbnN1bWFibGVBcnJheSIsImNsYXNzTmFtZVZhbHVlIiwibWVyZ2VkU3R5bGUiLCJhc3NpZ24iLCJfZGVmaW5lUHJvcGVydHkiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQztFQUN6QjtFQUNKLE9BQU9SLENBQUM7QUFDWixDQUFDO0FBQ0QsU0FBU1csR0FBRyxJQUFJQyxJQUFJLFFBQVEsbUJBQW1CO0FDWC9DLFNBQVNDLElBQUksRUFBRUMsT0FBTyxRQUFRLE9BQU87QUFDckMsT0FBT0MsVUFBVSxJQUFJQyxPQUFPLFFBQVEsd0JBQXdCO0FBQzVELFNBQVNDLGdCQUFnQixFQUFFQyxVQUFVLEVBQUVDLGVBQWUsRUFBRUMsYUFBYSxFQUFFQyx3QkFBd0IsUUFBUSxhQUFhO0FBQ3BILFNBQVNDLGdCQUFnQixFQUFFQyxhQUFhLFFBQVEsVUFBVTtBQU0xRCxJQUFNQyxxQkFBcUIsR0FBRyxTQUF4QkEscUJBQXFCQSxDQUN6QkMsV0FBNEQsRUFDNURDLE9BQXFCLEVBQ25CO0VBQ0YsSUFBTUMsU0FBUyxHQUFhLEVBQUU7RUFDOUIsSUFBTUMsUUFBUSxHQUEyQixDQUFBLENBQUU7RUFFM0NYLGdCQUFnQixDQUFDWSxPQUFPLENBQUMsVUFBQUMsRUFBRSxFQUFHO0lBQzVCLElBQU1DLElBQUksR0FBR04sV0FBVyxDQUFDSyxFQUFFLENBQUM7SUFDNUIsSUFBSUMsSUFBSSxJQUFJLElBQUksRUFBRTtJQUVsQixJQUFNQyxVQUFVLEdBQUdWLGdCQUFnQixDQUFDUyxJQUFJLENBQUM7SUFDekMsSUFBTUUsU0FBUyxHQUFHVixhQUFhLENBQUNTLFVBQVUsQ0FBQ0UsSUFBSSxDQUFDO0lBRWhELElBQUlGLFVBQVUsQ0FBQ0csSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDRixTQUFTLEVBQUVOLFNBQVMsQ0FBQ1MsSUFBSSxDQUFDVixPQUFPLElBQUFXLE1BQUEsQ0FBSVAsRUFBRSxPQUFBTyxNQUFBLENBQUlMLFVBQVUsQ0FBQ0csSUFBSSxDQUFFLENBQUMsQ0FBQztJQUM5RixJQUFJSCxVQUFVLENBQUNNLE1BQU0sSUFBSSxJQUFJLEVBQUVYLFNBQVMsQ0FBQ1MsSUFBSSxDQUFDVixPQUFPLElBQUFXLE1BQUEsQ0FBSVAsRUFBRSxPQUFBTyxNQUFBLENBQUluQixVQUFVLENBQUNvQixNQUFNLE9BQUFELE1BQUEsQ0FBSUwsVUFBVSxDQUFDTSxNQUFNLENBQUUsQ0FBQyxDQUFDO0lBQ3pHLElBQUlOLFVBQVUsQ0FBQ08sS0FBSyxJQUFJLElBQUksRUFBRVosU0FBUyxDQUFDUyxJQUFJLENBQUNWLE9BQU8sSUFBQVcsTUFBQSxDQUFJUCxFQUFFLE9BQUFPLE1BQUEsQ0FBSW5CLFVBQVUsQ0FBQ3FCLEtBQUssT0FBQUYsTUFBQSxDQUFJTCxVQUFVLENBQUNPLEtBQUssQ0FBRSxDQUFDLENBQUM7SUFDdEcsSUFBSVAsVUFBVSxDQUFDUSxJQUFJLElBQUksSUFBSSxFQUFFYixTQUFTLENBQUNTLElBQUksQ0FBQ1YsT0FBTyxJQUFBVyxNQUFBLENBQUlQLEVBQUUsT0FBQU8sTUFBQSxDQUFJbkIsVUFBVSxDQUFDc0IsSUFBSSxPQUFBSCxNQUFBLENBQUlMLFVBQVUsQ0FBQ1EsSUFBSSxDQUFFLENBQUMsQ0FBQztJQUNuRyxJQUFJUixVQUFVLENBQUNJLElBQUksSUFBSSxJQUFJLEVBQUVULFNBQVMsQ0FBQ1MsSUFBSSxDQUFDVixPQUFPLElBQUFXLE1BQUEsQ0FBSVAsRUFBRSxPQUFBTyxNQUFBLENBQUluQixVQUFVLENBQUNrQixJQUFJLE9BQUFDLE1BQUEsQ0FBSUwsVUFBVSxDQUFDSSxJQUFJLENBQUUsQ0FBQyxDQUFDO0lBQ25HLElBQUlILFNBQVMsRUFBRUwsUUFBUSxDQUFDUCx3QkFBd0IsQ0FBQ1MsRUFBRSxDQUFDLENBQUNXLE9BQU8sQ0FBQyxHQUFHUixTQUFTO0VBQzNFLENBQUMsQ0FBQztFQUVGLE9BQU87SUFBRU4sU0FBUyxFQUFUQSxTQUFTO0lBQUVDLFFBQVEsRUFBUkE7RUFBUSxDQUFFO0FBQ2hDLENBQUM7QUFFRCxPQUFPLElBQU1jLEdBQUcsZ0JBQUc3QixJQUFJLENBQWtDLFVBQUE4QixLQUFLLEVBQUc7RUFDL0QsSUFDRUMsUUFBUSxHQWNORCxLQUFLLENBZFBDLFFBQVE7SUFDUlQsSUFBSSxHQWFGUSxLQUFLLENBYlBSLElBQUk7SUFDSkcsTUFBTSxHQVlKSyxLQUFLLENBWlBMLE1BQU07SUFDTkMsS0FBSyxHQVdISSxLQUFLLENBWFBKLEtBQUs7SUFDTEMsSUFBSSxHQVVGRyxLQUFLLENBVlBILElBQUk7SUFDSkosSUFBSSxHQVNGTyxLQUFLLENBVFBQLElBQUk7SUFDSkYsSUFBSSxHQVFGUyxLQUFLLENBUlBULElBQUk7SUFDSlcsRUFBRSxHQU9BRixLQUFLLENBUFBFLEVBQUU7SUFDRkMsRUFBRSxHQU1BSCxLQUFLLENBTlBHLEVBQUU7SUFDRkMsRUFBRSxHQUtBSixLQUFLLENBTFBJLEVBQUU7SUFDRkMsU0FBUyxHQUlQTCxLQUFLLENBSlBLLFNBQVM7SUFDVEMsS0FBSyxHQUdITixLQUFLLENBSFBNLEtBQUs7SUFBQUMsZ0JBQUEsR0FHSFAsS0FBSyxDQUZQUSxTQUFTO0lBQVRBLFNBQVMsR0FBQUQsZ0JBQUEsY0FBRy9CLGVBQWUsR0FBQStCLGdCQUFBO0lBQ3hCRSxJQUFJLEdBQUF2RCxNQUFBLENBQ0w4QyxLQUFLLEVBZkgsQ0FBQSxVQUFBLEVBQUEsTUFBQSxFQUFBLFFBQUEsRUFBQSxPQUFBLEVBQUEsTUFBQSxFQUFBLE1BQUEsRUFBQSxNQUFBLEVBQUEsSUFBQSxFQUFBLElBQUEsRUFBQSxJQUFBLEVBQUEsV0FBQSxFQUFBLE9BQUEsRUFBQSxXQUFBLENBZUwsQ0FBUTtFQUVULElBQUFVLFFBQUEsR0FBZ0R2QyxPQUFPLENBQUMsWUFBSztNQUMzRCxJQUFNWSxPQUFPLEdBQUdYLFVBQVUsQ0FBQ29DLFNBQVMsQ0FBQztNQUNyQyxJQUFBRyxxQkFBQSxHQUFnQzlCLHFCQUFxQixDQUFDO1VBQUVxQixFQUFFLEVBQUZBLEVBQUU7VUFBRUMsRUFBRSxFQUFGQSxFQUFFO1VBQUVDLEVBQUUsRUFBRkE7UUFBRSxDQUFFLEVBQUVyQixPQUFPLENBQUM7UUFBdEVDLFNBQVMsR0FBQTJCLHFCQUFBLENBQVQzQixTQUFTO1FBQUVDLFFBQVEsR0FBQTBCLHFCQUFBLENBQVIxQixRQUFRO01BQzNCLElBQU0yQixjQUFjLEdBQUdoQyxhQUFhLENBQUNXLElBQUksQ0FBQztNQUUxQyxJQUFNc0IsYUFBYSxHQUFHeEMsT0FBTyxDQUFBeUMsS0FBQSxVQUMzQi9CLE9BQU8sQ0FBQSxDQUFFLEVBQ1RTLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQ29CLGNBQWMsSUFBSTdCLE9BQU8sSUFBQVcsTUFBQSxDQUFJRixJQUFJLENBQUUsQ0FBQyxFQUNyREcsTUFBTSxJQUFJLElBQUksSUFBSVosT0FBTyxJQUFBVyxNQUFBLENBQUluQixVQUFVLENBQUNvQixNQUFNLE9BQUFELE1BQUEsQ0FBSUMsTUFBTSxDQUFFLENBQUMsRUFDM0RDLEtBQUssSUFBSSxJQUFJLElBQUliLE9BQU8sSUFBQVcsTUFBQSxDQUFJbkIsVUFBVSxDQUFDcUIsS0FBSyxPQUFBRixNQUFBLENBQUlFLEtBQUssQ0FBRSxDQUFDLEVBQ3hESCxJQUFJLElBQUksSUFBSSxJQUFJVixPQUFPLElBQUFXLE1BQUEsQ0FBSW5CLFVBQVUsQ0FBQ2tCLElBQUksT0FBQUMsTUFBQSxDQUFJRCxJQUFJLENBQUUsQ0FBQyxFQUNyREksSUFBSSxJQUFJLElBQUksSUFBSWQsT0FBTyxJQUFBVyxNQUFBLENBQUluQixVQUFVLENBQUNzQixJQUFJLE9BQUFILE1BQUEsQ0FBSUcsSUFBSSxDQUFFLENBQUMsRUFBQUgsTUFBQSxDQUFBcUIsa0JBQUEsQ0FDbEQvQixTQUFTLElBQ1pxQixTQUFTLEdBQ1Y7TUFFRCxPQUFPO1FBQUVXLGNBQWMsRUFBRUgsYUFBYTtRQUFFdkIsU0FBUyxFQUFFc0IsY0FBYztRQUFFM0IsUUFBUSxFQUFSQTtNQUFRLENBQUU7SUFDL0UsQ0FBQyxFQUFFLENBQUNvQixTQUFTLEVBQUVkLElBQUksRUFBRWEsRUFBRSxFQUFFRCxFQUFFLEVBQUVSLE1BQU0sRUFBRUMsS0FBSyxFQUFFWSxTQUFTLEVBQUVYLElBQUksRUFBRUosSUFBSSxFQUFFUyxFQUFFLEVBQUVWLElBQUksQ0FBQyxDQUFDO0lBakJyRXdCLGNBQWMsR0FBQU4sUUFBQSxDQUFkTSxjQUFjO0lBQUUxQixTQUFTLEdBQUFvQixRQUFBLENBQVRwQixTQUFTO0lBQUVMLFFBQVEsR0FBQXlCLFFBQUEsQ0FBUnpCLFFBQVE7RUFtQjNDLElBQU1nQyxXQUFXLEdBQWtCOUMsT0FBTyxDQUFDO0lBQUEsT0FBTVosTUFBQSxDQUFBMkQsTUFBQSxDQUFBM0QsTUFBQSxDQUFBMkQsTUFBQSxDQUFBM0QsTUFBQSxDQUFBMkQsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUM1Q1osS0FBSyxDQUFBLEVBQ0poQixTQUFTLElBQUE2QixlQUFBLEtBQU8xQyxhQUFhLENBQUNxQixPQUFPLEVBQUdSLFNBQVMsQ0FBRyxDQUFBLEVBQ3JETCxRQUFRLENBQUE7RUFBQSxDQUNYLEVBQUUsQ0FBQ3FCLEtBQUssRUFBRWhCLFNBQVMsRUFBRUwsUUFBUSxDQUFDLENBQUM7RUFFakMsT0FDRWhCLElBQUEsQ0FBQSxLQUFBLEVBQUFWLE1BQUEsQ0FBQTJELE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDTVQsSUFBSSxFQUFBO0lBQ1JILEtBQUssRUFBRVcsV0FBVztJQUNsQlosU0FBUyxFQUFFVyxjQUFjO0lBQUFmLFFBQUEsRUFFeEJBO0VBQVEsQ0FBQSxDQUFBLENBQ0w7QUFFVixDQUFDLENBQUM7QUFFRkYsR0FBRyxDQUFDcUIsV0FBVyxHQUFHLEtBQUs7QUFFdkIsZUFBZXJCLEdBQUciLCJmaWxlIjoiY29tcG9uZW50cy9HcmlkL0NvbC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzbmFtZXMsIHsgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgR1JJRF9CUkVBS1BPSU5UUywgR1JJRF9DTEFTUywgR1JJRF9DT0xfUFJFRklYLCBHUklEX0NTU19WQVJTLCBHUklEX1JFU1BPTlNJVkVfQ1NTX1ZBUlMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBub3JtYWxpemVDb2xTaXplLCBub3JtYWxpemVGbGV4IH0gZnJvbSAnLi9oZWxwZXInO1xuY29uc3QgYnVpbGRSZXNwb25zaXZlQ29uZmlnID0gKGJyZWFrcG9pbnRzLCBjbGFzc2VzKSA9PiB7XG4gICAgY29uc3QgY2xhc3NMaXN0ID0gW107XG4gICAgY29uc3QgZmxleFZhcnMgPSB7fTtcbiAgICBHUklEX0JSRUFLUE9JTlRTLmZvckVhY2goYnAgPT4ge1xuICAgICAgICBjb25zdCBzaXplID0gYnJlYWtwb2ludHNbYnBdO1xuICAgICAgICBpZiAoc2l6ZSA9PSBudWxsKVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplQ29sU2l6ZShzaXplKTtcbiAgICAgICAgY29uc3QgZmxleFZhbHVlID0gbm9ybWFsaXplRmxleChub3JtYWxpemVkLmZsZXgpO1xuICAgICAgICBpZiAobm9ybWFsaXplZC5zcGFuICE9IG51bGwgJiYgIWZsZXhWYWx1ZSlcbiAgICAgICAgICAgIGNsYXNzTGlzdC5wdXNoKGNsYXNzZXMoYCR7YnB9LSR7bm9ybWFsaXplZC5zcGFufWApKTtcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWQub2Zmc2V0ICE9IG51bGwpXG4gICAgICAgICAgICBjbGFzc0xpc3QucHVzaChjbGFzc2VzKGAke2JwfS0ke0dSSURfQ0xBU1Mub2Zmc2V0fS0ke25vcm1hbGl6ZWQub2Zmc2V0fWApKTtcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWQub3JkZXIgIT0gbnVsbClcbiAgICAgICAgICAgIGNsYXNzTGlzdC5wdXNoKGNsYXNzZXMoYCR7YnB9LSR7R1JJRF9DTEFTUy5vcmRlcn0tJHtub3JtYWxpemVkLm9yZGVyfWApKTtcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWQucHVsbCAhPSBudWxsKVxuICAgICAgICAgICAgY2xhc3NMaXN0LnB1c2goY2xhc3NlcyhgJHticH0tJHtHUklEX0NMQVNTLnB1bGx9LSR7bm9ybWFsaXplZC5wdWxsfWApKTtcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWQucHVzaCAhPSBudWxsKVxuICAgICAgICAgICAgY2xhc3NMaXN0LnB1c2goY2xhc3NlcyhgJHticH0tJHtHUklEX0NMQVNTLnB1c2h9LSR7bm9ybWFsaXplZC5wdXNofWApKTtcbiAgICAgICAgaWYgKGZsZXhWYWx1ZSlcbiAgICAgICAgICAgIGZsZXhWYXJzW0dSSURfUkVTUE9OU0lWRV9DU1NfVkFSU1ticF0uY29sRmxleF0gPSBmbGV4VmFsdWU7XG4gICAgfSk7XG4gICAgcmV0dXJuIHsgY2xhc3NMaXN0LCBmbGV4VmFycyB9O1xufTtcbmV4cG9ydCBjb25zdCBDb2wgPSBtZW1vKHByb3BzID0+IHtcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBzcGFuLCBvZmZzZXQsIG9yZGVyLCBwdWxsLCBwdXNoLCBmbGV4LCBzbSwgbWQsIGxnLCBjbGFzc05hbWUsIHN0eWxlLCBwcmVmaXhDbHMgPSBHUklEX0NPTF9QUkVGSVggfSA9IHByb3BzLCByZXN0ID0gX19yZXN0KHByb3BzLCBbXCJjaGlsZHJlblwiLCBcInNwYW5cIiwgXCJvZmZzZXRcIiwgXCJvcmRlclwiLCBcInB1bGxcIiwgXCJwdXNoXCIsIFwiZmxleFwiLCBcInNtXCIsIFwibWRcIiwgXCJsZ1wiLCBcImNsYXNzTmFtZVwiLCBcInN0eWxlXCIsIFwicHJlZml4Q2xzXCJdKTtcbiAgICBjb25zdCB7IGNsYXNzTmFtZVZhbHVlLCBmbGV4VmFsdWUsIGZsZXhWYXJzIH0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICAgICAgY29uc3QgeyBjbGFzc0xpc3QsIGZsZXhWYXJzIH0gPSBidWlsZFJlc3BvbnNpdmVDb25maWcoeyBzbSwgbWQsIGxnIH0sIGNsYXNzZXMpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRmxleCA9IG5vcm1hbGl6ZUZsZXgoZmxleCk7XG4gICAgICAgIGNvbnN0IG5leHRDbGFzc05hbWUgPSBqb2luQ2xzKGNsYXNzZXMoKSwgc3BhbiAhPSBudWxsICYmICFub3JtYWxpemVkRmxleCAmJiBjbGFzc2VzKGAke3NwYW59YCksIG9mZnNldCAhPSBudWxsICYmIGNsYXNzZXMoYCR7R1JJRF9DTEFTUy5vZmZzZXR9LSR7b2Zmc2V0fWApLCBvcmRlciAhPSBudWxsICYmIGNsYXNzZXMoYCR7R1JJRF9DTEFTUy5vcmRlcn0tJHtvcmRlcn1gKSwgcHVzaCAhPSBudWxsICYmIGNsYXNzZXMoYCR7R1JJRF9DTEFTUy5wdXNofS0ke3B1c2h9YCksIHB1bGwgIT0gbnVsbCAmJiBjbGFzc2VzKGAke0dSSURfQ0xBU1MucHVsbH0tJHtwdWxsfWApLCAuLi5jbGFzc0xpc3QsIGNsYXNzTmFtZSk7XG4gICAgICAgIHJldHVybiB7IGNsYXNzTmFtZVZhbHVlOiBuZXh0Q2xhc3NOYW1lLCBmbGV4VmFsdWU6IG5vcm1hbGl6ZWRGbGV4LCBmbGV4VmFycyB9O1xuICAgIH0sIFtjbGFzc05hbWUsIGZsZXgsIGxnLCBtZCwgb2Zmc2V0LCBvcmRlciwgcHJlZml4Q2xzLCBwdWxsLCBwdXNoLCBzbSwgc3Bhbl0pO1xuICAgIGNvbnN0IG1lcmdlZFN0eWxlID0gdXNlTWVtbygoKSA9PiAoT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oe30sIHN0eWxlKSwgKGZsZXhWYWx1ZSAmJiB7IFtHUklEX0NTU19WQVJTLmNvbEZsZXhdOiBmbGV4VmFsdWUgfSkpLCBmbGV4VmFycykpLCBbc3R5bGUsIGZsZXhWYWx1ZSwgZmxleFZhcnNdKTtcbiAgICByZXR1cm4gKF9qc3goXCJkaXZcIiwgT2JqZWN0LmFzc2lnbih7fSwgcmVzdCwgeyBzdHlsZTogbWVyZ2VkU3R5bGUsIGNsYXNzTmFtZTogY2xhc3NOYW1lVmFsdWUsIGNoaWxkcmVuOiBjaGlsZHJlbiB9KSkpO1xufSk7XG5Db2wuZGlzcGxheU5hbWUgPSAnQ29sJztcbmV4cG9ydCBkZWZhdWx0IENvbDsiLG51bGxdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjIn0=
139
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvR3JpZC9Db2wuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0dyaWQvQ29sLnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJtZW1vIiwidXNlTWVtbyIsImNsYXNzbmFtZXMiLCJqb2luQ2xzIiwiZGV2V2Fybk9uY2UiLCJpc1Byb2R1Y3Rpb24iLCJHUklEX0JSRUFLUE9JTlRTIiwiR1JJRF9DTEFTUyIsIkdSSURfQ09MX1BSRUZJWCIsIkdSSURfQ09MVU1OUyIsIkdSSURfQ1NTX1ZBUlMiLCJHUklEX1JFU1BPTlNJVkVfQ1NTX1ZBUlMiLCJub3JtYWxpemVDb2xTaXplIiwibm9ybWFsaXplRmxleCIsIkNPTF9SQU5HRV9LRVlTIiwid2FybkNvbFJhbmdlIiwic2NvcGUiLCJ2YWx1ZXMiLCJmb3JFYWNoIiwia2V5IiwidmFsdWUiLCJ1c2FnZSIsImNvbmNhdCIsIndhcm5Db2xSYW5nZUluRGV2IiwicHJvcHMiLCJzcGFuIiwib2Zmc2V0Iiwib3JkZXIiLCJwdXNoIiwicHVsbCIsInNtIiwibWQiLCJsZyIsIl9yZWYiLCJfcmVmMiIsIl9zbGljZWRUb0FycmF5Iiwic2l6ZSIsImJ1aWxkUmVzcG9uc2l2ZUNvbmZpZyIsImJyZWFrcG9pbnRzIiwiY2xhc3NlcyIsImNsYXNzTGlzdCIsImZsZXhWYXJzIiwiYnAiLCJub3JtYWxpemVkIiwiZmxleFZhbHVlIiwiZmxleCIsImNvbEZsZXgiLCJDb2wiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsInN0eWxlIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsInJlc3QiLCJfdXNlTWVtbyIsIl9idWlsZFJlc3BvbnNpdmVDb25maSIsIm5vcm1hbGl6ZWRGbGV4IiwibmV4dENsYXNzTmFtZSIsImFwcGx5IiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiY2xhc3NOYW1lVmFsdWUiLCJtZXJnZWRTdHlsZSIsImFzc2lnbiIsIl9kZWZpbmVQcm9wZXJ0eSIsImRpc3BsYXlOYW1lIl0sIm1hcHBpbmdzIjoiOzs7QUFBQSxJQUFJQSxNQUFNLEdBQUksSUFBSSxJQUFJLElBQUksQ0FBQ0EsTUFBTSxJQUFLLFVBQVVDLENBQUMsRUFBRUMsQ0FBQyxFQUFFO0VBQ2xELElBQUlDLENBQUMsR0FBRyxDQUFDLENBQUM7RUFDVixLQUFLLElBQUlDLENBQUMsSUFBSUgsQ0FBQyxFQUFFLElBQUlJLE1BQU0sQ0FBQ0MsU0FBUyxDQUFDQyxjQUFjLENBQUNDLElBQUksQ0FBQ1AsQ0FBQyxFQUFFRyxDQUFDLENBQUMsSUFBSUYsQ0FBQyxDQUFDTyxPQUFPLENBQUNMLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDL0VELENBQUMsQ0FBQ0MsQ0FBQyxDQUFDLEdBQUdILENBQUMsQ0FBQ0csQ0FBQyxDQUFDO0VBQ2YsSUFBSUgsQ0FBQyxJQUFJLElBQUksSUFBSSxPQUFPSSxNQUFNLENBQUNLLHFCQUFxQixLQUFLLFVBQVUsRUFDL0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFUCxDQUFDLEdBQUdDLE1BQU0sQ0FBQ0sscUJBQXFCLENBQUNULENBQUMsQ0FBQyxFQUFFVSxDQUFDLEdBQUdQLENBQUMsQ0FBQ1EsTUFBTSxFQUFFRCxDQUFDLEVBQUUsRUFBRTtJQUNwRSxJQUFJVCxDQUFDLENBQUNPLE9BQU8sQ0FBQ0wsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSU4sTUFBTSxDQUFDQyxTQUFTLENBQUNPLG9CQUFvQixDQUFDTCxJQUFJLENBQUNQLENBQUMsRUFBRUcsQ0FBQyxDQUFDTyxDQUFDLENBQUMsQ0FBQyxFQUMxRVIsQ0FBQyxDQUFDQyxDQUFDLENBQUNPLENBQUMsQ0FBQyxDQUFDLEdBQUdWLENBQUMsQ0FBQ0csQ0FB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QUFFQyxLQUFLLEVBQUV5QixTQUFTLEVBQUV2QixJQUFJLEVBQUVELElBQUksRUFBRUUsRUFBRSxFQUFFTCxJQUFJLENBQUMsQ0FBQztJQWpCckVtQyxjQUFjLEdBQUFOLFFBQUEsQ0FBZE0sY0FBYztJQUFFaEIsU0FBUyxHQUFBVSxRQUFBLENBQVRWLFNBQVM7SUFBRUgsUUFBUSxHQUFBYSxRQUFBLENBQVJiLFFBQVE7RUFtQjNDO0VBQ0EsSUFBTW9CLFdBQVcsR0FBa0I1RCxPQUFPLENBQUM7SUFBQSxPQUFNWixNQUFBLENBQUF5RSxNQUFBLENBQUF6RSxNQUFBLENBQUF5RSxNQUFBLENBQUF6RSxNQUFBLENBQUF5RSxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQzNDbEIsU0FBUyxJQUFBbUIsZUFBQSxLQUFPckQsYUFBYSxDQUFDb0MsT0FBTyxFQUFHRixTQUFTLENBQUcsQ0FBQSxFQUNyREgsUUFBUSxDQUFBLEVBQ1JTLEtBQUssQ0FBQTtFQUFBLENBQ1IsRUFBRSxDQUFDQSxLQUFLLEVBQUVOLFNBQVMsRUFBRUgsUUFBUSxDQUFDLENBQUM7RUFFakMsT0FDRTFDLElBQUEsQ0FBQSxLQUFBLEVBQUFWLE1BQUEsQ0FBQXlFLE1BQUEsQ0FBQSxDQUFBLENBQUEsRUFDTVQsSUFBSSxFQUFBO0lBQ1JILEtBQUssRUFBRVcsV0FBVztJQUNsQlosU0FBUyxFQUFFVyxjQUFjO0lBQUFaLFFBQUEsRUFFeEJBO0VBQVEsQ0FBQSxDQUFBLENBQ0w7QUFFVixDQUFDLENBQUM7QUFFRkQsR0FBRyxDQUFDaUIsV0FBVyxHQUFHLEtBQUs7QUFFdkIsZUFBZWpCLEdBQUciLCJmaWxlIjoiY29tcG9uZW50cy9HcmlkL0NvbC5qcyIsInNvdXJjZXNDb250ZW50IjpbInZhciBfX3Jlc3QgPSAodGhpcyAmJiB0aGlzLl9fcmVzdCkgfHwgZnVuY3Rpb24gKHMsIGUpIHtcbiAgICB2YXIgdCA9IHt9O1xuICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSAmJiBlLmluZGV4T2YocCkgPCAwKVxuICAgICAgICB0W3BdID0gc1twXTtcbiAgICBpZiAocyAhPSBudWxsICYmIHR5cGVvZiBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzID09PSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIGZvciAodmFyIGkgPSAwLCBwID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhzKTsgaSA8IHAubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChlLmluZGV4T2YocFtpXSkgPCAwICYmIE9iamVjdC5wcm90b3R5cGUucHJvcGVydHlJc0VudW1lcmFibGUuY2FsbChzLCBwW2ldKSlcbiAgICAgICAgICAgICAgICB0W3BbaV1dID0gc1twW2ldXTtcbiAgICAgICAgfVxuICAgIHJldHVybiB0O1xufTtcbmltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vLCB1c2VNZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IGNsYXNzbmFtZXMsIHsgam9pbkNscyB9IGZyb20gJy4uLy4uL3V0aWxzL2NsYXNzbmFtZXMnO1xuaW1wb3J0IHsgZGV2V2Fybk9uY2UsIGlzUHJvZHVjdGlvbiB9IGZyb20gJy4uLy4uL3V0aWxzL2Rldldhcm4nO1xuaW1wb3J0IHsgR1JJRF9CUkVBS1BPSU5UUywgR1JJRF9DTEFTUywgR1JJRF9DT0xfUFJFRklYLCBHUklEX0NPTFVNTlMsIEdSSURfQ1NTX1ZBUlMsIEdSSURfUkVTUE9OU0lWRV9DU1NfVkFSUyB9IGZyb20gJy4vY29uc3RhbnRzJztcbmltcG9ydCB7IG5vcm1hbGl6ZUNvbFNpemUsIG5vcm1hbGl6ZUZsZXggfSBmcm9tICcuL2hlbHBlcic7XG5jb25zdCBDT0xfUkFOR0VfS0VZUyA9IFsnc3BhbicsICdvZmZzZXQnLCAnb3JkZXInLCAncHVzaCcsICdwdWxsJ107XG4vLyBEZXYtb25seSBndWFyZDogc3Bhbi9vZmZzZXQvb3JkZXIvcHVzaC9wdWxsIOKAlCBib3RoIHRvcC1sZXZlbCBBTkQgdGhlIHJlc3BvbnNpdmVcbi8vIHNtL21kL2xnIGVxdWl2YWxlbnRzIOKAlCBtYXAgdG8gY2xhc3NlcyBnZW5lcmF0ZWQgZm9yIDDigJNHUklEX0NPTFVNTlMgb25seTsgdmFsdWVzXG4vLyBvdXRzaWRlIHRoYXQgcmFuZ2Ugc2lsZW50bHkgcHJvZHVjZSBhIGNsYXNzIHdpdGggbm8gbWF0Y2hpbmcgQ1NTLiBXYXJucyBvbmNlIHBlclxuLy8gZGlzdGluY3QgbWlzdXNlICh2aWEgdGhlIHNoYXJlZCBkZXZXYXJuT25jZSkgaW5zdGVhZCBvZiBvbiBldmVyeSByZW5kZXIuXG5jb25zdCB3YXJuQ29sUmFuZ2UgPSAoc2NvcGUsIHZhbHVlcykgPT4ge1xuICAgIENPTF9SQU5HRV9LRVlTLmZvckVhY2goa2V5ID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB2YWx1ZXNba2V5XTtcbiAgICAgICAgaWYgKHZhbHVlICE9IG51bGwgJiYgKHZhbHVlIDwgMCB8fCB2YWx1ZSA+IEdSSURfQ09MVU1OUykpIHtcbiAgICAgICAgICAgIGNvbnN0IHVzYWdlID0gc2NvcGUgPyBgJHtzY29wZX09e3sgJHtrZXl9OiAke3ZhbHVlfSB9fWAgOiBgJHtrZXl9PXske3ZhbHVlfX1gO1xuICAgICAgICAgICAgZGV2V2Fybk9uY2UoYGdyaWQtY29sLXJhbmdlOiR7c2NvcGV9OiR7a2V5fToke3ZhbHVlfWAsIGBbR3JpZC5Db2xdIFxcYCR7dXNhZ2V9XFxgIGlzIG91dHNpZGUgdGhlIDDigJMke0dSSURfQ09MVU1OU30gcmFuZ2U7IG5vIG1hdGNoaW5nIHN0eWxlIGlzIGdlbmVyYXRlZC5gKTtcbiAgICAgICAgfVxuICAgIH0pO1xufTtcbi8vIEdhdGVkIGJ5IGlzUHJvZHVjdGlvbigpIHNvIHRoZSBwZXItcmVuZGVyIGFyZyBvYmplY3RzIGFyZSBuZXZlciBhbGxvY2F0ZWQgaW5cbi8vIHByb2R1Y3Rpb24gYnVpbGRzLlxuY29uc3Qgd2FybkNvbFJhbmdlSW5EZXYgPSAocHJvcHMpID0+IHtcbiAgICBpZiAoaXNQcm9kdWN0aW9uKCkpXG4gICAgICAgIHJldHVybjtcbiAgICBjb25zdCB7IHNwYW4sIG9mZnNldCwgb3JkZXIsIHB1c2gsIHB1bGwsIHNtLCBtZCwgbGcgfSA9IHByb3BzO1xuICAgIHdhcm5Db2xSYW5nZSgnJywgeyBzcGFuLCBvZmZzZXQsIG9yZGVyLCBwdXNoLCBwdWxsIH0pO1xuICAgIFtbJ3NtJywgc21dLCBbJ21kJywgbWRdLCBbJ2xnJywgbGddXS5mb3JFYWNoKChbc2NvcGUsIHNpemVdKSA9PiB7XG4gICAgICAgIGlmIChzaXplICE9IG51bGwpXG4gICAgICAgICAgICB3YXJuQ29sUmFuZ2Uoc2NvcGUsIG5vcm1hbGl6ZUNvbFNpemUoc2l6ZSkpO1xuICAgIH0pO1xufTtcbmNvbnN0IGJ1aWxkUmVzcG9uc2l2ZUNvbmZpZyA9IChicmVha3BvaW50cywgY2xhc3NlcykgPT4ge1xuICAgIGNvbnN0IGNsYXNzTGlzdCA9IFtdO1xuICAgIGNvbnN0IGZsZXhWYXJzID0ge307XG4gICAgR1JJRF9CUkVBS1BPSU5UUy5mb3JFYWNoKGJwID0+IHtcbiAgICAgICAgY29uc3Qgc2l6ZSA9IGJyZWFrcG9pbnRzW2JwXTtcbiAgICAgICAgaWYgKHNpemUgPT0gbnVsbClcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZUNvbFNpemUoc2l6ZSk7XG4gICAgICAgIGNvbnN0IGZsZXhWYWx1ZSA9IG5vcm1hbGl6ZUZsZXgobm9ybWFsaXplZC5mbGV4KTtcbiAgICAgICAgaWYgKG5vcm1hbGl6ZWQuc3BhbiAhPSBudWxsICYmICFmbGV4VmFsdWUpXG4gICAgICAgICAgICBjbGFzc0xpc3QucHVzaChjbGFzc2VzKGAke2JwfS0ke25vcm1hbGl6ZWQuc3Bhbn1gKSk7XG4gICAgICAgIGlmIChub3JtYWxpemVkLm9mZnNldCAhPSBudWxsKVxuICAgICAgICAgICAgY2xhc3NMaXN0LnB1c2goY2xhc3NlcyhgJHticH0tJHtHUklEX0NMQVNTLm9mZnNldH0tJHtub3JtYWxpemVkLm9mZnNldH1gKSk7XG4gICAgICAgIGlmIChub3JtYWxpemVkLm9yZGVyICE9IG51bGwpXG4gICAgICAgICAgICBjbGFzc0xpc3QucHVzaChjbGFzc2VzKGAke2JwfS0ke0dSSURfQ0xBU1Mub3JkZXJ9LSR7bm9ybWFsaXplZC5vcmRlcn1gKSk7XG4gICAgICAgIGlmIChub3JtYWxpemVkLnB1bGwgIT0gbnVsbClcbiAgICAgICAgICAgIGNsYXNzTGlzdC5wdXNoKGNsYXNzZXMoYCR7YnB9LSR7R1JJRF9DTEFTUy5wdWxsfS0ke25vcm1hbGl6ZWQucHVsbH1gKSk7XG4gICAgICAgIGlmIChub3JtYWxpemVkLnB1c2ggIT0gbnVsbClcbiAgICAgICAgICAgIGNsYXNzTGlzdC5wdXNoKGNsYXNzZXMoYCR7YnB9LSR7R1JJRF9DTEFTUy5wdXNofS0ke25vcm1hbGl6ZWQucHVzaH1gKSk7XG4gICAgICAgIGlmIChmbGV4VmFsdWUpIHtcbiAgICAgICAgICAgIGNsYXNzTGlzdC5wdXNoKGNsYXNzZXMoYCR7YnB9LSR7R1JJRF9DTEFTUy5mbGV4fWApKTtcbiAgICAgICAgICAgIGZsZXhWYXJzW0dSSURfUkVTUE9OU0lWRV9DU1NfVkFSU1ticF0uY29sRmxleF0gPSBmbGV4VmFsdWU7XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4geyBjbGFzc0xpc3QsIGZsZXhWYXJzIH07XG59O1xuZXhwb3J0IGNvbnN0IENvbCA9IG1lbW8ocHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIHNwYW4sIG9mZnNldCwgb3JkZXIsIHB1bGwsIHB1c2gsIGZsZXgsIHNtLCBtZCwgbGcsIGNsYXNzTmFtZSwgc3R5bGUsIHByZWZpeENscyA9IEdSSURfQ09MX1BSRUZJWCB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNoaWxkcmVuXCIsIFwic3BhblwiLCBcIm9mZnNldFwiLCBcIm9yZGVyXCIsIFwicHVsbFwiLCBcInB1c2hcIiwgXCJmbGV4XCIsIFwic21cIiwgXCJtZFwiLCBcImxnXCIsIFwiY2xhc3NOYW1lXCIsIFwic3R5bGVcIiwgXCJwcmVmaXhDbHNcIl0pO1xuICAgIHdhcm5Db2xSYW5nZUluRGV2KHsgc3Bhbiwgb2Zmc2V0LCBvcmRlciwgcHVzaCwgcHVsbCwgc20sIG1kLCBsZyB9KTtcbiAgICBjb25zdCB7IGNsYXNzTmFtZVZhbHVlLCBmbGV4VmFsdWUsIGZsZXhWYXJzIH0gPSB1c2VNZW1vKCgpID0+IHtcbiAgICAgICAgY29uc3QgY2xhc3NlcyA9IGNsYXNzbmFtZXMocHJlZml4Q2xzKTtcbiAgICAgICAgY29uc3QgeyBjbGFzc0xpc3QsIGZsZXhWYXJzIH0gPSBidWlsZFJlc3BvbnNpdmVDb25maWcoeyBzbSwgbWQsIGxnIH0sIGNsYXNzZXMpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRmxleCA9IG5vcm1hbGl6ZUZsZXgoZmxleCk7XG4gICAgICAgIGNvbnN0IG5leHRDbGFzc05hbWUgPSBqb2luQ2xzKGNsYXNzZXMoKSwgc3BhbiAhPSBudWxsICYmICFub3JtYWxpemVkRmxleCAmJiBjbGFzc2VzKGAke3NwYW59YCksIG9mZnNldCAhPSBudWxsICYmIGNsYXNzZXMoYCR7R1JJRF9DTEFTUy5vZmZzZXR9LSR7b2Zmc2V0fWApLCBvcmRlciAhPSBudWxsICYmIGNsYXNzZXMoYCR7R1JJRF9DTEFTUy5vcmRlcn0tJHtvcmRlcn1gKSwgcHVzaCAhPSBudWxsICYmIGNsYXNzZXMoYCR7R1JJRF9DTEFTUy5wdXNofS0ke3B1c2h9YCksIHB1bGwgIT0gbnVsbCAmJiBjbGFzc2VzKGAke0dSSURfQ0xBU1MucHVsbH0tJHtwdWxsfWApLCAuLi5jbGFzc0xpc3QsIGNsYXNzTmFtZSk7XG4gICAgICAgIHJldHVybiB7IGNsYXNzTmFtZVZhbHVlOiBuZXh0Q2xhc3NOYW1lLCBmbGV4VmFsdWU6IG5vcm1hbGl6ZWRGbGV4LCBmbGV4VmFycyB9O1xuICAgIH0sIFtjbGFzc05hbWUsIGZsZXgsIGxnLCBtZCwgb2Zmc2V0LCBvcmRlciwgcHJlZml4Q2xzLCBwdWxsLCBwdXNoLCBzbSwgc3Bhbl0pO1xuICAgIC8vIFVzZXItc3VwcGxpZWQgYHN0eWxlYCB3aW5zIG92ZXIgdGhlIGNvbXB1dGVkIGZsZXggQ1NTIHZhcnMuXG4gICAgY29uc3QgbWVyZ2VkU3R5bGUgPSB1c2VNZW1vKCgpID0+IChPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgKGZsZXhWYWx1ZSAmJiB7IFtHUklEX0NTU19WQVJTLmNvbEZsZXhdOiBmbGV4VmFsdWUgfSkpLCBmbGV4VmFycyksIHN0eWxlKSksIFtzdHlsZSwgZmxleFZhbHVlLCBmbGV4VmFyc10pO1xuICAgIHJldHVybiAoX2pzeChcImRpdlwiLCBPYmplY3QuYXNzaWduKHt9LCByZXN0LCB7IHN0eWxlOiBtZXJnZWRTdHlsZSwgY2xhc3NOYW1lOiBjbGFzc05hbWVWYWx1ZSwgY2hpbGRyZW46IGNoaWxkcmVuIH0pKSk7XG59KTtcbkNvbC5kaXNwbGF5TmFtZSA9ICdDb2wnO1xuZXhwb3J0IGRlZmF1bHQgQ29sOyIsbnVsbF0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMifQ==
@@ -3,7 +3,10 @@ import type { GridRowProps } from './interface';
3
3
  import './style';
4
4
  export interface GridProps extends GridRowProps {
5
5
  }
6
- export declare const Grid: import("react").NamedExoticComponent<PropsWithChildren<GridProps>> & {
6
+ export declare const Grid: {
7
+ (props: PropsWithChildren<GridProps>): import("react/jsx-runtime").JSX.Element;
8
+ displayName: string;
9
+ } & {
7
10
  Row: import("react").NamedExoticComponent<PropsWithChildren<GridRowProps>>;
8
11
  Col: import("react").NamedExoticComponent<PropsWithChildren<import("./interface").GridColProps>>;
9
12
  };
@@ -1,15 +1,16 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { memo } from 'react';
3
2
  import { Row } from './Row';
4
3
  import { Col } from './Col';
5
4
  import './style';
6
- var GridInner = /*#__PURE__*/memo(function (props) {
5
+ // `Row` is already memoized, so no extra `memo` wrapper is needed here — this
6
+ // thin alias just exposes `Row` under the `Grid` name with `Grid.Row`/`Grid.Col`.
7
+ var GridInner = function GridInner(props) {
7
8
  return _jsx(Row, Object.assign({}, props));
8
- });
9
+ };
9
10
  GridInner.displayName = 'Grid';
10
11
  export var Grid = Object.assign(GridInner, {
11
12
  Row: Row,
12
13
  Col: Col
13
14
  });
14
15
  export default Grid;
15
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvR3JpZC9HcmlkLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9HcmlkL0dyaWQudHN4Il0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJtZW1vIiwiUm93IiwiQ29sIiwiR3JpZElubmVyIiwicHJvcHMiLCJPYmplY3QiLCJhc3NpZ24iLCJkaXNwbGF5TmFtZSIsIkdyaWQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLEdBQUcsSUFBSUMsSUFBSSxRQUFRLG1CQUFtQjtBQ0EvQyxTQUFTQyxJQUFJLFFBQVEsT0FBTztBQUc1QixTQUFTQyxHQUFHLFFBQVEsT0FBTztBQUMzQixTQUFTQyxHQUFHLFFBQVEsT0FBTztBQUMzQixPQUFPLFNBQVM7QUFJaEIsSUFBTUMsU0FBUyxnQkFBR0gsSUFBSSxDQUErQixVQUFBSSxLQUFLO0VBQUEsT0FBSUwsSUFBQSxDQUFDRSxHQUFHLEVBQUFJLE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLRixLQUFLLENBQUEsQ0FBSTtBQUFBLEVBQUM7QUFFakZELFNBQVMsQ0FBQ0ksV0FBVyxHQUFHLE1BQU07QUFFOUIsT0FBTyxJQUFNQyxJQUFJLEdBQUdILE1BQU0sQ0FBQ0MsTUFBTSxDQUFDSCxTQUFTLEVBQUU7RUFBRUYsR0FBRyxFQUFIQSxHQUFHO0VBQUVDLEdBQUcsRUFBSEE7QUFBRyxDQUFFLENBQUM7QUFFMUQsZUFBZU0sSUFBSSIsImZpbGUiOiJjb21wb25lbnRzL0dyaWQvR3JpZC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzeCBhcyBfanN4IH0gZnJvbSBcInJlYWN0L2pzeC1ydW50aW1lXCI7XG5pbXBvcnQgeyBtZW1vIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi9Sb3cnO1xuaW1wb3J0IHsgQ29sIH0gZnJvbSAnLi9Db2wnO1xuaW1wb3J0ICcuL3N0eWxlJztcbmNvbnN0IEdyaWRJbm5lciA9IG1lbW8ocHJvcHMgPT4gX2pzeChSb3csIE9iamVjdC5hc3NpZ24oe30sIHByb3BzKSkpO1xuR3JpZElubmVyLmRpc3BsYXlOYW1lID0gJ0dyaWQnO1xuZXhwb3J0IGNvbnN0IEdyaWQgPSBPYmplY3QuYXNzaWduKEdyaWRJbm5lciwgeyBSb3csIENvbCB9KTtcbmV4cG9ydCBkZWZhdWx0IEdyaWQ7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
16
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvR3JpZC9HcmlkLmpzIiwiY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9HcmlkL0dyaWQudHN4Il0sIm5hbWVzIjpbImpzeCIsIl9qc3giLCJSb3ciLCJDb2wiLCJHcmlkSW5uZXIiLCJwcm9wcyIsIk9iamVjdCIsImFzc2lnbiIsImRpc3BsYXlOYW1lIiwiR3JpZCJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsR0FBRyxJQUFJQyxJQUFJLFFBQVEsbUJBQW1CO0FDRS9DLFNBQVNDLEdBQUcsUUFBUSxPQUFPO0FBQzNCLFNBQVNDLEdBQUcsUUFBUSxPQUFPO0FBQzNCLE9BQU8sU0FBUztBQUloQjtBQUNBO0FBQ0EsSUFBTUMsU0FBUyxHQUFHLFNBQVpBLFNBQVNBLENBQUlDLEtBQW1DO0VBQUEsT0FBS0osSUFBQSxDQUFDQyxHQUFHLEVBQUFJLE1BQUEsQ0FBQUMsTUFBQSxDQUFBLENBQUEsQ0FBQSxFQUFLRixLQUFLLENBQUEsQ0FBSTtBQUFBO0FBRTdFRCxTQUFTLENBQUNJLFdBQVcsR0FBRyxNQUFNO0FBRTlCLE9BQU8sSUFBTUMsSUFBSSxHQUFHSCxNQUFNLENBQUNDLE1BQU0sQ0FBQ0gsU0FBUyxFQUFFO0VBQUVGLEdBQUcsRUFBSEEsR0FBRztFQUFFQyxHQUFHLEVBQUhBO0FBQUcsQ0FBRSxDQUFDO0FBRTFELGVBQWVNLElBQUkiLCJmaWxlIjoiY29tcG9uZW50cy9HcmlkL0dyaWQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBqc3ggYXMgX2pzeCB9IGZyb20gXCJyZWFjdC9qc3gtcnVudGltZVwiO1xuaW1wb3J0IHsgUm93IH0gZnJvbSAnLi9Sb3cnO1xuaW1wb3J0IHsgQ29sIH0gZnJvbSAnLi9Db2wnO1xuaW1wb3J0ICcuL3N0eWxlJztcbi8vIGBSb3dgIGlzIGFscmVhZHkgbWVtb2l6ZWQsIHNvIG5vIGV4dHJhIGBtZW1vYCB3cmFwcGVyIGlzIG5lZWRlZCBoZXJlIOKAlCB0aGlzXG4vLyB0aGluIGFsaWFzIGp1c3QgZXhwb3NlcyBgUm93YCB1bmRlciB0aGUgYEdyaWRgIG5hbWUgd2l0aCBgR3JpZC5Sb3dgL2BHcmlkLkNvbGAuXG5jb25zdCBHcmlkSW5uZXIgPSAocHJvcHMpID0+IF9qc3goUm93LCBPYmplY3QuYXNzaWduKHt9LCBwcm9wcykpO1xuR3JpZElubmVyLmRpc3BsYXlOYW1lID0gJ0dyaWQnO1xuZXhwb3J0IGNvbnN0IEdyaWQgPSBPYmplY3QuYXNzaWduKEdyaWRJbm5lciwgeyBSb3csIENvbCB9KTtcbmV4cG9ydCBkZWZhdWx0IEdyaWQ7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -10,7 +10,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
10
10
  import { memo } from 'react';
11
11
  import classnames, { joinCls } from '../../utils/classnames';
12
12
  import { GRID_CLASS, GRID_DEFAULT_WRAP, GRID_ROW_PREFIX } from './constants';
13
- import { buildGutterVars, buildJustifyVars } from './helper';
13
+ import { buildAlignVars, buildGutterVars, buildJustifyVars } from './helper';
14
14
  export var Row = /*#__PURE__*/memo(function (props) {
15
15
  var children = props.children,
16
16
  gutter = props.gutter,
@@ -26,10 +26,12 @@ export var Row = /*#__PURE__*/memo(function (props) {
26
26
  var classes = classnames(prefixCls);
27
27
  var gutterVars = buildGutterVars(gutter);
28
28
  var _buildJustifyVars = buildJustifyVars(justify),
29
- justifyValue = _buildJustifyVars.staticValue,
30
29
  justifyVars = _buildJustifyVars.cssVars;
31
- var mergedStyle = Object.assign(Object.assign(Object.assign({}, style), gutterVars), justifyVars);
32
- var classNameValue = joinCls(classes(), align && classes("".concat(GRID_CLASS.align, "-").concat(align)), justifyValue && classes("".concat(GRID_CLASS.justify, "-").concat(justifyValue)), wrap === false && classes(GRID_CLASS.noWrap), className);
30
+ var _buildAlignVars = buildAlignVars(align),
31
+ alignVars = _buildAlignVars.cssVars;
32
+ // User-supplied `style` wins over the computed gutter/justify/align CSS vars.
33
+ var mergedStyle = Object.assign(Object.assign(Object.assign(Object.assign({}, gutterVars), justifyVars), alignVars), style);
34
+ var classNameValue = joinCls(classes(), wrap === false && classes(GRID_CLASS.noWrap), className);
33
35
  return _jsx("div", Object.assign({}, rest, {
34
36
  style: mergedStyle,
35
37
  className: classNameValue,
@@ -38,4 +40,4 @@ export var Row = /*#__PURE__*/memo(function (props) {
38
40
  });
39
41
  Row.displayName = 'Row';
40
42
  export default Row;
41
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvR3JpZC9Sb3cuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0dyaWQvUm93LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJtZW1vIiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJHUklEX0NMQVNTIiwiR1JJRF9ERUZBVUxUX1dSQVAiLCJHUklEX1JPV19QUkVGSVgiLCJidWlsZEd1dHRlclZhcnMiLCJidWlsZEp1c3RpZnlWYXJzIiwiUm93IiwicHJvcHMiLCJjaGlsZHJlbiIsImd1dHRlciIsImFsaWduIiwianVzdGlmeSIsIl9wcm9wcyR3cmFwIiwid3JhcCIsImNsYXNzTmFtZSIsInN0eWxlIiwiX3Byb3BzJHByZWZpeENscyIsInByZWZpeENscyIsInJlc3QiLCJjbGFzc2VzIiwiZ3V0dGVyVmFycyIsIl9idWlsZEp1c3RpZnlWYXJzIiwianVzdGlmeVZhbHVlIiwic3RhdGljVmFsdWUiLCJqdXN0aWZ5VmFycyIsImNzc1ZhcnMiLCJtZXJnZWRTdHlsZSIsImFzc2lnbiIsImNsYXNzTmFtZVZhbHVlIiwiY29uY2F0Iiwibm9XcmFwIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVHLENBQUMsQ0FB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S0FBSyxPQUFBbUIsTUFBQSxDQUFJbkIsS0FBSyxDQUFFLENBQUMsRUFDaERZLFlBQVksSUFBSUgsT0FBTyxJQUFBVSxNQUFBLENBQUk1QixVQUFVLENBQUNVLE9BQU8sT0FBQWtCLE1BQUEsQ0FBSVAsWUFBWSxDQUFFLENBQUMsRUFDaEVULElBQUksS0FBSyxLQUFLLElBQUlNLE9BQU8sQ0FBQ2xCLFVBQVUsQ0FBQzZCLE1BQU0sQ0FBQyxFQUM1Q2hCLFNBQVMsQ0FDVjtFQUVELE9BQ0VqQixJQUFBLENBQUEsS0FBQSxFQUFBVixNQUFBLENBQUF3QyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ01ULElBQUksRUFBQTtJQUNSSCxLQUFLLEVBQUVXLFdBQVc7SUFDbEJaLFNBQVMsRUFBRWMsY0FBYztJQUFBcEIsUUFBQSxFQUV4QkE7RUFBUSxDQUFBLENBQUEsQ0FDTDtBQUVWLENBQUMsQ0FBQztBQUVGRixHQUFHLENBQUN5QixXQUFXLEdBQUcsS0FBSztBQUV2QixlQUFlekIsR0FBRyIsImZpbGUiOiJjb21wb25lbnRzL0dyaWQvUm93LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcywgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBHUklEX0NMQVNTLCBHUklEX0RFRkFVTFRfV1JBUCwgR1JJRF9ST1dfUFJFRklYIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYnVpbGRHdXR0ZXJWYXJzLCBidWlsZEp1c3RpZnlWYXJzIH0gZnJvbSAnLi9oZWxwZXInO1xuZXhwb3J0IGNvbnN0IFJvdyA9IG1lbW8ocHJvcHMgPT4ge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4sIGd1dHRlciwgYWxpZ24sIGp1c3RpZnksIHdyYXAgPSBHUklEX0RFRkFVTFRfV1JBUCwgY2xhc3NOYW1lLCBzdHlsZSwgcHJlZml4Q2xzID0gR1JJRF9ST1dfUFJFRklYIH0gPSBwcm9wcywgcmVzdCA9IF9fcmVzdChwcm9wcywgW1wiY2hpbGRyZW5cIiwgXCJndXR0ZXJcIiwgXCJhbGlnblwiLCBcImp1c3RpZnlcIiwgXCJ3cmFwXCIsIFwiY2xhc3NOYW1lXCIsIFwic3R5bGVcIiwgXCJwcmVmaXhDbHNcIl0pO1xuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc25hbWVzKHByZWZpeENscyk7XG4gICAgY29uc3QgZ3V0dGVyVmFycyA9IGJ1aWxkR3V0dGVyVmFycyhndXR0ZXIpO1xuICAgIGNvbnN0IHsgc3RhdGljVmFsdWU6IGp1c3RpZnlWYWx1ZSwgY3NzVmFyczoganVzdGlmeVZhcnMgfSA9IGJ1aWxkSnVzdGlmeVZhcnMoanVzdGlmeSk7XG4gICAgY29uc3QgbWVyZ2VkU3R5bGUgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSwgc3R5bGUpLCBndXR0ZXJWYXJzKSwganVzdGlmeVZhcnMpO1xuICAgIGNvbnN0IGNsYXNzTmFtZVZhbHVlID0gam9pbkNscyhjbGFzc2VzKCksIGFsaWduICYmIGNsYXNzZXMoYCR7R1JJRF9DTEFTUy5hbGlnbn0tJHthbGlnbn1gKSwganVzdGlmeVZhbHVlICYmIGNsYXNzZXMoYCR7R1JJRF9DTEFTUy5qdXN0aWZ5fS0ke2p1c3RpZnlWYWx1ZX1gKSwgd3JhcCA9PT0gZmFsc2UgJiYgY2xhc3NlcyhHUklEX0NMQVNTLm5vV3JhcCksIGNsYXNzTmFtZSk7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgc3R5bGU6IG1lcmdlZFN0eWxlLCBjbGFzc05hbWU6IGNsYXNzTmFtZVZhbHVlLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpKTtcbn0pO1xuUm93LmRpc3BsYXlOYW1lID0gJ1Jvdyc7XG5leHBvcnQgZGVmYXVsdCBSb3c7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
43
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvR3JpZC9Sb3cuanMiLCJjb21wb25lbnRzL3NyYy9jb21wb25lbnRzL0dyaWQvUm93LnRzeCJdLCJuYW1lcyI6WyJfX3Jlc3QiLCJzIiwiZSIsInQiLCJwIiwiT2JqZWN0IiwicHJvdG90eXBlIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaW5kZXhPZiIsImdldE93blByb3BlcnR5U3ltYm9scyIsImkiLCJsZW5ndGgiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImpzeCIsIl9qc3giLCJtZW1vIiwiY2xhc3NuYW1lcyIsImpvaW5DbHMiLCJHUklEX0NMQVNTIiwiR1JJRF9ERUZBVUxUX1dSQVAiLCJHUklEX1JPV19QUkVGSVgiLCJidWlsZEFsaWduVmFycyIsImJ1aWxkR3V0dGVyVmFycyIsImJ1aWxkSnVzdGlmeVZhcnMiLCJSb3ciLCJwcm9wcyIsImNoaWxkcmVuIiwiZ3V0dGVyIiwiYWxpZ24iLCJqdXN0aWZ5IiwiX3Byb3BzJHdyYXAiLCJ3cmFwIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJfcHJvcHMkcHJlZml4Q2xzIiwicHJlZml4Q2xzIiwicmVzdCIsImNsYXNzZXMiLCJndXR0ZXJWYXJzIiwiX2J1aWxkSnVzdGlmeVZhcnMiLCJqdXN0aWZ5VmFycyIsImNzc1ZhcnMiLCJfYnVpbGRBbGlnblZhcnMiLCJhbGlnblZhcnMiLCJtZXJnZWRTdHlsZSIsImFzc2lnbiIsImNsYXNzTmFtZVZhbHVlIiwibm9XcmFwIiwiZGlzcGxheU5hbWUiXSwibWFwcGluZ3MiOiJBQUFBLElBQUlBLE1BQU0sR0FBSSxJQUFJLElBQUksSUFBSSxDQUFDQSxNQUFNLElBQUssVUFBVUMsQ0FBQyxFQUFFQyxDQUFDLEVBQUU7RUFDbEQsSUFBSUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztFQUNWLEtBQUssSUFBSUMsQ0FBQyxJQUFJSCxDQUFDLEVBQUUsSUFBSUksTUFBTSxDQUFDQyxTQUFTLENBQUNDLGNBQWMsQ0FBQ0MsSUFBSSxDQUFDUCxDQUFDLEVBQUVH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Q0FBRTtFQUU1RixJQUFNYSxjQUFjLEdBQUc3QixPQUFPLENBQUNvQixPQUFPLENBQUEsQ0FBRSxFQUFFTixJQUFJLEtBQUssS0FBSyxJQUFJTSxPQUFPLENBQUNuQixVQUFVLENBQUM2QixNQUFNLENBQUMsRUFBRWYsU0FBUyxDQUFDO0VBRWxHLE9BQ0VsQixJQUFBLENBQUEsS0FBQSxFQUFBVixNQUFBLENBQUF5QyxNQUFBLENBQUEsQ0FBQSxDQUFBLEVBQ01ULElBQUksRUFBQTtJQUNSSCxLQUFLLEVBQUVXLFdBQVc7SUFDbEJaLFNBQVMsRUFBRWMsY0FBYztJQUFBcEIsUUFBQSxFQUV4QkE7RUFBUSxDQUFBLENBQUEsQ0FDTDtBQUVWLENBQUMsQ0FBQztBQUVGRixHQUFHLENBQUN3QixXQUFXLEdBQUcsS0FBSztBQUV2QixlQUFleEIsR0FBRyIsImZpbGUiOiJjb21wb25lbnRzL0dyaWQvUm93LmpzIiwic291cmNlc0NvbnRlbnQiOlsidmFyIF9fcmVzdCA9ICh0aGlzICYmIHRoaXMuX19yZXN0KSB8fCBmdW5jdGlvbiAocywgZSkge1xuICAgIHZhciB0ID0ge307XG4gICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApICYmIGUuaW5kZXhPZihwKSA8IDApXG4gICAgICAgIHRbcF0gPSBzW3BdO1xuICAgIGlmIChzICE9IG51bGwgJiYgdHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMgPT09IFwiZnVuY3Rpb25cIilcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIHAgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHMpOyBpIDwgcC5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKGUuaW5kZXhPZihwW2ldKSA8IDAgJiYgT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKHMsIHBbaV0pKVxuICAgICAgICAgICAgICAgIHRbcFtpXV0gPSBzW3BbaV1dO1xuICAgICAgICB9XG4gICAgcmV0dXJuIHQ7XG59O1xuaW1wb3J0IHsganN4IGFzIF9qc3ggfSBmcm9tIFwicmVhY3QvanN4LXJ1bnRpbWVcIjtcbmltcG9ydCB7IG1lbW8gfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgY2xhc3NuYW1lcywgeyBqb2luQ2xzIH0gZnJvbSAnLi4vLi4vdXRpbHMvY2xhc3NuYW1lcyc7XG5pbXBvcnQgeyBHUklEX0NMQVNTLCBHUklEX0RFRkFVTFRfV1JBUCwgR1JJRF9ST1dfUFJFRklYIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYnVpbGRBbGlnblZhcnMsIGJ1aWxkR3V0dGVyVmFycywgYnVpbGRKdXN0aWZ5VmFycyB9IGZyb20gJy4vaGVscGVyJztcbmV4cG9ydCBjb25zdCBSb3cgPSBtZW1vKHByb3BzID0+IHtcbiAgICBjb25zdCB7IGNoaWxkcmVuLCBndXR0ZXIsIGFsaWduLCBqdXN0aWZ5LCB3cmFwID0gR1JJRF9ERUZBVUxUX1dSQVAsIGNsYXNzTmFtZSwgc3R5bGUsIHByZWZpeENscyA9IEdSSURfUk9XX1BSRUZJWCB9ID0gcHJvcHMsIHJlc3QgPSBfX3Jlc3QocHJvcHMsIFtcImNoaWxkcmVuXCIsIFwiZ3V0dGVyXCIsIFwiYWxpZ25cIiwgXCJqdXN0aWZ5XCIsIFwid3JhcFwiLCBcImNsYXNzTmFtZVwiLCBcInN0eWxlXCIsIFwicHJlZml4Q2xzXCJdKTtcbiAgICBjb25zdCBjbGFzc2VzID0gY2xhc3NuYW1lcyhwcmVmaXhDbHMpO1xuICAgIGNvbnN0IGd1dHRlclZhcnMgPSBidWlsZEd1dHRlclZhcnMoZ3V0dGVyKTtcbiAgICBjb25zdCB7IGNzc1ZhcnM6IGp1c3RpZnlWYXJzIH0gPSBidWlsZEp1c3RpZnlWYXJzKGp1c3RpZnkpO1xuICAgIGNvbnN0IHsgY3NzVmFyczogYWxpZ25WYXJzIH0gPSBidWlsZEFsaWduVmFycyhhbGlnbik7XG4gICAgLy8gVXNlci1zdXBwbGllZCBgc3R5bGVgIHdpbnMgb3ZlciB0aGUgY29tcHV0ZWQgZ3V0dGVyL2p1c3RpZnkvYWxpZ24gQ1NTIHZhcnMuXG4gICAgY29uc3QgbWVyZ2VkU3R5bGUgPSBPYmplY3QuYXNzaWduKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbihPYmplY3QuYXNzaWduKHt9LCBndXR0ZXJWYXJzKSwganVzdGlmeVZhcnMpLCBhbGlnblZhcnMpLCBzdHlsZSk7XG4gICAgY29uc3QgY2xhc3NOYW1lVmFsdWUgPSBqb2luQ2xzKGNsYXNzZXMoKSwgd3JhcCA9PT0gZmFsc2UgJiYgY2xhc3NlcyhHUklEX0NMQVNTLm5vV3JhcCksIGNsYXNzTmFtZSk7XG4gICAgcmV0dXJuIChfanN4KFwiZGl2XCIsIE9iamVjdC5hc3NpZ24oe30sIHJlc3QsIHsgc3R5bGU6IG1lcmdlZFN0eWxlLCBjbGFzc05hbWU6IGNsYXNzTmFtZVZhbHVlLCBjaGlsZHJlbjogY2hpbGRyZW4gfSkpKTtcbn0pO1xuUm93LmRpc3BsYXlOYW1lID0gJ1Jvdyc7XG5leHBvcnQgZGVmYXVsdCBSb3c7IixudWxsXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYyJ9
@@ -1,4 +1,4 @@
1
- import type { GridBreakpoint, GridJustify } from './interface';
1
+ import type { GridAlign, GridBreakpoint, GridJustify } from './interface';
2
2
  export declare const GRID_ALIGN: {
3
3
  readonly top: "top";
4
4
  readonly middle: "middle";
@@ -22,27 +22,29 @@ export declare const GRID_DEFAULT_GUTTER: [number, number];
22
22
  export declare const GRID_FLEX_AUTO = "auto";
23
23
  export declare const GRID_BREAKPOINTS: GridBreakpoint[];
24
24
  export declare const GRID_JUSTIFY_CSS: Record<GridJustify, string>;
25
+ export declare const GRID_ALIGN_CSS: Record<GridAlign, string>;
25
26
  export declare const GRID_BREAKPOINT_MIN_WIDTH: Record<GridBreakpoint, number>;
26
27
  export declare const GRID_CSS_VARS: {
27
28
  readonly gutterX: "--om-grid-gutter-x";
28
29
  readonly gutterY: "--om-grid-gutter-y";
29
30
  readonly justify: "--om-grid-justify";
31
+ readonly align: "--om-grid-align";
30
32
  readonly colFlex: "--om-grid-col-flex";
31
33
  };
32
34
  interface GridResponsiveCSSVars {
33
35
  gutterX: string;
34
36
  gutterY: string;
35
37
  justify: string;
38
+ align: string;
36
39
  colFlex: string;
37
40
  }
38
41
  export declare const GRID_RESPONSIVE_CSS_VARS: Record<GridBreakpoint, GridResponsiveCSSVars>;
39
42
  export declare const GRID_CLASS: {
40
43
  readonly noWrap: "no-wrap";
41
- readonly align: "align";
42
- readonly justify: "justify";
43
44
  readonly offset: "offset";
44
45
  readonly order: "order";
45
46
  readonly push: "push";
46
47
  readonly pull: "pull";
48
+ readonly flex: "flex";
47
49
  };
48
50
  export {};