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>
146 lines (145 loc) • 27.5 kB
JavaScript
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 _rcMotion = _interopRequireDefault(require("rc-motion"));
var _classnames = _interopRequireDefault(require("classnames"));
var _warning = _interopRequireDefault(require("../_util/warning"));
var _configProvider = require("../config-provider");
require("./style");
var _excluded = ["children", "className", "color", "intent", "minHeight", "size", "spinning", "style", "text", "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 _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 ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
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 _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-spinner";
var Spinner = function Spinner(props) {
var _ref = props || {},
children = _ref.children,
className = _ref.className,
color = _ref.color,
intent = _ref.intent,
minHeight = _ref.minHeight,
sizeProp = _ref.size,
spinning = _ref.spinning,
style = _ref.style,
text = _ref.text,
value = _ref.value,
otherProps = _objectWithoutProperties(_ref, _excluded);
var isNestedPattern = function isNestedPattern() {
return children !== null;
};
if (value !== null && value !== undefined) {
(0, _warning["default"])(value >= 0 && value <= 1, "Spinner", "prop `value` 范围为 0 到 1,请传入在此范围内的数字");
}
var classSet = (0, _classnames["default"])(className, "".concat(prefix, "-base"), "".concat(prefix, "-").concat(intent), _defineProperty({}, "".concat(prefix, "-spinning"), spinning && value === null));
var _useContext = (0, _react.useContext)(_configProvider.ConfigContext),
sizeContext = _useContext.size;
var size = (0, _configProvider.getComputedSize)(sizeProp, sizeContext);
var dimension;
var strokeWidth;
if (size === "medium") {
dimension = 28;
strokeWidth = 3;
} else if (size === "mini") {
dimension = 16;
strokeWidth = 2;
} else if (size === "small") {
dimension = 20;
strokeWidth = 2.5;
} else {
dimension = 38;
strokeWidth = 4;
}
var spinStyle = {};
var strokeStyle = {};
if (color) {
spinStyle.color = color;
}
if (value !== null && value !== undefined) {
strokeStyle.strokeDashoffset = "".concat(282.743 - value * 282.743, "px");
}
var spin = _react["default"].createElement("div", _extends({
className: classSet,
style: _objectSpread(_objectSpread({}, spinStyle), style || {})
}, otherProps), _react["default"].createElement("svg", {
fill: "none",
width: dimension,
height: dimension,
viewBox: "0 0 100 100",
className: "".concat(prefix, "-circular")
}, _react["default"].createElement("circle", {
className: "".concat(prefix, "-track"),
cx: "50%",
cy: "50%",
r: "44",
strokeWidth: 100 / dimension * strokeWidth
}), _react["default"].createElement("circle", {
className: "".concat(prefix, "-head"),
cx: "50%",
cy: "50%",
r: "44",
strokeWidth: 100 / dimension * strokeWidth,
style: _objectSpread({
strokeDasharray: "282.743px"
}, strokeStyle)
})), !!text && _react["default"].createElement("div", {
className: "".concat(prefix, "-text")
}, text));
if (isNestedPattern()) {
return _react["default"].createElement(_rcMotion["default"], {
motionName: "fade"
}, function (_ref2) {
var cls = _ref2.className,
sty = _ref2.style;
return _react["default"].createElement("div", _extends({
className: "".concat(cls, " ").concat(prefix, "-nestedWrapper"),
style: sty
}, otherProps), spinning && spin, _react["default"].createElement("div", {
className: (0, _classnames["default"])("".concat(prefix, "-container"), _defineProperty({}, "".concat(prefix, "-blur"), spinning)),
style: {
minHeight: minHeight
}
}, children));
});
}
return spin;
};
Spinner.displayName = "Spinner";
Spinner.propTypes = {
children: _propTypes["default"].node,
className: _propTypes["default"].string,
color: _propTypes["default"].string,
intent: _propTypes["default"].oneOf(["normal", "primary", "success", "warning", "danger"]),
minHeight: _propTypes["default"].number,
size: _propTypes["default"].oneOf(["mini", "small", "medium", "large"]),
spinning: _propTypes["default"].bool,
style: _propTypes["default"].object,
text: _propTypes["default"].string,
value: _propTypes["default"].number
};
Spinner.defaultProps = {
children: null,
className: "",
color: null,
intent: "normal",
minHeight: 200,
size: "small",
spinning: true,
style: {},
text: null,
value: null
};
var _default = exports["default"] = Spinner;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfcHJvcFR5cGVzIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9yY01vdGlvbiIsIl9jbGFzc25hbWVzIiwiX3dhcm5pbmciLCJfY29uZmlnUHJvdmlkZXIiLCJfZXhjbHVkZWQiLCJlIiwiX19lc01vZHVsZSIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIldlYWtNYXAiLCJyIiwidCIsIl90eXBlb2YiLCJoYXMiLCJnZXQiLCJuIiwiX19wcm90b19fIiwiYSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwidSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImkiLCJzZXQiLCJfZXh0ZW5kcyIsImFzc2lnbiIsImJpbmQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJhcHBseSIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiX29iamVjdFNwcmVhZCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzIiwiX29iamVjdFdpdGhvdXRQcm9wZXJ0aWVzTG9vc2UiLCJzIiwiaW5jbHVkZXMiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsInByZWZpeCIsIlNwaW5uZXIiLCJwcm9wcyIsIl9yZWYiLCJjaGlsZHJlbiIsImNsYXNzTmFtZSIsImNvbG9yIiwiaW50ZW50IiwibWluSGVpZ2h0Iiwic2l6ZVByb3AiLCJzaXplIiwic3Bpbm5pbmciLCJzdHlsZSIsInRleHQiLCJvdGhlclByb3BzIiwiaXNOZXN0ZWRQYXR0ZXJuIiwidW5kZWZpbmVkIiwid2FybmluZyIsImNsYXNzU2V0IiwiY2xhc3NOYW1lcyIsImNvbmNhdCIsIl91c2VDb250ZXh0IiwidXNlQ29udGV4dCIsIkNvbmZpZ0NvbnRleHQiLCJzaXplQ29udGV4dCIsImdldENvbXB1dGVkU2l6ZSIsImRpbWVuc2lvbiIsInN0cm9rZVdpZHRoIiwic3BpblN0eWxlIiwic3Ryb2tlU3R5bGUiLCJzdHJva2VEYXNob2Zmc2V0Iiwic3BpbiIsImNyZWF0ZUVsZW1lbnQiLCJmaWxsIiwid2lkdGgiLCJoZWlnaHQiLCJ2aWV3Qm94IiwiY3giLCJjeSIsInN0cm9rZURhc2hhcnJheSIsIm1vdGlvbk5hbWUiLCJfcmVmMiIsImNscyIsInN0eSIsImRpc3BsYXlOYW1lIiwicHJvcFR5cGVzIiwiUHJvcFR5cGVzIiwibm9kZSIsInN0cmluZyIsIm9uZU9mIiwibnVtYmVyIiwiYm9vbCIsIm9iamVjdCIsImRlZmF1bHRQcm9wcyIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL2NvbXBvbmVudHMvc3Bpbm5lci9TcGlubmVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCB9IGZyb20gXCJyZWFjdFwiXG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gXCJwcm9wLXR5cGVzXCJcbmltcG9ydCBDU1NNb3Rpb24gZnJvbSBcInJjLW1vdGlvblwiXG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tIFwiY2xhc3NuYW1lc1wiXG5pbXBvcnQgd2FybmluZyBmcm9tIFwiLi4vX3V0aWwvd2FybmluZ1wiXG5pbXBvcnQgeyBDb25maWdDb250ZXh0LCBnZXRDb21wdXRlZFNpemUgfSBmcm9tIFwiLi4vY29uZmlnLXByb3ZpZGVyXCJcbmltcG9ydCBcIi4vc3R5bGVcIlxuXG5jb25zdCBwcmVmaXggPSBcImFkdWktc3Bpbm5lclwiXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNwaW5uZXJQcm9wcyB7XG4gIFtrZXk6IHN0cmluZ106IGFueVxuICAvKipcbiAgICog5a2Q6IqC54K5XG4gICAqL1xuICBjaGlsZHJlbj86IFJlYWN0LlJlYWN0Tm9kZVxuICAvKipcbiAgICog6ZmE5Yqg57G75ZCNXG4gICAqL1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIOiuvue9ruminOiJslxuICAgKi9cbiAgY29sb3I/OiBzdHJpbmcgfCBudWxsXG4gIC8qKlxuICAgKiDorr7nva7nsbvlnotcbiAgICovXG4gIGludGVudD86IFwibm9ybWFsXCIgfCBcInByaW1hcnlcIiB8IFwic3VjY2Vzc1wiIHwgXCJpbmZvXCIgfCBcIndhcm5pbmdcIiB8IFwiZGFuZ2VyXCJcbiAgLyoqXG4gICAqIOiuvue9riBTcGlubmVyIOWcqOaciSBjaGlsZHJlbiDkuLogZmFsc2XvvIjljbPnqbrnirbmgIHvvInml7bnmoTmnIDlsI/pq5jluqZcbiAgICovXG4gIG1pbkhlaWdodD86IG51bWJlclxuICAvKipcbiAgICogc3ZnIOWuvemrmOWwuuWvuFxuICAgKi9cbiAgc2l6ZT86IFwibWluaVwiIHwgXCJzbWFsbFwiIHwgXCJtZWRpdW1cIiB8IFwibGFyZ2VcIlxuICAvKipcbiAgICog5piv5ZCm6L2s5YqoXG4gICAqL1xuICBzcGlubmluZz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIOmZhOWKoOagt+W8j1xuICAgKi9cbiAgc3R5bGU/OiBSZWFjdC5DU1NQcm9wZXJ0aWVzXG4gIC8qKlxuICAgKiDmloflrZfmj5DnpLpcbiAgICovXG4gIHRleHQ/OiBzdHJpbmcgfCBudWxsXG4gIC8qKlxuICAgKiDmjIflrprliqDovb3ov5vluqZcbiAgICovXG4gIHZhbHVlPzogbnVtYmVyIHwgbnVsbFxufVxuXG4vKipcbiAqIOaXi+i9rOWKoOi9veeUqOS6juWRiuefpeeUqOaIt+S/oeaBr+WGheWuueeahOWKoOi9veeKtuaAge+8jOmAmuW4uOaYr+WNs+aXtuOAgeefreaXtueahOOAglxuICovXG5jb25zdCBTcGlubmVyOiBSZWFjdC5GQzxJU3Bpbm5lclByb3BzPiA9IChwcm9wczogSVNwaW5uZXJQcm9wcykgPT4ge1xuICBjb25zdCB7XG4gICAgY2hpbGRyZW4sXG4gICAgY2xhc3NOYW1lLFxuICAgIGNvbG9yLFxuICAgIGludGVudCxcbiAgICBtaW5IZWlnaHQsXG4gICAgc2l6ZTogc2l6ZVByb3AsXG4gICAgc3Bpbm5pbmcsXG4gICAgc3R5bGUsXG4gICAgdGV4dCxcbiAgICB2YWx1ZSxcbiAgICAuLi5vdGhlclByb3BzXG4gIH0gPSBwcm9wcyB8fCB7fVxuICBjb25zdCBpc05lc3RlZFBhdHRlcm4gPSAoKSA9PiBjaGlsZHJlbiAhPT0gbnVsbFxuXG4gIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgd2FybmluZyhcbiAgICAgIHZhbHVlID49IDAgJiYgdmFsdWUgPD0gMSxcbiAgICAgIFwiU3Bpbm5lclwiLFxuICAgICAgXCJwcm9wIGB2YWx1ZWAg6IyD5Zu05Li6IDAg5YiwIDHvvIzor7fkvKDlhaXlnKjmraTojIPlm7TlhoXnmoTmlbDlrZdcIlxuICAgIClcbiAgfVxuXG4gIGNvbnN0IGNsYXNzU2V0ID0gY2xhc3NOYW1lcyhcbiAgICBjbGFzc05hbWUsXG4gICAgYCR7cHJlZml4fS1iYXNlYCxcbiAgICBgJHtwcmVmaXh9LSR7aW50ZW50fWAsXG4gICAge1xuICAgICAgW2Ake3ByZWZpeH0tc3Bpbm5pbmdgXTogc3Bpbm5pbmcgJiYgdmFsdWUgPT09IG51bGwsXG4gICAgfVxuICApXG5cbiAgY29uc3QgeyBzaXplOiBzaXplQ29udGV4dCB9ID0gdXNlQ29udGV4dChDb25maWdDb250ZXh0KVxuICBjb25zdCBzaXplID0gZ2V0Q29tcHV0ZWRTaXplKHNpemVQcm9wLCBzaXplQ29udGV4dClcblxuICBsZXQgZGltZW5zaW9uXG4gIGxldCBzdHJva2VXaWR0aFxuXG4gIGlmIChzaXplID09PSBcIm1lZGl1bVwiKSB7XG4gICAgZGltZW5zaW9uID0gMjhcbiAgICBzdHJva2VXaWR0aCA9IDNcbiAgfSBlbHNlIGlmIChzaXplID09PSBcIm1pbmlcIikge1xuICAgIGRpbWVuc2lvbiA9IDE2XG4gICAgc3Ryb2tlV2lkdGggPSAyXG4gIH0gZWxzZSBpZiAoc2l6ZSA9PT0gXCJzbWFsbFwiKSB7XG4gICAgZGltZW5zaW9uID0gMjBcbiAgICBzdHJva2VXaWR0aCA9IDIuNVxuICB9IGVsc2Uge1xuICAgIGRpbWVuc2lvbiA9IDM4XG4gICAgc3Ryb2tlV2lkdGggPSA0XG4gIH1cblxuICBjb25zdCBzcGluU3R5bGU6IFJlYWN0LkNTU1Byb3BlcnRpZXMgPSB7fVxuICBjb25zdCBzdHJva2VTdHlsZTogUmVhY3QuQ1NTUHJvcGVydGllcyA9IHt9XG4gIGlmIChjb2xvcikge1xuICAgIHNwaW5TdHlsZS5jb2xvciA9IGNvbG9yXG4gIH1cbiAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICBzdHJva2VTdHlsZS5zdHJva2VEYXNob2Zmc2V0ID0gYCR7MjgyLjc0MyAtIHZhbHVlICogMjgyLjc0M31weGBcbiAgfVxuXG4gIGNvbnN0IHNwaW4gPSAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc1NldH1cbiAgICAgIHN0eWxlPXt7XG4gICAgICAgIC4uLnNwaW5TdHlsZSxcbiAgICAgICAgLi4uKHN0eWxlIHx8IHt9KSxcbiAgICAgIH19XG4gICAgICB7Li4ub3RoZXJQcm9wc31cbiAgICA+XG4gICAgICA8c3ZnXG4gICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgd2lkdGg9e2RpbWVuc2lvbn1cbiAgICAgICAgaGVpZ2h0PXtkaW1lbnNpb259XG4gICAgICAgIHZpZXdCb3g9XCIwIDAgMTAwIDEwMFwiXG4gICAgICAgIGNsYXNzTmFtZT17YCR7cHJlZml4fS1jaXJjdWxhcmB9XG4gICAgICA+XG4gICAgICAgIDxjaXJjbGVcbiAgICAgICAgICBjbGFzc05hbWU9e2Ake3ByZWZpeH0tdHJhY2tgfVxuICAgICAgICAgIGN4PVwiNTAlXCJcbiAgICAgICAgICBjeT1cIjUwJVwiXG4gICAgICAgICAgcj1cIjQ0XCJcbiAgICAgICAgICBzdHJva2VXaWR0aD17KDEwMCAvIGRpbWVuc2lvbikgKiBzdHJva2VXaWR0aH1cbiAgICAgICAgLz5cbiAgICAgICAgPGNpcmNsZVxuICAgICAgICAgIGNsYXNzTmFtZT17YCR7cHJlZml4fS1oZWFkYH1cbiAgICAgICAgICBjeD1cIjUwJVwiXG4gICAgICAgICAgY3k9XCI1MCVcIlxuICAgICAgICAgIHI9XCI0NFwiXG4gICAgICAgICAgc3Ryb2tlV2lkdGg9eygxMDAgLyBkaW1lbnNpb24pICogc3Ryb2tlV2lkdGh9XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHN0cm9rZURhc2hhcnJheTogXCIyODIuNzQzcHhcIixcbiAgICAgICAgICAgIC4uLnN0cm9rZVN0eWxlLFxuICAgICAgICAgIH19XG4gICAgICAgIC8+XG4gICAgICA8L3N2Zz5cbiAgICAgIHshIXRleHQgJiYgPGRpdiBjbGFzc05hbWU9e2Ake3ByZWZpeH0tdGV4dGB9Pnt0ZXh0fTwvZGl2Pn1cbiAgICA8L2Rpdj5cbiAgKVxuXG4gIGlmIChpc05lc3RlZFBhdHRlcm4oKSkge1xuICAgIHJldHVybiAoXG4gICAgICA8Q1NTTW90aW9uIG1vdGlvbk5hbWU9XCJmYWRlXCI+XG4gICAgICAgIHsoeyBjbGFzc05hbWU6IGNscywgc3R5bGU6IHN0eSB9KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgJHtjbHN9ICR7cHJlZml4fS1uZXN0ZWRXcmFwcGVyYH1cbiAgICAgICAgICAgICAgc3R5bGU9e3N0eX1cbiAgICAgICAgICAgICAgey4uLm90aGVyUHJvcHN9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtzcGlubmluZyAmJiBzcGlufVxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGAke3ByZWZpeH0tY29udGFpbmVyYCwge1xuICAgICAgICAgICAgICAgICAgW2Ake3ByZWZpeH0tYmx1cmBdOiBzcGlubmluZyxcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICBzdHlsZT17eyBtaW5IZWlnaHQgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApXG4gICAgICAgIH19XG4gICAgICA8L0NTU01vdGlvbj5cbiAgICApXG4gIH1cbiAgcmV0dXJuIHNwaW5cbn1cblxuU3Bpbm5lci5kaXNwbGF5TmFtZSA9IFwiU3Bpbm5lclwiXG5cblNwaW5uZXIucHJvcFR5cGVzID0ge1xuICAvKipcbiAgICog5a2Q6IqC54K5XG4gICAqL1xuICBjaGlsZHJlbjogUHJvcFR5cGVzLm5vZGUsXG4gIC8qKlxuICAgKiDpmYTliqDnsbvlkI1cbiAgICovXG4gIGNsYXNzTmFtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqXG4gICAqIOiuvue9ruminOiJslxuICAgKi9cbiAgY29sb3I6IFByb3BUeXBlcy5zdHJpbmcsXG4gIC8qKlxuICAgKiDorr7nva7nsbvlnotcbiAgICovXG4gIGludGVudDogUHJvcFR5cGVzLm9uZU9mKFtcbiAgICBcIm5vcm1hbFwiLFxuICAgIFwicHJpbWFyeVwiLFxuICAgIFwic3VjY2Vzc1wiLFxuICAgIFwid2FybmluZ1wiLFxuICAgIFwiZGFuZ2VyXCIsXG4gIF0pLFxuICAvKipcbiAgICog6K6+572uIFNwaW5uZXIg5Zyo5pyJIGNoaWxkcmVuIOS4uiBmYWxzZe+8iOWNs+epuueKtuaAge+8ieaXtueahOacgOWwj+mrmOW6plxuICAgKi9cbiAgbWluSGVpZ2h0OiBQcm9wVHlwZXMubnVtYmVyLFxuICAvKipcbiAgICogc3ZnIOWuvemrmOWwuuWvuFxuICAgKi9cbiAgc2l6ZTogUHJvcFR5cGVzLm9uZU9mKFtcIm1pbmlcIiwgXCJzbWFsbFwiLCBcIm1lZGl1bVwiLCBcImxhcmdlXCJdKSxcbiAgLyoqXG4gICAqIOaYr+WQpui9rOWKqFxuICAgKi9cbiAgc3Bpbm5pbmc6IFByb3BUeXBlcy5ib29sLFxuICAvKipcbiAgICog6ZmE5Yqg5qC35byPXG4gICAqL1xuICBzdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgLyoqXG4gICAqIOaWh+Wtl+aPkOekulxuICAgKi9cbiAgdGV4dDogUHJvcFR5cGVzLnN0cmluZyxcbiAgLyoqXG4gICAqIOaMh+WumuWKoOi9vei/m+W6plxuICAgKi9cbiAgdmFsdWU6IFByb3BUeXBlcy5udW1iZXIsXG59XG5cblNwaW5uZXIuZGVmYXVsdFByb3BzID0ge1xuICBjaGlsZHJlbjogbnVsbCxcbiAgY2xhc3NOYW1lOiBcIlwiLFxuICBjb2xvcjogbnVsbCxcbiAgaW50ZW50OiBcIm5vcm1hbFwiLFxuICBtaW5IZWlnaHQ6IDIwMCxcbiAgc2l6ZTogXCJzbWFsbFwiLFxuICBzcGlubmluZzogdHJ1ZSxcbiAgc3R5bGU6IHt9LFxuICB0ZXh0OiBudWxsLFxuICB2YWx1ZTogbnVsbCxcbn1cblxuZXhwb3J0IGRlZmF1bHQgU3Bpbm5lclxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsVUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsU0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksV0FBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sZUFBQSxHQUFBTixPQUFBO0FBQ0FBLE9BQUE7QUFBZ0IsSUFBQU8sU0FBQTtBQUFBLFNBQUFMLHVCQUFBTSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFB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QUFBLFlBQUErRixhQUFBO1FBQ0UzQixTQUFTLEVBQUUsSUFBQWMsc0JBQVUsS0FBQUMsTUFBQSxDQUFJcEIsTUFBTSxpQkFBQWxCLGVBQUEsUUFBQXNDLE1BQUEsQ0FDekJwQixNQUFNLFlBQVVXLFFBQVEsQ0FDN0IsQ0FBRTtRQUNIQyxLQUFLLEVBQUU7VUFBRUosU0FBUyxFQUFUQTtRQUFVO01BQUUsR0FFcEJKLFFBQ0UsQ0FDRixDQUFDO0lBRVYsQ0FDUyxDQUFDO0VBRWhCO0VBQ0EsT0FBTzJCLElBQUk7QUFDYixDQUFDO0FBRUQ5QixPQUFPLENBQUMyQyxXQUFXLEdBQUcsU0FBUztBQUUvQjNDLE9BQU8sQ0FBQzRDLFNBQVMsR0FBRztFQUlsQnpDLFFBQVEsRUFBRTBDLHFCQUFTLENBQUNDLElBQUk7RUFJeEIxQyxTQUFTLEVBQUV5QyxxQkFBUyxDQUFDRSxNQUFNO0VBSTNCMUMsS0FBSyxFQUFFd0MscUJBQVMsQ0FBQ0UsTUFBTTtFQUl2QnpDLE1BQU0sRUFBRXVDLHFCQUFTLENBQUNHLEtBQUssQ0FBQyxDQUN0QixRQUFRLEVBQ1IsU0FBUyxFQUNULFNBQVMsRUFDVCxTQUFTLEVBQ1QsUUFBUSxDQUNULENBQUM7RUFJRnpDLFNBQVMsRUFBRXNDLHFCQUFTLENBQUNJLE1BQU07RUFJM0J4QyxJQUFJLEVBQUVvQyxxQkFBUyxDQUFDRyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztFQUkzRHRDLFFBQVEsRUFBRW1DLHFCQUFTLENBQUNLLElBQUk7RUFJeEJ2QyxLQUFLLEVBQUVrQyxxQkFBUyxDQUFDTSxNQUFNO0VBSXZCdkMsSUFBSSxFQUFFaUMscUJBQVMsQ0FBQ0UsTUFBTTtFQUl0QjlELEtBQUssRUFBRTRELHFCQUFTLENBQUNJO0FBQ25CLENBQUM7QUFFRGpELE9BQU8sQ0FBQ29ELFlBQVksR0FBRztFQUNyQmpELFFBQVEsRUFBRSxJQUFJO0VBQ2RDLFNBQVMsRUFBRSxFQUFFO0VBQ2JDLEtBQUssRUFBRSxJQUFJO0VBQ1hDLE1BQU0sRUFBRSxRQUFRO0VBQ2hCQyxTQUFTLEVBQUUsR0FBRztFQUNkRSxJQUFJLEVBQUUsT0FBTztFQUNiQyxRQUFRLEVBQUUsSUFBSTtFQUNkQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0VBQ1RDLElBQUksRUFBRSxJQUFJO0VBQ1YzQixLQUFLLEVBQUU7QUFDVCxDQUFDO0FBQUEsSUFBQW9FLFFBQUEsR0FBQUMsT0FBQSxjQUVjdEQsT0FBTyIsImlnbm9yZUxpc3QiOltdfQ==
;