UNPKG

adui

Version:

<div> <img src="https://wxa.wxs.qq.com/mpweb/delivery/legacy/wxadtouch/upload/t1/od834zef_52939fc6.png" style="margin:40px 0 0 -8px; background-color: #fcfcfc; box-shadow: none;" /> </div>

156 lines (155 loc) 33.6 kB
"use strict"; function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); } Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _classnames = _interopRequireDefault(require("classnames")); var _Context = require("./Context"); var _configProvider = require("../config-provider"); var _Group = _interopRequireDefault(require("./Group")); var _icon = _interopRequireDefault(require("../icon")); var _popover = _interopRequireDefault(require("../popover")); var _useActive2 = require("../_util/hooks/use-active"); require("./style"); var _excluded = ["checked", "children", "className", "disabled", "helper", "helperIcon", "helperProps", "onChange", "onClick", "onMouseDown", "size", "value"]; function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; } function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; } function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; } function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); } function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } } function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; } function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } } function _arrayWithHoles(r) { if (Array.isArray(r)) return r; } function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; } var prefix = "adui-radio"; var Radio = (0, _react.forwardRef)(function (_ref, refProp) { var checkedProp = _ref.checked, children = _ref.children, className = _ref.className, disabled = _ref.disabled, helper = _ref.helper, helperIcon = _ref.helperIcon, helperProps = _ref.helperProps, onChange = _ref.onChange, onClick = _ref.onClick, onMouseDown = _ref.onMouseDown, sizeProp = _ref.size, value = _ref.value, otherProps = _objectWithoutProperties(_ref, _excluded); var _useState = (0, _react.useState)(!!checkedProp), _useState2 = _slicedToArray(_useState, 2), checked = _useState2[0], setChecked = _useState2[1]; var _useContext = (0, _react.useContext)(_Context.GroupContext), disabledContext = _useContext.disabled, handleGroupValueChange = _useContext.handleGroupValueChange, sizeContext = _useContext.size, valueContext = _useContext.value; var labelRef = (0, _react.useRef)(null); var ref = refProp || labelRef; var _useActive = (0, _useActive2.useActive)({ ref: ref }), handleMouseDown = _useActive.handleMouseDown; if (checkedProp !== null && checked !== !!checkedProp) { setChecked(!!checkedProp); } var _useContext2 = (0, _react.useContext)(_configProvider.ConfigContext), sizeConfig = _useContext2.size; var size = (0, _configProvider.getComputedSize)(sizeProp, sizeContext, sizeConfig); var popover = helper ? _react["default"].createElement("span", { role: "none", onClick: function onClick(e) { e.stopPropagation(); } }, _react["default"].createElement(_popover["default"], _extends({ alignEdge: false, popup: helper }, helperProps), _react["default"].createElement(_icon["default"], { icon: helperIcon || "help-circle", color: "var(--gray-600)", interactive: true, className: "".concat(prefix, "-helper") }))) : null; var classSet = (0, _classnames["default"])(className, "".concat(prefix, "-base"), "".concat(prefix, "-").concat(size), _defineProperty(_defineProperty(_defineProperty({}, "".concat(prefix, "-checked"), valueContext !== null && valueContext !== undefined ? valueContext === (value === null ? children === null || children === void 0 ? void 0 : children.toString() : value) : checked), "".concat(prefix, "-noChildren"), !children), "".concat(prefix, "-disabled"), disabledContext || disabled)); var handleClick = function handleClick(e) { if (onClick) { onClick(e); } var computedValue = value === null ? children === null || children === void 0 ? void 0 : children.toString() : value; if ((valueContext !== null ? valueContext === computedValue : checked) || disabled || disabledContext) { return; } if (handleGroupValueChange) { handleGroupValueChange(computedValue === undefined ? "" : computedValue); } else { if (checkedProp === null) { setChecked(true); } if (onChange) { onChange(true); } } }; var handleKeyDown = function handleKeyDown(e) { if (e.key === "Enter") { handleClick(e); } }; var handleLabelMouseDown = function handleLabelMouseDown(e) { if (onMouseDown) { onMouseDown(e); } handleMouseDown(); }; return _react["default"].createElement("label", _extends({ "aria-checked": checked, className: classSet, onClick: handleClick, onKeyDown: handleKeyDown, ref: ref, role: "radio", onMouseDown: handleLabelMouseDown }, otherProps), _react["default"].createElement("span", { className: "".concat(prefix, "-indicator") }), !!children && _react["default"].createElement("span", null, children), popover); }); Radio.Group = _Group["default"]; Radio.displayName = "Radio"; Radio.propTypes = { checked: _propTypes["default"].oneOf([null, true, false]), children: _propTypes["default"].node, className: _propTypes["default"].string, disabled: _propTypes["default"].bool, helper: _propTypes["default"].node, helperIcon: _propTypes["default"].any, helperProps: _propTypes["default"].object, onChange: _propTypes["default"].func, onClick: _propTypes["default"].func, size: _propTypes["default"].oneOf(["mini", "small", "medium", "large"]), value: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].number]) }; Radio.defaultProps = { checked: null, children: "", className: undefined, disabled: false, helper: null, helperIcon: "help-circle", helperProps: {}, onChange: null, onClick: null, size: "small", value: null }; var _default = exports["default"] = Radio; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9jbGFzc25hbWVzIiwiX0NvbnRleHQiLCJfY29uZmlnUHJvdmlkZXIiLCJfR3JvdXAiLCJfaWNvbiIsIl9wb3BvdmVyIiwiX3VzZUFjdGl2ZTIiLCJfZXhjbHVkZWQiLCJlIiwiX19lc01vZHVsZSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIldlYWtNYXAiLCJyIiwidCIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJfZXh0ZW5kcyIsImFzc2lnbiIsImJpbmQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcHBseSIsIl9zbGljZWRUb0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIl9hcnJheUxpa2VUb0FycmF5IiwidG9TdHJpbmciLCJzbGljZSIsImNvbnN0cnVjdG9yIiwibmFtZSIsIkFycmF5IiwiZnJvbSIsInRlc3QiLCJsIiwiaXRlcmF0b3IiLCJmIiwibyIsIm5leHQiLCJkb25lIiwicHVzaCIsImlzQXJyYXkiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsImdldE93blByb3BlcnR5U3ltYm9scyIsInMiLCJpbmNsdWRlcyIsInByb3BlcnR5SXNFbnVtZXJhYmxlIiwicHJlZml4IiwiUmFkaW8iLCJmb3J3YXJkUmVmIiwiX3JlZiIsInJlZlByb3AiLCJjaGVja2VkUHJvcCIsImNoZWNrZWQiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsImRpc2FibGVkIiwiaGVscGVyIiwiaGVscGVySWNvbiIsImhlbHBlclByb3BzIiwib25DaGFuZ2UiLCJvbkNsaWNrIiwib25Nb3VzZURvd24iLCJzaXplUHJvcCIsInNpemUiLCJvdGhlclByb3BzIiwiX3VzZVN0YXRlIiwidXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwic2V0Q2hlY2tlZCIsIl91c2VDb250ZXh0IiwidXNlQ29udGV4dCIsIkdyb3VwQ29udGV4dCIsImRpc2FibGVkQ29udGV4dCIsImhhbmRsZUdyb3VwVmFsdWVDaGFuZ2UiLCJzaXplQ29udGV4dCIsInZhbHVlQ29udGV4dCIsImxhYmVsUmVmIiwidXNlUmVmIiwicmVmIiwiX3VzZUFjdGl2ZSIsInVzZUFjdGl2ZSIsImhhbmRsZU1vdXNlRG93biIsIl91c2VDb250ZXh0MiIsIkNvbmZpZ0NvbnRleHQiLCJzaXplQ29uZmlnIiwiZ2V0Q29tcHV0ZWRTaXplIiwicG9wb3ZlciIsImNyZWF0ZUVsZW1lbnQiLCJyb2xlIiwic3RvcFByb3BhZ2F0aW9uIiwiYWxpZ25FZGdlIiwicG9wdXAiLCJpY29uIiwiY29sb3IiLCJpbnRlcmFjdGl2ZSIsImNvbmNhdCIsImNsYXNzU2V0IiwiY2xhc3NOYW1lcyIsInVuZGVmaW5lZCIsImhhbmRsZUNsaWNrIiwiY29tcHV0ZWRWYWx1ZSIsImhhbmRsZUtleURvd24iLCJrZXkiLCJoYW5kbGVMYWJlbE1vdXNlRG93biIsIm9uS2V5RG93biIsIkdyb3VwIiwiZGlzcGxheU5hbWUiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJvbmVPZiIsIm5vZGUiLCJzdHJpbmciLCJib29sIiwiYW55Iiwib2JqZWN0IiwiZnVuYyIsIm9uZU9mVHlwZSIsIm51bWJlciIsImRlZmF1bHRQcm9wcyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL2NvbXBvbmVudHMvcmFkaW8vUmFkaW8udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGpzeC1hMTF5L25vLW5vbmludGVyYWN0aXZlLWVsZW1lbnQtdG8taW50ZXJhY3RpdmUtcm9sZSAqL1xuaW1wb3J0IFJlYWN0LCB7IGZvcndhcmRSZWYsIHVzZUNvbnRleHQsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIlxuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5pbXBvcnQgeyBHcm91cENvbnRleHQgfSBmcm9tIFwiLi9Db250ZXh0XCJcbmltcG9ydCB7IENvbmZpZ0NvbnRleHQsIGdldENvbXB1dGVkU2l6ZSB9IGZyb20gXCIuLi9jb25maWctcHJvdmlkZXJcIlxuaW1wb3J0IEdyb3VwIGZyb20gXCIuL0dyb3VwXCJcbmltcG9ydCBJY29uLCB7IEljb25OYW1lcyB9IGZyb20gXCIuLi9pY29uXCJcbmltcG9ydCBQb3BvdmVyLCB7IElQb3BvdmVyUHJvcHMgfSBmcm9tIFwiLi4vcG9wb3ZlclwiXG5pbXBvcnQgeyB1c2VBY3RpdmUgfSBmcm9tIFwiLi4vX3V0aWwvaG9va3MvdXNlLWFjdGl2ZVwiXG5pbXBvcnQgXCIuL3N0eWxlXCJcblxuY29uc3QgcHJlZml4ID0gXCJhZHVpLXJhZGlvXCJcblxuZXhwb3J0IGludGVyZmFjZSBJUmFkaW9Qcm9wcyB7XG4gIFtrZXk6IHN0cmluZ106IGFueVxuICAvKipcbiAgICog5piv5ZCm6YCJ5LitXG4gICAqL1xuICBjaGVja2VkPzogbnVsbCB8IGJvb2xlYW5cbiAgLyoqXG4gICAqIOWtkOiKgueCuVxuICAgKi9cbiAgY2hpbGRyZW4/OiBSZWFjdC5SZWFjdE5vZGVcbiAgLyoqXG4gICAqIOmZhOWKoOexu+WQjVxuICAgKi9cbiAgY2xhc3NOYW1lPzogc3RyaW5nXG4gIC8qKlxuICAgKiDmmK/lkKbnpoHnlKhcbiAgICovXG4gIGRpc2FibGVkPzogYm9vbGVhblxuICAvKipcbiAgICog5Yqg5YWl6Zeu5Y+35rCU5rOh5o+Q56S65YaF5a65XG4gICAqL1xuICBoZWxwZXI/OiBSZWFjdC5SZWFjdE5vZGVcbiAgLyoqXG4gICAqIOiHquWumuS5iemXruWPt+awlOazoeeahCBJY29uXG4gICAqL1xuICBoZWxwZXJJY29uPzogSWNvbk5hbWVzXG4gIC8qKlxuICAgKiDpl67lj7fmsJTms6Hmj5DnpLrnmoQgcHJvcHPvvIzkvJrlsIbmraTlr7nosaHpg73kvKDpgJLnu5kgPFBvcG92ZXIgLz5cbiAgICovXG4gIGhlbHBlclByb3BzPzogSVBvcG92ZXJQcm9wc1xuICAvKipcbiAgICog6YCJ5Lit5oCB5Y+R55Sf5Y+Y5YyW5pe255qEIGhhbmRsZXJcbiAgICovXG4gIG9uQ2hhbmdlPzogKChjaGVja2VkOiBib29sZWFuKSA9PiB2b2lkKSB8IG51bGxcbiAgLyoqXG4gICAqIOeCueWHu+aXtueahCBoYW5kbGVyXG4gICAqL1xuICBvbkNsaWNrPzpcbiAgICB8ICgoXG4gICAgICAgIGU6XG4gICAgICAgICAgfCBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxMYWJlbEVsZW1lbnQ+XG4gICAgICAgICAgfCBSZWFjdC5LZXlib2FyZEV2ZW50PEhUTUxMYWJlbEVsZW1lbnQ+XG4gICAgICApID0+IHZvaWQpXG4gICAgfCBudWxsXG4gIC8qKlxuICAgKiBvbk1vdXNlRG93biDml7bnmoQgaGFuZGxlclxuICAgKi9cbiAgb25Nb3VzZURvd24/OiAoZTogUmVhY3QuTW91c2VFdmVudDxIVE1MTGFiZWxFbGVtZW50PikgPT4gdm9pZFxuICAvKipcbiAgICog6K6+572u5bC65a+4XG4gICAqL1xuICBzaXplPzogXCJtaW5pXCIgfCBcInNtYWxsXCIgfCBcIm1lZGl1bVwiIHwgXCJsYXJnZVwiXG4gIC8qKlxuICAgKiDlgLzvvIzlj6rlnKjkvb/nlKggUmFkaW8uR3JvdXAg5pe25Lya6K+75Y+W5L2/55SoXG4gICAqL1xuICB2YWx1ZT86IG51bGwgfCBSZWFjdC5SZWFjdFRleHRcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmFkaW9cbiAgZXh0ZW5kcyBSZWFjdC5Gb3J3YXJkUmVmRXhvdGljQ29tcG9uZW50PFxuICAgIElSYWRpb1Byb3BzICYgUmVhY3QuUmVmQXR0cmlidXRlczxIVE1MTGFiZWxFbGVtZW50PlxuICA+IHtcbiAgR3JvdXA6IHR5cGVvZiBHcm91cFxufVxuXG4vKipcbiAqIOWNlemAieaPkOS+m+e7meeUqOaIt+WcqOS6kuaWpeeahOWkmuS4qumAiemhueS4re+8jOWvuemAiemhueWGheWuuei/m+ihjOWNleS4qumAieaLqeOAglxuICovXG4vLyBAdHMtaWdub3JlXG5jb25zdCBSYWRpbzogSVJhZGlvID0gZm9yd2FyZFJlZihcbiAgKFxuICAgIHtcbiAgICAgIGNoZWNrZWQ6IGNoZWNrZWRQcm9wLFxuICAgICAgY2hpbGRyZW4sXG4gICAgICBjbGFzc05hbWUsXG4gICAgICBkaXNhYmxlZCxcbiAgICAgIGhlbHBlcixcbiAgICAgIGhlbHBlckljb24sXG4gICAgICBoZWxwZXJQcm9wcyxcbiAgICAgIG9uQ2hhbmdlLFxuICAgICAgb25DbGljayxcbiAgICAgIG9uTW91c2VEb3duLFxuICAgICAgc2l6ZTogc2l6ZVByb3AsXG4gICAgICB2YWx1ZSxcbiAgICAgIC4uLm90aGVyUHJvcHNcbiAgICB9OiBJUmFkaW9Qcm9wcyxcbiAgICByZWZQcm9wXG4gICkgPT4ge1xuICAgIGNvbnN0IFtjaGVja2VkLCBzZXRDaGVja2VkXSA9IHVzZVN0YXRlKCEhY2hlY2tlZFByb3ApXG4gICAgY29uc3Qge1xuICAgICAgZGlzYWJsZWQ6IGRpc2FibGVkQ29udGV4dCxcbiAgICAgIGhhbmRsZUdyb3VwVmFsdWVDaGFuZ2UsXG4gICAgICBzaXplOiBzaXplQ29udGV4dCxcbiAgICAgIHZhbHVlOiB2YWx1ZUNvbnRleHQsXG4gICAgfSA9IHVzZUNvbnRleHQoR3JvdXBDb250ZXh0KVxuICAgIGNvbnN0IGxhYmVsUmVmID0gdXNlUmVmPEhUTUxMYWJlbEVsZW1lbnQ+KG51bGwpXG4gICAgY29uc3QgcmVmID0gcmVmUHJvcCB8fCBsYWJlbFJlZlxuICAgIGNvbnN0IHsgaGFuZGxlTW91c2VEb3duIH0gPSB1c2VBY3RpdmUoeyByZWYgfSlcblxuICAgIC8vIOebuOW9k+S6jueUn+WRveWRqOacnyBnZXREZXJpdmVkU3RhdGVGcm9tUHJvcHNcbiAgICBpZiAoY2hlY2tlZFByb3AgIT09IG51bGwgJiYgY2hlY2tlZCAhPT0gISFjaGVja2VkUHJvcCkge1xuICAgICAgc2V0Q2hlY2tlZCghIWNoZWNrZWRQcm9wKVxuICAgIH1cblxuICAgIGNvbnN0IHsgc2l6ZTogc2l6ZUNvbmZpZyB9ID0gdXNlQ29udGV4dChDb25maWdDb250ZXh0KVxuXG4gICAgY29uc3Qgc2l6ZSA9IGdldENvbXB1dGVkU2l6ZShzaXplUHJvcCwgc2l6ZUNvbnRleHQsIHNpemVDb25maWcpXG5cbiAgICBjb25zdCBwb3BvdmVyID0gaGVscGVyID8gKFxuICAgICAgPHNwYW5cbiAgICAgICAgcm9sZT1cIm5vbmVcIlxuICAgICAgICBvbkNsaWNrPXsoZSkgPT4ge1xuICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPFBvcG92ZXIgYWxpZ25FZGdlPXtmYWxzZX0gcG9wdXA9e2hlbHBlcn0gey4uLmhlbHBlclByb3BzfT5cbiAgICAgICAgICA8SWNvblxuICAgICAgICAgICAgaWNvbj17aGVscGVySWNvbiB8fCBcImhlbHAtY2lyY2xlXCJ9XG4gICAgICAgICAgICBjb2xvcj1cInZhcigtLWdyYXktNjAwKVwiXG4gICAgICAgICAgICBpbnRlcmFjdGl2ZVxuICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtwcmVmaXh9LWhlbHBlcmB9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9Qb3BvdmVyPlxuICAgICAgPC9zcGFuPlxuICAgICkgOiBudWxsXG5cbiAgICAvKipcbiAgICAgKiDlvZPmnIkgcmFkaW9Hcm91cCBjb250ZXh0IOaXtu+8jOS9v+eUqCB2YWx1Ze+8mlxuICAgICAqIOWmguaenOWtmOWcqCB2YWx1ZSBwcm9w77yM5YiZ55u05o6l5L2/55SoIHZhbHVl77ybXG4gICAgICog5aaC5p6c5LiN5a2Y5Zyo77yM5bCxIHN0cmluZyDljJYgY2hpbGRyZW4g5L2c5Li6IHZhbHVl44CCXG4gICAgICovXG4gICAgY29uc3QgY2xhc3NTZXQgPSBjbGFzc05hbWVzKFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgYCR7cHJlZml4fS1iYXNlYCxcbiAgICAgIGAke3ByZWZpeH0tJHtzaXplfWAsXG4gICAgICB7XG4gICAgICAgIFtgJHtwcmVmaXh9LWNoZWNrZWRgXTpcbiAgICAgICAgICB2YWx1ZUNvbnRleHQgIT09IG51bGwgJiYgdmFsdWVDb250ZXh0ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8gdmFsdWVDb250ZXh0ID09PSAodmFsdWUgPT09IG51bGwgPyBjaGlsZHJlbj8udG9TdHJpbmcoKSA6IHZhbHVlKVxuICAgICAgICAgICAgOiBjaGVja2VkLFxuICAgICAgICBbYCR7cHJlZml4fS1ub0NoaWxkcmVuYF06ICFjaGlsZHJlbixcbiAgICAgICAgW2Ake3ByZWZpeH0tZGlzYWJsZWRgXTogZGlzYWJsZWRDb250ZXh0IHx8IGRpc2FibGVkLFxuICAgICAgfVxuICAgIClcblxuICAgIGNvbnN0IGhhbmRsZUNsaWNrID0gKFxuICAgICAgZTpcbiAgICAgICAgfCBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxMYWJlbEVsZW1lbnQ+XG4gICAgICAgIHwgUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MTGFiZWxFbGVtZW50PlxuICAgICkgPT4ge1xuICAgICAgaWYgKG9uQ2xpY2spIHtcbiAgICAgICAgb25DbGljayhlKVxuICAgICAgfVxuICAgICAgY29uc3QgY29tcHV0ZWRWYWx1ZSA9IHZhbHVlID09PSBudWxsID8gY2hpbGRyZW4/LnRvU3RyaW5nKCkgOiB2YWx1ZVxuICAgICAgLyoqXG4gICAgICAgKiDljZXpgInkuI7lpJrpgInlpITnkIbngrnlh7vnmoTkuI3lkIzlnKjkuo7vvJpcbiAgICAgICAqIOWNlemAiemAieS4reeKtuaAgeaYr+WNlemhueeahO+8jOS4gOaXpumAieS4reS4jeWGjeinpuWPkeS6i+S7tuOAglxuICAgICAgICovXG4gICAgICBpZiAoXG4gICAgICAgICh2YWx1ZUNvbnRleHQgIT09IG51bGwgPyB2YWx1ZUNvbnRleHQgPT09IGNvbXB1dGVkVmFsdWUgOiBjaGVja2VkKSB8fFxuICAgICAgICBkaXNhYmxlZCB8fFxuICAgICAgICBkaXNhYmxlZENvbnRleHRcbiAgICAgICkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cbiAgICAgIGlmIChoYW5kbGVHcm91cFZhbHVlQ2hhbmdlKSB7XG4gICAgICAgIGhhbmRsZUdyb3VwVmFsdWVDaGFuZ2UoY29tcHV0ZWRWYWx1ZSA9PT0gdW5kZWZpbmVkID8gXCJcIiA6IGNvbXB1dGVkVmFsdWUpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoY2hlY2tlZFByb3AgPT09IG51bGwpIHtcbiAgICAgICAgICBzZXRDaGVja2VkKHRydWUpXG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9uQ2hhbmdlKSB7XG4gICAgICAgICAgb25DaGFuZ2UodHJ1ZSlcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZTogUmVhY3QuS2V5Ym9hcmRFdmVudDxIVE1MTGFiZWxFbGVtZW50PikgPT4ge1xuICAgICAgaWYgKGUua2V5ID09PSBcIkVudGVyXCIpIHtcbiAgICAgICAgaGFuZGxlQ2xpY2soZSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBoYW5kbGVMYWJlbE1vdXNlRG93biA9IChcbiAgICAgIGU6IFJlYWN0Lk1vdXNlRXZlbnQ8SFRNTExhYmVsRWxlbWVudCwgTW91c2VFdmVudD5cbiAgICApID0+IHtcbiAgICAgIGlmIChvbk1vdXNlRG93bikge1xuICAgICAgICBvbk1vdXNlRG93bihlKVxuICAgICAgfVxuXG4gICAgICBoYW5kbGVNb3VzZURvd24oKVxuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICA8bGFiZWxcbiAgICAgICAgYXJpYS1jaGVja2VkPXtjaGVja2VkfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzU2V0fVxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgcm9sZT1cInJhZGlvXCJcbiAgICAgICAgb25Nb3VzZURvd249e2hhbmRsZUxhYmVsTW91c2VEb3dufVxuICAgICAgICB7Li4ub3RoZXJQcm9wc31cbiAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtgJHtwcmVmaXh9LWluZGljYXRvcmB9IC8+XG4gICAgICAgIHshIWNoaWxkcmVuICYmIDxzcGFuPntjaGlsZHJlbn08L3NwYW4+fVxuICAgICAgICB7cG9wb3Zlcn1cbiAgICAgIDwvbGFiZWw+XG4gICAgKVxuICB9XG4pXG5cblJhZGlvLkdyb3VwID0gR3JvdXBcblxuUmFkaW8uZGlzcGxheU5hbWUgPSBcIlJhZGlvXCJcblxuUmFkaW8ucHJvcFR5cGVzID0ge1xuICAvKipcbiAgICog5piv5ZCm6YCJ5LitXG4gICAqL1xuICBjaGVja2VkOiBQcm9wVHlwZXMub25lT2YoW251bGwsIHRydWUsIGZhbHNlXSksXG4gIC8qKlxuICAgKiDlrZDoioLngrlcbiAgICovXG4gIGNoaWxkcmVuOiBQcm9wVHlwZXMubm9kZSxcbiAgLyoqXG4gICAqIOmZhOWKoOexu+WQjVxuICAgKi9cbiAgY2xhc3NOYW1lOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAvKipcbiAgICog5piv5ZCm56aB55SoXG4gICAqL1xuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gIC8qKlxuICAgKiDliqDlhaXpl67lj7fmsJTms6Hmj5DnpLrlhoXlrrlcbiAgICovXG4gIGhlbHBlcjogUHJvcFR5cGVzLm5vZGUsXG4gIC8qKlxuICAgKiDoh6rlrprkuYnpl67lj7fmsJTms6HnmoQgSWNvblxuICAgKi9cbiAgaGVscGVySWNvbjogUHJvcFR5cGVzLmFueSxcbiAgLyoqXG4gICAqIOmXruWPt+awlOazoeaPkOekuueahCBwcm9wc++8jOS8muWwhuatpOWvueixoemDveS8oOmAkue7mSA8UG9wb3ZlciAvPlxuICAgKi9cbiAgaGVscGVyUHJvcHM6IFByb3BUeXBlcy5vYmplY3QsXG4gIC8qKlxuICAgKiDpgInkuK3mgIHlj5HnlJ/lj5jljJbml7bnmoQgaGFuZGxlclxuICAgKi9cbiAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLFxuICAvKipcbiAgICog54K55Ye75pe255qEIGhhbmRsZXJcbiAgICovXG4gIG9uQ2xpY2s6IFByb3BUeXBlcy5mdW5jLFxuICAvKipcbiAgICog6K6+572u5bC65a+4XG4gICAqL1xuICBzaXplOiBQcm9wVHlwZXMub25lT2YoW1wibWluaVwiLCBcInNtYWxsXCIsIFwibWVkaXVtXCIsIFwibGFyZ2VcIl0pLFxuICAvKipcbiAgICog5YC877yM5Y+q5Zyo5L2/55SoIFJhZGlvLkdyb3VwIOaXtuS8muivu+WPluS9v+eUqFxuICAgKi9cbiAgdmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5udW1iZXJdKSxcbn1cblxuUmFkaW8uZGVmYXVsdFByb3BzID0ge1xuICBjaGVja2VkOiBudWxsLFxuICBjaGlsZHJlbjogXCJcIixcbiAgY2xhc3NOYW1lOiB1bmRlZmluZWQsXG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgaGVscGVyOiBudWxsLFxuICBoZWxwZXJJY29uOiBcImhlbHAtY2lyY2xlXCIsXG4gIGhlbHBlclByb3BzOiB7fSxcbiAgb25DaGFuZ2U6IG51bGwsXG4gIG9uQ2xpY2s6IG51bGwsXG4gIHNpemU6IFwic21hbGxcIixcbiAg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