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>

160 lines (159 loc) 27.9 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 _resizeObserverPolyfill = _interopRequireDefault(require("resize-observer-polyfill")); var _findDOMNode = _interopRequireDefault(require("rc-util/lib/Dom/findDOMNode")); var _toArray = _interopRequireDefault(require("rc-util/lib/Children/toArray")); var _ref3 = require("rc-util/lib/ref"); var _warning = _interopRequireDefault(require("../_util/warning")); 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 _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); } function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } } function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), 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 _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); } function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); } function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; } function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); } function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); } function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); } var supportRef = function supportRef(nodeOrComponent) { var _nodeOrComponent$type; if ((_nodeOrComponent$type = nodeOrComponent.type) !== null && _nodeOrComponent$type !== void 0 && _nodeOrComponent$type.$$typeof && nodeOrComponent.type.$$typeof.toString().includes("forward_ref")) { return false; } if (nodeOrComponent.type && nodeOrComponent.type.prototype && !nodeOrComponent.type.prototype.render) { return false; } if (typeof nodeOrComponent === "function") { return false; } return true; }; var ReactResizeObserver = function (_React$Component) { function ReactResizeObserver() { var _this; _classCallCheck(this, ReactResizeObserver); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = _callSuper(this, ReactResizeObserver, [].concat(args)); _this.resizeObserver = null; _this.childNode = null; _this.currentElement = null; _this.state = { width: 0, height: 0 }; _this.onResize = function (entries) { var onResize = _this.props.onResize; var _this$state = _this.state, widthState = _this$state.width, heightState = _this$state.height; var target = entries[0].target; var _target$getBoundingCl = target.getBoundingClientRect(), width = _target$getBoundingCl.width, height = _target$getBoundingCl.height; var _ref = [Math.floor(width), Math.floor(height)], fixedWidth = _ref[0], fixedHeight = _ref[1]; if (widthState !== fixedWidth || heightState !== fixedHeight) { var size = { width: fixedWidth, height: fixedHeight }; _this.setState(size); if (onResize) { onResize(size); } } }; _this.setChildNode = function (node) { _this.childNode = node; }; return _this; } _inherits(ReactResizeObserver, _React$Component); return _createClass(ReactResizeObserver, [{ key: "componentDidMount", value: function componentDidMount() { this.onComponentUpdated(); } }, { key: "componentDidUpdate", value: function componentDidUpdate() { this.onComponentUpdated(); } }, { key: "componentWillUnmount", value: function componentWillUnmount() { this.destroyObserver(); } }, { key: "onComponentUpdated", value: function onComponentUpdated() { var disabled = this.props.disabled; if (disabled) { this.destroyObserver(); return; } var element = (0, _findDOMNode["default"])(this.childNode || this); var elementChanged = element !== this.currentElement; if (elementChanged) { this.destroyObserver(); this.currentElement = element; } if (!this.resizeObserver && element) { this.resizeObserver = new _resizeObserverPolyfill["default"](this.onResize); this.resizeObserver.observe(element); } } }, { key: "destroyObserver", value: function destroyObserver() { if (this.resizeObserver) { this.resizeObserver.disconnect(); this.resizeObserver = null; } } }, { key: "render", value: function render() { var children = this.props.children; var childNodes = (0, _toArray["default"])(children); if (childNodes.length > 1) { (0, _warning["default"])(false, "ResizeObserver", "有多个 children,将只会在第一个元素上监听"); } else if (childNodes.length === 0) { (0, _warning["default"])(false, "ResizeObserver", "没有 children"); return null; } var childNode = childNodes[0]; if (React.isValidElement(childNode) && supportRef(childNode)) { var _ref2 = childNode, ref = _ref2.ref; childNodes[0] = React.cloneElement(childNode, { ref: (0, _ref3.composeRef)(ref, this.setChildNode) }); } return React.createElement(React.Fragment, null, childNodes.length === 1 ? childNodes[0] : childNodes.map(function (node, index) { if (!React.isValidElement(node) || "key" in node && node.key !== null) { return node; } return React.cloneElement(node, { key: "adui-observer-key-".concat(index) }); })); } }]); }(React.Component); ReactResizeObserver.displayName = "ResizeObserver"; var _default = exports["default"] = ReactResizeObserver; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9yZXNpemVPYnNlcnZlclBvbHlmaWxsIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9maW5kRE9NTm9kZSIsIl90b0FycmF5IiwiX3JlZjMiLCJfd2FybmluZyIsImUiLCJfX2VzTW9kdWxlIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiV2Vha01hcCIsInIiLCJ0IiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIl9jbGFzc0NhbGxDaGVjayIsIlR5cGVFcnJvciIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwibGVuZ3RoIiwibyIsImVudW1lcmFibGUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsIl90b1Byb3BlcnR5S2V5Iiwia2V5IiwiX2NyZWF0ZUNsYXNzIiwicHJvdG90eXBlIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJTdHJpbmciLCJOdW1iZXIiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsImNvbnN0cnVjdG9yIiwiYXBwbHkiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiUmVmZXJlbmNlRXJyb3IiLCJCb29sZWFuIiwidmFsdWVPZiIsInNldFByb3RvdHlwZU9mIiwiZ2V0UHJvdG90eXBlT2YiLCJiaW5kIiwiX2luaGVyaXRzIiwiY3JlYXRlIiwidmFsdWUiLCJfc2V0UHJvdG90eXBlT2YiLCJzdXBwb3J0UmVmIiwibm9kZU9yQ29tcG9uZW50IiwiX25vZGVPckNvbXBvbmVudCR0eXBlIiwidHlwZSIsIiQkdHlwZW9mIiwidG9TdHJpbmciLCJpbmNsdWRlcyIsInJlbmRlciIsIlJlYWN0UmVzaXplT2JzZXJ2ZXIiLCJfUmVhY3QkQ29tcG9uZW50IiwiX3RoaXMiLCJfbGVuIiwiYXJndW1lbnRzIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNvbmNhdCIsInJlc2l6ZU9ic2VydmVyIiwiY2hpbGROb2RlIiwiY3VycmVudEVsZW1lbnQiLCJzdGF0ZSIsIndpZHRoIiwiaGVpZ2h0Iiwib25SZXNpemUiLCJlbnRyaWVzIiwicHJvcHMiLCJfdGhpcyRzdGF0ZSIsIndpZHRoU3RhdGUiLCJoZWlnaHRTdGF0ZSIsInRhcmdldCIsIl90YXJnZXQkZ2V0Qm91bmRpbmdDbCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsIl9yZWYiLCJNYXRoIiwiZmxvb3IiLCJmaXhlZFdpZHRoIiwiZml4ZWRIZWlnaHQiLCJzaXplIiwic2V0U3RhdGUiLCJzZXRDaGlsZE5vZGUiLCJub2RlIiwiY29tcG9uZW50RGlkTW91bnQiLCJvbkNvbXBvbmVudFVwZGF0ZWQiLCJjb21wb25lbnREaWRVcGRhdGUiLCJjb21wb25lbnRXaWxsVW5tb3VudCIsImRlc3Ryb3lPYnNlcnZlciIsImRpc2FibGVkIiwiZWxlbWVudCIsImZpbmRET01Ob2RlIiwiZWxlbWVudENoYW5nZWQiLCJSZXNpemVPYnNlcnZlciIsIm9ic2VydmUiLCJkaXNjb25uZWN0IiwiY2hpbGRyZW4iLCJjaGlsZE5vZGVzIiwidG9BcnJheSIsIndhcm5pbmciLCJpc1ZhbGlkRWxlbWVudCIsIl9yZWYyIiwicmVmIiwiY2xvbmVFbGVtZW50IiwiY29tcG9zZVJlZiIsImNyZWF0ZUVsZW1lbnQiLCJGcmFnbWVudCIsIm1hcCIsImluZGV4IiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9jb21wb25lbnRzL3Jlc2l6ZS1vYnNlcnZlci9SZXNpemVPYnNlcnZlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNpemVPYnNlcnZlciDkvJrku6UgY2xhc3Mg57uE5Lu255qE5b2i5byP5a2Y5Zyo77yMXG4gKiDlm6DkuLrlhbbkvb/nlKggZmluZERvbU5vZGUodGhpcykg5a6e546wIGNoaWxkcmVuIOS4uiBmYyDml7bkuI3og73nu5kgcmVmIOeahOaDheWGtVxuICog5aaC5p6cIFJlc2l6ZU9ic2VydmVyIOS5n+aYryBmY++8jOWwseayoeacieWKnuazleWcqOS4jea3u+WKoOmineWklue7k+aehOeahOaDheWGteS4i+aLv+WIsCBkb20g5LqGXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlICovXG4vLyBAdHMtbm9jaGVja1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCJcbmltcG9ydCBSZXNpemVPYnNlcnZlciBmcm9tIFwicmVzaXplLW9ic2VydmVyLXBvbHlmaWxsXCJcbmltcG9ydCBmaW5kRE9NTm9kZSBmcm9tIFwicmMtdXRpbC9saWIvRG9tL2ZpbmRET01Ob2RlXCJcbmltcG9ydCB0b0FycmF5IGZyb20gXCJyYy11dGlsL2xpYi9DaGlsZHJlbi90b0FycmF5XCJcbmltcG9ydCB7IGNvbXBvc2VSZWYgfSBmcm9tIFwicmMtdXRpbC9saWIvcmVmXCJcbmltcG9ydCB3YXJuaW5nIGZyb20gXCIuLi9fdXRpbC93YXJuaW5nXCJcblxuaW50ZXJmYWNlIFJlc2l6ZU9ic2VydmVyRW50cnkge1xuICByZWFkb25seSBib3JkZXJCb3hTaXplOiBSZXNpemVPYnNlcnZlckVudHJ5Qm94U2l6ZVxuICByZWFkb25seSBjb250ZW50Qm94U2l6ZTogUmVzaXplT2JzZXJ2ZXJFbnRyeUJveFNpemVcbiAgcmVhZG9ubHkgY29udGVudFJlY3Q6IGFueVxuICByZWFkb25seSB0YXJnZXQ6IEVsZW1lbnRcbn1cbmludGVyZmFjZSBSZXNpemVPYnNlcnZlckVudHJ5Qm94U2l6ZSB7XG4gIGJsb2NrU2l6ZTogbnVtYmVyXG4gIGlubGluZVNpemU6IG51bWJlclxufVxuXG5jb25zdCBzdXBwb3J0UmVmID0gKG5vZGVPckNvbXBvbmVudCkgPT4ge1xuICBpZiAoXG4gICAgbm9kZU9yQ29tcG9uZW50LnR5cGU/LiQkdHlwZW9mICYmXG4gICAgbm9kZU9yQ29tcG9uZW50LnR5cGUuJCR0eXBlb2YudG9TdHJpbmcoKS5pbmNsdWRlcyhcImZvcndhcmRfcmVmXCIpXG4gICkge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgLy8gRnVuY3Rpb24gY29tcG9uZW50IG5vZGVcbiAgaWYgKFxuICAgIG5vZGVPckNvbXBvbmVudC50eXBlICYmXG4gICAgbm9kZU9yQ29tcG9uZW50LnR5cGUucHJvdG90eXBlICYmXG4gICAgIW5vZGVPckNvbXBvbmVudC50eXBlLnByb3RvdHlwZS5yZW5kZXJcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICAvLyBDbGFzcyBjb21wb25lbnRcbiAgaWYgKHR5cGVvZiBub2RlT3JDb21wb25lbnQgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmVzaXplT2JzZXJ2ZXJQcm9wcyB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbiAgZGlzYWJsZWQ/OiBib29sZWFuXG4gIG9uUmVzaXplPzogKHNpemU6IHsgd2lkdGg6IG51bWJlcjsgaGVpZ2h0OiBudW1iZXIgfSkgPT4gdm9pZFxufVxuXG5pbnRlcmZhY2UgUmVzaXplT2JzZXJ2ZXJTdGF0ZSB7XG4gIGhlaWdodDogbnVtYmVyXG4gIHdpZHRoOiBudW1iZXJcbn1cblxudHlwZSBSZWZOb2RlID0gUmVhY3QuUmVhY3RJbnN0YW5jZSB8IEhUTUxFbGVtZW50IHwgbnVsbFxuXG5jbGFzcyBSZWFjdFJlc2l6ZU9ic2VydmVyIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFxuICBJUmVzaXplT2JzZXJ2ZXJQcm9wcyxcbiAgUmVzaXplT2JzZXJ2ZXJTdGF0ZVxuPiB7XG4gIHN0YXRpYyBkaXNwbGF5TmFtZSA9IFwiUmVzaXplT2JzZXJ2ZXJcIlxuXG4gIHJlc2l6ZU9ic2VydmVyOiBSZXNpemVPYnNlcnZlciB8IG51bGwgPSBudWxsXG5cbiAgY2hpbGROb2RlOiBSZWZOb2RlID0gbnVsbFxuXG4gIGN1cnJlbnRFbGVtZW50OiBFbGVtZW50IHwgbnVsbCA9IG51bGxcblxuICBzdGF0ZSA9IHtcbiAgICB3aWR0aDogMCxcbiAgICBoZWlnaHQ6IDAsXG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLm9uQ29tcG9uZW50VXBkYXRlZCgpXG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgdGhpcy5vbkNvbXBvbmVudFVwZGF0ZWQoKVxuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgdGhpcy5kZXN0cm95T2JzZXJ2ZXIoKVxuICB9XG5cbiAgb25Db21wb25lbnRVcGRhdGVkKCkge1xuICAgIGNvbnN0IHsgZGlzYWJsZWQgfSA9IHRoaXMucHJvcHNcblxuICAgIC8vIFVucmVnaXN0ZXIgaWYgZGlzYWJsZWRcbiAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuZGVzdHJveU9ic2VydmVyKClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGVsZW1lbnQgPSBmaW5kRE9NTm9kZSh0aGlzLmNoaWxkTm9kZSB8fCB0aGlzKSBhcyBFbGVtZW50XG4gICAgY29uc3QgZWxlbWVudENoYW5nZWQgPSBlbGVtZW50ICE9PSB0aGlzLmN1cnJlbnRFbGVtZW50XG4gICAgaWYgKGVsZW1lbnRDaGFuZ2VkKSB7XG4gICAgICB0aGlzLmRlc3Ryb3lPYnNlcnZlcigpXG4gICAgICB0aGlzLmN1cnJlbnRFbGVtZW50ID0gZWxlbWVudFxuICAgIH1cblxuICAgIGlmICghdGhpcy5yZXNpemVPYnNlcnZlciAmJiBlbGVtZW50KSB7XG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKHRoaXMub25SZXNpemUpXG4gICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUoZWxlbWVudClcbiAgICB9XG4gIH1cblxuICBvblJlc2l6ZSA9IChlbnRyaWVzOiBSZXNpemVPYnNlcnZlckVudHJ5W10pID0+IHtcbiAgICBjb25zdCB7IG9uUmVzaXplIH0gPSB0aGlzLnByb3BzXG4gICAgY29uc3QgeyB3aWR0aDogd2lkdGhTdGF0ZSwgaGVpZ2h0OiBoZWlnaHRTdGF0ZSB9ID0gdGhpcy5zdGF0ZVxuXG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IGVudHJpZXNbMF1cblxuICAgIGNvbnN0IHsgd2lkdGgsIGhlaWdodCB9ID0gdGFyZ2V0LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gICAgY29uc3QgW2ZpeGVkV2lkdGgsIGZpeGVkSGVpZ2h0XSA9IFtNYXRoLmZsb29yKHdpZHRoKSwgTWF0aC5mbG9vcihoZWlnaHQpXVxuXG4gICAgaWYgKHdpZHRoU3RhdGUgIT09IGZpeGVkV2lkdGggfHwgaGVpZ2h0U3RhdGUgIT09IGZpeGVkSGVpZ2h0KSB7XG4gICAgICBjb25zdCBzaXplID0geyB3aWR0aDogZml4ZWRXaWR0aCwgaGVpZ2h0OiBmaXhlZEhlaWdodCB9XG5cbiAgICAgIHRoaXMuc2V0U3RhdGUoc2l6ZSlcblxuICAgICAgaWYgKG9uUmVzaXplKSB7XG4gICAgICAgIG9uUmVzaXplKHNpemUpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgc2V0Q2hpbGROb2RlID0gKG5vZGU6IFJlZk5vZGUpID0+IHtcbiAgICB0aGlzLmNoaWxkTm9kZSA9IG5vZGVcbiAgfVxuXG4gIGRlc3Ryb3lPYnNlcnZlcigpIHtcbiAgICBpZiAodGhpcy5yZXNpemVPYnNlcnZlcikge1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5kaXNjb25uZWN0KClcbiAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBudWxsXG4gICAgfVxuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHsgY2hpbGRyZW4gfSA9IHRoaXMucHJvcHNcbiAgICBjb25zdCBjaGlsZE5vZGVzID0gdG9BcnJheShjaGlsZHJlbilcblxuICAgIGlmIChjaGlsZE5vZGVzLmxlbmd0aCA+IDEpIHtcbiAgICAgIHdhcm5pbmcoXG4gICAgICAgIGZhbHNlLFxuICAgICAgICBcIlJlc2l6ZU9ic2VydmVyXCIsXG4gICAgICAgIFwi5pyJ5aSa5LiqIGNoaWxkcmVu77yM5bCG5Y+q5Lya5Zyo56ys5LiA5Liq5YWD57Sg5LiK55uR5ZCsXCJcbiAgICAgIClcbiAgICB9IGVsc2UgaWYgKGNoaWxkTm9kZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB3YXJuaW5nKGZhbHNlLCBcIlJlc2l6ZU9ic2VydmVyXCIsIFwi5rKh5pyJIGNoaWxkcmVuXCIpXG5cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3QgY2hpbGROb2RlID0gY2hpbGROb2Rlc1swXVxuXG4gICAgaWYgKFJlYWN0LmlzVmFsaWRFbGVtZW50KGNoaWxkTm9kZSkgJiYgc3VwcG9ydFJlZihjaGlsZE5vZGUpKSB7XG4gICAgICBjb25zdCB7IHJlZiB9ID0gY2hpbGROb2RlIGFzIGFueVxuXG4gICAgICBjaGlsZE5vZGVzWzBdID0gUmVhY3QuY2xvbmVFbGVtZW50KGNoaWxkTm9kZSBhcyBhbnksIHtcbiAgICAgICAgcmVmOiBjb21wb3NlUmVmKHJlZiwgdGhpcy5zZXRDaGlsZE5vZGUpLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge2NoaWxkTm9kZXMubGVuZ3RoID09PSAxXG4gICAgICAgICAgPyBjaGlsZE5vZGVzWzBdXG4gICAgICAgICAgOiBjaGlsZE5vZGVzLm1hcCgobm9kZSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICFSZWFjdC5pc1ZhbGlkRWxlbWVudChub2RlKSB8fFxuICAgICAgICAgICAgICAgIChcImtleVwiIGluIG5vZGUgJiYgbm9kZS5rZXkgIT09IG51bGwpXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHJldHVybiBub2RlXG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICByZXR1cm4gUmVhY3QuY2xvbmVFbGVtZW50KG5vZGUsIHtcbiAgICAgICAgICAgICAgICBrZXk6IGBhZHVpLW9ic2VydmVyLWtleS0ke2luZGV4fWAsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9KX1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBSZWFjdFJlc2l6ZU9ic2VydmVyXG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFPQSxJQUFBQSxLQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyx1QkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsWUFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBRixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUssS0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sUUFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQXNDLFNBQUFFLHVCQUFBSyxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsZ0JBQUFBLENBQUE7QUFBQSxTQUFBRSx5QkFBQUYsQ0FBQSw2QkFBQUcsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRCx3QkFBQSxZQUFBQSx5QkFBQUYsQ0FBQSxXQUFBQSxDQUFBLEdBQUFLLENBQUEsR0FBQUQsQ0FBQSxLQUFBSixDQUFBO0FBQUEsU0FBQVIsd0JBQUFRLENBQUEsRUFBQUksQ0FBQSxTQUFBQSxDQUFBLElBQUFKLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLFNBQUFELENBQUEsZUFBQUEsQ0FBQSxnQkFBQU0sT0FBQSxDQUFBTixDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFLLENBQUEsR0FBQUgsd0JB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