diff --git a/404.html b/404.html index a0540feb4..f29e21c95 100644 --- a/404.html +++ b/404.html @@ -15,7 +15,7 @@
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.
- + \ No newline at end of file diff --git a/Super_preloaderPlus_one_New.user.js b/Super_preloaderPlus_one_New.user.js index e13e6241e..973ac91b3 100644 --- a/Super_preloaderPlus_one_New.user.js +++ b/Super_preloaderPlus_one_New.user.js @@ -9,7 +9,7 @@ // @author Mach6 // @contributers alexolog, heroboy, suchunchen, YFdyh000 // @thanksto ywzhaiqi, NLF -// @version 7.0.13 +// @version 7.0.15 // @license GPL-3.0 // @update 2024/5/8 // @homepageURL https://github.com/machsix/Super-preloader @@ -74,3529 +74,9098 @@ // @exlucde http*://www.commcarehq.org/accounts/login/*gre // @exclude http*://simkl.com/* // ==/UserScript== -(function (_asyncToGenerator, _slicedToArray, _regeneratorRuntime, _defineProperty$1) { +(function () { function getDefaultExportFromCjs (x) { return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; } - /** - * Checks if `value` is classified as an `Array` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an array, else `false`. - * @example - * - * _.isArray([1, 2, 3]); - * // => true - * - * _.isArray(document.body.children); - * // => false - * - * _.isArray('abc'); - * // => false - * - * _.isArray(_.noop); - * // => false - */ + var check = function (it) { + return it && it.Math === Math && it; + }; - var isArray$b = Array.isArray; + // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 + var global$l = + // eslint-disable-next-line es/no-global-this -- safe + check(typeof globalThis == 'object' && globalThis) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-restricted-globals -- safe + check(typeof self == 'object' && self) || + check(typeof global$l == 'object' && global$l) || + check(typeof window == 'object' && window) || + // eslint-disable-next-line no-new-func -- fallback + (function () { return this; })() || Function('return this')(); + + var fails$r = function (exec) { + try { + return !!exec(); + } catch (error) { + return true; + } + }; - var isArray_1 = isArray$b; + var fails$q = fails$r; - var _isArray = /*@__PURE__*/getDefaultExportFromCjs(isArray_1); + var functionBindNative = !fails$q(function () { + // eslint-disable-next-line es/no-function-prototype-bind -- safe + var test = (function () { /* empty */ }).bind(); + // eslint-disable-next-line no-prototype-builtins -- safe + return typeof test != 'function' || test.hasOwnProperty('prototype'); + }); - /** - * Removes all key-value entries from the list cache. - * - * @private - * @name clear - * @memberOf ListCache - */ + var NATIVE_BIND$3 = functionBindNative; - function listCacheClear$1() { - this.__data__ = []; - this.size = 0; - } + var FunctionPrototype$3 = Function.prototype; + var apply$8 = FunctionPrototype$3.apply; + var call$k = FunctionPrototype$3.call; - var _listCacheClear = listCacheClear$1; + // eslint-disable-next-line es/no-reflect -- safe + var functionApply = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND$3 ? call$k.bind(apply$8) : function () { + return call$k.apply(apply$8, arguments); + }); - /** - * Performs a - * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) - * comparison between two values to determine if they are equivalent. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - * @example - * - * var object = { 'a': 1 }; - * var other = { 'a': 1 }; - * - * _.eq(object, object); - * // => true - * - * _.eq(object, other); - * // => false - * - * _.eq('a', 'a'); - * // => true - * - * _.eq('a', Object('a')); - * // => false - * - * _.eq(NaN, NaN); - * // => true - */ + var NATIVE_BIND$2 = functionBindNative; - function eq$2(value, other) { - return value === other || (value !== value && other !== other); - } + var FunctionPrototype$2 = Function.prototype; + var call$j = FunctionPrototype$2.call; + var uncurryThisWithBind = NATIVE_BIND$2 && FunctionPrototype$2.bind.bind(call$j, call$j); - var eq_1 = eq$2; + var functionUncurryThis = NATIVE_BIND$2 ? uncurryThisWithBind : function (fn) { + return function () { + return call$j.apply(fn, arguments); + }; + }; - var eq$1 = eq_1; + var uncurryThis$u = functionUncurryThis; - /** - * Gets the index at which the `key` is found in `array` of key-value pairs. - * - * @private - * @param {Array} array The array to inspect. - * @param {*} key The key to search for. - * @returns {number} Returns the index of the matched value, else `-1`. - */ - function assocIndexOf$4(array, key) { - var length = array.length; - while (length--) { - if (eq$1(array[length][0], key)) { - return length; - } - } - return -1; - } + var toString$f = uncurryThis$u({}.toString); + var stringSlice$2 = uncurryThis$u(''.slice); - var _assocIndexOf = assocIndexOf$4; + var classofRaw$2 = function (it) { + return stringSlice$2(toString$f(it), 8, -1); + }; - var assocIndexOf$3 = _assocIndexOf; + var classofRaw$1 = classofRaw$2; + var uncurryThis$t = functionUncurryThis; - /** Used for built-in method references. */ - var arrayProto = Array.prototype; + var functionUncurryThisClause = function (fn) { + // Nashorn bug: + // https://github.com/zloirock/core-js/issues/1128 + // https://github.com/zloirock/core-js/issues/1130 + if (classofRaw$1(fn) === 'Function') return uncurryThis$t(fn); + }; - /** Built-in value references. */ - var splice = arrayProto.splice; + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot + var documentAll = typeof document == 'object' && document.all; - /** - * Removes `key` and its value from the list cache. - * - * @private - * @name delete - * @memberOf ListCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function listCacheDelete$1(key) { - var data = this.__data__, - index = assocIndexOf$3(data, key); + // `IsCallable` abstract operation + // https://tc39.es/ecma262/#sec-iscallable + // eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing + var isCallable$j = typeof documentAll == 'undefined' && documentAll !== undefined ? function (argument) { + return typeof argument == 'function' || argument === documentAll; + } : function (argument) { + return typeof argument == 'function'; + }; - if (index < 0) { - return false; - } - var lastIndex = data.length - 1; - if (index == lastIndex) { - data.pop(); - } else { - splice.call(data, index, 1); - } - --this.size; - return true; - } + var objectGetOwnPropertyDescriptor = {}; - var _listCacheDelete = listCacheDelete$1; + var fails$p = fails$r; - var assocIndexOf$2 = _assocIndexOf; + // Detect IE8's incomplete defineProperty implementation + var descriptors = !fails$p(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] !== 7; + }); - /** - * Gets the list cache value for `key`. - * - * @private - * @name get - * @memberOf ListCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function listCacheGet$1(key) { - var data = this.__data__, - index = assocIndexOf$2(data, key); + var NATIVE_BIND$1 = functionBindNative; - return index < 0 ? undefined : data[index][1]; - } + var call$i = Function.prototype.call; - var _listCacheGet = listCacheGet$1; + var functionCall = NATIVE_BIND$1 ? call$i.bind(call$i) : function () { + return call$i.apply(call$i, arguments); + }; - var assocIndexOf$1 = _assocIndexOf; + var objectPropertyIsEnumerable = {}; - /** - * Checks if a list cache value for `key` exists. - * - * @private - * @name has - * @memberOf ListCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function listCacheHas$1(key) { - return assocIndexOf$1(this.__data__, key) > -1; - } + var $propertyIsEnumerable$2 = {}.propertyIsEnumerable; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor$3 = Object.getOwnPropertyDescriptor; - var _listCacheHas = listCacheHas$1; + // Nashorn ~ JDK8 bug + var NASHORN_BUG = getOwnPropertyDescriptor$3 && !$propertyIsEnumerable$2.call({ 1: 2 }, 1); - var assocIndexOf = _assocIndexOf; + // `Object.prototype.propertyIsEnumerable` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable + objectPropertyIsEnumerable.f = NASHORN_BUG ? function propertyIsEnumerable(V) { + var descriptor = getOwnPropertyDescriptor$3(this, V); + return !!descriptor && descriptor.enumerable; + } : $propertyIsEnumerable$2; - /** - * Sets the list cache `key` to `value`. - * - * @private - * @name set - * @memberOf ListCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the list cache instance. - */ - function listCacheSet$1(key, value) { - var data = this.__data__, - index = assocIndexOf(data, key); + var createPropertyDescriptor$7 = function (bitmap, value) { + return { + enumerable: !(bitmap & 1), + configurable: !(bitmap & 2), + writable: !(bitmap & 4), + value: value + }; + }; - if (index < 0) { - ++this.size; - data.push([key, value]); - } else { - data[index][1] = value; - } - return this; - } + var uncurryThis$s = functionUncurryThis; + var fails$o = fails$r; + var classof$c = classofRaw$2; + + var $Object$4 = Object; + var split = uncurryThis$s(''.split); + + // fallback for non-array-like ES3 and non-enumerable old V8 strings + var indexedObject = fails$o(function () { + // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 + // eslint-disable-next-line no-prototype-builtins -- safe + return !$Object$4('z').propertyIsEnumerable(0); + }) ? function (it) { + return classof$c(it) === 'String' ? split(it, '') : $Object$4(it); + } : $Object$4; + + // we can't use just `it == null` since of `document.all` special case + // https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec + var isNullOrUndefined$5 = function (it) { + return it === null || it === undefined; + }; - var _listCacheSet = listCacheSet$1; + var isNullOrUndefined$4 = isNullOrUndefined$5; - var listCacheClear = _listCacheClear, - listCacheDelete = _listCacheDelete, - listCacheGet = _listCacheGet, - listCacheHas = _listCacheHas, - listCacheSet = _listCacheSet; + var $TypeError$g = TypeError; - /** - * Creates an list cache object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function ListCache$4(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; + // `RequireObjectCoercible` abstract operation + // https://tc39.es/ecma262/#sec-requireobjectcoercible + var requireObjectCoercible$9 = function (it) { + if (isNullOrUndefined$4(it)) throw new $TypeError$g("Can't call method on " + it); + return it; + }; - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } + // toObject with fallback for non-array-like ES3 strings + var IndexedObject$3 = indexedObject; + var requireObjectCoercible$8 = requireObjectCoercible$9; - // Add methods to `ListCache`. - ListCache$4.prototype.clear = listCacheClear; - ListCache$4.prototype['delete'] = listCacheDelete; - ListCache$4.prototype.get = listCacheGet; - ListCache$4.prototype.has = listCacheHas; - ListCache$4.prototype.set = listCacheSet; + var toIndexedObject$b = function (it) { + return IndexedObject$3(requireObjectCoercible$8(it)); + }; - var _ListCache = ListCache$4; + var isCallable$i = isCallable$j; - var ListCache$3 = _ListCache; + var isObject$k = function (it) { + return typeof it == 'object' ? it !== null : isCallable$i(it); + }; - /** - * Removes all key-value entries from the stack. - * - * @private - * @name clear - * @memberOf Stack - */ - function stackClear$1() { - this.__data__ = new ListCache$3; - this.size = 0; - } + var path$h = {}; - var _stackClear = stackClear$1; + var path$g = path$h; + var global$k = global$l; + var isCallable$h = isCallable$j; - /** - * Removes `key` and its value from the stack. - * - * @private - * @name delete - * @memberOf Stack - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ + var aFunction = function (variable) { + return isCallable$h(variable) ? variable : undefined; + }; - function stackDelete$1(key) { - var data = this.__data__, - result = data['delete'](key); + var getBuiltIn$e = function (namespace, method) { + return arguments.length < 2 ? aFunction(path$g[namespace]) || aFunction(global$k[namespace]) + : path$g[namespace] && path$g[namespace][method] || global$k[namespace] && global$k[namespace][method]; + }; - this.size = data.size; - return result; - } + var uncurryThis$r = functionUncurryThis; - var _stackDelete = stackDelete$1; + var objectIsPrototypeOf = uncurryThis$r({}.isPrototypeOf); - /** - * Gets the stack value for `key`. - * - * @private - * @name get - * @memberOf Stack - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ + var engineUserAgent = typeof navigator != 'undefined' && String(navigator.userAgent) || ''; - function stackGet$1(key) { - return this.__data__.get(key); - } + var global$j = global$l; + var userAgent$3 = engineUserAgent; - var _stackGet = stackGet$1; + var process$3 = global$j.process; + var Deno$1 = global$j.Deno; + var versions = process$3 && process$3.versions || Deno$1 && Deno$1.version; + var v8 = versions && versions.v8; + var match, version$1; - /** - * Checks if a stack value for `key` exists. - * - * @private - * @name has - * @memberOf Stack - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ + if (v8) { + match = v8.split('.'); + // in old Chrome, versions of V8 isn't V8 = Chrome / 10 + // but their correct versions are not interesting for us + version$1 = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); + } - function stackHas$1(key) { - return this.__data__.has(key); + // BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` + // so check `userAgent` even if `.v8` exists, but 0 + if (!version$1 && userAgent$3) { + match = userAgent$3.match(/Edge\/(\d+)/); + if (!match || match[1] >= 74) { + match = userAgent$3.match(/Chrome\/(\d+)/); + if (match) version$1 = +match[1]; + } } - var _stackHas = stackHas$1; + var engineV8Version = version$1; + + /* eslint-disable es/no-symbol -- required for testing */ + var V8_VERSION$3 = engineV8Version; + var fails$n = fails$r; + var global$i = global$l; + + var $String$5 = global$i.String; + + // eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing + var symbolConstructorDetection = !!Object.getOwnPropertySymbols && !fails$n(function () { + var symbol = Symbol('symbol detection'); + // Chrome 38 Symbol has incorrect toString conversion + // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances + // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will, + // of course, fail. + return !$String$5(symbol) || !(Object(symbol) instanceof Symbol) || + // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances + !Symbol.sham && V8_VERSION$3 && V8_VERSION$3 < 41; + }); - /** Detect free variable `global` from Node.js. */ + /* eslint-disable es/no-symbol -- required for testing */ + var NATIVE_SYMBOL$5 = symbolConstructorDetection; - var freeGlobal$1 = typeof global == 'object' && global && global.Object === Object && global; + var useSymbolAsUid = NATIVE_SYMBOL$5 + && !Symbol.sham + && typeof Symbol.iterator == 'symbol'; - var _freeGlobal = freeGlobal$1; + var getBuiltIn$d = getBuiltIn$e; + var isCallable$g = isCallable$j; + var isPrototypeOf$h = objectIsPrototypeOf; + var USE_SYMBOL_AS_UID$1 = useSymbolAsUid; - var freeGlobal = _freeGlobal; + var $Object$3 = Object; - /** Detect free variable `self`. */ - var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + var isSymbol$a = USE_SYMBOL_AS_UID$1 ? function (it) { + return typeof it == 'symbol'; + } : function (it) { + var $Symbol = getBuiltIn$d('Symbol'); + return isCallable$g($Symbol) && isPrototypeOf$h($Symbol.prototype, $Object$3(it)); + }; - /** Used as a reference to the global object. */ - var root$8 = freeGlobal || freeSelf || Function('return this')(); + var $String$4 = String; - var _root = root$8; + var tryToString$5 = function (argument) { + try { + return $String$4(argument); + } catch (error) { + return 'Object'; + } + }; - var root$7 = _root; + var isCallable$f = isCallable$j; + var tryToString$4 = tryToString$5; - /** Built-in value references. */ - var Symbol$6 = root$7.Symbol; + var $TypeError$f = TypeError; - var _Symbol = Symbol$6; + // `Assert: IsCallable(argument) is true` + var aCallable$c = function (argument) { + if (isCallable$f(argument)) return argument; + throw new $TypeError$f(tryToString$4(argument) + ' is not a function'); + }; - var Symbol$5 = _Symbol; + var aCallable$b = aCallable$c; + var isNullOrUndefined$3 = isNullOrUndefined$5; - /** Used for built-in method references. */ - var objectProto$c = Object.prototype; + // `GetMethod` abstract operation + // https://tc39.es/ecma262/#sec-getmethod + var getMethod$3 = function (V, P) { + var func = V[P]; + return isNullOrUndefined$3(func) ? undefined : aCallable$b(func); + }; - /** Used to check objects for own properties. */ - var hasOwnProperty$9 = objectProto$c.hasOwnProperty; + var call$h = functionCall; + var isCallable$e = isCallable$j; + var isObject$j = isObject$k; - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ - var nativeObjectToString$1 = objectProto$c.toString; + var $TypeError$e = TypeError; - /** Built-in value references. */ - var symToStringTag$1 = Symbol$5 ? Symbol$5.toStringTag : undefined; + // `OrdinaryToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-ordinarytoprimitive + var ordinaryToPrimitive$1 = function (input, pref) { + var fn, val; + if (pref === 'string' && isCallable$e(fn = input.toString) && !isObject$j(val = call$h(fn, input))) return val; + if (isCallable$e(fn = input.valueOf) && !isObject$j(val = call$h(fn, input))) return val; + if (pref !== 'string' && isCallable$e(fn = input.toString) && !isObject$j(val = call$h(fn, input))) return val; + throw new $TypeError$e("Can't convert object to primitive value"); + }; - /** - * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the raw `toStringTag`. - */ - function getRawTag$1(value) { - var isOwn = hasOwnProperty$9.call(value, symToStringTag$1), - tag = value[symToStringTag$1]; + var sharedStore = {exports: {}}; - try { - value[symToStringTag$1] = undefined; - var unmasked = true; - } catch (e) {} + var isPure = true; - var result = nativeObjectToString$1.call(value); - if (unmasked) { - if (isOwn) { - value[symToStringTag$1] = tag; - } else { - delete value[symToStringTag$1]; - } - } - return result; - } + var global$h = global$l; - var _getRawTag = getRawTag$1; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var defineProperty$e = Object.defineProperty; - /** Used for built-in method references. */ + var defineGlobalProperty$1 = function (key, value) { + try { + defineProperty$e(global$h, key, { value: value, configurable: true, writable: true }); + } catch (error) { + global$h[key] = value; + } return value; + }; - var objectProto$b = Object.prototype; + var globalThis$1 = global$l; + var defineGlobalProperty = defineGlobalProperty$1; - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) - * of values. - */ - var nativeObjectToString = objectProto$b.toString; + var SHARED = '__core-js_shared__'; + var store$3 = sharedStore.exports = globalThis$1[SHARED] || defineGlobalProperty(SHARED, {}); - /** - * Converts `value` to a string using `Object.prototype.toString`. - * - * @private - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - */ - function objectToString$1(value) { - return nativeObjectToString.call(value); - } + (store$3.versions || (store$3.versions = [])).push({ + version: '3.37.0', + mode: 'pure' , + copyright: '© 2014-2024 Denis Pushkarev (zloirock.ru)', + license: 'https://github.com/zloirock/core-js/blob/v3.37.0/LICENSE', + source: 'https://github.com/zloirock/core-js' + }); - var _objectToString = objectToString$1; + var sharedStoreExports = sharedStore.exports; - var Symbol$4 = _Symbol, - getRawTag = _getRawTag, - objectToString = _objectToString; + var store$2 = sharedStoreExports; - /** `Object#toString` result references. */ - var nullTag = '[object Null]', - undefinedTag = '[object Undefined]'; + var shared$7 = function (key, value) { + return store$2[key] || (store$2[key] = value || {}); + }; - /** Built-in value references. */ - var symToStringTag = Symbol$4 ? Symbol$4.toStringTag : undefined; + var requireObjectCoercible$7 = requireObjectCoercible$9; - /** - * The base implementation of `getTag` without fallbacks for buggy environments. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - function baseGetTag$7(value) { - if (value == null) { - return value === undefined ? undefinedTag : nullTag; - } - return (symToStringTag && symToStringTag in Object(value)) - ? getRawTag(value) - : objectToString(value); - } + var $Object$2 = Object; - var _baseGetTag = baseGetTag$7; + // `ToObject` abstract operation + // https://tc39.es/ecma262/#sec-toobject + var toObject$b = function (argument) { + return $Object$2(requireObjectCoercible$7(argument)); + }; - /** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); - * // => false - */ + var uncurryThis$q = functionUncurryThis; + var toObject$a = toObject$b; - function isObject$4(value) { - var type = typeof value; - return value != null && (type == 'object' || type == 'function'); - } + var hasOwnProperty$a = uncurryThis$q({}.hasOwnProperty); - var isObject_1 = isObject$4; + // `HasOwnProperty` abstract operation + // https://tc39.es/ecma262/#sec-hasownproperty + // eslint-disable-next-line es/no-object-hasown -- safe + var hasOwnProperty_1 = Object.hasOwn || function hasOwn(it, key) { + return hasOwnProperty$a(toObject$a(it), key); + }; - var _isObject = /*@__PURE__*/getDefaultExportFromCjs(isObject_1); + var uncurryThis$p = functionUncurryThis; - var baseGetTag$6 = _baseGetTag, - isObject$3 = isObject_1; + var id = 0; + var postfix = Math.random(); + var toString$e = uncurryThis$p(1.0.toString); - /** `Object#toString` result references. */ - var asyncTag = '[object AsyncFunction]', - funcTag$1 = '[object Function]', - genTag = '[object GeneratorFunction]', - proxyTag = '[object Proxy]'; + var uid$3 = function (key) { + return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString$e(++id + postfix, 36); + }; - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a function, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction$2(value) { - if (!isObject$3(value)) { - return false; + var global$g = global$l; + var shared$6 = shared$7; + var hasOwn$e = hasOwnProperty_1; + var uid$2 = uid$3; + var NATIVE_SYMBOL$4 = symbolConstructorDetection; + var USE_SYMBOL_AS_UID = useSymbolAsUid; + + var Symbol$9 = global$g.Symbol; + var WellKnownSymbolsStore$2 = shared$6('wks'); + var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol$9['for'] || Symbol$9 : Symbol$9 && Symbol$9.withoutSetter || uid$2; + + var wellKnownSymbol$o = function (name) { + if (!hasOwn$e(WellKnownSymbolsStore$2, name)) { + WellKnownSymbolsStore$2[name] = NATIVE_SYMBOL$4 && hasOwn$e(Symbol$9, name) + ? Symbol$9[name] + : createWellKnownSymbol('Symbol.' + name); + } return WellKnownSymbolsStore$2[name]; + }; + + var call$g = functionCall; + var isObject$i = isObject$k; + var isSymbol$9 = isSymbol$a; + var getMethod$2 = getMethod$3; + var ordinaryToPrimitive = ordinaryToPrimitive$1; + var wellKnownSymbol$n = wellKnownSymbol$o; + + var $TypeError$d = TypeError; + var TO_PRIMITIVE = wellKnownSymbol$n('toPrimitive'); + + // `ToPrimitive` abstract operation + // https://tc39.es/ecma262/#sec-toprimitive + var toPrimitive$8 = function (input, pref) { + if (!isObject$i(input) || isSymbol$9(input)) return input; + var exoticToPrim = getMethod$2(input, TO_PRIMITIVE); + var result; + if (exoticToPrim) { + if (pref === undefined) pref = 'default'; + result = call$g(exoticToPrim, input, pref); + if (!isObject$i(result) || isSymbol$9(result)) return result; + throw new $TypeError$d("Can't convert object to primitive value"); } - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 9 which returns 'object' for typed arrays and other constructors. - var tag = baseGetTag$6(value); - return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag; - } + if (pref === undefined) pref = 'number'; + return ordinaryToPrimitive(input, pref); + }; - var isFunction_1 = isFunction$2; + var toPrimitive$7 = toPrimitive$8; + var isSymbol$8 = isSymbol$a; - var _isFunction = /*@__PURE__*/getDefaultExportFromCjs(isFunction_1); + // `ToPropertyKey` abstract operation + // https://tc39.es/ecma262/#sec-topropertykey + var toPropertyKey$4 = function (argument) { + var key = toPrimitive$7(argument, 'string'); + return isSymbol$8(key) ? key : key + ''; + }; - var root$6 = _root; + var global$f = global$l; + var isObject$h = isObject$k; - /** Used to detect overreaching core-js shims. */ - var coreJsData$1 = root$6['__core-js_shared__']; + var document$3 = global$f.document; + // typeof document.createElement is 'object' in old IE + var EXISTS$1 = isObject$h(document$3) && isObject$h(document$3.createElement); - var _coreJsData = coreJsData$1; + var documentCreateElement$1 = function (it) { + return EXISTS$1 ? document$3.createElement(it) : {}; + }; - var coreJsData = _coreJsData; + var DESCRIPTORS$g = descriptors; + var fails$m = fails$r; + var createElement$1 = documentCreateElement$1; - /** Used to detect methods masquerading as native. */ - var maskSrcKey = (function() { - var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); - return uid ? ('Symbol(src)_1.' + uid) : ''; - }()); + // Thanks to IE8 for its funny defineProperty + var ie8DomDefine = !DESCRIPTORS$g && !fails$m(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(createElement$1('div'), 'a', { + get: function () { return 7; } + }).a !== 7; + }); - /** - * Checks if `func` has its source masked. - * - * @private - * @param {Function} func The function to check. - * @returns {boolean} Returns `true` if `func` is masked, else `false`. - */ - function isMasked$1(func) { - return !!maskSrcKey && (maskSrcKey in func); - } + var DESCRIPTORS$f = descriptors; + var call$f = functionCall; + var propertyIsEnumerableModule$2 = objectPropertyIsEnumerable; + var createPropertyDescriptor$6 = createPropertyDescriptor$7; + var toIndexedObject$a = toIndexedObject$b; + var toPropertyKey$3 = toPropertyKey$4; + var hasOwn$d = hasOwnProperty_1; + var IE8_DOM_DEFINE$1 = ie8DomDefine; + + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor$2 = Object.getOwnPropertyDescriptor; + + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptor + objectGetOwnPropertyDescriptor.f = DESCRIPTORS$f ? $getOwnPropertyDescriptor$2 : function getOwnPropertyDescriptor(O, P) { + O = toIndexedObject$a(O); + P = toPropertyKey$3(P); + if (IE8_DOM_DEFINE$1) try { + return $getOwnPropertyDescriptor$2(O, P); + } catch (error) { /* empty */ } + if (hasOwn$d(O, P)) return createPropertyDescriptor$6(!call$f(propertyIsEnumerableModule$2.f, O, P), O[P]); + }; - var _isMasked = isMasked$1; + var fails$l = fails$r; + var isCallable$d = isCallable$j; - /** Used for built-in method references. */ + var replacement = /#|\.prototype\./; - var funcProto$1 = Function.prototype; + var isForced$2 = function (feature, detection) { + var value = data[normalize(feature)]; + return value === POLYFILL ? true + : value === NATIVE ? false + : isCallable$d(detection) ? fails$l(detection) + : !!detection; + }; - /** Used to resolve the decompiled source of functions. */ - var funcToString$1 = funcProto$1.toString; + var normalize = isForced$2.normalize = function (string) { + return String(string).replace(replacement, '.').toLowerCase(); + }; - /** - * Converts `func` to its source code. - * - * @private - * @param {Function} func The function to convert. - * @returns {string} Returns the source code. - */ - function toSource$2(func) { - if (func != null) { - try { - return funcToString$1.call(func); - } catch (e) {} - try { - return (func + ''); - } catch (e) {} - } - return ''; - } + var data = isForced$2.data = {}; + var NATIVE = isForced$2.NATIVE = 'N'; + var POLYFILL = isForced$2.POLYFILL = 'P'; - var _toSource = toSource$2; + var isForced_1 = isForced$2; - var isFunction$1 = isFunction_1, - isMasked = _isMasked, - isObject$2 = isObject_1, - toSource$1 = _toSource; + var uncurryThis$o = functionUncurryThisClause; + var aCallable$a = aCallable$c; + var NATIVE_BIND = functionBindNative; - /** - * Used to match `RegExp` - * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). - */ - var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + var bind$7 = uncurryThis$o(uncurryThis$o.bind); - /** Used to detect host constructors (Safari). */ - var reIsHostCtor = /^\[object .+?Constructor\]$/; + // optional / simple context binding + var functionBindContext = function (fn, that) { + aCallable$a(fn); + return that === undefined ? fn : NATIVE_BIND ? bind$7(fn, that) : function (/* ...args */) { + return fn.apply(that, arguments); + }; + }; - /** Used for built-in method references. */ - var funcProto = Function.prototype, - objectProto$a = Object.prototype; + var objectDefineProperty = {}; - /** Used to resolve the decompiled source of functions. */ - var funcToString = funcProto.toString; + var DESCRIPTORS$e = descriptors; + var fails$k = fails$r; - /** Used to check objects for own properties. */ - var hasOwnProperty$8 = objectProto$a.hasOwnProperty; + // V8 ~ Chrome 36- + // https://bugs.chromium.org/p/v8/issues/detail?id=3334 + var v8PrototypeDefineBug = DESCRIPTORS$e && fails$k(function () { + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + return Object.defineProperty(function () { /* empty */ }, 'prototype', { + value: 42, + writable: false + }).prototype !== 42; + }); - /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + - funcToString.call(hasOwnProperty$8).replace(reRegExpChar, '\\$&') - .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' - ); + var isObject$g = isObject$k; - /** - * The base implementation of `_.isNative` without bad shim checks. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, - * else `false`. - */ - function baseIsNative$1(value) { - if (!isObject$2(value) || isMasked(value)) { - return false; - } - var pattern = isFunction$1(value) ? reIsNative : reIsHostCtor; - return pattern.test(toSource$1(value)); - } + var $String$3 = String; + var $TypeError$c = TypeError; - var _baseIsNative = baseIsNative$1; + // `Assert: Type(argument) is Object` + var anObject$b = function (argument) { + if (isObject$g(argument)) return argument; + throw new $TypeError$c($String$3(argument) + ' is not an object'); + }; - /** - * Gets the value at `key` of `object`. - * - * @private - * @param {Object} [object] The object to query. - * @param {string} key The key of the property to get. - * @returns {*} Returns the property value. - */ + var DESCRIPTORS$d = descriptors; + var IE8_DOM_DEFINE = ie8DomDefine; + var V8_PROTOTYPE_DEFINE_BUG$1 = v8PrototypeDefineBug; + var anObject$a = anObject$b; + var toPropertyKey$2 = toPropertyKey$4; + + var $TypeError$b = TypeError; + // eslint-disable-next-line es/no-object-defineproperty -- safe + var $defineProperty$1 = Object.defineProperty; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var $getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; + var ENUMERABLE = 'enumerable'; + var CONFIGURABLE$1 = 'configurable'; + var WRITABLE = 'writable'; + + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + objectDefineProperty.f = DESCRIPTORS$d ? V8_PROTOTYPE_DEFINE_BUG$1 ? function defineProperty(O, P, Attributes) { + anObject$a(O); + P = toPropertyKey$2(P); + anObject$a(Attributes); + if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) { + var current = $getOwnPropertyDescriptor$1(O, P); + if (current && current[WRITABLE]) { + O[P] = Attributes.value; + Attributes = { + configurable: CONFIGURABLE$1 in Attributes ? Attributes[CONFIGURABLE$1] : current[CONFIGURABLE$1], + enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE], + writable: false + }; + } + } return $defineProperty$1(O, P, Attributes); + } : $defineProperty$1 : function defineProperty(O, P, Attributes) { + anObject$a(O); + P = toPropertyKey$2(P); + anObject$a(Attributes); + if (IE8_DOM_DEFINE) try { + return $defineProperty$1(O, P, Attributes); + } catch (error) { /* empty */ } + if ('get' in Attributes || 'set' in Attributes) throw new $TypeError$b('Accessors not supported'); + if ('value' in Attributes) O[P] = Attributes.value; + return O; + }; - function getValue$1(object, key) { - return object == null ? undefined : object[key]; - } + var DESCRIPTORS$c = descriptors; + var definePropertyModule$4 = objectDefineProperty; + var createPropertyDescriptor$5 = createPropertyDescriptor$7; - var _getValue = getValue$1; + var createNonEnumerableProperty$7 = DESCRIPTORS$c ? function (object, key, value) { + return definePropertyModule$4.f(object, key, createPropertyDescriptor$5(1, value)); + } : function (object, key, value) { + object[key] = value; + return object; + }; - var baseIsNative = _baseIsNative, - getValue = _getValue; + var global$e = global$l; + var apply$7 = functionApply; + var uncurryThis$n = functionUncurryThisClause; + var isCallable$c = isCallable$j; + var getOwnPropertyDescriptor$2 = objectGetOwnPropertyDescriptor.f; + var isForced$1 = isForced_1; + var path$f = path$h; + var bind$6 = functionBindContext; + var createNonEnumerableProperty$6 = createNonEnumerableProperty$7; + var hasOwn$c = hasOwnProperty_1; + // add debugging info + + + var wrapConstructor = function (NativeConstructor) { + var Wrapper = function (a, b, c) { + if (this instanceof Wrapper) { + switch (arguments.length) { + case 0: return new NativeConstructor(); + case 1: return new NativeConstructor(a); + case 2: return new NativeConstructor(a, b); + } return new NativeConstructor(a, b, c); + } return apply$7(NativeConstructor, this, arguments); + }; + Wrapper.prototype = NativeConstructor.prototype; + return Wrapper; + }; - /** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ - function getNative$7(object, key) { - var value = getValue(object, key); - return baseIsNative(value) ? value : undefined; - } + /* + options.target - name of the target object + options.global - target is the global object + options.stat - export as static methods of target + options.proto - export as prototype methods of target + options.real - real prototype method for the `pure` version + options.forced - export even if the native feature is available + options.bind - bind methods to the target, required for the `pure` version + options.wrap - wrap constructors to preventing global pollution, required for the `pure` version + options.unsafe - use the simple assignment of property instead of delete + defineProperty + options.sham - add a flag to not completely full polyfills + options.enumerable - export as enumerable property + options.dontCallGetSet - prevent calling a getter on target + options.name - the .name of the function if it does not match the key + */ + var _export = function (options, source) { + var TARGET = options.target; + var GLOBAL = options.global; + var STATIC = options.stat; + var PROTO = options.proto; - var _getNative = getNative$7; + var nativeSource = GLOBAL ? global$e : STATIC ? global$e[TARGET] : global$e[TARGET] && global$e[TARGET].prototype; - var getNative$6 = _getNative, - root$5 = _root; + var target = GLOBAL ? path$f : path$f[TARGET] || createNonEnumerableProperty$6(path$f, TARGET, {})[TARGET]; + var targetPrototype = target.prototype; - /* Built-in method references that are verified to be native. */ - var Map$3 = getNative$6(root$5, 'Map'); + var FORCED, USE_NATIVE, VIRTUAL_PROTOTYPE; + var key, sourceProperty, targetProperty, nativeProperty, resultProperty, descriptor; - var _Map = Map$3; + for (key in source) { + FORCED = isForced$1(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); + // contains in native + USE_NATIVE = !FORCED && nativeSource && hasOwn$c(nativeSource, key); - var getNative$5 = _getNative; + targetProperty = target[key]; - /* Built-in method references that are verified to be native. */ - var nativeCreate$4 = getNative$5(Object, 'create'); + if (USE_NATIVE) if (options.dontCallGetSet) { + descriptor = getOwnPropertyDescriptor$2(nativeSource, key); + nativeProperty = descriptor && descriptor.value; + } else nativeProperty = nativeSource[key]; - var _nativeCreate = nativeCreate$4; + // export native or implementation + sourceProperty = (USE_NATIVE && nativeProperty) ? nativeProperty : source[key]; - var nativeCreate$3 = _nativeCreate; + if (!FORCED && !PROTO && typeof targetProperty == typeof sourceProperty) continue; - /** - * Removes all key-value entries from the hash. - * - * @private - * @name clear - * @memberOf Hash - */ - function hashClear$1() { - this.__data__ = nativeCreate$3 ? nativeCreate$3(null) : {}; - this.size = 0; - } + // bind methods to global for calling from export context + if (options.bind && USE_NATIVE) resultProperty = bind$6(sourceProperty, global$e); + // wrap global constructors for prevent changes in this version + else if (options.wrap && USE_NATIVE) resultProperty = wrapConstructor(sourceProperty); + // make static versions for prototype methods + else if (PROTO && isCallable$c(sourceProperty)) resultProperty = uncurryThis$n(sourceProperty); + // default case + else resultProperty = sourceProperty; - var _hashClear = hashClear$1; + // add a flag to not completely full polyfills + if (options.sham || (sourceProperty && sourceProperty.sham) || (targetProperty && targetProperty.sham)) { + createNonEnumerableProperty$6(resultProperty, 'sham', true); + } - /** - * Removes `key` and its value from the hash. - * - * @private - * @name delete - * @memberOf Hash - * @param {Object} hash The hash to modify. - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ + createNonEnumerableProperty$6(target, key, resultProperty); - function hashDelete$1(key) { - var result = this.has(key) && delete this.__data__[key]; - this.size -= result ? 1 : 0; - return result; - } + if (PROTO) { + VIRTUAL_PROTOTYPE = TARGET + 'Prototype'; + if (!hasOwn$c(path$f, VIRTUAL_PROTOTYPE)) { + createNonEnumerableProperty$6(path$f, VIRTUAL_PROTOTYPE, {}); + } + // export virtual prototype methods + createNonEnumerableProperty$6(path$f[VIRTUAL_PROTOTYPE], key, sourceProperty); + // export real prototype methods + if (options.real && targetPrototype && (FORCED || !targetPrototype[key])) { + createNonEnumerableProperty$6(targetPrototype, key, sourceProperty); + } + } + } + }; - var _hashDelete = hashDelete$1; + var shared$5 = shared$7; + var uid$1 = uid$3; - var nativeCreate$2 = _nativeCreate; + var keys$4 = shared$5('keys'); - /** Used to stand-in for `undefined` hash values. */ - var HASH_UNDEFINED$2 = '__lodash_hash_undefined__'; + var sharedKey$4 = function (key) { + return keys$4[key] || (keys$4[key] = uid$1(key)); + }; - /** Used for built-in method references. */ - var objectProto$9 = Object.prototype; + var fails$j = fails$r; - /** Used to check objects for own properties. */ - var hasOwnProperty$7 = objectProto$9.hasOwnProperty; + var correctPrototypeGetter = !fails$j(function () { + function F() { /* empty */ } + F.prototype.constructor = null; + // eslint-disable-next-line es/no-object-getprototypeof -- required for testing + return Object.getPrototypeOf(new F()) !== F.prototype; + }); - /** - * Gets the hash value for `key`. - * - * @private - * @name get - * @memberOf Hash - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function hashGet$1(key) { - var data = this.__data__; - if (nativeCreate$2) { - var result = data[key]; - return result === HASH_UNDEFINED$2 ? undefined : result; - } - return hasOwnProperty$7.call(data, key) ? data[key] : undefined; - } + var hasOwn$b = hasOwnProperty_1; + var isCallable$b = isCallable$j; + var toObject$9 = toObject$b; + var sharedKey$3 = sharedKey$4; + var CORRECT_PROTOTYPE_GETTER$1 = correctPrototypeGetter; + + var IE_PROTO$1 = sharedKey$3('IE_PROTO'); + var $Object$1 = Object; + var ObjectPrototype$1 = $Object$1.prototype; + + // `Object.getPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.getprototypeof + // eslint-disable-next-line es/no-object-getprototypeof -- safe + var objectGetPrototypeOf$1 = CORRECT_PROTOTYPE_GETTER$1 ? $Object$1.getPrototypeOf : function (O) { + var object = toObject$9(O); + if (hasOwn$b(object, IE_PROTO$1)) return object[IE_PROTO$1]; + var constructor = object.constructor; + if (isCallable$b(constructor) && object instanceof constructor) { + return constructor.prototype; + } return object instanceof $Object$1 ? ObjectPrototype$1 : null; + }; - var _hashGet = hashGet$1; + var uncurryThis$m = functionUncurryThis; + var aCallable$9 = aCallable$c; - var nativeCreate$1 = _nativeCreate; + var functionUncurryThisAccessor = function (object, key, method) { + try { + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + return uncurryThis$m(aCallable$9(Object.getOwnPropertyDescriptor(object, key)[method])); + } catch (error) { /* empty */ } + }; - /** Used for built-in method references. */ - var objectProto$8 = Object.prototype; + var isObject$f = isObject$k; - /** Used to check objects for own properties. */ - var hasOwnProperty$6 = objectProto$8.hasOwnProperty; + var isPossiblePrototype$1 = function (argument) { + return isObject$f(argument) || argument === null; + }; - /** - * Checks if a hash value for `key` exists. - * - * @private - * @name has - * @memberOf Hash - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function hashHas$1(key) { - var data = this.__data__; - return nativeCreate$1 ? (data[key] !== undefined) : hasOwnProperty$6.call(data, key); - } + var isPossiblePrototype = isPossiblePrototype$1; - var _hashHas = hashHas$1; + var $String$2 = String; + var $TypeError$a = TypeError; - var nativeCreate = _nativeCreate; + var aPossiblePrototype$1 = function (argument) { + if (isPossiblePrototype(argument)) return argument; + throw new $TypeError$a("Can't set " + $String$2(argument) + ' as a prototype'); + }; - /** Used to stand-in for `undefined` hash values. */ - var HASH_UNDEFINED$1 = '__lodash_hash_undefined__'; + /* eslint-disable no-proto -- safe */ + var uncurryThisAccessor = functionUncurryThisAccessor; + var isObject$e = isObject$k; + var requireObjectCoercible$6 = requireObjectCoercible$9; + var aPossiblePrototype = aPossiblePrototype$1; + + // `Object.setPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.setprototypeof + // Works with __proto__ only. Old v8 can't work with null proto objects. + // eslint-disable-next-line es/no-object-setprototypeof -- safe + var objectSetPrototypeOf = Object.setPrototypeOf || ('__proto__' in {} ? function () { + var CORRECT_SETTER = false; + var test = {}; + var setter; + try { + setter = uncurryThisAccessor(Object.prototype, '__proto__', 'set'); + setter(test, []); + CORRECT_SETTER = test instanceof Array; + } catch (error) { /* empty */ } + return function setPrototypeOf(O, proto) { + requireObjectCoercible$6(O); + aPossiblePrototype(proto); + if (!isObject$e(O)) return O; + if (CORRECT_SETTER) setter(O, proto); + else O.__proto__ = proto; + return O; + }; + }() : undefined); - /** - * Sets the hash `key` to `value`. - * - * @private - * @name set - * @memberOf Hash - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the hash instance. - */ - function hashSet$1(key, value) { - var data = this.__data__; - this.size += this.has(key) ? 0 : 1; - data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED$1 : value; - return this; - } + var objectGetOwnPropertyNames = {}; - var _hashSet = hashSet$1; + var ceil$1 = Math.ceil; + var floor = Math.floor; - var hashClear = _hashClear, - hashDelete = _hashDelete, - hashGet = _hashGet, - hashHas = _hashHas, - hashSet = _hashSet; + // `Math.trunc` method + // https://tc39.es/ecma262/#sec-math.trunc + // eslint-disable-next-line es/no-math-trunc -- safe + var mathTrunc = Math.trunc || function trunc(x) { + var n = +x; + return (n > 0 ? floor : ceil$1)(n); + }; - /** - * Creates a hash object. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function Hash$1(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; + var trunc = mathTrunc; - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } + // `ToIntegerOrInfinity` abstract operation + // https://tc39.es/ecma262/#sec-tointegerorinfinity + var toIntegerOrInfinity$5 = function (argument) { + var number = +argument; + // eslint-disable-next-line no-self-compare -- NaN check + return number !== number || number === 0 ? 0 : trunc(number); + }; - // Add methods to `Hash`. - Hash$1.prototype.clear = hashClear; - Hash$1.prototype['delete'] = hashDelete; - Hash$1.prototype.get = hashGet; - Hash$1.prototype.has = hashHas; - Hash$1.prototype.set = hashSet; + var toIntegerOrInfinity$4 = toIntegerOrInfinity$5; - var _Hash = Hash$1; + var max$1 = Math.max; + var min$3 = Math.min; - var Hash = _Hash, - ListCache$2 = _ListCache, - Map$2 = _Map; + // Helper for a popular repeating case of the spec: + // Let integer be ? ToInteger(index). + // If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). + var toAbsoluteIndex$2 = function (index, length) { + var integer = toIntegerOrInfinity$4(index); + return integer < 0 ? max$1(integer + length, 0) : min$3(integer, length); + }; - /** - * Removes all key-value entries from the map. - * - * @private - * @name clear - * @memberOf MapCache - */ - function mapCacheClear$1() { - this.size = 0; - this.__data__ = { - 'hash': new Hash, - 'map': new (Map$2 || ListCache$2), - 'string': new Hash - }; - } + var toIntegerOrInfinity$3 = toIntegerOrInfinity$5; - var _mapCacheClear = mapCacheClear$1; + var min$2 = Math.min; - /** - * Checks if `value` is suitable for use as unique object key. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is suitable, else `false`. - */ + // `ToLength` abstract operation + // https://tc39.es/ecma262/#sec-tolength + var toLength$3 = function (argument) { + var len = toIntegerOrInfinity$3(argument); + return len > 0 ? min$2(len, 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 + }; - function isKeyable$1(value) { - var type = typeof value; - return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') - ? (value !== '__proto__') - : (value === null); - } + var toLength$2 = toLength$3; - var _isKeyable = isKeyable$1; + // `LengthOfArrayLike` abstract operation + // https://tc39.es/ecma262/#sec-lengthofarraylike + var lengthOfArrayLike$9 = function (obj) { + return toLength$2(obj.length); + }; - var isKeyable = _isKeyable; + var toIndexedObject$9 = toIndexedObject$b; + var toAbsoluteIndex$1 = toAbsoluteIndex$2; + var lengthOfArrayLike$8 = lengthOfArrayLike$9; + + // `Array.prototype.{ indexOf, includes }` methods implementation + var createMethod$6 = function (IS_INCLUDES) { + return function ($this, el, fromIndex) { + var O = toIndexedObject$9($this); + var length = lengthOfArrayLike$8(O); + if (length === 0) return !IS_INCLUDES && -1; + var index = toAbsoluteIndex$1(fromIndex, length); + var value; + // Array#includes uses SameValueZero equality algorithm + // eslint-disable-next-line no-self-compare -- NaN check + if (IS_INCLUDES && el !== el) while (length > index) { + value = O[index++]; + // eslint-disable-next-line no-self-compare -- NaN check + if (value !== value) return true; + // Array#indexOf ignores holes, Array#includes - not + } else for (;length > index; index++) { + if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; + } return !IS_INCLUDES && -1; + }; + }; - /** - * Gets the data for `map`. - * - * @private - * @param {Object} map The map to query. - * @param {string} key The reference key. - * @returns {*} Returns the map data. - */ - function getMapData$4(map, key) { - var data = map.__data__; - return isKeyable(key) - ? data[typeof key == 'string' ? 'string' : 'hash'] - : data.map; - } + var arrayIncludes$2 = { + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + includes: createMethod$6(true), + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + indexOf: createMethod$6(false) + }; - var _getMapData = getMapData$4; + var hiddenKeys$5 = {}; - var getMapData$3 = _getMapData; + var uncurryThis$l = functionUncurryThis; + var hasOwn$a = hasOwnProperty_1; + var toIndexedObject$8 = toIndexedObject$b; + var indexOf$4 = arrayIncludes$2.indexOf; + var hiddenKeys$4 = hiddenKeys$5; - /** - * Removes `key` and its value from the map. - * - * @private - * @name delete - * @memberOf MapCache - * @param {string} key The key of the value to remove. - * @returns {boolean} Returns `true` if the entry was removed, else `false`. - */ - function mapCacheDelete$1(key) { - var result = getMapData$3(this, key)['delete'](key); - this.size -= result ? 1 : 0; + var push$b = uncurryThis$l([].push); + + var objectKeysInternal = function (object, names) { + var O = toIndexedObject$8(object); + var i = 0; + var result = []; + var key; + for (key in O) !hasOwn$a(hiddenKeys$4, key) && hasOwn$a(O, key) && push$b(result, key); + // Don't enum bug & hidden keys + while (names.length > i) if (hasOwn$a(O, key = names[i++])) { + ~indexOf$4(result, key) || push$b(result, key); + } return result; - } + }; - var _mapCacheDelete = mapCacheDelete$1; + // IE8- don't enum bug keys + var enumBugKeys$3 = [ + 'constructor', + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toLocaleString', + 'toString', + 'valueOf' + ]; + + var internalObjectKeys$1 = objectKeysInternal; + var enumBugKeys$2 = enumBugKeys$3; + + var hiddenKeys$3 = enumBugKeys$2.concat('length', 'prototype'); + + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + // eslint-disable-next-line es/no-object-getownpropertynames -- safe + objectGetOwnPropertyNames.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { + return internalObjectKeys$1(O, hiddenKeys$3); + }; - var getMapData$2 = _getMapData; + var objectGetOwnPropertySymbols = {}; - /** - * Gets the map value for `key`. - * - * @private - * @name get - * @memberOf MapCache - * @param {string} key The key of the value to get. - * @returns {*} Returns the entry value. - */ - function mapCacheGet$1(key) { - return getMapData$2(this, key).get(key); - } + // eslint-disable-next-line es/no-object-getownpropertysymbols -- safe + objectGetOwnPropertySymbols.f = Object.getOwnPropertySymbols; - var _mapCacheGet = mapCacheGet$1; + var getBuiltIn$c = getBuiltIn$e; + var uncurryThis$k = functionUncurryThis; + var getOwnPropertyNamesModule$1 = objectGetOwnPropertyNames; + var getOwnPropertySymbolsModule$3 = objectGetOwnPropertySymbols; + var anObject$9 = anObject$b; - var getMapData$1 = _getMapData; + var concat$5 = uncurryThis$k([].concat); - /** - * Checks if a map value for `key` exists. - * - * @private - * @name has - * @memberOf MapCache - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ - function mapCacheHas$1(key) { - return getMapData$1(this, key).has(key); - } + // all object keys, includes non-enumerable and symbols + var ownKeys$5 = getBuiltIn$c('Reflect', 'ownKeys') || function ownKeys(it) { + var keys = getOwnPropertyNamesModule$1.f(anObject$9(it)); + var getOwnPropertySymbols = getOwnPropertySymbolsModule$3.f; + return getOwnPropertySymbols ? concat$5(keys, getOwnPropertySymbols(it)) : keys; + }; - var _mapCacheHas = mapCacheHas$1; + var hasOwn$9 = hasOwnProperty_1; + var ownKeys$4 = ownKeys$5; + var getOwnPropertyDescriptorModule$2 = objectGetOwnPropertyDescriptor; + var definePropertyModule$3 = objectDefineProperty; + + var copyConstructorProperties$1 = function (target, source, exceptions) { + var keys = ownKeys$4(source); + var defineProperty = definePropertyModule$3.f; + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule$2.f; + for (var i = 0; i < keys.length; i++) { + var key = keys[i]; + if (!hasOwn$9(target, key) && !(exceptions && hasOwn$9(exceptions, key))) { + defineProperty(target, key, getOwnPropertyDescriptor(source, key)); + } + } + }; - var getMapData = _getMapData; + var objectDefineProperties = {}; - /** - * Sets the map `key` to `value`. - * - * @private - * @name set - * @memberOf MapCache - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the map cache instance. - */ - function mapCacheSet$1(key, value) { - var data = getMapData(this, key), - size = data.size; + var internalObjectKeys = objectKeysInternal; + var enumBugKeys$1 = enumBugKeys$3; - data.set(key, value); - this.size += data.size == size ? 0 : 1; - return this; - } + // `Object.keys` method + // https://tc39.es/ecma262/#sec-object.keys + // eslint-disable-next-line es/no-object-keys -- safe + var objectKeys$4 = Object.keys || function keys(O) { + return internalObjectKeys(O, enumBugKeys$1); + }; - var _mapCacheSet = mapCacheSet$1; + var DESCRIPTORS$b = descriptors; + var V8_PROTOTYPE_DEFINE_BUG = v8PrototypeDefineBug; + var definePropertyModule$2 = objectDefineProperty; + var anObject$8 = anObject$b; + var toIndexedObject$7 = toIndexedObject$b; + var objectKeys$3 = objectKeys$4; + + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + // eslint-disable-next-line es/no-object-defineproperties -- safe + objectDefineProperties.f = DESCRIPTORS$b && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) { + anObject$8(O); + var props = toIndexedObject$7(Properties); + var keys = objectKeys$3(Properties); + var length = keys.length; + var index = 0; + var key; + while (length > index) definePropertyModule$2.f(O, key = keys[index++], props[key]); + return O; + }; - var mapCacheClear = _mapCacheClear, - mapCacheDelete = _mapCacheDelete, - mapCacheGet = _mapCacheGet, - mapCacheHas = _mapCacheHas, - mapCacheSet = _mapCacheSet; + var getBuiltIn$b = getBuiltIn$e; - /** - * Creates a map cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function MapCache$3(entries) { - var index = -1, - length = entries == null ? 0 : entries.length; + var html$2 = getBuiltIn$b('document', 'documentElement'); - this.clear(); - while (++index < length) { - var entry = entries[index]; - this.set(entry[0], entry[1]); - } - } + /* global ActiveXObject -- old IE, WSH */ + var anObject$7 = anObject$b; + var definePropertiesModule$1 = objectDefineProperties; + var enumBugKeys = enumBugKeys$3; + var hiddenKeys$2 = hiddenKeys$5; + var html$1 = html$2; + var documentCreateElement = documentCreateElement$1; + var sharedKey$2 = sharedKey$4; - // Add methods to `MapCache`. - MapCache$3.prototype.clear = mapCacheClear; - MapCache$3.prototype['delete'] = mapCacheDelete; - MapCache$3.prototype.get = mapCacheGet; - MapCache$3.prototype.has = mapCacheHas; - MapCache$3.prototype.set = mapCacheSet; + var GT = '>'; + var LT = '<'; + var PROTOTYPE$1 = 'prototype'; + var SCRIPT = 'script'; + var IE_PROTO = sharedKey$2('IE_PROTO'); - var _MapCache = MapCache$3; + var EmptyConstructor = function () { /* empty */ }; - var ListCache$1 = _ListCache, - Map$1 = _Map, - MapCache$2 = _MapCache; + var scriptTag = function (content) { + return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; + }; - /** Used as the size to enable large array optimizations. */ - var LARGE_ARRAY_SIZE$1 = 200; + // Create object with fake `null` prototype: use ActiveX Object with cleared prototype + var NullProtoObjectViaActiveX = function (activeXDocument) { + activeXDocument.write(scriptTag('')); + activeXDocument.close(); + var temp = activeXDocument.parentWindow.Object; + activeXDocument = null; // avoid memory leak + return temp; + }; - /** - * Sets the stack `key` to `value`. - * - * @private - * @name set - * @memberOf Stack - * @param {string} key The key of the value to set. - * @param {*} value The value to set. - * @returns {Object} Returns the stack cache instance. - */ - function stackSet$1(key, value) { - var data = this.__data__; - if (data instanceof ListCache$1) { - var pairs = data.__data__; - if (!Map$1 || (pairs.length < LARGE_ARRAY_SIZE$1 - 1)) { - pairs.push([key, value]); - this.size = ++data.size; - return this; - } - data = this.__data__ = new MapCache$2(pairs); - } - data.set(key, value); - this.size = data.size; - return this; - } + // Create object with fake `null` prototype: use iframe Object with cleared prototype + var NullProtoObjectViaIFrame = function () { + // Thrash, waste and sodomy: IE GC bug + var iframe = documentCreateElement('iframe'); + var JS = 'java' + SCRIPT + ':'; + var iframeDocument; + iframe.style.display = 'none'; + html$1.appendChild(iframe); + // https://github.com/zloirock/core-js/issues/475 + iframe.src = String(JS); + iframeDocument = iframe.contentWindow.document; + iframeDocument.open(); + iframeDocument.write(scriptTag('document.F=Object')); + iframeDocument.close(); + return iframeDocument.F; + }; - var _stackSet = stackSet$1; + // Check for document.domain and active x support + // No need to use active x approach when document.domain is not set + // see https://github.com/es-shims/es5-shim/issues/150 + // variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 + // avoid IE GC bug + var activeXDocument; + var NullProtoObject = function () { + try { + activeXDocument = new ActiveXObject('htmlfile'); + } catch (error) { /* ignore */ } + NullProtoObject = typeof document != 'undefined' + ? document.domain && activeXDocument + ? NullProtoObjectViaActiveX(activeXDocument) // old IE + : NullProtoObjectViaIFrame() + : NullProtoObjectViaActiveX(activeXDocument); // WSH + var length = enumBugKeys.length; + while (length--) delete NullProtoObject[PROTOTYPE$1][enumBugKeys[length]]; + return NullProtoObject(); + }; - var ListCache = _ListCache, - stackClear = _stackClear, - stackDelete = _stackDelete, - stackGet = _stackGet, - stackHas = _stackHas, - stackSet = _stackSet; + hiddenKeys$2[IE_PROTO] = true; + + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + // eslint-disable-next-line es/no-object-create -- safe + var objectCreate = Object.create || function create(O, Properties) { + var result; + if (O !== null) { + EmptyConstructor[PROTOTYPE$1] = anObject$7(O); + result = new EmptyConstructor(); + EmptyConstructor[PROTOTYPE$1] = null; + // add "__proto__" for Object.getPrototypeOf polyfill + result[IE_PROTO] = O; + } else result = NullProtoObject(); + return Properties === undefined ? result : definePropertiesModule$1.f(result, Properties); + }; - /** - * Creates a stack cache object to store key-value pairs. - * - * @private - * @constructor - * @param {Array} [entries] The key-value pairs to cache. - */ - function Stack$2(entries) { - var data = this.__data__ = new ListCache(entries); - this.size = data.size; - } + var isObject$d = isObject$k; + var createNonEnumerableProperty$5 = createNonEnumerableProperty$7; - // Add methods to `Stack`. - Stack$2.prototype.clear = stackClear; - Stack$2.prototype['delete'] = stackDelete; - Stack$2.prototype.get = stackGet; - Stack$2.prototype.has = stackHas; - Stack$2.prototype.set = stackSet; + // `InstallErrorCause` abstract operation + // https://tc39.es/proposal-error-cause/#sec-errorobjects-install-error-cause + var installErrorCause$1 = function (O, options) { + if (isObject$d(options) && 'cause' in options) { + createNonEnumerableProperty$5(O, 'cause', options.cause); + } + }; - var _Stack = Stack$2; + var uncurryThis$j = functionUncurryThis; - /** Used to stand-in for `undefined` hash values. */ + var $Error$1 = Error; + var replace$2 = uncurryThis$j(''.replace); - var HASH_UNDEFINED = '__lodash_hash_undefined__'; + var TEST = (function (arg) { return String(new $Error$1(arg).stack); })('zxcasd'); + // eslint-disable-next-line redos/no-vulnerable -- safe + var V8_OR_CHAKRA_STACK_ENTRY = /\n\s*at [^:]*:[^\n]*/; + var IS_V8_OR_CHAKRA_STACK = V8_OR_CHAKRA_STACK_ENTRY.test(TEST); - /** - * Adds `value` to the array cache. - * - * @private - * @name add - * @memberOf SetCache - * @alias push - * @param {*} value The value to cache. - * @returns {Object} Returns the cache instance. - */ - function setCacheAdd$1(value) { - this.__data__.set(value, HASH_UNDEFINED); - return this; - } + var errorStackClear = function (stack, dropEntries) { + if (IS_V8_OR_CHAKRA_STACK && typeof stack == 'string' && !$Error$1.prepareStackTrace) { + while (dropEntries--) stack = replace$2(stack, V8_OR_CHAKRA_STACK_ENTRY, ''); + } return stack; + }; - var _setCacheAdd = setCacheAdd$1; + var fails$i = fails$r; + var createPropertyDescriptor$4 = createPropertyDescriptor$7; - /** - * Checks if `value` is in the array cache. - * - * @private - * @name has - * @memberOf SetCache - * @param {*} value The value to search for. - * @returns {number} Returns `true` if `value` is found, else `false`. - */ + var errorStackInstallable = !fails$i(function () { + var error = new Error('a'); + if (!('stack' in error)) return true; + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty(error, 'stack', createPropertyDescriptor$4(1, 7)); + return error.stack !== 7; + }); - function setCacheHas$1(value) { - return this.__data__.has(value); - } + var createNonEnumerableProperty$4 = createNonEnumerableProperty$7; + var clearErrorStack = errorStackClear; + var ERROR_STACK_INSTALLABLE = errorStackInstallable; - var _setCacheHas = setCacheHas$1; + // non-standard V8 + var captureStackTrace = Error.captureStackTrace; - var MapCache$1 = _MapCache, - setCacheAdd = _setCacheAdd, - setCacheHas = _setCacheHas; + var errorStackInstall = function (error, C, stack, dropEntries) { + if (ERROR_STACK_INSTALLABLE) { + if (captureStackTrace) captureStackTrace(error, C); + else createNonEnumerableProperty$4(error, 'stack', clearErrorStack(stack, dropEntries)); + } + }; - /** - * - * Creates an array cache object to store unique values. - * - * @private - * @constructor - * @param {Array} [values] The values to cache. - */ - function SetCache$2(values) { - var index = -1, - length = values == null ? 0 : values.length; + var iterators = {}; - this.__data__ = new MapCache$1; - while (++index < length) { - this.add(values[index]); - } - } + var wellKnownSymbol$m = wellKnownSymbol$o; + var Iterators$5 = iterators; - // Add methods to `SetCache`. - SetCache$2.prototype.add = SetCache$2.prototype.push = setCacheAdd; - SetCache$2.prototype.has = setCacheHas; + var ITERATOR$4 = wellKnownSymbol$m('iterator'); + var ArrayPrototype$b = Array.prototype; - var _SetCache = SetCache$2; + // check on default Array iterator + var isArrayIteratorMethod$2 = function (it) { + return it !== undefined && (Iterators$5.Array === it || ArrayPrototype$b[ITERATOR$4] === it); + }; - /** - * A specialized version of `_.some` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {boolean} Returns `true` if any element passes the predicate check, - * else `false`. - */ + var wellKnownSymbol$l = wellKnownSymbol$o; - function arraySome$1(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length; + var TO_STRING_TAG$3 = wellKnownSymbol$l('toStringTag'); + var test$1 = {}; - while (++index < length) { - if (predicate(array[index], index, array)) { - return true; - } - } - return false; - } + test$1[TO_STRING_TAG$3] = 'z'; - var _arraySome = arraySome$1; + var toStringTagSupport = String(test$1) === '[object z]'; - /** - * Checks if a `cache` value for `key` exists. - * - * @private - * @param {Object} cache The cache to query. - * @param {string} key The key of the entry to check. - * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. - */ + var TO_STRING_TAG_SUPPORT$2 = toStringTagSupport; + var isCallable$a = isCallable$j; + var classofRaw = classofRaw$2; + var wellKnownSymbol$k = wellKnownSymbol$o; - function cacheHas$2(cache, key) { - return cache.has(key); - } + var TO_STRING_TAG$2 = wellKnownSymbol$k('toStringTag'); + var $Object = Object; - var _cacheHas = cacheHas$2; + // ES3 wrong here + var CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) === 'Arguments'; - var SetCache$1 = _SetCache, - arraySome = _arraySome, - cacheHas$1 = _cacheHas; + // fallback for IE11 Script Access Denied error + var tryGet = function (it, key) { + try { + return it[key]; + } catch (error) { /* empty */ } + }; - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG$5 = 1, - COMPARE_UNORDERED_FLAG$3 = 2; + // getting tag from ES6+ `Object.prototype.toString` + var classof$b = TO_STRING_TAG_SUPPORT$2 ? classofRaw : function (it) { + var O, tag, result; + return it === undefined ? 'Undefined' : it === null ? 'Null' + // @@toStringTag case + : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG$2)) == 'string' ? tag + // builtinTag case + : CORRECT_ARGUMENTS ? classofRaw(O) + // ES3 arguments fallback + : (result = classofRaw(O)) === 'Object' && isCallable$a(O.callee) ? 'Arguments' : result; + }; - /** - * A specialized version of `baseIsEqualDeep` for arrays with support for - * partial deep comparisons. - * - * @private - * @param {Array} array The array to compare. - * @param {Array} other The other array to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `array` and `other` objects. - * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. - */ - function equalArrays$2(array, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, - arrLength = array.length, - othLength = other.length; + var classof$a = classof$b; + var getMethod$1 = getMethod$3; + var isNullOrUndefined$2 = isNullOrUndefined$5; + var Iterators$4 = iterators; + var wellKnownSymbol$j = wellKnownSymbol$o; - if (arrLength != othLength && !(isPartial && othLength > arrLength)) { - return false; - } - // Check that cyclic values are equal. - var arrStacked = stack.get(array); - var othStacked = stack.get(other); - if (arrStacked && othStacked) { - return arrStacked == other && othStacked == array; - } - var index = -1, - result = true, - seen = (bitmask & COMPARE_UNORDERED_FLAG$3) ? new SetCache$1 : undefined; + var ITERATOR$3 = wellKnownSymbol$j('iterator'); - stack.set(array, other); - stack.set(other, array); + var getIteratorMethod$8 = function (it) { + if (!isNullOrUndefined$2(it)) return getMethod$1(it, ITERATOR$3) + || getMethod$1(it, '@@iterator') + || Iterators$4[classof$a(it)]; + }; - // Ignore non-index properties. - while (++index < arrLength) { - var arrValue = array[index], - othValue = other[index]; + var call$e = functionCall; + var aCallable$8 = aCallable$c; + var anObject$6 = anObject$b; + var tryToString$3 = tryToString$5; + var getIteratorMethod$7 = getIteratorMethod$8; - if (customizer) { - var compared = isPartial - ? customizer(othValue, arrValue, index, other, array, stack) - : customizer(arrValue, othValue, index, array, other, stack); + var $TypeError$9 = TypeError; + + var getIterator$2 = function (argument, usingIterator) { + var iteratorMethod = arguments.length < 2 ? getIteratorMethod$7(argument) : usingIterator; + if (aCallable$8(iteratorMethod)) return anObject$6(call$e(iteratorMethod, argument)); + throw new $TypeError$9(tryToString$3(argument) + ' is not iterable'); + }; + + var call$d = functionCall; + var anObject$5 = anObject$b; + var getMethod = getMethod$3; + + var iteratorClose$2 = function (iterator, kind, value) { + var innerResult, innerError; + anObject$5(iterator); + try { + innerResult = getMethod(iterator, 'return'); + if (!innerResult) { + if (kind === 'throw') throw value; + return value; } - if (compared !== undefined) { - if (compared) { - continue; - } - result = false; - break; + innerResult = call$d(innerResult, iterator); + } catch (error) { + innerError = true; + innerResult = error; + } + if (kind === 'throw') throw value; + if (innerError) throw innerResult; + anObject$5(innerResult); + return value; + }; + + var bind$5 = functionBindContext; + var call$c = functionCall; + var anObject$4 = anObject$b; + var tryToString$2 = tryToString$5; + var isArrayIteratorMethod$1 = isArrayIteratorMethod$2; + var lengthOfArrayLike$7 = lengthOfArrayLike$9; + var isPrototypeOf$g = objectIsPrototypeOf; + var getIterator$1 = getIterator$2; + var getIteratorMethod$6 = getIteratorMethod$8; + var iteratorClose$1 = iteratorClose$2; + + var $TypeError$8 = TypeError; + + var Result = function (stopped, result) { + this.stopped = stopped; + this.result = result; + }; + + var ResultPrototype = Result.prototype; + + var iterate$5 = function (iterable, unboundFunction, options) { + var that = options && options.that; + var AS_ENTRIES = !!(options && options.AS_ENTRIES); + var IS_RECORD = !!(options && options.IS_RECORD); + var IS_ITERATOR = !!(options && options.IS_ITERATOR); + var INTERRUPTED = !!(options && options.INTERRUPTED); + var fn = bind$5(unboundFunction, that); + var iterator, iterFn, index, length, result, next, step; + + var stop = function (condition) { + if (iterator) iteratorClose$1(iterator, 'normal', condition); + return new Result(true, condition); + }; + + var callFn = function (value) { + if (AS_ENTRIES) { + anObject$4(value); + return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]); + } return INTERRUPTED ? fn(value, stop) : fn(value); + }; + + if (IS_RECORD) { + iterator = iterable.iterator; + } else if (IS_ITERATOR) { + iterator = iterable; + } else { + iterFn = getIteratorMethod$6(iterable); + if (!iterFn) throw new $TypeError$8(tryToString$2(iterable) + ' is not iterable'); + // optimisation for array iterators + if (isArrayIteratorMethod$1(iterFn)) { + for (index = 0, length = lengthOfArrayLike$7(iterable); length > index; index++) { + result = callFn(iterable[index]); + if (result && isPrototypeOf$g(ResultPrototype, result)) return result; + } return new Result(false); } - // Recursively compare arrays (susceptible to call stack limits). - if (seen) { - if (!arraySome(other, function(othValue, othIndex) { - if (!cacheHas$1(seen, othIndex) && - (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { - return seen.push(othIndex); - } - })) { - result = false; - break; - } - } else if (!( - arrValue === othValue || - equalFunc(arrValue, othValue, bitmask, customizer, stack) - )) { - result = false; - break; + iterator = getIterator$1(iterable, iterFn); + } + + next = IS_RECORD ? iterable.next : iterator.next; + while (!(step = call$c(next, iterator)).done) { + try { + result = callFn(step.value); + } catch (error) { + iteratorClose$1(iterator, 'throw', error); } + if (typeof result == 'object' && result && isPrototypeOf$g(ResultPrototype, result)) return result; + } return new Result(false); + }; + + var classof$9 = classof$b; + + var $String$1 = String; + + var toString$d = function (argument) { + if (classof$9(argument) === 'Symbol') throw new TypeError('Cannot convert a Symbol value to a string'); + return $String$1(argument); + }; + + var toString$c = toString$d; + + var normalizeStringArgument$1 = function (argument, $default) { + return argument === undefined ? arguments.length < 2 ? '' : $default : toString$c(argument); + }; + + var $$J = _export; + var isPrototypeOf$f = objectIsPrototypeOf; + var getPrototypeOf$7 = objectGetPrototypeOf$1; + var setPrototypeOf$6 = objectSetPrototypeOf; + var copyConstructorProperties = copyConstructorProperties$1; + var create$9 = objectCreate; + var createNonEnumerableProperty$3 = createNonEnumerableProperty$7; + var createPropertyDescriptor$3 = createPropertyDescriptor$7; + var installErrorCause = installErrorCause$1; + var installErrorStack = errorStackInstall; + var iterate$4 = iterate$5; + var normalizeStringArgument = normalizeStringArgument$1; + var wellKnownSymbol$i = wellKnownSymbol$o; + + var TO_STRING_TAG$1 = wellKnownSymbol$i('toStringTag'); + var $Error = Error; + var push$a = [].push; + + var $AggregateError = function AggregateError(errors, message /* , options */) { + var isInstance = isPrototypeOf$f(AggregateErrorPrototype, this); + var that; + if (setPrototypeOf$6) { + that = setPrototypeOf$6(new $Error(), isInstance ? getPrototypeOf$7(this) : AggregateErrorPrototype); + } else { + that = isInstance ? this : create$9(AggregateErrorPrototype); + createNonEnumerableProperty$3(that, TO_STRING_TAG$1, 'Error'); } - stack['delete'](array); - stack['delete'](other); - return result; - } + if (message !== undefined) createNonEnumerableProperty$3(that, 'message', normalizeStringArgument(message)); + installErrorStack(that, $AggregateError, that.stack, 1); + if (arguments.length > 2) installErrorCause(that, arguments[2]); + var errorsArray = []; + iterate$4(errors, push$a, { that: errorsArray }); + createNonEnumerableProperty$3(that, 'errors', errorsArray); + return that; + }; - var _equalArrays = equalArrays$2; + if (setPrototypeOf$6) setPrototypeOf$6($AggregateError, $Error); + else copyConstructorProperties($AggregateError, $Error, { name: true }); - var root$4 = _root; + var AggregateErrorPrototype = $AggregateError.prototype = create$9($Error.prototype, { + constructor: createPropertyDescriptor$3(1, $AggregateError), + message: createPropertyDescriptor$3(1, ''), + name: createPropertyDescriptor$3(1, 'AggregateError') + }); - /** Built-in value references. */ - var Uint8Array$2 = root$4.Uint8Array; + // `AggregateError` constructor + // https://tc39.es/ecma262/#sec-aggregate-error-constructor + $$J({ global: true, constructor: true, arity: 2 }, { + AggregateError: $AggregateError + }); - var _Uint8Array = Uint8Array$2; + var global$d = global$l; + var isCallable$9 = isCallable$j; - /** - * Converts `map` to its key-value pairs. - * - * @private - * @param {Object} map The map to convert. - * @returns {Array} Returns the key-value pairs. - */ + var WeakMap$3 = global$d.WeakMap; - function mapToArray$1(map) { - var index = -1, - result = Array(map.size); + var weakMapBasicDetection = isCallable$9(WeakMap$3) && /native code/.test(String(WeakMap$3)); - map.forEach(function(value, key) { - result[++index] = [key, value]; - }); - return result; - } + var NATIVE_WEAK_MAP = weakMapBasicDetection; + var global$c = global$l; + var isObject$c = isObject$k; + var createNonEnumerableProperty$2 = createNonEnumerableProperty$7; + var hasOwn$8 = hasOwnProperty_1; + var shared$4 = sharedStoreExports; + var sharedKey$1 = sharedKey$4; + var hiddenKeys$1 = hiddenKeys$5; - var _mapToArray = mapToArray$1; + var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; + var TypeError$3 = global$c.TypeError; + var WeakMap$2 = global$c.WeakMap; + var set$1, get$2, has; - /** - * Converts `set` to an array of its values. - * - * @private - * @param {Object} set The set to convert. - * @returns {Array} Returns the values. - */ + var enforce = function (it) { + return has(it) ? get$2(it) : set$1(it, {}); + }; - function setToArray$1(set) { - var index = -1, - result = Array(set.size); + var getterFor = function (TYPE) { + return function (it) { + var state; + if (!isObject$c(it) || (state = get$2(it)).type !== TYPE) { + throw new TypeError$3('Incompatible receiver, ' + TYPE + ' required'); + } return state; + }; + }; - set.forEach(function(value) { - result[++index] = value; - }); - return result; + if (NATIVE_WEAK_MAP || shared$4.state) { + var store$1 = shared$4.state || (shared$4.state = new WeakMap$2()); + /* eslint-disable no-self-assign -- prototype methods protection */ + store$1.get = store$1.get; + store$1.has = store$1.has; + store$1.set = store$1.set; + /* eslint-enable no-self-assign -- prototype methods protection */ + set$1 = function (it, metadata) { + if (store$1.has(it)) throw new TypeError$3(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + store$1.set(it, metadata); + return metadata; + }; + get$2 = function (it) { + return store$1.get(it) || {}; + }; + has = function (it) { + return store$1.has(it); + }; + } else { + var STATE = sharedKey$1('state'); + hiddenKeys$1[STATE] = true; + set$1 = function (it, metadata) { + if (hasOwn$8(it, STATE)) throw new TypeError$3(OBJECT_ALREADY_INITIALIZED); + metadata.facade = it; + createNonEnumerableProperty$2(it, STATE, metadata); + return metadata; + }; + get$2 = function (it) { + return hasOwn$8(it, STATE) ? it[STATE] : {}; + }; + has = function (it) { + return hasOwn$8(it, STATE); + }; } - var _setToArray = setToArray$1; + var internalState = { + set: set$1, + get: get$2, + has: has, + enforce: enforce, + getterFor: getterFor + }; - var Symbol$3 = _Symbol, - Uint8Array$1 = _Uint8Array, - eq = eq_1, - equalArrays$1 = _equalArrays, - mapToArray = _mapToArray, - setToArray = _setToArray; + var DESCRIPTORS$a = descriptors; + var hasOwn$7 = hasOwnProperty_1; - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG$4 = 1, - COMPARE_UNORDERED_FLAG$2 = 2; + var FunctionPrototype$1 = Function.prototype; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getDescriptor = DESCRIPTORS$a && Object.getOwnPropertyDescriptor; - /** `Object#toString` result references. */ - var boolTag$2 = '[object Boolean]', - dateTag$1 = '[object Date]', - errorTag$1 = '[object Error]', - mapTag$3 = '[object Map]', - numberTag$1 = '[object Number]', - regexpTag$1 = '[object RegExp]', - setTag$3 = '[object Set]', - stringTag$2 = '[object String]', - symbolTag$1 = '[object Symbol]'; + var EXISTS = hasOwn$7(FunctionPrototype$1, 'name'); + // additional protection from minified / mangled / dropped function names + var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; + var CONFIGURABLE = EXISTS && (!DESCRIPTORS$a || (DESCRIPTORS$a && getDescriptor(FunctionPrototype$1, 'name').configurable)); - var arrayBufferTag$1 = '[object ArrayBuffer]', - dataViewTag$2 = '[object DataView]'; + var functionName = { + EXISTS: EXISTS, + PROPER: PROPER, + CONFIGURABLE: CONFIGURABLE + }; - /** Used to convert symbols to primitives and strings. */ - var symbolProto$1 = Symbol$3 ? Symbol$3.prototype : undefined, - symbolValueOf = symbolProto$1 ? symbolProto$1.valueOf : undefined; + var createNonEnumerableProperty$1 = createNonEnumerableProperty$7; - /** - * A specialized version of `baseIsEqualDeep` for comparing objects of - * the same `toStringTag`. - * - * **Note:** This function only supports comparing values with tags of - * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {string} tag The `toStringTag` of the objects to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalByTag$1(object, other, tag, bitmask, customizer, equalFunc, stack) { - switch (tag) { - case dataViewTag$2: - if ((object.byteLength != other.byteLength) || - (object.byteOffset != other.byteOffset)) { - return false; - } - object = object.buffer; - other = other.buffer; + var defineBuiltIn$5 = function (target, key, value, options) { + if (options && options.enumerable) target[key] = value; + else createNonEnumerableProperty$1(target, key, value); + return target; + }; - case arrayBufferTag$1: - if ((object.byteLength != other.byteLength) || - !equalFunc(new Uint8Array$1(object), new Uint8Array$1(other))) { - return false; - } - return true; + var fails$h = fails$r; + var isCallable$8 = isCallable$j; + var isObject$b = isObject$k; + var create$8 = objectCreate; + var getPrototypeOf$6 = objectGetPrototypeOf$1; + var defineBuiltIn$4 = defineBuiltIn$5; + var wellKnownSymbol$h = wellKnownSymbol$o; + + var ITERATOR$2 = wellKnownSymbol$h('iterator'); + var BUGGY_SAFARI_ITERATORS$1 = false; + + // `%IteratorPrototype%` object + // https://tc39.es/ecma262/#sec-%iteratorprototype%-object + var IteratorPrototype$1, PrototypeOfArrayIteratorPrototype, arrayIterator; + + /* eslint-disable es/no-array-prototype-keys -- safe */ + if ([].keys) { + arrayIterator = [].keys(); + // Safari 8 has buggy iterators w/o `next` + if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS$1 = true; + else { + PrototypeOfArrayIteratorPrototype = getPrototypeOf$6(getPrototypeOf$6(arrayIterator)); + if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype$1 = PrototypeOfArrayIteratorPrototype; + } + } - case boolTag$2: - case dateTag$1: - case numberTag$1: - // Coerce booleans to `1` or `0` and dates to milliseconds. - // Invalid dates are coerced to `NaN`. - return eq(+object, +other); + var NEW_ITERATOR_PROTOTYPE = !isObject$b(IteratorPrototype$1) || fails$h(function () { + var test = {}; + // FF44- legacy iterators case + return IteratorPrototype$1[ITERATOR$2].call(test) !== test; + }); - case errorTag$1: - return object.name == other.name && object.message == other.message; + if (NEW_ITERATOR_PROTOTYPE) IteratorPrototype$1 = {}; + else IteratorPrototype$1 = create$8(IteratorPrototype$1); - case regexpTag$1: - case stringTag$2: - // Coerce regexes to strings and treat strings, primitives and objects, - // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring - // for more details. - return object == (other + ''); + // `%IteratorPrototype%[@@iterator]()` method + // https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator + if (!isCallable$8(IteratorPrototype$1[ITERATOR$2])) { + defineBuiltIn$4(IteratorPrototype$1, ITERATOR$2, function () { + return this; + }); + } - case mapTag$3: - var convert = mapToArray; + var iteratorsCore = { + IteratorPrototype: IteratorPrototype$1, + BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS$1 + }; - case setTag$3: - var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4; - convert || (convert = setToArray); + var TO_STRING_TAG_SUPPORT$1 = toStringTagSupport; + var classof$8 = classof$b; - if (object.size != other.size && !isPartial) { - return false; - } - // Assume cyclic values are equal. - var stacked = stack.get(object); - if (stacked) { - return stacked == other; - } - bitmask |= COMPARE_UNORDERED_FLAG$2; + // `Object.prototype.toString` method implementation + // https://tc39.es/ecma262/#sec-object.prototype.tostring + var objectToString$2 = TO_STRING_TAG_SUPPORT$1 ? {}.toString : function toString() { + return '[object ' + classof$8(this) + ']'; + }; - // Recursively compare objects (susceptible to call stack limits). - stack.set(object, other); - var result = equalArrays$1(convert(object), convert(other), bitmask, customizer, equalFunc, stack); - stack['delete'](object); - return result; + var TO_STRING_TAG_SUPPORT = toStringTagSupport; + var defineProperty$d = objectDefineProperty.f; + var createNonEnumerableProperty = createNonEnumerableProperty$7; + var hasOwn$6 = hasOwnProperty_1; + var toString$b = objectToString$2; + var wellKnownSymbol$g = wellKnownSymbol$o; - case symbolTag$1: - if (symbolValueOf) { - return symbolValueOf.call(object) == symbolValueOf.call(other); - } + var TO_STRING_TAG = wellKnownSymbol$g('toStringTag'); + + var setToStringTag$7 = function (it, TAG, STATIC, SET_METHOD) { + var target = STATIC ? it : it && it.prototype; + if (target) { + if (!hasOwn$6(target, TO_STRING_TAG)) { + defineProperty$d(target, TO_STRING_TAG, { configurable: true, value: TAG }); + } + if (SET_METHOD && !TO_STRING_TAG_SUPPORT) { + createNonEnumerableProperty(target, 'toString', toString$b); + } } - return false; - } + }; - var _equalByTag = equalByTag$1; + var IteratorPrototype = iteratorsCore.IteratorPrototype; + var create$7 = objectCreate; + var createPropertyDescriptor$2 = createPropertyDescriptor$7; + var setToStringTag$6 = setToStringTag$7; + var Iterators$3 = iterators; - /** - * Appends the elements of `values` to `array`. - * - * @private - * @param {Array} array The array to modify. - * @param {Array} values The values to append. - * @returns {Array} Returns `array`. - */ + var returnThis$1 = function () { return this; }; - function arrayPush$2(array, values) { - var index = -1, - length = values.length, - offset = array.length; + var iteratorCreateConstructor = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) { + var TO_STRING_TAG = NAME + ' Iterator'; + IteratorConstructor.prototype = create$7(IteratorPrototype, { next: createPropertyDescriptor$2(+!ENUMERABLE_NEXT, next) }); + setToStringTag$6(IteratorConstructor, TO_STRING_TAG, false, true); + Iterators$3[TO_STRING_TAG] = returnThis$1; + return IteratorConstructor; + }; - while (++index < length) { - array[offset + index] = values[index]; - } - return array; - } + var $$I = _export; + var call$b = functionCall; + var FunctionName = functionName; + var createIteratorConstructor = iteratorCreateConstructor; + var getPrototypeOf$5 = objectGetPrototypeOf$1; + var setToStringTag$5 = setToStringTag$7; + var defineBuiltIn$3 = defineBuiltIn$5; + var wellKnownSymbol$f = wellKnownSymbol$o; + var Iterators$2 = iterators; + var IteratorsCore = iteratorsCore; + + var PROPER_FUNCTION_NAME$1 = FunctionName.PROPER; + FunctionName.CONFIGURABLE; + IteratorsCore.IteratorPrototype; + var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS; + var ITERATOR$1 = wellKnownSymbol$f('iterator'); + var KEYS = 'keys'; + var VALUES = 'values'; + var ENTRIES = 'entries'; + + var returnThis = function () { return this; }; + + var iteratorDefine = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) { + createIteratorConstructor(IteratorConstructor, NAME, next); + + var getIterationMethod = function (KIND) { + if (KIND === DEFAULT && defaultIterator) return defaultIterator; + if (!BUGGY_SAFARI_ITERATORS && KIND && KIND in IterablePrototype) return IterablePrototype[KIND]; + + switch (KIND) { + case KEYS: return function keys() { return new IteratorConstructor(this, KIND); }; + case VALUES: return function values() { return new IteratorConstructor(this, KIND); }; + case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); }; + } - var _arrayPush = arrayPush$2; + return function () { return new IteratorConstructor(this); }; + }; - var arrayPush$1 = _arrayPush, - isArray$a = isArray_1; + var TO_STRING_TAG = NAME + ' Iterator'; + var INCORRECT_VALUES_NAME = false; + var IterablePrototype = Iterable.prototype; + var nativeIterator = IterablePrototype[ITERATOR$1] + || IterablePrototype['@@iterator'] + || DEFAULT && IterablePrototype[DEFAULT]; + var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT); + var anyNativeIterator = NAME === 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator; + var CurrentIteratorPrototype, methods, KEY; + + // fix native + if (anyNativeIterator) { + CurrentIteratorPrototype = getPrototypeOf$5(anyNativeIterator.call(new Iterable())); + if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) { + // Set @@toStringTag to native iterators + setToStringTag$5(CurrentIteratorPrototype, TO_STRING_TAG, true, true); + Iterators$2[TO_STRING_TAG] = returnThis; + } + } - /** - * The base implementation of `getAllKeys` and `getAllKeysIn` which uses - * `keysFunc` and `symbolsFunc` to get the enumerable property names and - * symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Function} keysFunc The function to get the keys of `object`. - * @param {Function} symbolsFunc The function to get the symbols of `object`. - * @returns {Array} Returns the array of property names and symbols. - */ - function baseGetAllKeys$1(object, keysFunc, symbolsFunc) { - var result = keysFunc(object); - return isArray$a(object) ? result : arrayPush$1(result, symbolsFunc(object)); - } + // fix Array.prototype.{ values, @@iterator }.name in V8 / FF + if (PROPER_FUNCTION_NAME$1 && DEFAULT === VALUES && nativeIterator && nativeIterator.name !== VALUES) { + { + INCORRECT_VALUES_NAME = true; + defaultIterator = function values() { return call$b(nativeIterator, this); }; + } + } - var _baseGetAllKeys = baseGetAllKeys$1; + // export additional methods + if (DEFAULT) { + methods = { + values: getIterationMethod(VALUES), + keys: IS_SET ? defaultIterator : getIterationMethod(KEYS), + entries: getIterationMethod(ENTRIES) + }; + if (FORCED) for (KEY in methods) { + if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) { + defineBuiltIn$3(IterablePrototype, KEY, methods[KEY]); + } + } else $$I({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods); + } - /** - * A specialized version of `_.filter` for arrays without support for - * iteratee shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} predicate The function invoked per iteration. - * @returns {Array} Returns the new filtered array. - */ + // define iterator + if ((FORCED) && IterablePrototype[ITERATOR$1] !== defaultIterator) { + defineBuiltIn$3(IterablePrototype, ITERATOR$1, defaultIterator, { name: DEFAULT }); + } + Iterators$2[NAME] = defaultIterator; - function arrayFilter$1(array, predicate) { - var index = -1, - length = array == null ? 0 : array.length, - resIndex = 0, - result = []; + return methods; + }; - while (++index < length) { - var value = array[index]; - if (predicate(value, index, array)) { - result[resIndex++] = value; - } + // `CreateIterResultObject` abstract operation + // https://tc39.es/ecma262/#sec-createiterresultobject + var createIterResultObject$2 = function (value, done) { + return { value: value, done: done }; + }; + + var toIndexedObject$6 = toIndexedObject$b; + var Iterators$1 = iterators; + var InternalStateModule$3 = internalState; + objectDefineProperty.f; + var defineIterator$1 = iteratorDefine; + var createIterResultObject$1 = createIterResultObject$2; + + var ARRAY_ITERATOR = 'Array Iterator'; + var setInternalState$3 = InternalStateModule$3.set; + var getInternalState$2 = InternalStateModule$3.getterFor(ARRAY_ITERATOR); + + // `Array.prototype.entries` method + // https://tc39.es/ecma262/#sec-array.prototype.entries + // `Array.prototype.keys` method + // https://tc39.es/ecma262/#sec-array.prototype.keys + // `Array.prototype.values` method + // https://tc39.es/ecma262/#sec-array.prototype.values + // `Array.prototype[@@iterator]` method + // https://tc39.es/ecma262/#sec-array.prototype-@@iterator + // `CreateArrayIterator` internal method + // https://tc39.es/ecma262/#sec-createarrayiterator + defineIterator$1(Array, 'Array', function (iterated, kind) { + setInternalState$3(this, { + type: ARRAY_ITERATOR, + target: toIndexedObject$6(iterated), // target + index: 0, // next index + kind: kind // kind + }); + // `%ArrayIteratorPrototype%.next` method + // https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next + }, function () { + var state = getInternalState$2(this); + var target = state.target; + var index = state.index++; + if (!target || index >= target.length) { + state.target = undefined; + return createIterResultObject$1(undefined, true); } - return result; - } + switch (state.kind) { + case 'keys': return createIterResultObject$1(index, false); + case 'values': return createIterResultObject$1(target[index], false); + } return createIterResultObject$1([index, target[index]], false); + }, 'values'); - var _arrayFilter = arrayFilter$1; + // argumentsList[@@iterator] is %ArrayProto_values% + // https://tc39.es/ecma262/#sec-createunmappedargumentsobject + // https://tc39.es/ecma262/#sec-createmappedargumentsobject + Iterators$1.Arguments = Iterators$1.Array; - /** - * This method returns a new empty array. - * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {Array} Returns the new empty array. - * @example - * - * var arrays = _.times(2, _.stubArray); - * - * console.log(arrays); - * // => [[], []] - * - * console.log(arrays[0] === arrays[1]); - * // => false - */ + var global$b = global$l; + var classof$7 = classofRaw$2; - function stubArray$1() { - return []; - } + var engineIsNode = classof$7(global$b.process) === 'process'; - var stubArray_1 = stubArray$1; + var defineProperty$c = objectDefineProperty; - var arrayFilter = _arrayFilter, - stubArray = stubArray_1; + var defineBuiltInAccessor$2 = function (target, name, descriptor) { + return defineProperty$c.f(target, name, descriptor); + }; - /** Used for built-in method references. */ - var objectProto$7 = Object.prototype; + var getBuiltIn$a = getBuiltIn$e; + var defineBuiltInAccessor$1 = defineBuiltInAccessor$2; + var wellKnownSymbol$e = wellKnownSymbol$o; + var DESCRIPTORS$9 = descriptors; - /** Built-in value references. */ - var propertyIsEnumerable$1 = objectProto$7.propertyIsEnumerable; + var SPECIES$5 = wellKnownSymbol$e('species'); - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeGetSymbols = Object.getOwnPropertySymbols; + var setSpecies$1 = function (CONSTRUCTOR_NAME) { + var Constructor = getBuiltIn$a(CONSTRUCTOR_NAME); - /** - * Creates an array of the own enumerable symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of symbols. - */ - var getSymbols$1 = !nativeGetSymbols ? stubArray : function(object) { - if (object == null) { - return []; + if (DESCRIPTORS$9 && Constructor && !Constructor[SPECIES$5]) { + defineBuiltInAccessor$1(Constructor, SPECIES$5, { + configurable: true, + get: function () { return this; } + }); } - object = Object(object); - return arrayFilter(nativeGetSymbols(object), function(symbol) { - return propertyIsEnumerable$1.call(object, symbol); - }); }; - var _getSymbols = getSymbols$1; + var isPrototypeOf$e = objectIsPrototypeOf; - /** - * The base implementation of `_.times` without support for iteratee shorthands - * or max array length checks. - * - * @private - * @param {number} n The number of times to invoke `iteratee`. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the array of results. - */ + var $TypeError$7 = TypeError; - function baseTimes$1(n, iteratee) { - var index = -1, - result = Array(n); + var anInstance$1 = function (it, Prototype) { + if (isPrototypeOf$e(Prototype, it)) return it; + throw new $TypeError$7('Incorrect invocation'); + }; - while (++index < n) { - result[index] = iteratee(index); - } - return result; + var uncurryThis$i = functionUncurryThis; + var isCallable$7 = isCallable$j; + var store = sharedStoreExports; + + var functionToString = uncurryThis$i(Function.toString); + + // this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper + if (!isCallable$7(store.inspectSource)) { + store.inspectSource = function (it) { + return functionToString(it); + }; } - var _baseTimes = baseTimes$1; + var inspectSource$2 = store.inspectSource; - /** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - * @example - * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); - * // => true - * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); - * // => false - */ + var uncurryThis$h = functionUncurryThis; + var fails$g = fails$r; + var isCallable$6 = isCallable$j; + var classof$6 = classof$b; + var getBuiltIn$9 = getBuiltIn$e; + var inspectSource$1 = inspectSource$2; - function isObjectLike$8(value) { - return value != null && typeof value == 'object'; - } + var noop = function () { /* empty */ }; + var construct = getBuiltIn$9('Reflect', 'construct'); + var constructorRegExp = /^\s*(?:class|function)\b/; + var exec$1 = uncurryThis$h(constructorRegExp.exec); + var INCORRECT_TO_STRING = !constructorRegExp.test(noop); - var isObjectLike_1 = isObjectLike$8; + var isConstructorModern = function isConstructor(argument) { + if (!isCallable$6(argument)) return false; + try { + construct(noop, [], argument); + return true; + } catch (error) { + return false; + } + }; - var baseGetTag$5 = _baseGetTag, - isObjectLike$7 = isObjectLike_1; + var isConstructorLegacy = function isConstructor(argument) { + if (!isCallable$6(argument)) return false; + switch (classof$6(argument)) { + case 'AsyncFunction': + case 'GeneratorFunction': + case 'AsyncGeneratorFunction': return false; + } + try { + // we can't check .prototype since constructors produced by .bind haven't it + // `Function#toString` throws on some built-it function in some legacy engines + // (for example, `DOMQuad` and similar in FF41-) + return INCORRECT_TO_STRING || !!exec$1(constructorRegExp, inspectSource$1(argument)); + } catch (error) { + return true; + } + }; - /** `Object#toString` result references. */ - var argsTag$2 = '[object Arguments]'; + isConstructorLegacy.sham = true; - /** - * The base implementation of `_.isArguments`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - */ - function baseIsArguments$1(value) { - return isObjectLike$7(value) && baseGetTag$5(value) == argsTag$2; - } + // `IsConstructor` abstract operation + // https://tc39.es/ecma262/#sec-isconstructor + var isConstructor$4 = !construct || fails$g(function () { + var called; + return isConstructorModern(isConstructorModern.call) + || !isConstructorModern(Object) + || !isConstructorModern(function () { called = true; }) + || called; + }) ? isConstructorLegacy : isConstructorModern; - var _baseIsArguments = baseIsArguments$1; + var isConstructor$3 = isConstructor$4; + var tryToString$1 = tryToString$5; - var baseIsArguments = _baseIsArguments, - isObjectLike$6 = isObjectLike_1; + var $TypeError$6 = TypeError; - /** Used for built-in method references. */ - var objectProto$6 = Object.prototype; + // `Assert: IsConstructor(argument) is true` + var aConstructor$1 = function (argument) { + if (isConstructor$3(argument)) return argument; + throw new $TypeError$6(tryToString$1(argument) + ' is not a constructor'); + }; - /** Used to check objects for own properties. */ - var hasOwnProperty$5 = objectProto$6.hasOwnProperty; + var anObject$3 = anObject$b; + var aConstructor = aConstructor$1; + var isNullOrUndefined$1 = isNullOrUndefined$5; + var wellKnownSymbol$d = wellKnownSymbol$o; - /** Built-in value references. */ - var propertyIsEnumerable = objectProto$6.propertyIsEnumerable; + var SPECIES$4 = wellKnownSymbol$d('species'); - /** - * Checks if `value` is likely an `arguments` object. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an `arguments` object, - * else `false`. - * @example - * - * _.isArguments(function() { return arguments; }()); - * // => true - * - * _.isArguments([1, 2, 3]); - * // => false - */ - var isArguments$4 = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { - return isObjectLike$6(value) && hasOwnProperty$5.call(value, 'callee') && - !propertyIsEnumerable.call(value, 'callee'); + // `SpeciesConstructor` abstract operation + // https://tc39.es/ecma262/#sec-speciesconstructor + var speciesConstructor$2 = function (O, defaultConstructor) { + var C = anObject$3(O).constructor; + var S; + return C === undefined || isNullOrUndefined$1(S = anObject$3(C)[SPECIES$4]) ? defaultConstructor : aConstructor(S); }; - var isArguments_1 = isArguments$4; + var uncurryThis$g = functionUncurryThis; - var isBuffer$3 = {exports: {}}; + var arraySlice$3 = uncurryThis$g([].slice); - /** - * This method returns `false`. - * - * @static - * @memberOf _ - * @since 4.13.0 - * @category Util - * @returns {boolean} Returns `false`. - * @example - * - * _.times(2, _.stubFalse); - * // => [false, false] - */ + var $TypeError$5 = TypeError; - function stubFalse() { - return false; - } + var validateArgumentsLength$1 = function (passed, required) { + if (passed < required) throw new $TypeError$5('Not enough arguments'); + return passed; + }; - var stubFalse_1 = stubFalse; + var userAgent$2 = engineUserAgent; + + // eslint-disable-next-line redos/no-vulnerable -- safe + var engineIsIos = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent$2); + + var global$a = global$l; + var apply$6 = functionApply; + var bind$4 = functionBindContext; + var isCallable$5 = isCallable$j; + var hasOwn$5 = hasOwnProperty_1; + var fails$f = fails$r; + var html = html$2; + var arraySlice$2 = arraySlice$3; + var createElement = documentCreateElement$1; + var validateArgumentsLength = validateArgumentsLength$1; + var IS_IOS$1 = engineIsIos; + var IS_NODE$4 = engineIsNode; + + var set = global$a.setImmediate; + var clear = global$a.clearImmediate; + var process$2 = global$a.process; + var Dispatch = global$a.Dispatch; + var Function$1 = global$a.Function; + var MessageChannel = global$a.MessageChannel; + var String$1 = global$a.String; + var counter = 0; + var queue$2 = {}; + var ONREADYSTATECHANGE = 'onreadystatechange'; + var $location, defer, channel, port; + + fails$f(function () { + // Deno throws a ReferenceError on `location` access without `--location` flag + $location = global$a.location; + }); - isBuffer$3.exports; + var run = function (id) { + if (hasOwn$5(queue$2, id)) { + var fn = queue$2[id]; + delete queue$2[id]; + fn(); + } + }; - (function (module, exports) { - var root = _root, - stubFalse = stubFalse_1; + var runner = function (id) { + return function () { + run(id); + }; + }; - /** Detect free variable `exports`. */ - var freeExports = exports && !exports.nodeType && exports; + var eventListener = function (event) { + run(event.data); + }; - /** Detect free variable `module`. */ - var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; + var globalPostMessageDefer = function (id) { + // old engines have not location.origin + global$a.postMessage(String$1(id), $location.protocol + '//' + $location.host); + }; - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports; + // Node.js 0.9+ & IE10+ has setImmediate, otherwise: + if (!set || !clear) { + set = function setImmediate(handler) { + validateArgumentsLength(arguments.length, 1); + var fn = isCallable$5(handler) ? handler : Function$1(handler); + var args = arraySlice$2(arguments, 1); + queue$2[++counter] = function () { + apply$6(fn, undefined, args); + }; + defer(counter); + return counter; + }; + clear = function clearImmediate(id) { + delete queue$2[id]; + }; + // Node.js 0.8- + if (IS_NODE$4) { + defer = function (id) { + process$2.nextTick(runner(id)); + }; + // Sphere (JS game engine) Dispatch API + } else if (Dispatch && Dispatch.now) { + defer = function (id) { + Dispatch.now(runner(id)); + }; + // Browsers with MessageChannel, includes WebWorkers + // except iOS - https://github.com/zloirock/core-js/issues/624 + } else if (MessageChannel && !IS_IOS$1) { + channel = new MessageChannel(); + port = channel.port2; + channel.port1.onmessage = eventListener; + defer = bind$4(port.postMessage, port); + // Browsers with postMessage, skip WebWorkers + // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' + } else if ( + global$a.addEventListener && + isCallable$5(global$a.postMessage) && + !global$a.importScripts && + $location && $location.protocol !== 'file:' && + !fails$f(globalPostMessageDefer) + ) { + defer = globalPostMessageDefer; + global$a.addEventListener('message', eventListener, false); + // IE8- + } else if (ONREADYSTATECHANGE in createElement('script')) { + defer = function (id) { + html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () { + html.removeChild(this); + run(id); + }; + }; + // Rest old browsers + } else { + defer = function (id) { + setTimeout(runner(id), 0); + }; + } + } - /** Built-in value references. */ - var Buffer = moduleExports ? root.Buffer : undefined; + var task$1 = { + set: set, + clear: clear + }; - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + var global$9 = global$l; + var DESCRIPTORS$8 = descriptors; - /** - * Checks if `value` is a buffer. - * - * @static - * @memberOf _ - * @since 4.3.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. - * @example - * - * _.isBuffer(new Buffer(2)); - * // => true - * - * _.isBuffer(new Uint8Array(2)); - * // => false - */ - var isBuffer = nativeIsBuffer || stubFalse; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor$1 = Object.getOwnPropertyDescriptor; - module.exports = isBuffer; - } (isBuffer$3, isBuffer$3.exports)); + // Avoid NodeJS experimental warning + var safeGetBuiltIn$1 = function (name) { + if (!DESCRIPTORS$8) return global$9[name]; + var descriptor = getOwnPropertyDescriptor$1(global$9, name); + return descriptor && descriptor.value; + }; - var isBufferExports = isBuffer$3.exports; + var Queue$2 = function () { + this.head = null; + this.tail = null; + }; - /** Used as references for various `Number` constants. */ + Queue$2.prototype = { + add: function (item) { + var entry = { item: item, next: null }; + var tail = this.tail; + if (tail) tail.next = entry; + else this.head = entry; + this.tail = entry; + }, + get: function () { + var entry = this.head; + if (entry) { + var next = this.head = entry.next; + if (next === null) this.tail = null; + return entry.item; + } + } + }; - var MAX_SAFE_INTEGER$1 = 9007199254740991; + var queue$1 = Queue$2; - /** Used to detect unsigned integer values. */ - var reIsUint = /^(?:0|[1-9]\d*)$/; + var userAgent$1 = engineUserAgent; - /** - * Checks if `value` is a valid array-like index. - * - * @private - * @param {*} value The value to check. - * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. - * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. - */ - function isIndex$2(value, length) { - var type = typeof value; - length = length == null ? MAX_SAFE_INTEGER$1 : length; + var engineIsIosPebble = /ipad|iphone|ipod/i.test(userAgent$1) && typeof Pebble != 'undefined'; - return !!length && - (type == 'number' || - (type != 'symbol' && reIsUint.test(value))) && - (value > -1 && value % 1 == 0 && value < length); - } + var userAgent = engineUserAgent; - var _isIndex = isIndex$2; + var engineIsWebosWebkit = /web0s(?!.*chrome)/i.test(userAgent); - /** Used as references for various `Number` constants. */ + var global$8 = global$l; + var safeGetBuiltIn = safeGetBuiltIn$1; + var bind$3 = functionBindContext; + var macrotask = task$1.set; + var Queue$1 = queue$1; + var IS_IOS = engineIsIos; + var IS_IOS_PEBBLE = engineIsIosPebble; + var IS_WEBOS_WEBKIT = engineIsWebosWebkit; + var IS_NODE$3 = engineIsNode; - var MAX_SAFE_INTEGER = 9007199254740991; + var MutationObserver$1 = global$8.MutationObserver || global$8.WebKitMutationObserver; + var document$2 = global$8.document; + var process$1 = global$8.process; + var Promise$3 = global$8.Promise; + var microtask$1 = safeGetBuiltIn('queueMicrotask'); + var notify$1, toggle, node, promise$6, then; - /** - * Checks if `value` is a valid array-like length. - * - * **Note:** This method is loosely based on - * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. - * @example - * - * _.isLength(3); - * // => true - * - * _.isLength(Number.MIN_VALUE); - * // => false - * - * _.isLength(Infinity); - * // => false - * - * _.isLength('3'); - * // => false - */ - function isLength$3(value) { - return typeof value == 'number' && - value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; - } + // modern engines have queueMicrotask method + if (!microtask$1) { + var queue = new Queue$1(); - var isLength_1 = isLength$3; + var flush = function () { + var parent, fn; + if (IS_NODE$3 && (parent = process$1.domain)) parent.exit(); + while (fn = queue.get()) try { + fn(); + } catch (error) { + if (queue.head) notify$1(); + throw error; + } + if (parent) parent.enter(); + }; - var baseGetTag$4 = _baseGetTag, - isLength$2 = isLength_1, - isObjectLike$5 = isObjectLike_1; + // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339 + // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898 + if (!IS_IOS && !IS_NODE$3 && !IS_WEBOS_WEBKIT && MutationObserver$1 && document$2) { + toggle = true; + node = document$2.createTextNode(''); + new MutationObserver$1(flush).observe(node, { characterData: true }); + notify$1 = function () { + node.data = toggle = !toggle; + }; + // environments with maybe non-completely correct, but existent Promise + } else if (!IS_IOS_PEBBLE && Promise$3 && Promise$3.resolve) { + // Promise.resolve without an argument throws an error in LG WebOS 2 + promise$6 = Promise$3.resolve(undefined); + // workaround of WebKit ~ iOS Safari 10.1 bug + promise$6.constructor = Promise$3; + then = bind$3(promise$6.then, promise$6); + notify$1 = function () { + then(flush); + }; + // Node.js without promises + } else if (IS_NODE$3) { + notify$1 = function () { + process$1.nextTick(flush); + }; + // for other environments - macrotask based on: + // - setImmediate + // - MessageChannel + // - window.postMessage + // - onreadystatechange + // - setTimeout + } else { + // `webpack` dev server bug on IE global methods - use bind(fn, global) + macrotask = bind$3(macrotask, global$8); + notify$1 = function () { + macrotask(flush); + }; + } - /** `Object#toString` result references. */ - var argsTag$1 = '[object Arguments]', - arrayTag$1 = '[object Array]', - boolTag$1 = '[object Boolean]', - dateTag = '[object Date]', - errorTag = '[object Error]', - funcTag = '[object Function]', - mapTag$2 = '[object Map]', - numberTag = '[object Number]', - objectTag$2 = '[object Object]', - regexpTag = '[object RegExp]', - setTag$2 = '[object Set]', - stringTag$1 = '[object String]', - weakMapTag$1 = '[object WeakMap]'; + microtask$1 = function (fn) { + if (!queue.head) notify$1(); + queue.add(fn); + }; + } - var arrayBufferTag = '[object ArrayBuffer]', - dataViewTag$1 = '[object DataView]', - float32Tag = '[object Float32Array]', - float64Tag = '[object Float64Array]', - int8Tag = '[object Int8Array]', - int16Tag = '[object Int16Array]', - int32Tag = '[object Int32Array]', - uint8Tag = '[object Uint8Array]', - uint8ClampedTag = '[object Uint8ClampedArray]', - uint16Tag = '[object Uint16Array]', - uint32Tag = '[object Uint32Array]'; + var microtask_1 = microtask$1; - /** Used to identify `toStringTag` values of typed arrays. */ - var typedArrayTags = {}; - typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = - typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = - typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = - typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = - typedArrayTags[uint32Tag] = true; - typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = - typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag$1] = - typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag] = - typedArrayTags[errorTag] = typedArrayTags[funcTag] = - typedArrayTags[mapTag$2] = typedArrayTags[numberTag] = - typedArrayTags[objectTag$2] = typedArrayTags[regexpTag] = - typedArrayTags[setTag$2] = typedArrayTags[stringTag$1] = - typedArrayTags[weakMapTag$1] = false; + var hostReportErrors$1 = function (a, b) { + try { + // eslint-disable-next-line no-console -- safe + arguments.length === 1 ? console.error(a) : console.error(a, b); + } catch (error) { /* empty */ } + }; - /** - * The base implementation of `_.isTypedArray` without Node.js optimizations. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - */ - function baseIsTypedArray$1(value) { - return isObjectLike$5(value) && - isLength$2(value.length) && !!typedArrayTags[baseGetTag$4(value)]; - } + var perform$6 = function (exec) { + try { + return { error: false, value: exec() }; + } catch (error) { + return { error: true, value: error }; + } + }; - var _baseIsTypedArray = baseIsTypedArray$1; + var global$7 = global$l; + + var promiseNativeConstructor = global$7.Promise; + + /* global Deno -- Deno case */ + var engineIsDeno = typeof Deno == 'object' && Deno && typeof Deno.version == 'object'; + + var IS_DENO$1 = engineIsDeno; + var IS_NODE$2 = engineIsNode; + + var engineIsBrowser = !IS_DENO$1 && !IS_NODE$2 + && typeof window == 'object' + && typeof document == 'object'; + + var global$6 = global$l; + var NativePromiseConstructor$5 = promiseNativeConstructor; + var isCallable$4 = isCallable$j; + var isForced = isForced_1; + var inspectSource = inspectSource$2; + var wellKnownSymbol$c = wellKnownSymbol$o; + var IS_BROWSER = engineIsBrowser; + var IS_DENO = engineIsDeno; + var V8_VERSION$2 = engineV8Version; + + var NativePromisePrototype$2 = NativePromiseConstructor$5 && NativePromiseConstructor$5.prototype; + var SPECIES$3 = wellKnownSymbol$c('species'); + var SUBCLASSING = false; + var NATIVE_PROMISE_REJECTION_EVENT$1 = isCallable$4(global$6.PromiseRejectionEvent); + + var FORCED_PROMISE_CONSTRUCTOR$5 = isForced('Promise', function () { + var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor$5); + var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor$5); + // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables + // https://bugs.chromium.org/p/chromium/issues/detail?id=830565 + // We can't detect it synchronously, so just check versions + if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION$2 === 66) return true; + // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution + if (!(NativePromisePrototype$2['catch'] && NativePromisePrototype$2['finally'])) return true; + // We can't use @@species feature detection in V8 since it causes + // deoptimization and performance degradation + // https://github.com/zloirock/core-js/issues/679 + if (!V8_VERSION$2 || V8_VERSION$2 < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) { + // Detect correctness of subclassing with @@species support + var promise = new NativePromiseConstructor$5(function (resolve) { resolve(1); }); + var FakePromise = function (exec) { + exec(function () { /* empty */ }, function () { /* empty */ }); + }; + var constructor = promise.constructor = {}; + constructor[SPECIES$3] = FakePromise; + SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise; + if (!SUBCLASSING) return true; + // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test + } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT$1; + }); - /** - * The base implementation of `_.unary` without support for storing metadata. - * - * @private - * @param {Function} func The function to cap arguments for. - * @returns {Function} Returns the new capped function. - */ + var promiseConstructorDetection = { + CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR$5, + REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT$1, + SUBCLASSING: SUBCLASSING + }; - function baseUnary$2(func) { - return function(value) { - return func(value); - }; - } + var newPromiseCapability$2 = {}; - var _baseUnary = baseUnary$2; + var aCallable$7 = aCallable$c; - var _nodeUtil = {exports: {}}; + var $TypeError$4 = TypeError; - _nodeUtil.exports; + var PromiseCapability = function (C) { + var resolve, reject; + this.promise = new C(function ($$resolve, $$reject) { + if (resolve !== undefined || reject !== undefined) throw new $TypeError$4('Bad Promise constructor'); + resolve = $$resolve; + reject = $$reject; + }); + this.resolve = aCallable$7(resolve); + this.reject = aCallable$7(reject); + }; - (function (module, exports) { - var freeGlobal = _freeGlobal; + // `NewPromiseCapability` abstract operation + // https://tc39.es/ecma262/#sec-newpromisecapability + newPromiseCapability$2.f = function (C) { + return new PromiseCapability(C); + }; - /** Detect free variable `exports`. */ - var freeExports = exports && !exports.nodeType && exports; + var $$H = _export; + var IS_NODE$1 = engineIsNode; + var global$5 = global$l; + var call$a = functionCall; + var defineBuiltIn$2 = defineBuiltIn$5; + var setToStringTag$4 = setToStringTag$7; + var setSpecies = setSpecies$1; + var aCallable$6 = aCallable$c; + var isCallable$3 = isCallable$j; + var isObject$a = isObject$k; + var anInstance = anInstance$1; + var speciesConstructor$1 = speciesConstructor$2; + var task = task$1.set; + var microtask = microtask_1; + var hostReportErrors = hostReportErrors$1; + var perform$5 = perform$6; + var Queue = queue$1; + var InternalStateModule$2 = internalState; + var NativePromiseConstructor$4 = promiseNativeConstructor; + var PromiseConstructorDetection = promiseConstructorDetection; + var newPromiseCapabilityModule$7 = newPromiseCapability$2; + + var PROMISE = 'Promise'; + var FORCED_PROMISE_CONSTRUCTOR$4 = PromiseConstructorDetection.CONSTRUCTOR; + var NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT; + PromiseConstructorDetection.SUBCLASSING; + var getInternalPromiseState = InternalStateModule$2.getterFor(PROMISE); + var setInternalState$2 = InternalStateModule$2.set; + var NativePromisePrototype$1 = NativePromiseConstructor$4 && NativePromiseConstructor$4.prototype; + var PromiseConstructor = NativePromiseConstructor$4; + var PromisePrototype = NativePromisePrototype$1; + var TypeError$2 = global$5.TypeError; + var document$1 = global$5.document; + var process = global$5.process; + var newPromiseCapability$1 = newPromiseCapabilityModule$7.f; + var newGenericPromiseCapability = newPromiseCapability$1; + + var DISPATCH_EVENT = !!(document$1 && document$1.createEvent && global$5.dispatchEvent); + var UNHANDLED_REJECTION = 'unhandledrejection'; + var REJECTION_HANDLED = 'rejectionhandled'; + var PENDING = 0; + var FULFILLED = 1; + var REJECTED = 2; + var HANDLED = 1; + var UNHANDLED = 2; + + var Internal, OwnPromiseCapability, PromiseWrapper; + + // helpers + var isThenable = function (it) { + var then; + return isObject$a(it) && isCallable$3(then = it.then) ? then : false; + }; - /** Detect free variable `module`. */ - var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; + var callReaction = function (reaction, state) { + var value = state.value; + var ok = state.state === FULFILLED; + var handler = ok ? reaction.ok : reaction.fail; + var resolve = reaction.resolve; + var reject = reaction.reject; + var domain = reaction.domain; + var result, then, exited; + try { + if (handler) { + if (!ok) { + if (state.rejection === UNHANDLED) onHandleUnhandled(state); + state.rejection = HANDLED; + } + if (handler === true) result = value; + else { + if (domain) domain.enter(); + result = handler(value); // can throw + if (domain) { + domain.exit(); + exited = true; + } + } + if (result === reaction.promise) { + reject(new TypeError$2('Promise-chain cycle')); + } else if (then = isThenable(result)) { + call$a(then, result, resolve, reject); + } else resolve(result); + } else reject(value); + } catch (error) { + if (domain && !exited) domain.exit(); + reject(error); + } + }; - /** Detect the popular CommonJS extension `module.exports`. */ - var moduleExports = freeModule && freeModule.exports === freeExports; + var notify = function (state, isReject) { + if (state.notified) return; + state.notified = true; + microtask(function () { + var reactions = state.reactions; + var reaction; + while (reaction = reactions.get()) { + callReaction(reaction, state); + } + state.notified = false; + if (isReject && !state.rejection) onUnhandled(state); + }); + }; - /** Detect free variable `process` from Node.js. */ - var freeProcess = moduleExports && freeGlobal.process; + var dispatchEvent = function (name, promise, reason) { + var event, handler; + if (DISPATCH_EVENT) { + event = document$1.createEvent('Event'); + event.promise = promise; + event.reason = reason; + event.initEvent(name, false, true); + global$5.dispatchEvent(event); + } else event = { promise: promise, reason: reason }; + if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global$5['on' + name])) handler(event); + else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason); + }; - /** Used to access faster Node.js helpers. */ - var nodeUtil = (function() { - try { - // Use `util.types` for Node.js 10+. - var types = freeModule && freeModule.require && freeModule.require('util').types; + var onUnhandled = function (state) { + call$a(task, global$5, function () { + var promise = state.facade; + var value = state.value; + var IS_UNHANDLED = isUnhandled(state); + var result; + if (IS_UNHANDLED) { + result = perform$5(function () { + if (IS_NODE$1) { + process.emit('unhandledRejection', value, promise); + } else dispatchEvent(UNHANDLED_REJECTION, promise, value); + }); + // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should + state.rejection = IS_NODE$1 || isUnhandled(state) ? UNHANDLED : HANDLED; + if (result.error) throw result.value; + } + }); + }; - if (types) { - return types; - } + var isUnhandled = function (state) { + return state.rejection !== HANDLED && !state.parent; + }; - // Legacy `process.binding('util')` for Node.js < 10. - return freeProcess && freeProcess.binding && freeProcess.binding('util'); - } catch (e) {} - }()); + var onHandleUnhandled = function (state) { + call$a(task, global$5, function () { + var promise = state.facade; + if (IS_NODE$1) { + process.emit('rejectionHandled', promise); + } else dispatchEvent(REJECTION_HANDLED, promise, state.value); + }); + }; - module.exports = nodeUtil; - } (_nodeUtil, _nodeUtil.exports)); + var bind$2 = function (fn, state, unwrap) { + return function (value) { + fn(state, value, unwrap); + }; + }; - var _nodeUtilExports = _nodeUtil.exports; + var internalReject = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + state.value = value; + state.state = REJECTED; + notify(state, true); + }; - var baseIsTypedArray = _baseIsTypedArray, - baseUnary$1 = _baseUnary, - nodeUtil = _nodeUtilExports; + var internalResolve = function (state, value, unwrap) { + if (state.done) return; + state.done = true; + if (unwrap) state = unwrap; + try { + if (state.facade === value) throw new TypeError$2("Promise can't be resolved itself"); + var then = isThenable(value); + if (then) { + microtask(function () { + var wrapper = { done: false }; + try { + call$a(then, value, + bind$2(internalResolve, wrapper, state), + bind$2(internalReject, wrapper, state) + ); + } catch (error) { + internalReject(wrapper, error, state); + } + }); + } else { + state.value = value; + state.state = FULFILLED; + notify(state, false); + } + } catch (error) { + internalReject({ done: false }, error, state); + } + }; - /* Node.js helper references. */ - var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + // constructor polyfill + if (FORCED_PROMISE_CONSTRUCTOR$4) { + // 25.4.3.1 Promise(executor) + PromiseConstructor = function Promise(executor) { + anInstance(this, PromisePrototype); + aCallable$6(executor); + call$a(Internal, this); + var state = getInternalPromiseState(this); + try { + executor(bind$2(internalResolve, state), bind$2(internalReject, state)); + } catch (error) { + internalReject(state, error); + } + }; - /** - * Checks if `value` is classified as a typed array. - * - * @static - * @memberOf _ - * @since 3.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. - * @example - * - * _.isTypedArray(new Uint8Array); - * // => true - * - * _.isTypedArray([]); - * // => false - */ - var isTypedArray$3 = nodeIsTypedArray ? baseUnary$1(nodeIsTypedArray) : baseIsTypedArray; + PromisePrototype = PromiseConstructor.prototype; + + // eslint-disable-next-line no-unused-vars -- required for `.length` + Internal = function Promise(executor) { + setInternalState$2(this, { + type: PROMISE, + done: false, + notified: false, + parent: false, + reactions: new Queue(), + rejection: false, + state: PENDING, + value: undefined + }); + }; - var isTypedArray_1 = isTypedArray$3; + // `Promise.prototype.then` method + // https://tc39.es/ecma262/#sec-promise.prototype.then + Internal.prototype = defineBuiltIn$2(PromisePrototype, 'then', function then(onFulfilled, onRejected) { + var state = getInternalPromiseState(this); + var reaction = newPromiseCapability$1(speciesConstructor$1(this, PromiseConstructor)); + state.parent = true; + reaction.ok = isCallable$3(onFulfilled) ? onFulfilled : true; + reaction.fail = isCallable$3(onRejected) && onRejected; + reaction.domain = IS_NODE$1 ? process.domain : undefined; + if (state.state === PENDING) state.reactions.add(reaction); + else microtask(function () { + callReaction(reaction, state); + }); + return reaction.promise; + }); - var baseTimes = _baseTimes, - isArguments$3 = isArguments_1, - isArray$9 = isArray_1, - isBuffer$2 = isBufferExports, - isIndex$1 = _isIndex, - isTypedArray$2 = isTypedArray_1; + OwnPromiseCapability = function () { + var promise = new Internal(); + var state = getInternalPromiseState(promise); + this.promise = promise; + this.resolve = bind$2(internalResolve, state); + this.reject = bind$2(internalReject, state); + }; - /** Used for built-in method references. */ - var objectProto$5 = Object.prototype; + newPromiseCapabilityModule$7.f = newPromiseCapability$1 = function (C) { + return C === PromiseConstructor || C === PromiseWrapper + ? new OwnPromiseCapability(C) + : newGenericPromiseCapability(C); + }; + } - /** Used to check objects for own properties. */ - var hasOwnProperty$4 = objectProto$5.hasOwnProperty; + $$H({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR$4 }, { + Promise: PromiseConstructor + }); - /** - * Creates an array of the enumerable property names of the array-like `value`. - * - * @private - * @param {*} value The value to query. - * @param {boolean} inherited Specify returning inherited property names. - * @returns {Array} Returns the array of property names. - */ - function arrayLikeKeys$1(value, inherited) { - var isArr = isArray$9(value), - isArg = !isArr && isArguments$3(value), - isBuff = !isArr && !isArg && isBuffer$2(value), - isType = !isArr && !isArg && !isBuff && isTypedArray$2(value), - skipIndexes = isArr || isArg || isBuff || isType, - result = skipIndexes ? baseTimes(value.length, String) : [], - length = result.length; + setToStringTag$4(PromiseConstructor, PROMISE, false, true); + setSpecies(PROMISE); - for (var key in value) { - if ((inherited || hasOwnProperty$4.call(value, key)) && - !(skipIndexes && ( - // Safari 9 has enumerable `arguments.length` in strict mode. - key == 'length' || - // Node.js 0.10 has enumerable non-index properties on buffers. - (isBuff && (key == 'offset' || key == 'parent')) || - // PhantomJS 2 has enumerable non-index properties on typed arrays. - (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || - // Skip index properties. - isIndex$1(key, length) - ))) { - result.push(key); + var wellKnownSymbol$b = wellKnownSymbol$o; + + var ITERATOR = wellKnownSymbol$b('iterator'); + var SAFE_CLOSING = false; + + try { + var called = 0; + var iteratorWithReturn = { + next: function () { + return { done: !!called++ }; + }, + 'return': function () { + SAFE_CLOSING = true; } + }; + iteratorWithReturn[ITERATOR] = function () { + return this; + }; + // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing + Array.from(iteratorWithReturn, function () { throw 2; }); + } catch (error) { /* empty */ } + + var checkCorrectnessOfIteration$2 = function (exec, SKIP_CLOSING) { + try { + if (!SKIP_CLOSING && !SAFE_CLOSING) return false; + } catch (error) { return false; } // workaround of old WebKit + `eval` bug + var ITERATION_SUPPORT = false; + try { + var object = {}; + object[ITERATOR] = function () { + return { + next: function () { + return { done: ITERATION_SUPPORT = true }; + } + }; + }; + exec(object); + } catch (error) { /* empty */ } + return ITERATION_SUPPORT; + }; + + var NativePromiseConstructor$3 = promiseNativeConstructor; + var checkCorrectnessOfIteration$1 = checkCorrectnessOfIteration$2; + var FORCED_PROMISE_CONSTRUCTOR$3 = promiseConstructorDetection.CONSTRUCTOR; + + var promiseStaticsIncorrectIteration = FORCED_PROMISE_CONSTRUCTOR$3 || !checkCorrectnessOfIteration$1(function (iterable) { + NativePromiseConstructor$3.all(iterable).then(undefined, function () { /* empty */ }); + }); + + var $$G = _export; + var call$9 = functionCall; + var aCallable$5 = aCallable$c; + var newPromiseCapabilityModule$6 = newPromiseCapability$2; + var perform$4 = perform$6; + var iterate$3 = iterate$5; + var PROMISE_STATICS_INCORRECT_ITERATION$3 = promiseStaticsIncorrectIteration; + + // `Promise.all` method + // https://tc39.es/ecma262/#sec-promise.all + $$G({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$3 }, { + all: function all(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$6.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform$4(function () { + var $promiseResolve = aCallable$5(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$3(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$9($promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = value; + --remaining || resolve(values); + }, reject); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; } - return result; - } + }); - var _arrayLikeKeys = arrayLikeKeys$1; + var $$F = _export; + var FORCED_PROMISE_CONSTRUCTOR$2 = promiseConstructorDetection.CONSTRUCTOR; + var NativePromiseConstructor$2 = promiseNativeConstructor; - /** Used for built-in method references. */ + NativePromiseConstructor$2 && NativePromiseConstructor$2.prototype; - var objectProto$4 = Object.prototype; + // `Promise.prototype.catch` method + // https://tc39.es/ecma262/#sec-promise.prototype.catch + $$F({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR$2, real: true }, { + 'catch': function (onRejected) { + return this.then(undefined, onRejected); + } + }); - /** - * Checks if `value` is likely a prototype object. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. - */ - function isPrototype$2(value) { - var Ctor = value && value.constructor, - proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$4; + var $$E = _export; + var call$8 = functionCall; + var aCallable$4 = aCallable$c; + var newPromiseCapabilityModule$5 = newPromiseCapability$2; + var perform$3 = perform$6; + var iterate$2 = iterate$5; + var PROMISE_STATICS_INCORRECT_ITERATION$2 = promiseStaticsIncorrectIteration; + + // `Promise.race` method + // https://tc39.es/ecma262/#sec-promise.race + $$E({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$2 }, { + race: function race(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$5.f(C); + var reject = capability.reject; + var result = perform$3(function () { + var $promiseResolve = aCallable$4(C.resolve); + iterate$2(iterable, function (promise) { + call$8($promiseResolve, C, promise).then(capability.resolve, reject); + }); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); - return value === proto; - } + var $$D = _export; + var newPromiseCapabilityModule$4 = newPromiseCapability$2; + var FORCED_PROMISE_CONSTRUCTOR$1 = promiseConstructorDetection.CONSTRUCTOR; + + // `Promise.reject` method + // https://tc39.es/ecma262/#sec-promise.reject + $$D({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR$1 }, { + reject: function reject(r) { + var capability = newPromiseCapabilityModule$4.f(this); + var capabilityReject = capability.reject; + capabilityReject(r); + return capability.promise; + } + }); - var _isPrototype = isPrototype$2; + var anObject$2 = anObject$b; + var isObject$9 = isObject$k; + var newPromiseCapability = newPromiseCapability$2; + + var promiseResolve$2 = function (C, x) { + anObject$2(C); + if (isObject$9(x) && x.constructor === C) return x; + var promiseCapability = newPromiseCapability.f(C); + var resolve = promiseCapability.resolve; + resolve(x); + return promiseCapability.promise; + }; - /** - * Creates a unary function that invokes `func` with its argument transformed. - * - * @private - * @param {Function} func The function to wrap. - * @param {Function} transform The argument transform. - * @returns {Function} Returns the new function. - */ + var $$C = _export; + var getBuiltIn$8 = getBuiltIn$e; + var IS_PURE = isPure; + var NativePromiseConstructor$1 = promiseNativeConstructor; + var FORCED_PROMISE_CONSTRUCTOR = promiseConstructorDetection.CONSTRUCTOR; + var promiseResolve$1 = promiseResolve$2; + + var PromiseConstructorWrapper = getBuiltIn$8('Promise'); + var CHECK_WRAPPER = !FORCED_PROMISE_CONSTRUCTOR; + + // `Promise.resolve` method + // https://tc39.es/ecma262/#sec-promise.resolve + $$C({ target: 'Promise', stat: true, forced: IS_PURE }, { + resolve: function resolve(x) { + return promiseResolve$1(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor$1 : this, x); + } + }); - function overArg$1(func, transform) { - return function(arg) { - return func(transform(arg)); + var $$B = _export; + var call$7 = functionCall; + var aCallable$3 = aCallable$c; + var newPromiseCapabilityModule$3 = newPromiseCapability$2; + var perform$2 = perform$6; + var iterate$1 = iterate$5; + var PROMISE_STATICS_INCORRECT_ITERATION$1 = promiseStaticsIncorrectIteration; + + // `Promise.allSettled` method + // https://tc39.es/ecma262/#sec-promise.allsettled + $$B({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION$1 }, { + allSettled: function allSettled(iterable) { + var C = this; + var capability = newPromiseCapabilityModule$3.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform$2(function () { + var promiseResolve = aCallable$3(C.resolve); + var values = []; + var counter = 0; + var remaining = 1; + iterate$1(iterable, function (promise) { + var index = counter++; + var alreadyCalled = false; + remaining++; + call$7(promiseResolve, C, promise).then(function (value) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'fulfilled', value: value }; + --remaining || resolve(values); + }, function (error) { + if (alreadyCalled) return; + alreadyCalled = true; + values[index] = { status: 'rejected', reason: error }; + --remaining || resolve(values); + }); + }); + --remaining || resolve(values); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + var $$A = _export; + var call$6 = functionCall; + var aCallable$2 = aCallable$c; + var getBuiltIn$7 = getBuiltIn$e; + var newPromiseCapabilityModule$2 = newPromiseCapability$2; + var perform$1 = perform$6; + var iterate = iterate$5; + var PROMISE_STATICS_INCORRECT_ITERATION = promiseStaticsIncorrectIteration; + + var PROMISE_ANY_ERROR = 'No one promise resolved'; + + // `Promise.any` method + // https://tc39.es/ecma262/#sec-promise.any + $$A({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, { + any: function any(iterable) { + var C = this; + var AggregateError = getBuiltIn$7('AggregateError'); + var capability = newPromiseCapabilityModule$2.f(C); + var resolve = capability.resolve; + var reject = capability.reject; + var result = perform$1(function () { + var promiseResolve = aCallable$2(C.resolve); + var errors = []; + var counter = 0; + var remaining = 1; + var alreadyResolved = false; + iterate(iterable, function (promise) { + var index = counter++; + var alreadyRejected = false; + remaining++; + call$6(promiseResolve, C, promise).then(function (value) { + if (alreadyRejected || alreadyResolved) return; + alreadyResolved = true; + resolve(value); + }, function (error) { + if (alreadyRejected || alreadyResolved) return; + alreadyRejected = true; + errors[index] = error; + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); + }); + }); + --remaining || reject(new AggregateError(errors, PROMISE_ANY_ERROR)); + }); + if (result.error) reject(result.value); + return capability.promise; + } + }); + + var $$z = _export; + var newPromiseCapabilityModule$1 = newPromiseCapability$2; + + // `Promise.withResolvers` method + // https://github.com/tc39/proposal-promise-with-resolvers + $$z({ target: 'Promise', stat: true }, { + withResolvers: function withResolvers() { + var promiseCapability = newPromiseCapabilityModule$1.f(this); + return { + promise: promiseCapability.promise, + resolve: promiseCapability.resolve, + reject: promiseCapability.reject + }; + } + }); + + var $$y = _export; + var NativePromiseConstructor = promiseNativeConstructor; + var fails$e = fails$r; + var getBuiltIn$6 = getBuiltIn$e; + var isCallable$2 = isCallable$j; + var speciesConstructor = speciesConstructor$2; + var promiseResolve = promiseResolve$2; + + var NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype; + + // Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829 + var NON_GENERIC = !!NativePromiseConstructor && fails$e(function () { + // eslint-disable-next-line unicorn/no-thenable -- required for testing + NativePromisePrototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ }); + }); + + // `Promise.prototype.finally` method + // https://tc39.es/ecma262/#sec-promise.prototype.finally + $$y({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, { + 'finally': function (onFinally) { + var C = speciesConstructor(this, getBuiltIn$6('Promise')); + var isFunction = isCallable$2(onFinally); + return this.then( + isFunction ? function (x) { + return promiseResolve(C, onFinally()).then(function () { return x; }); + } : onFinally, + isFunction ? function (e) { + return promiseResolve(C, onFinally()).then(function () { throw e; }); + } : onFinally + ); + } + }); + + var uncurryThis$f = functionUncurryThis; + var toIntegerOrInfinity$2 = toIntegerOrInfinity$5; + var toString$a = toString$d; + var requireObjectCoercible$5 = requireObjectCoercible$9; + + var charAt$2 = uncurryThis$f(''.charAt); + var charCodeAt$1 = uncurryThis$f(''.charCodeAt); + var stringSlice$1 = uncurryThis$f(''.slice); + + var createMethod$5 = function (CONVERT_TO_STRING) { + return function ($this, pos) { + var S = toString$a(requireObjectCoercible$5($this)); + var position = toIntegerOrInfinity$2(pos); + var size = S.length; + var first, second; + if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined; + first = charCodeAt$1(S, position); + return first < 0xD800 || first > 0xDBFF || position + 1 === size + || (second = charCodeAt$1(S, position + 1)) < 0xDC00 || second > 0xDFFF + ? CONVERT_TO_STRING + ? charAt$2(S, position) + : first + : CONVERT_TO_STRING + ? stringSlice$1(S, position, position + 2) + : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000; }; + }; + + var stringMultibyte = { + // `String.prototype.codePointAt` method + // https://tc39.es/ecma262/#sec-string.prototype.codepointat + codeAt: createMethod$5(false), + // `String.prototype.at` method + // https://github.com/mathiasbynens/String.prototype.at + charAt: createMethod$5(true) + }; + + var charAt$1 = stringMultibyte.charAt; + var toString$9 = toString$d; + var InternalStateModule$1 = internalState; + var defineIterator = iteratorDefine; + var createIterResultObject = createIterResultObject$2; + + var STRING_ITERATOR = 'String Iterator'; + var setInternalState$1 = InternalStateModule$1.set; + var getInternalState$1 = InternalStateModule$1.getterFor(STRING_ITERATOR); + + // `String.prototype[@@iterator]` method + // https://tc39.es/ecma262/#sec-string.prototype-@@iterator + defineIterator(String, 'String', function (iterated) { + setInternalState$1(this, { + type: STRING_ITERATOR, + string: toString$9(iterated), + index: 0 + }); + // `%StringIteratorPrototype%.next` method + // https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next + }, function next() { + var state = getInternalState$1(this); + var string = state.string; + var index = state.index; + var point; + if (index >= string.length) return createIterResultObject(undefined, true); + point = charAt$1(string, index); + state.index += point.length; + return createIterResultObject(point, false); + }); + + var path$e = path$h; + + var promise$5 = path$e.Promise; + + // iterable DOM collections + // flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods + var domIterables = { + CSSRuleList: 0, + CSSStyleDeclaration: 0, + CSSValueList: 0, + ClientRectList: 0, + DOMRectList: 0, + DOMStringList: 0, + DOMTokenList: 1, + DataTransferItemList: 0, + FileList: 0, + HTMLAllCollection: 0, + HTMLCollection: 0, + HTMLFormElement: 0, + HTMLSelectElement: 0, + MediaList: 0, + MimeTypeArray: 0, + NamedNodeMap: 0, + NodeList: 1, + PaintRequestList: 0, + Plugin: 0, + PluginArray: 0, + SVGLengthList: 0, + SVGNumberList: 0, + SVGPathSegList: 0, + SVGPointList: 0, + SVGStringList: 0, + SVGTransformList: 0, + SourceBufferList: 0, + StyleSheetList: 0, + TextTrackCueList: 0, + TextTrackList: 0, + TouchList: 0 + }; + + var DOMIterables$1 = domIterables; + var global$4 = global$l; + var setToStringTag$3 = setToStringTag$7; + var Iterators = iterators; + + for (var COLLECTION_NAME in DOMIterables$1) { + setToStringTag$3(global$4[COLLECTION_NAME], COLLECTION_NAME); + Iterators[COLLECTION_NAME] = Iterators.Array; } - var _overArg = overArg$1; + var parent$W = promise$5; - var overArg = _overArg; - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeKeys$1 = overArg(Object.keys, Object); + var promise$4 = parent$W; - var _nativeKeys = nativeKeys$1; + var parent$V = promise$4; - var isPrototype$1 = _isPrototype, - nativeKeys = _nativeKeys; - /** Used for built-in method references. */ - var objectProto$3 = Object.prototype; + var promise$3 = parent$V; - /** Used to check objects for own properties. */ - var hasOwnProperty$3 = objectProto$3.hasOwnProperty; + var $$x = _export; + var apply$5 = functionApply; + var slice$8 = arraySlice$3; + var newPromiseCapabilityModule = newPromiseCapability$2; + var aCallable$1 = aCallable$c; + var perform = perform$6; - /** - * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - */ - function baseKeys$2(object) { - if (!isPrototype$1(object)) { - return nativeKeys(object); - } - var result = []; - for (var key in Object(object)) { - if (hasOwnProperty$3.call(object, key) && key != 'constructor') { - result.push(key); - } + // `Promise.try` method + // https://github.com/tc39/proposal-promise-try + $$x({ target: 'Promise', stat: true, forced: true }, { + 'try': function (callbackfn /* , ...args */) { + var args = slice$8(arguments, 1); + var promiseCapability = newPromiseCapabilityModule.f(this); + var result = perform(function () { + return apply$5(aCallable$1(callbackfn), undefined, args); + }); + (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value); + return promiseCapability.promise; } - return result; - } + }); - var _baseKeys = baseKeys$2; + var parent$U = promise$3; + // TODO: Remove from `core-js@4` - var isFunction = isFunction_1, - isLength$1 = isLength_1; - /** - * Checks if `value` is array-like. A value is considered array-like if it's - * not a function and has a `value.length` that's an integer greater than or - * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is array-like, else `false`. - * @example - * - * _.isArrayLike([1, 2, 3]); - * // => true - * - * _.isArrayLike(document.body.children); - * // => true - * - * _.isArrayLike('abc'); - * // => true - * - * _.isArrayLike(_.noop); - * // => false - */ - function isArrayLike$4(value) { - return value != null && isLength$1(value.length) && !isFunction(value); - } - var isArrayLike_1 = isArrayLike$4; - var arrayLikeKeys = _arrayLikeKeys, - baseKeys$1 = _baseKeys, - isArrayLike$3 = isArrayLike_1; - /** - * Creates an array of the own enumerable property names of `object`. - * - * **Note:** Non-object values are coerced to objects. See the - * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) - * for more details. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Object - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names. - * @example - * - * function Foo() { - * this.a = 1; - * this.b = 2; - * } - * - * Foo.prototype.c = 3; - * - * _.keys(new Foo); - * // => ['a', 'b'] (iteration order is not guaranteed) - * - * _.keys('hi'); - * // => ['0', '1'] - */ - function keys$3(object) { - return isArrayLike$3(object) ? arrayLikeKeys(object) : baseKeys$1(object); - } + var promise$2 = parent$U; - var keys_1 = keys$3; + var promise$1 = promise$2; - var baseGetAllKeys = _baseGetAllKeys, - getSymbols = _getSymbols, - keys$2 = keys_1; + var _Promise$2 = /*@__PURE__*/getDefaultExportFromCjs(promise$1); - /** - * Creates an array of own enumerable property names and symbols of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the array of property names and symbols. - */ - function getAllKeys$1(object) { - return baseGetAllKeys(object, keys$2, getSymbols); + function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { + try { + var info = gen[key](arg); + var value = info.value; + } catch (error) { + reject(error); + return; + } + if (info.done) { + resolve(value); + } else { + _Promise$2.resolve(value).then(_next, _throw); + } + } + function _asyncToGenerator(fn) { + return function () { + var self = this, + args = arguments; + return new _Promise$2(function (resolve, reject) { + var gen = fn.apply(self, args); + function _next(value) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); + } + function _throw(err) { + asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); + } + _next(undefined); + }); + }; } - var _getAllKeys = getAllKeys$1; + var classof$5 = classofRaw$2; - var getAllKeys = _getAllKeys; + // `IsArray` abstract operation + // https://tc39.es/ecma262/#sec-isarray + // eslint-disable-next-line es/no-array-isarray -- safe + var isArray$o = Array.isArray || function isArray(argument) { + return classof$5(argument) === 'Array'; + }; - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG$3 = 1; + var $$w = _export; + var isArray$n = isArray$o; - /** Used for built-in method references. */ - var objectProto$2 = Object.prototype; + // `Array.isArray` method + // https://tc39.es/ecma262/#sec-array.isarray + $$w({ target: 'Array', stat: true }, { + isArray: isArray$n + }); - /** Used to check objects for own properties. */ - var hasOwnProperty$2 = objectProto$2.hasOwnProperty; + var path$d = path$h; - /** - * A specialized version of `baseIsEqualDeep` for objects with support for - * partial deep comparisons. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} stack Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function equalObjects$1(object, other, bitmask, customizer, equalFunc, stack) { - var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, - objProps = getAllKeys(object), - objLength = objProps.length, - othProps = getAllKeys(other), - othLength = othProps.length; + var isArray$m = path$d.Array.isArray; - if (objLength != othLength && !isPartial) { - return false; - } - var index = objLength; - while (index--) { - var key = objProps[index]; - if (!(isPartial ? key in other : hasOwnProperty$2.call(other, key))) { - return false; - } - } - // Check that cyclic values are equal. - var objStacked = stack.get(object); - var othStacked = stack.get(other); - if (objStacked && othStacked) { - return objStacked == other && othStacked == object; - } - var result = true; - stack.set(object, other); - stack.set(other, object); + var parent$T = isArray$m; - var skipCtor = isPartial; - while (++index < objLength) { - key = objProps[index]; - var objValue = object[key], - othValue = other[key]; + var isArray$l = parent$T; - if (customizer) { - var compared = isPartial - ? customizer(othValue, objValue, key, other, object, stack) - : customizer(objValue, othValue, key, object, other, stack); - } - // Recursively compare objects (susceptible to call stack limits). - if (!(compared === undefined - ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) - : compared - )) { - result = false; - break; - } - skipCtor || (skipCtor = key == 'constructor'); - } - if (result && !skipCtor) { - var objCtor = object.constructor, - othCtor = other.constructor; + var parent$S = isArray$l; - // Non `Object` object instances with different constructors are not equal. - if (objCtor != othCtor && - ('constructor' in object && 'constructor' in other) && - !(typeof objCtor == 'function' && objCtor instanceof objCtor && - typeof othCtor == 'function' && othCtor instanceof othCtor)) { - result = false; - } - } - stack['delete'](object); - stack['delete'](other); - return result; + var isArray$k = parent$S; + + var parent$R = isArray$k; + + var isArray$j = parent$R; + + var isArray$i = isArray$j; + + var _Array$isArray = /*@__PURE__*/getDefaultExportFromCjs(isArray$i); + + function _arrayWithHoles(arr) { + if (_Array$isArray(arr)) return arr; } - var _equalObjects = equalObjects$1; + var $TypeError$3 = TypeError; + var MAX_SAFE_INTEGER$2 = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991 - var getNative$4 = _getNative, - root$3 = _root; + var doesNotExceedSafeInteger$2 = function (it) { + if (it > MAX_SAFE_INTEGER$2) throw $TypeError$3('Maximum allowed index exceeded'); + return it; + }; - /* Built-in method references that are verified to be native. */ - var DataView$1 = getNative$4(root$3, 'DataView'); + var DESCRIPTORS$7 = descriptors; + var definePropertyModule$1 = objectDefineProperty; + var createPropertyDescriptor$1 = createPropertyDescriptor$7; - var _DataView = DataView$1; + var createProperty$4 = function (object, key, value) { + if (DESCRIPTORS$7) definePropertyModule$1.f(object, key, createPropertyDescriptor$1(0, value)); + else object[key] = value; + }; - var getNative$3 = _getNative, - root$2 = _root; + var isArray$h = isArray$o; + var isConstructor$2 = isConstructor$4; + var isObject$8 = isObject$k; + var wellKnownSymbol$a = wellKnownSymbol$o; + + var SPECIES$2 = wellKnownSymbol$a('species'); + var $Array$2 = Array; + + // a part of `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesConstructor$1 = function (originalArray) { + var C; + if (isArray$h(originalArray)) { + C = originalArray.constructor; + // cross-realm fallback + if (isConstructor$2(C) && (C === $Array$2 || isArray$h(C.prototype))) C = undefined; + else if (isObject$8(C)) { + C = C[SPECIES$2]; + if (C === null) C = undefined; + } + } return C === undefined ? $Array$2 : C; + }; - /* Built-in method references that are verified to be native. */ - var Promise$2 = getNative$3(root$2, 'Promise'); + var arraySpeciesConstructor = arraySpeciesConstructor$1; - var _Promise = Promise$2; + // `ArraySpeciesCreate` abstract operation + // https://tc39.es/ecma262/#sec-arrayspeciescreate + var arraySpeciesCreate$2 = function (originalArray, length) { + return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length); + }; - var getNative$2 = _getNative, - root$1 = _root; + var fails$d = fails$r; + var wellKnownSymbol$9 = wellKnownSymbol$o; + var V8_VERSION$1 = engineV8Version; + + var SPECIES$1 = wellKnownSymbol$9('species'); + + var arrayMethodHasSpeciesSupport$4 = function (METHOD_NAME) { + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/677 + return V8_VERSION$1 >= 51 || !fails$d(function () { + var array = []; + var constructor = array.constructor = {}; + constructor[SPECIES$1] = function () { + return { foo: 1 }; + }; + return array[METHOD_NAME](Boolean).foo !== 1; + }); + }; - /* Built-in method references that are verified to be native. */ - var Set$1 = getNative$2(root$1, 'Set'); + var $$v = _export; + var fails$c = fails$r; + var isArray$g = isArray$o; + var isObject$7 = isObject$k; + var toObject$8 = toObject$b; + var lengthOfArrayLike$6 = lengthOfArrayLike$9; + var doesNotExceedSafeInteger$1 = doesNotExceedSafeInteger$2; + var createProperty$3 = createProperty$4; + var arraySpeciesCreate$1 = arraySpeciesCreate$2; + var arrayMethodHasSpeciesSupport$3 = arrayMethodHasSpeciesSupport$4; + var wellKnownSymbol$8 = wellKnownSymbol$o; + var V8_VERSION = engineV8Version; + + var IS_CONCAT_SPREADABLE = wellKnownSymbol$8('isConcatSpreadable'); + + // We can't use this feature detection in V8 since it causes + // deoptimization and serious performance degradation + // https://github.com/zloirock/core-js/issues/679 + var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails$c(function () { + var array = []; + array[IS_CONCAT_SPREADABLE] = false; + return array.concat()[0] !== array; + }); - var _Set = Set$1; + var isConcatSpreadable = function (O) { + if (!isObject$7(O)) return false; + var spreadable = O[IS_CONCAT_SPREADABLE]; + return spreadable !== undefined ? !!spreadable : isArray$g(O); + }; - var getNative$1 = _getNative, - root = _root; + var FORCED$6 = !IS_CONCAT_SPREADABLE_SUPPORT || !arrayMethodHasSpeciesSupport$3('concat'); + + // `Array.prototype.concat` method + // https://tc39.es/ecma262/#sec-array.prototype.concat + // with adding support of @@isConcatSpreadable and @@species + $$v({ target: 'Array', proto: true, arity: 1, forced: FORCED$6 }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + concat: function concat(arg) { + var O = toObject$8(this); + var A = arraySpeciesCreate$1(O, 0); + var n = 0; + var i, k, length, len, E; + for (i = -1, length = arguments.length; i < length; i++) { + E = i === -1 ? O : arguments[i]; + if (isConcatSpreadable(E)) { + len = lengthOfArrayLike$6(E); + doesNotExceedSafeInteger$1(n + len); + for (k = 0; k < len; k++, n++) if (k in E) createProperty$3(A, n, E[k]); + } else { + doesNotExceedSafeInteger$1(n + 1); + createProperty$3(A, n++, E); + } + } + A.length = n; + return A; + } + }); - /* Built-in method references that are verified to be native. */ - var WeakMap$1 = getNative$1(root, 'WeakMap'); + var objectGetOwnPropertyNamesExternal = {}; - var _WeakMap = WeakMap$1; + /* eslint-disable es/no-object-getownpropertynames -- safe */ + var classof$4 = classofRaw$2; + var toIndexedObject$5 = toIndexedObject$b; + var $getOwnPropertyNames$1 = objectGetOwnPropertyNames.f; + var arraySlice$1 = arraySlice$3; - var DataView = _DataView, - Map = _Map, - Promise$1 = _Promise, - Set = _Set, - WeakMap = _WeakMap, - baseGetTag$3 = _baseGetTag, - toSource = _toSource; + var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames + ? Object.getOwnPropertyNames(window) : []; - /** `Object#toString` result references. */ - var mapTag$1 = '[object Map]', - objectTag$1 = '[object Object]', - promiseTag = '[object Promise]', - setTag$1 = '[object Set]', - weakMapTag = '[object WeakMap]'; + var getWindowNames = function (it) { + try { + return $getOwnPropertyNames$1(it); + } catch (error) { + return arraySlice$1(windowNames); + } + }; - var dataViewTag = '[object DataView]'; + // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window + objectGetOwnPropertyNamesExternal.f = function getOwnPropertyNames(it) { + return windowNames && classof$4(it) === 'Window' + ? getWindowNames(it) + : $getOwnPropertyNames$1(toIndexedObject$5(it)); + }; - /** Used to detect maps, sets, and weakmaps. */ - var dataViewCtorString = toSource(DataView), - mapCtorString = toSource(Map), - promiseCtorString = toSource(Promise$1), - setCtorString = toSource(Set), - weakMapCtorString = toSource(WeakMap); + var wellKnownSymbolWrapped = {}; - /** - * Gets the `toStringTag` of `value`. - * - * @private - * @param {*} value The value to query. - * @returns {string} Returns the `toStringTag`. - */ - var getTag$2 = baseGetTag$3; + var wellKnownSymbol$7 = wellKnownSymbol$o; - // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. - if ((DataView && getTag$2(new DataView(new ArrayBuffer(1))) != dataViewTag) || - (Map && getTag$2(new Map) != mapTag$1) || - (Promise$1 && getTag$2(Promise$1.resolve()) != promiseTag) || - (Set && getTag$2(new Set) != setTag$1) || - (WeakMap && getTag$2(new WeakMap) != weakMapTag)) { - getTag$2 = function(value) { - var result = baseGetTag$3(value), - Ctor = result == objectTag$1 ? value.constructor : undefined, - ctorString = Ctor ? toSource(Ctor) : ''; + wellKnownSymbolWrapped.f = wellKnownSymbol$7; - if (ctorString) { - switch (ctorString) { - case dataViewCtorString: return dataViewTag; - case mapCtorString: return mapTag$1; - case promiseCtorString: return promiseTag; - case setCtorString: return setTag$1; - case weakMapCtorString: return weakMapTag; + var path$c = path$h; + var hasOwn$4 = hasOwnProperty_1; + var wrappedWellKnownSymbolModule$1 = wellKnownSymbolWrapped; + var defineProperty$b = objectDefineProperty.f; + + var wellKnownSymbolDefine = function (NAME) { + var Symbol = path$c.Symbol || (path$c.Symbol = {}); + if (!hasOwn$4(Symbol, NAME)) defineProperty$b(Symbol, NAME, { + value: wrappedWellKnownSymbolModule$1.f(NAME) + }); + }; + + var call$5 = functionCall; + var getBuiltIn$5 = getBuiltIn$e; + var wellKnownSymbol$6 = wellKnownSymbol$o; + var defineBuiltIn$1 = defineBuiltIn$5; + + var symbolDefineToPrimitive = function () { + var Symbol = getBuiltIn$5('Symbol'); + var SymbolPrototype = Symbol && Symbol.prototype; + var valueOf = SymbolPrototype && SymbolPrototype.valueOf; + var TO_PRIMITIVE = wellKnownSymbol$6('toPrimitive'); + + if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) { + // `Symbol.prototype[@@toPrimitive]` method + // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive + // eslint-disable-next-line no-unused-vars -- required for .length + defineBuiltIn$1(SymbolPrototype, TO_PRIMITIVE, function (hint) { + return call$5(valueOf, this); + }, { arity: 1 }); + } + }; + + var bind$1 = functionBindContext; + var uncurryThis$e = functionUncurryThis; + var IndexedObject$2 = indexedObject; + var toObject$7 = toObject$b; + var lengthOfArrayLike$5 = lengthOfArrayLike$9; + var arraySpeciesCreate = arraySpeciesCreate$2; + + var push$9 = uncurryThis$e([].push); + + // `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation + var createMethod$4 = function (TYPE) { + var IS_MAP = TYPE === 1; + var IS_FILTER = TYPE === 2; + var IS_SOME = TYPE === 3; + var IS_EVERY = TYPE === 4; + var IS_FIND_INDEX = TYPE === 6; + var IS_FILTER_REJECT = TYPE === 7; + var NO_HOLES = TYPE === 5 || IS_FIND_INDEX; + return function ($this, callbackfn, that, specificCreate) { + var O = toObject$7($this); + var self = IndexedObject$2(O); + var length = lengthOfArrayLike$5(self); + var boundFunction = bind$1(callbackfn, that); + var index = 0; + var create = specificCreate || arraySpeciesCreate; + var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined; + var value, result; + for (;length > index; index++) if (NO_HOLES || index in self) { + value = self[index]; + result = boundFunction(value, index, O); + if (TYPE) { + if (IS_MAP) target[index] = result; // map + else if (result) switch (TYPE) { + case 3: return true; // some + case 5: return value; // find + case 6: return index; // findIndex + case 2: push$9(target, value); // filter + } else switch (TYPE) { + case 4: return false; // every + case 7: push$9(target, value); // filterReject + } } } - return result; + return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target; }; - } + }; - var _getTag = getTag$2; + var arrayIteration = { + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + forEach: createMethod$4(0), + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + map: createMethod$4(1), + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + filter: createMethod$4(2), + // `Array.prototype.some` method + // https://tc39.es/ecma262/#sec-array.prototype.some + some: createMethod$4(3), + // `Array.prototype.every` method + // https://tc39.es/ecma262/#sec-array.prototype.every + every: createMethod$4(4), + // `Array.prototype.find` method + // https://tc39.es/ecma262/#sec-array.prototype.find + find: createMethod$4(5), + // `Array.prototype.findIndex` method + // https://tc39.es/ecma262/#sec-array.prototype.findIndex + findIndex: createMethod$4(6), + // `Array.prototype.filterReject` method + // https://github.com/tc39/proposal-array-filtering + filterReject: createMethod$4(7) + }; - var Stack$1 = _Stack, - equalArrays = _equalArrays, - equalByTag = _equalByTag, - equalObjects = _equalObjects, - getTag$1 = _getTag, - isArray$8 = isArray_1, - isBuffer$1 = isBufferExports, - isTypedArray$1 = isTypedArray_1; + var $$u = _export; + var global$3 = global$l; + var call$4 = functionCall; + var uncurryThis$d = functionUncurryThis; + var DESCRIPTORS$6 = descriptors; + var NATIVE_SYMBOL$3 = symbolConstructorDetection; + var fails$b = fails$r; + var hasOwn$3 = hasOwnProperty_1; + var isPrototypeOf$d = objectIsPrototypeOf; + var anObject$1 = anObject$b; + var toIndexedObject$4 = toIndexedObject$b; + var toPropertyKey$1 = toPropertyKey$4; + var $toString = toString$d; + var createPropertyDescriptor = createPropertyDescriptor$7; + var nativeObjectCreate = objectCreate; + var objectKeys$2 = objectKeys$4; + var getOwnPropertyNamesModule = objectGetOwnPropertyNames; + var getOwnPropertyNamesExternal = objectGetOwnPropertyNamesExternal; + var getOwnPropertySymbolsModule$2 = objectGetOwnPropertySymbols; + var getOwnPropertyDescriptorModule$1 = objectGetOwnPropertyDescriptor; + var definePropertyModule = objectDefineProperty; + var definePropertiesModule = objectDefineProperties; + var propertyIsEnumerableModule$1 = objectPropertyIsEnumerable; + var defineBuiltIn = defineBuiltIn$5; + var defineBuiltInAccessor = defineBuiltInAccessor$2; + var shared$3 = shared$7; + var sharedKey = sharedKey$4; + var hiddenKeys = hiddenKeys$5; + var uid = uid$3; + var wellKnownSymbol$5 = wellKnownSymbol$o; + var wrappedWellKnownSymbolModule = wellKnownSymbolWrapped; + var defineWellKnownSymbol$m = wellKnownSymbolDefine; + var defineSymbolToPrimitive$1 = symbolDefineToPrimitive; + var setToStringTag$2 = setToStringTag$7; + var InternalStateModule = internalState; + var $forEach$1 = arrayIteration.forEach; + + var HIDDEN = sharedKey('hidden'); + var SYMBOL = 'Symbol'; + var PROTOTYPE = 'prototype'; + + var setInternalState = InternalStateModule.set; + var getInternalState = InternalStateModule.getterFor(SYMBOL); + + var ObjectPrototype = Object[PROTOTYPE]; + var $Symbol = global$3.Symbol; + var SymbolPrototype = $Symbol && $Symbol[PROTOTYPE]; + var RangeError$1 = global$3.RangeError; + var TypeError$1 = global$3.TypeError; + var QObject = global$3.QObject; + var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule$1.f; + var nativeDefineProperty = definePropertyModule.f; + var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f; + var nativePropertyIsEnumerable = propertyIsEnumerableModule$1.f; + var push$8 = uncurryThis$d([].push); + + var AllSymbols = shared$3('symbols'); + var ObjectPrototypeSymbols = shared$3('op-symbols'); + var WellKnownSymbolsStore$1 = shared$3('wks'); + + // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 + var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; + + // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 + var fallbackDefineProperty = function (O, P, Attributes) { + var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P); + if (ObjectPrototypeDescriptor) delete ObjectPrototype[P]; + nativeDefineProperty(O, P, Attributes); + if (ObjectPrototypeDescriptor && O !== ObjectPrototype) { + nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor); + } + }; - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG$2 = 1; + var setSymbolDescriptor = DESCRIPTORS$6 && fails$b(function () { + return nativeObjectCreate(nativeDefineProperty({}, 'a', { + get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; } + })).a !== 7; + }) ? fallbackDefineProperty : nativeDefineProperty; + + var wrap = function (tag, description) { + var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype); + setInternalState(symbol, { + type: SYMBOL, + tag: tag, + description: description + }); + if (!DESCRIPTORS$6) symbol.description = description; + return symbol; + }; - /** `Object#toString` result references. */ - var argsTag = '[object Arguments]', - arrayTag = '[object Array]', - objectTag = '[object Object]'; + var $defineProperty = function defineProperty(O, P, Attributes) { + if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes); + anObject$1(O); + var key = toPropertyKey$1(P); + anObject$1(Attributes); + if (hasOwn$3(AllSymbols, key)) { + if (!Attributes.enumerable) { + if (!hasOwn$3(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, nativeObjectCreate(null))); + O[HIDDEN][key] = true; + } else { + if (hasOwn$3(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false; + Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) }); + } return setSymbolDescriptor(O, key, Attributes); + } return nativeDefineProperty(O, key, Attributes); + }; - /** Used for built-in method references. */ - var objectProto$1 = Object.prototype; + var $defineProperties = function defineProperties(O, Properties) { + anObject$1(O); + var properties = toIndexedObject$4(Properties); + var keys = objectKeys$2(properties).concat($getOwnPropertySymbols(properties)); + $forEach$1(keys, function (key) { + if (!DESCRIPTORS$6 || call$4($propertyIsEnumerable$1, properties, key)) $defineProperty(O, key, properties[key]); + }); + return O; + }; - /** Used to check objects for own properties. */ - var hasOwnProperty$1 = objectProto$1.hasOwnProperty; + var $create = function create(O, Properties) { + return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties); + }; - /** - * A specialized version of `baseIsEqual` for arrays and objects which performs - * deep comparisons and tracks traversed objects enabling objects with circular - * references to be compared. - * - * @private - * @param {Object} object The object to compare. - * @param {Object} other The other object to compare. - * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. - * @param {Function} customizer The function to customize comparisons. - * @param {Function} equalFunc The function to determine equivalents of values. - * @param {Object} [stack] Tracks traversed `object` and `other` objects. - * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. - */ - function baseIsEqualDeep$1(object, other, bitmask, customizer, equalFunc, stack) { - var objIsArr = isArray$8(object), - othIsArr = isArray$8(other), - objTag = objIsArr ? arrayTag : getTag$1(object), - othTag = othIsArr ? arrayTag : getTag$1(other); + var $propertyIsEnumerable$1 = function propertyIsEnumerable(V) { + var P = toPropertyKey$1(V); + var enumerable = call$4(nativePropertyIsEnumerable, this, P); + if (this === ObjectPrototype && hasOwn$3(AllSymbols, P) && !hasOwn$3(ObjectPrototypeSymbols, P)) return false; + return enumerable || !hasOwn$3(this, P) || !hasOwn$3(AllSymbols, P) || hasOwn$3(this, HIDDEN) && this[HIDDEN][P] + ? enumerable : true; + }; - objTag = objTag == argsTag ? objectTag : objTag; - othTag = othTag == argsTag ? objectTag : othTag; + var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) { + var it = toIndexedObject$4(O); + var key = toPropertyKey$1(P); + if (it === ObjectPrototype && hasOwn$3(AllSymbols, key) && !hasOwn$3(ObjectPrototypeSymbols, key)) return; + var descriptor = nativeGetOwnPropertyDescriptor(it, key); + if (descriptor && hasOwn$3(AllSymbols, key) && !(hasOwn$3(it, HIDDEN) && it[HIDDEN][key])) { + descriptor.enumerable = true; + } + return descriptor; + }; - var objIsObj = objTag == objectTag, - othIsObj = othTag == objectTag, - isSameTag = objTag == othTag; + var $getOwnPropertyNames = function getOwnPropertyNames(O) { + var names = nativeGetOwnPropertyNames(toIndexedObject$4(O)); + var result = []; + $forEach$1(names, function (key) { + if (!hasOwn$3(AllSymbols, key) && !hasOwn$3(hiddenKeys, key)) push$8(result, key); + }); + return result; + }; - if (isSameTag && isBuffer$1(object)) { - if (!isBuffer$1(other)) { - return false; + var $getOwnPropertySymbols = function (O) { + var IS_OBJECT_PROTOTYPE = O === ObjectPrototype; + var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject$4(O)); + var result = []; + $forEach$1(names, function (key) { + if (hasOwn$3(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn$3(ObjectPrototype, key))) { + push$8(result, AllSymbols[key]); } - objIsArr = true; - objIsObj = false; - } - if (isSameTag && !objIsObj) { - stack || (stack = new Stack$1); - return (objIsArr || isTypedArray$1(object)) - ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) - : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); - } - if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) { - var objIsWrapped = objIsObj && hasOwnProperty$1.call(object, '__wrapped__'), - othIsWrapped = othIsObj && hasOwnProperty$1.call(other, '__wrapped__'); + }); + return result; + }; - if (objIsWrapped || othIsWrapped) { - var objUnwrapped = objIsWrapped ? object.value() : object, - othUnwrapped = othIsWrapped ? other.value() : other; + // `Symbol` constructor + // https://tc39.es/ecma262/#sec-symbol-constructor + if (!NATIVE_SYMBOL$3) { + $Symbol = function Symbol() { + if (isPrototypeOf$d(SymbolPrototype, this)) throw new TypeError$1('Symbol is not a constructor'); + var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]); + var tag = uid(description); + var setter = function (value) { + var $this = this === undefined ? global$3 : this; + if ($this === ObjectPrototype) call$4(setter, ObjectPrototypeSymbols, value); + if (hasOwn$3($this, HIDDEN) && hasOwn$3($this[HIDDEN], tag)) $this[HIDDEN][tag] = false; + var descriptor = createPropertyDescriptor(1, value); + try { + setSymbolDescriptor($this, tag, descriptor); + } catch (error) { + if (!(error instanceof RangeError$1)) throw error; + fallbackDefineProperty($this, tag, descriptor); + } + }; + if (DESCRIPTORS$6 && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter }); + return wrap(tag, description); + }; - stack || (stack = new Stack$1); - return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); - } - } - if (!isSameTag) { - return false; - } - stack || (stack = new Stack$1); - return equalObjects(object, other, bitmask, customizer, equalFunc, stack); - } + SymbolPrototype = $Symbol[PROTOTYPE]; - var _baseIsEqualDeep = baseIsEqualDeep$1; + defineBuiltIn(SymbolPrototype, 'toString', function toString() { + return getInternalState(this).tag; + }); - var baseIsEqualDeep = _baseIsEqualDeep, - isObjectLike$4 = isObjectLike_1; + defineBuiltIn($Symbol, 'withoutSetter', function (description) { + return wrap(uid(description), description); + }); - /** - * The base implementation of `_.isEqual` which supports partial comparisons - * and tracks traversed objects. - * - * @private - * @param {*} value The value to compare. - * @param {*} other The other value to compare. - * @param {boolean} bitmask The bitmask flags. - * 1 - Unordered comparison - * 2 - Partial comparison - * @param {Function} [customizer] The function to customize comparisons. - * @param {Object} [stack] Tracks traversed `value` and `other` objects. - * @returns {boolean} Returns `true` if the values are equivalent, else `false`. - */ - function baseIsEqual$2(value, other, bitmask, customizer, stack) { - if (value === other) { - return true; - } - if (value == null || other == null || (!isObjectLike$4(value) && !isObjectLike$4(other))) { - return value !== value && other !== other; + propertyIsEnumerableModule$1.f = $propertyIsEnumerable$1; + definePropertyModule.f = $defineProperty; + definePropertiesModule.f = $defineProperties; + getOwnPropertyDescriptorModule$1.f = $getOwnPropertyDescriptor; + getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames; + getOwnPropertySymbolsModule$2.f = $getOwnPropertySymbols; + + wrappedWellKnownSymbolModule.f = function (name) { + return wrap(wellKnownSymbol$5(name), name); + }; + + if (DESCRIPTORS$6) { + // https://github.com/tc39/proposal-Symbol-description + defineBuiltInAccessor(SymbolPrototype, 'description', { + configurable: true, + get: function description() { + return getInternalState(this).description; + } + }); } - return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual$2, stack); } - var _baseIsEqual = baseIsEqual$2; + $$u({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL$3, sham: !NATIVE_SYMBOL$3 }, { + Symbol: $Symbol + }); - var Stack = _Stack, - baseIsEqual$1 = _baseIsEqual; + $forEach$1(objectKeys$2(WellKnownSymbolsStore$1), function (name) { + defineWellKnownSymbol$m(name); + }); - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG$1 = 1, - COMPARE_UNORDERED_FLAG$1 = 2; + $$u({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL$3 }, { + useSetter: function () { USE_SETTER = true; }, + useSimple: function () { USE_SETTER = false; } + }); - /** - * The base implementation of `_.isMatch` without support for iteratee shorthands. - * - * @private - * @param {Object} object The object to inspect. - * @param {Object} source The object of property values to match. - * @param {Array} matchData The property names, values, and compare flags to match. - * @param {Function} [customizer] The function to customize comparisons. - * @returns {boolean} Returns `true` if `object` is a match, else `false`. - */ - function baseIsMatch$1(object, source, matchData, customizer) { - var index = matchData.length, - length = index, - noCustomizer = !customizer; + $$u({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL$3, sham: !DESCRIPTORS$6 }, { + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + create: $create, + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + defineProperty: $defineProperty, + // `Object.defineProperties` method + // https://tc39.es/ecma262/#sec-object.defineproperties + defineProperties: $defineProperties, + // `Object.getOwnPropertyDescriptor` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors + getOwnPropertyDescriptor: $getOwnPropertyDescriptor + }); - if (object == null) { - return !length; + $$u({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL$3 }, { + // `Object.getOwnPropertyNames` method + // https://tc39.es/ecma262/#sec-object.getownpropertynames + getOwnPropertyNames: $getOwnPropertyNames + }); + + // `Symbol.prototype[@@toPrimitive]` method + // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive + defineSymbolToPrimitive$1(); + + // `Symbol.prototype[@@toStringTag]` property + // https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag + setToStringTag$2($Symbol, SYMBOL); + + hiddenKeys[HIDDEN] = true; + + var NATIVE_SYMBOL$2 = symbolConstructorDetection; + + /* eslint-disable es/no-symbol -- safe */ + var symbolRegistryDetection = NATIVE_SYMBOL$2 && !!Symbol['for'] && !!Symbol.keyFor; + + var $$t = _export; + var getBuiltIn$4 = getBuiltIn$e; + var hasOwn$2 = hasOwnProperty_1; + var toString$8 = toString$d; + var shared$2 = shared$7; + var NATIVE_SYMBOL_REGISTRY$1 = symbolRegistryDetection; + + var StringToSymbolRegistry = shared$2('string-to-symbol-registry'); + var SymbolToStringRegistry$1 = shared$2('symbol-to-string-registry'); + + // `Symbol.for` method + // https://tc39.es/ecma262/#sec-symbol.for + $$t({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY$1 }, { + 'for': function (key) { + var string = toString$8(key); + if (hasOwn$2(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string]; + var symbol = getBuiltIn$4('Symbol')(string); + StringToSymbolRegistry[string] = symbol; + SymbolToStringRegistry$1[symbol] = string; + return symbol; } - object = Object(object); - while (index--) { - var data = matchData[index]; - if ((noCustomizer && data[2]) - ? data[1] !== object[data[0]] - : !(data[0] in object) - ) { - return false; - } + }); + + var $$s = _export; + var hasOwn$1 = hasOwnProperty_1; + var isSymbol$7 = isSymbol$a; + var tryToString = tryToString$5; + var shared$1 = shared$7; + var NATIVE_SYMBOL_REGISTRY = symbolRegistryDetection; + + var SymbolToStringRegistry = shared$1('symbol-to-string-registry'); + + // `Symbol.keyFor` method + // https://tc39.es/ecma262/#sec-symbol.keyfor + $$s({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, { + keyFor: function keyFor(sym) { + if (!isSymbol$7(sym)) throw new TypeError(tryToString(sym) + ' is not a symbol'); + if (hasOwn$1(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym]; } - while (++index < length) { - data = matchData[index]; - var key = data[0], - objValue = object[key], - srcValue = data[1]; + }); - if (noCustomizer && data[2]) { - if (objValue === undefined && !(key in object)) { - return false; - } - } else { - var stack = new Stack; - if (customizer) { - var result = customizer(objValue, srcValue, key, object, source, stack); - } - if (!(result === undefined - ? baseIsEqual$1(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) - : result - )) { - return false; - } - } + var uncurryThis$c = functionUncurryThis; + var isArray$f = isArray$o; + var isCallable$1 = isCallable$j; + var classof$3 = classofRaw$2; + var toString$7 = toString$d; + + var push$7 = uncurryThis$c([].push); + + var getJsonReplacerFunction = function (replacer) { + if (isCallable$1(replacer)) return replacer; + if (!isArray$f(replacer)) return; + var rawLength = replacer.length; + var keys = []; + for (var i = 0; i < rawLength; i++) { + var element = replacer[i]; + if (typeof element == 'string') push$7(keys, element); + else if (typeof element == 'number' || classof$3(element) === 'Number' || classof$3(element) === 'String') push$7(keys, toString$7(element)); } - return true; - } + var keysLength = keys.length; + var root = true; + return function (key, value) { + if (root) { + root = false; + return value; + } + if (isArray$f(this)) return value; + for (var j = 0; j < keysLength; j++) if (keys[j] === key) return value; + }; + }; - var _baseIsMatch = baseIsMatch$1; + var $$r = _export; + var getBuiltIn$3 = getBuiltIn$e; + var apply$4 = functionApply; + var call$3 = functionCall; + var uncurryThis$b = functionUncurryThis; + var fails$a = fails$r; + var isCallable = isCallable$j; + var isSymbol$6 = isSymbol$a; + var arraySlice = arraySlice$3; + var getReplacerFunction = getJsonReplacerFunction; + var NATIVE_SYMBOL$1 = symbolConstructorDetection; + + var $String = String; + var $stringify = getBuiltIn$3('JSON', 'stringify'); + var exec = uncurryThis$b(/./.exec); + var charAt = uncurryThis$b(''.charAt); + var charCodeAt = uncurryThis$b(''.charCodeAt); + var replace$1 = uncurryThis$b(''.replace); + var numberToString = uncurryThis$b(1.0.toString); + + var tester = /[\uD800-\uDFFF]/g; + var low = /^[\uD800-\uDBFF]$/; + var hi = /^[\uDC00-\uDFFF]$/; + + var WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL$1 || fails$a(function () { + var symbol = getBuiltIn$3('Symbol')('stringify detection'); + // MS Edge converts symbol values to JSON as {} + return $stringify([symbol]) !== '[null]' + // WebKit converts symbol values to JSON as null + || $stringify({ a: symbol }) !== '{}' + // V8 throws on boxed symbols + || $stringify(Object(symbol)) !== '{}'; + }); - var isObject$1 = isObject_1; + // https://github.com/tc39/proposal-well-formed-stringify + var ILL_FORMED_UNICODE = fails$a(function () { + return $stringify('\uDF06\uD834') !== '"\\udf06\\ud834"' + || $stringify('\uDEAD') !== '"\\udead"'; + }); - /** - * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` if suitable for strict - * equality comparisons, else `false`. - */ - function isStrictComparable$2(value) { - return value === value && !isObject$1(value); + var stringifyWithSymbolsFix = function (it, replacer) { + var args = arraySlice(arguments); + var $replacer = getReplacerFunction(replacer); + if (!isCallable($replacer) && (it === undefined || isSymbol$6(it))) return; // IE8 returns string on undefined + args[1] = function (key, value) { + // some old implementations (like WebKit) could pass numbers as keys + if (isCallable($replacer)) value = call$3($replacer, this, $String(key), value); + if (!isSymbol$6(value)) return value; + }; + return apply$4($stringify, null, args); + }; + + var fixIllFormed = function (match, offset, string) { + var prev = charAt(string, offset - 1); + var next = charAt(string, offset + 1); + if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) { + return '\\u' + numberToString(charCodeAt(match, 0), 16); + } return match; + }; + + if ($stringify) { + // `JSON.stringify` method + // https://tc39.es/ecma262/#sec-json.stringify + $$r({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + stringify: function stringify(it, replacer, space) { + var args = arraySlice(arguments); + var result = apply$4(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args); + return ILL_FORMED_UNICODE && typeof result == 'string' ? replace$1(result, tester, fixIllFormed) : result; + } + }); } - var _isStrictComparable = isStrictComparable$2; + var $$q = _export; + var NATIVE_SYMBOL = symbolConstructorDetection; + var fails$9 = fails$r; + var getOwnPropertySymbolsModule$1 = objectGetOwnPropertySymbols; + var toObject$6 = toObject$b; + + // V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives + // https://bugs.chromium.org/p/v8/issues/detail?id=3443 + var FORCED$5 = !NATIVE_SYMBOL || fails$9(function () { getOwnPropertySymbolsModule$1.f(1); }); + + // `Object.getOwnPropertySymbols` method + // https://tc39.es/ecma262/#sec-object.getownpropertysymbols + $$q({ target: 'Object', stat: true, forced: FORCED$5 }, { + getOwnPropertySymbols: function getOwnPropertySymbols(it) { + var $getOwnPropertySymbols = getOwnPropertySymbolsModule$1.f; + return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject$6(it)) : []; + } + }); - var isStrictComparable$1 = _isStrictComparable, - keys$1 = keys_1; + var defineWellKnownSymbol$l = wellKnownSymbolDefine; - /** - * Gets the property names, values, and compare flags of `object`. - * - * @private - * @param {Object} object The object to query. - * @returns {Array} Returns the match data of `object`. - */ - function getMatchData$1(object) { - var result = keys$1(object), - length = result.length; + // `Symbol.asyncIterator` well-known symbol + // https://tc39.es/ecma262/#sec-symbol.asynciterator + defineWellKnownSymbol$l('asyncIterator'); - while (length--) { - var key = result[length], - value = object[key]; + var defineWellKnownSymbol$k = wellKnownSymbolDefine; - result[length] = [key, value, isStrictComparable$1(value)]; - } - return result; - } + // `Symbol.hasInstance` well-known symbol + // https://tc39.es/ecma262/#sec-symbol.hasinstance + defineWellKnownSymbol$k('hasInstance'); - var _getMatchData = getMatchData$1; + var defineWellKnownSymbol$j = wellKnownSymbolDefine; - /** - * A specialized version of `matchesProperty` for source values suitable - * for strict equality comparisons, i.e. `===`. - * - * @private - * @param {string} key The key of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. - */ + // `Symbol.isConcatSpreadable` well-known symbol + // https://tc39.es/ecma262/#sec-symbol.isconcatspreadable + defineWellKnownSymbol$j('isConcatSpreadable'); - function matchesStrictComparable$2(key, srcValue) { - return function(object) { - if (object == null) { - return false; - } - return object[key] === srcValue && - (srcValue !== undefined || (key in Object(object))); - }; - } + var defineWellKnownSymbol$i = wellKnownSymbolDefine; - var _matchesStrictComparable = matchesStrictComparable$2; + // `Symbol.iterator` well-known symbol + // https://tc39.es/ecma262/#sec-symbol.iterator + defineWellKnownSymbol$i('iterator'); - var baseIsMatch = _baseIsMatch, - getMatchData = _getMatchData, - matchesStrictComparable$1 = _matchesStrictComparable; + var defineWellKnownSymbol$h = wellKnownSymbolDefine; - /** - * The base implementation of `_.matches` which doesn't clone `source`. - * - * @private - * @param {Object} source The object of property values to match. - * @returns {Function} Returns the new spec function. - */ - function baseMatches$1(source) { - var matchData = getMatchData(source); - if (matchData.length == 1 && matchData[0][2]) { - return matchesStrictComparable$1(matchData[0][0], matchData[0][1]); - } - return function(object) { - return object === source || baseIsMatch(object, source, matchData); - }; - } + // `Symbol.match` well-known symbol + // https://tc39.es/ecma262/#sec-symbol.match + defineWellKnownSymbol$h('match'); - var _baseMatches = baseMatches$1; + var defineWellKnownSymbol$g = wellKnownSymbolDefine; - var baseGetTag$2 = _baseGetTag, - isObjectLike$3 = isObjectLike_1; + // `Symbol.matchAll` well-known symbol + // https://tc39.es/ecma262/#sec-symbol.matchall + defineWellKnownSymbol$g('matchAll'); - /** `Object#toString` result references. */ - var symbolTag = '[object Symbol]'; + var defineWellKnownSymbol$f = wellKnownSymbolDefine; - /** - * Checks if `value` is classified as a `Symbol` primitive or object. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. - * @example - * - * _.isSymbol(Symbol.iterator); - * // => true - * - * _.isSymbol('abc'); - * // => false - */ - function isSymbol$4(value) { - return typeof value == 'symbol' || - (isObjectLike$3(value) && baseGetTag$2(value) == symbolTag); - } + // `Symbol.replace` well-known symbol + // https://tc39.es/ecma262/#sec-symbol.replace + defineWellKnownSymbol$f('replace'); - var isSymbol_1 = isSymbol$4; + var defineWellKnownSymbol$e = wellKnownSymbolDefine; - var isArray$7 = isArray_1, - isSymbol$3 = isSymbol_1; + // `Symbol.search` well-known symbol + // https://tc39.es/ecma262/#sec-symbol.search + defineWellKnownSymbol$e('search'); - /** Used to match property names within property paths. */ - var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, - reIsPlainProp = /^\w*$/; + var defineWellKnownSymbol$d = wellKnownSymbolDefine; - /** - * Checks if `value` is a property name and not a property path. - * - * @private - * @param {*} value The value to check. - * @param {Object} [object] The object to query keys on. - * @returns {boolean} Returns `true` if `value` is a property name, else `false`. - */ - function isKey$3(value, object) { - if (isArray$7(value)) { - return false; - } - var type = typeof value; - if (type == 'number' || type == 'symbol' || type == 'boolean' || - value == null || isSymbol$3(value)) { - return true; - } - return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || - (object != null && value in Object(object)); - } + // `Symbol.species` well-known symbol + // https://tc39.es/ecma262/#sec-symbol.species + defineWellKnownSymbol$d('species'); - var _isKey = isKey$3; + var defineWellKnownSymbol$c = wellKnownSymbolDefine; - var MapCache = _MapCache; + // `Symbol.split` well-known symbol + // https://tc39.es/ecma262/#sec-symbol.split + defineWellKnownSymbol$c('split'); - /** Error message constants. */ - var FUNC_ERROR_TEXT = 'Expected a function'; + var defineWellKnownSymbol$b = wellKnownSymbolDefine; + var defineSymbolToPrimitive = symbolDefineToPrimitive; - /** - * Creates a function that memoizes the result of `func`. If `resolver` is - * provided, it determines the cache key for storing the result based on the - * arguments provided to the memoized function. By default, the first argument - * provided to the memoized function is used as the map cache key. The `func` - * is invoked with the `this` binding of the memoized function. - * - * **Note:** The cache is exposed as the `cache` property on the memoized - * function. Its creation may be customized by replacing the `_.memoize.Cache` - * constructor with one whose instances implement the - * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) - * method interface of `clear`, `delete`, `get`, `has`, and `set`. - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Function - * @param {Function} func The function to have its output memoized. - * @param {Function} [resolver] The function to resolve the cache key. - * @returns {Function} Returns the new memoized function. - * @example - * - * var object = { 'a': 1, 'b': 2 }; - * var other = { 'c': 3, 'd': 4 }; - * - * var values = _.memoize(_.values); - * values(object); - * // => [1, 2] - * - * values(other); - * // => [3, 4] - * - * object.a = 2; - * values(object); - * // => [1, 2] - * - * // Modify the result cache. - * values.cache.set(object, ['a', 'b']); - * values(object); - * // => ['a', 'b'] - * - * // Replace `_.memoize.Cache`. - * _.memoize.Cache = WeakMap; - */ - function memoize$1(func, resolver) { - if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { - throw new TypeError(FUNC_ERROR_TEXT); - } - var memoized = function() { - var args = arguments, - key = resolver ? resolver.apply(this, args) : args[0], - cache = memoized.cache; + // `Symbol.toPrimitive` well-known symbol + // https://tc39.es/ecma262/#sec-symbol.toprimitive + defineWellKnownSymbol$b('toPrimitive'); - if (cache.has(key)) { - return cache.get(key); - } - var result = func.apply(this, args); - memoized.cache = cache.set(key, result) || cache; - return result; - }; - memoized.cache = new (memoize$1.Cache || MapCache); - return memoized; - } + // `Symbol.prototype[@@toPrimitive]` method + // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive + defineSymbolToPrimitive(); - // Expose `MapCache`. - memoize$1.Cache = MapCache; + var getBuiltIn$2 = getBuiltIn$e; + var defineWellKnownSymbol$a = wellKnownSymbolDefine; + var setToStringTag$1 = setToStringTag$7; - var memoize_1 = memoize$1; + // `Symbol.toStringTag` well-known symbol + // https://tc39.es/ecma262/#sec-symbol.tostringtag + defineWellKnownSymbol$a('toStringTag'); - var memoize = memoize_1; + // `Symbol.prototype[@@toStringTag]` property + // https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag + setToStringTag$1(getBuiltIn$2('Symbol'), 'Symbol'); - /** Used as the maximum memoize cache size. */ - var MAX_MEMOIZE_SIZE = 500; + var defineWellKnownSymbol$9 = wellKnownSymbolDefine; - /** - * A specialized version of `_.memoize` which clears the memoized function's - * cache when it exceeds `MAX_MEMOIZE_SIZE`. - * - * @private - * @param {Function} func The function to have its output memoized. - * @returns {Function} Returns the new memoized function. - */ - function memoizeCapped$1(func) { - var result = memoize(func, function(key) { - if (cache.size === MAX_MEMOIZE_SIZE) { - cache.clear(); - } - return key; - }); + // `Symbol.unscopables` well-known symbol + // https://tc39.es/ecma262/#sec-symbol.unscopables + defineWellKnownSymbol$9('unscopables'); - var cache = result.cache; - return result; - } + var global$2 = global$l; + var setToStringTag = setToStringTag$7; - var _memoizeCapped = memoizeCapped$1; + // JSON[@@toStringTag] property + // https://tc39.es/ecma262/#sec-json-@@tostringtag + setToStringTag(global$2.JSON, 'JSON', true); - var memoizeCapped = _memoizeCapped; + var path$b = path$h; - /** Used to match property names within property paths. */ - var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + var symbol$5 = path$b.Symbol; - /** Used to match backslashes in property paths. */ - var reEscapeChar = /\\(\\)?/g; + var parent$Q = symbol$5; - /** - * Converts `string` to a property path array. - * - * @private - * @param {string} string The string to convert. - * @returns {Array} Returns the property path array. - */ - var stringToPath$1 = memoizeCapped(function(string) { - var result = []; - if (string.charCodeAt(0) === 46 /* . */) { - result.push(''); - } - string.replace(rePropName, function(match, number, quote, subString) { - result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); - }); - return result; - }); - var _stringToPath = stringToPath$1; + var symbol$4 = parent$Q; - /** - * A specialized version of `_.map` for arrays without support for iteratee - * shorthands. - * - * @private - * @param {Array} [array] The array to iterate over. - * @param {Function} iteratee The function invoked per iteration. - * @returns {Array} Returns the new mapped array. - */ + var wellKnownSymbol$4 = wellKnownSymbol$o; + var defineProperty$a = objectDefineProperty.f; - function arrayMap$2(array, iteratee) { - var index = -1, - length = array == null ? 0 : array.length, - result = Array(length); + var METADATA = wellKnownSymbol$4('metadata'); + var FunctionPrototype = Function.prototype; - while (++index < length) { - result[index] = iteratee(array[index], index, array); - } - return result; + // Function.prototype[@@metadata] + // https://github.com/tc39/proposal-decorator-metadata + if (FunctionPrototype[METADATA] === undefined) { + defineProperty$a(FunctionPrototype, METADATA, { + value: null + }); } - var _arrayMap = arrayMap$2; + var defineWellKnownSymbol$8 = wellKnownSymbolDefine; - var Symbol$2 = _Symbol, - arrayMap$1 = _arrayMap, - isArray$6 = isArray_1, - isSymbol$2 = isSymbol_1; + // `Symbol.asyncDispose` well-known symbol + // https://github.com/tc39/proposal-async-explicit-resource-management + defineWellKnownSymbol$8('asyncDispose'); - /** Used as references for various `Number` constants. */ - var INFINITY$2 = 1 / 0; + var defineWellKnownSymbol$7 = wellKnownSymbolDefine; - /** Used to convert symbols to primitives and strings. */ - var symbolProto = Symbol$2 ? Symbol$2.prototype : undefined, - symbolToString = symbolProto ? symbolProto.toString : undefined; + // `Symbol.dispose` well-known symbol + // https://github.com/tc39/proposal-explicit-resource-management + defineWellKnownSymbol$7('dispose'); - /** - * The base implementation of `_.toString` which doesn't convert nullish - * values to empty strings. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString$1(value) { - // Exit early for strings to avoid a performance hit in some environments. - if (typeof value == 'string') { - return value; - } - if (isArray$6(value)) { - // Recursively convert values (susceptible to call stack limits). - return arrayMap$1(value, baseToString$1) + ''; - } - if (isSymbol$2(value)) { - return symbolToString ? symbolToString.call(value) : ''; - } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY$2) ? '-0' : result; - } + var defineWellKnownSymbol$6 = wellKnownSymbolDefine; - var _baseToString = baseToString$1; + // `Symbol.metadata` well-known symbol + // https://github.com/tc39/proposal-decorators + defineWellKnownSymbol$6('metadata'); - var baseToString = _baseToString; + var parent$P = symbol$4; - /** - * Converts `value` to a string. An empty string is returned for `null` - * and `undefined` values. The sign of `-0` is preserved. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {string} Returns the converted string. - * @example - * - * _.toString(null); - * // => '' - * - * _.toString(-0); - * // => '-0' - * - * _.toString([1, 2, 3]); - * // => '1,2,3' - */ - function toString$1(value) { - return value == null ? '' : baseToString(value); - } - var toString_1 = toString$1; - var isArray$5 = isArray_1, - isKey$2 = _isKey, - stringToPath = _stringToPath, - toString = toString_1; - /** - * Casts `value` to a path array if it's not one. - * - * @private - * @param {*} value The value to inspect. - * @param {Object} [object] The object to query keys on. - * @returns {Array} Returns the cast property path array. - */ - function castPath$2(value, object) { - if (isArray$5(value)) { - return value; + + + var symbol$3 = parent$P; + + var getBuiltIn$1 = getBuiltIn$e; + var uncurryThis$a = functionUncurryThis; + + var Symbol$8 = getBuiltIn$1('Symbol'); + var keyFor = Symbol$8.keyFor; + var thisSymbolValue$1 = uncurryThis$a(Symbol$8.prototype.valueOf); + + // `Symbol.isRegisteredSymbol` method + // https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol + var symbolIsRegistered = Symbol$8.isRegisteredSymbol || function isRegisteredSymbol(value) { + try { + return keyFor(thisSymbolValue$1(value)) !== undefined; + } catch (error) { + return false; } - return isKey$2(value, object) ? [value] : stringToPath(toString(value)); - } + }; - var _castPath = castPath$2; + var $$p = _export; + var isRegisteredSymbol$1 = symbolIsRegistered; - var isSymbol$1 = isSymbol_1; + // `Symbol.isRegisteredSymbol` method + // https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol + $$p({ target: 'Symbol', stat: true }, { + isRegisteredSymbol: isRegisteredSymbol$1 + }); - /** Used as references for various `Number` constants. */ - var INFINITY$1 = 1 / 0; + var shared = shared$7; + var getBuiltIn = getBuiltIn$e; + var uncurryThis$9 = functionUncurryThis; + var isSymbol$5 = isSymbol$a; + var wellKnownSymbol$3 = wellKnownSymbol$o; - /** + var Symbol$7 = getBuiltIn('Symbol'); + var $isWellKnownSymbol = Symbol$7.isWellKnownSymbol; + var getOwnPropertyNames = getBuiltIn('Object', 'getOwnPropertyNames'); + var thisSymbolValue = uncurryThis$9(Symbol$7.prototype.valueOf); + var WellKnownSymbolsStore = shared('wks'); + + for (var i = 0, symbolKeys = getOwnPropertyNames(Symbol$7), symbolKeysLength = symbolKeys.length; i < symbolKeysLength; i++) { + // some old engines throws on access to some keys like `arguments` or `caller` + try { + var symbolKey = symbolKeys[i]; + if (isSymbol$5(Symbol$7[symbolKey])) wellKnownSymbol$3(symbolKey); + } catch (error) { /* empty */ } + } + + // `Symbol.isWellKnownSymbol` method + // https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol + // We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected + var symbolIsWellKnown = function isWellKnownSymbol(value) { + if ($isWellKnownSymbol && $isWellKnownSymbol(value)) return true; + try { + var symbol = thisSymbolValue(value); + for (var j = 0, keys = getOwnPropertyNames(WellKnownSymbolsStore), keysLength = keys.length; j < keysLength; j++) { + // eslint-disable-next-line eqeqeq -- polyfilled symbols case + if (WellKnownSymbolsStore[keys[j]] == symbol) return true; + } + } catch (error) { /* empty */ } + return false; + }; + + var $$o = _export; + var isWellKnownSymbol$1 = symbolIsWellKnown; + + // `Symbol.isWellKnownSymbol` method + // https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol + // We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected + $$o({ target: 'Symbol', stat: true, forced: true }, { + isWellKnownSymbol: isWellKnownSymbol$1 + }); + + var defineWellKnownSymbol$5 = wellKnownSymbolDefine; + + // `Symbol.customMatcher` well-known symbol + // https://github.com/tc39/proposal-pattern-matching + defineWellKnownSymbol$5('customMatcher'); + + var defineWellKnownSymbol$4 = wellKnownSymbolDefine; + + // `Symbol.observable` well-known symbol + // https://github.com/tc39/proposal-observable + defineWellKnownSymbol$4('observable'); + + var $$n = _export; + var isRegisteredSymbol = symbolIsRegistered; + + // `Symbol.isRegistered` method + // obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-isregisteredsymbol + $$n({ target: 'Symbol', stat: true, name: 'isRegisteredSymbol' }, { + isRegistered: isRegisteredSymbol + }); + + var $$m = _export; + var isWellKnownSymbol = symbolIsWellKnown; + + // `Symbol.isWellKnown` method + // obsolete version of https://tc39.es/proposal-symbol-predicates/#sec-symbol-iswellknownsymbol + // We should patch it for newly added well-known symbols. If it's not required, this module just will not be injected + $$m({ target: 'Symbol', stat: true, name: 'isWellKnownSymbol', forced: true }, { + isWellKnown: isWellKnownSymbol + }); + + var defineWellKnownSymbol$3 = wellKnownSymbolDefine; + + // `Symbol.matcher` well-known symbol + // https://github.com/tc39/proposal-pattern-matching + defineWellKnownSymbol$3('matcher'); + + // TODO: Remove from `core-js@4` + var defineWellKnownSymbol$2 = wellKnownSymbolDefine; + + // `Symbol.metadataKey` well-known symbol + // https://github.com/tc39/proposal-decorator-metadata + defineWellKnownSymbol$2('metadataKey'); + + // TODO: remove from `core-js@4` + var defineWellKnownSymbol$1 = wellKnownSymbolDefine; + + // `Symbol.patternMatch` well-known symbol + // https://github.com/tc39/proposal-pattern-matching + defineWellKnownSymbol$1('patternMatch'); + + // TODO: remove from `core-js@4` + var defineWellKnownSymbol = wellKnownSymbolDefine; + + defineWellKnownSymbol('replaceAll'); + + var parent$O = symbol$3; + + + + + // TODO: Remove from `core-js@4` + + + + + + + + var symbol$2 = parent$O; + + var symbol$1 = symbol$2; + + var _Symbol$2 = /*@__PURE__*/getDefaultExportFromCjs(symbol$1); + + var getIteratorMethod$5 = getIteratorMethod$8; + + var getIteratorMethod_1 = getIteratorMethod$5; + + var parent$N = getIteratorMethod_1; + + + var getIteratorMethod$4 = parent$N; + + var parent$M = getIteratorMethod$4; + + var getIteratorMethod$3 = parent$M; + + var parent$L = getIteratorMethod$3; + + var getIteratorMethod$2 = parent$L; + + var getIteratorMethod$1 = getIteratorMethod$2; + + var _getIteratorMethod = /*@__PURE__*/getDefaultExportFromCjs(getIteratorMethod$1); + + var DESCRIPTORS$5 = descriptors; + var isArray$e = isArray$o; + + var $TypeError$2 = TypeError; + // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe + var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; + + // Safari < 13 does not throw an error in this case + var SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS$5 && !function () { + // makes no sense without proper strict mode support + if (this !== undefined) return true; + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).length = 1; + } catch (error) { + return error instanceof TypeError; + } + }(); + + var arraySetLength = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) { + if (isArray$e(O) && !getOwnPropertyDescriptor(O, 'length').writable) { + throw new $TypeError$2('Cannot set read only .length'); + } return O.length = length; + } : function (O, length) { + return O.length = length; + }; + + var $$l = _export; + var toObject$5 = toObject$b; + var lengthOfArrayLike$4 = lengthOfArrayLike$9; + var setArrayLength = arraySetLength; + var doesNotExceedSafeInteger = doesNotExceedSafeInteger$2; + var fails$8 = fails$r; + + var INCORRECT_TO_LENGTH = fails$8(function () { + return [].push.call({ length: 0x100000000 }, 1) !== 4294967297; + }); + + // V8 <= 121 and Safari <= 15.4; FF < 23 throws InternalError + // https://bugs.chromium.org/p/v8/issues/detail?id=12681 + var properErrorOnNonWritableLength = function () { + try { + // eslint-disable-next-line es/no-object-defineproperty -- safe + Object.defineProperty([], 'length', { writable: false }).push(); + } catch (error) { + return error instanceof TypeError; + } + }; + + var FORCED$4 = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength(); + + // `Array.prototype.push` method + // https://tc39.es/ecma262/#sec-array.prototype.push + $$l({ target: 'Array', proto: true, arity: 1, forced: FORCED$4 }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + push: function push(item) { + var O = toObject$5(this); + var len = lengthOfArrayLike$4(O); + var argCount = arguments.length; + doesNotExceedSafeInteger(len + argCount); + for (var i = 0; i < argCount; i++) { + O[len] = arguments[i]; + len++; + } + setArrayLength(O, len); + return len; + } + }); + + var global$1 = global$l; + var path$a = path$h; + + var getBuiltInPrototypeMethod$e = function (CONSTRUCTOR, METHOD) { + var Namespace = path$a[CONSTRUCTOR + 'Prototype']; + var pureMethod = Namespace && Namespace[METHOD]; + if (pureMethod) return pureMethod; + var NativeConstructor = global$1[CONSTRUCTOR]; + var NativePrototype = NativeConstructor && NativeConstructor.prototype; + return NativePrototype && NativePrototype[METHOD]; + }; + + var getBuiltInPrototypeMethod$d = getBuiltInPrototypeMethod$e; + + var push$6 = getBuiltInPrototypeMethod$d('Array', 'push'); + + var isPrototypeOf$c = objectIsPrototypeOf; + var method$b = push$6; + + var ArrayPrototype$a = Array.prototype; + + var push$5 = function (it) { + var own = it.push; + return it === ArrayPrototype$a || (isPrototypeOf$c(ArrayPrototype$a, it) && own === ArrayPrototype$a.push) ? method$b : own; + }; + + var parent$K = push$5; + + var push$4 = parent$K; + + var parent$J = push$4; + + var push$3 = parent$J; + + var parent$I = push$3; + + var push$2 = parent$I; + + var push$1 = push$2; + + var _pushInstanceProperty = /*@__PURE__*/getDefaultExportFromCjs(push$1); + + function _iterableToArrayLimit(r, l) { + var t = null == r ? null : "undefined" != typeof _Symbol$2 && _getIteratorMethod(r) || 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) && (_pushInstanceProperty(a).call(a, 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; + } + } + + var $$k = _export; + var isArray$d = isArray$o; + var isConstructor$1 = isConstructor$4; + var isObject$6 = isObject$k; + var toAbsoluteIndex = toAbsoluteIndex$2; + var lengthOfArrayLike$3 = lengthOfArrayLike$9; + var toIndexedObject$3 = toIndexedObject$b; + var createProperty$2 = createProperty$4; + var wellKnownSymbol$2 = wellKnownSymbol$o; + var arrayMethodHasSpeciesSupport$2 = arrayMethodHasSpeciesSupport$4; + var nativeSlice = arraySlice$3; + + var HAS_SPECIES_SUPPORT$2 = arrayMethodHasSpeciesSupport$2('slice'); + + var SPECIES = wellKnownSymbol$2('species'); + var $Array$1 = Array; + var max = Math.max; + + // `Array.prototype.slice` method + // https://tc39.es/ecma262/#sec-array.prototype.slice + // fallback for not array-like ES3 strings and DOM objects + $$k({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$2 }, { + slice: function slice(start, end) { + var O = toIndexedObject$3(this); + var length = lengthOfArrayLike$3(O); + var k = toAbsoluteIndex(start, length); + var fin = toAbsoluteIndex(end === undefined ? length : end, length); + // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible + var Constructor, result, n; + if (isArray$d(O)) { + Constructor = O.constructor; + // cross-realm fallback + if (isConstructor$1(Constructor) && (Constructor === $Array$1 || isArray$d(Constructor.prototype))) { + Constructor = undefined; + } else if (isObject$6(Constructor)) { + Constructor = Constructor[SPECIES]; + if (Constructor === null) Constructor = undefined; + } + if (Constructor === $Array$1 || Constructor === undefined) { + return nativeSlice(O, k, fin); + } + } + result = new (Constructor === undefined ? $Array$1 : Constructor)(max(fin - k, 0)); + for (n = 0; k < fin; k++, n++) if (k in O) createProperty$2(result, n, O[k]); + result.length = n; + return result; + } + }); + + var getBuiltInPrototypeMethod$c = getBuiltInPrototypeMethod$e; + + var slice$7 = getBuiltInPrototypeMethod$c('Array', 'slice'); + + var isPrototypeOf$b = objectIsPrototypeOf; + var method$a = slice$7; + + var ArrayPrototype$9 = Array.prototype; + + var slice$6 = function (it) { + var own = it.slice; + return it === ArrayPrototype$9 || (isPrototypeOf$b(ArrayPrototype$9, it) && own === ArrayPrototype$9.slice) ? method$a : own; + }; + + var parent$H = slice$6; + + var slice$5 = parent$H; + + var parent$G = slice$5; + + var slice$4 = parent$G; + + var parent$F = slice$4; + + var slice$3 = parent$F; + + var slice$2 = slice$3; + + var _sliceInstanceProperty$1 = /*@__PURE__*/getDefaultExportFromCjs(slice$2); + + var anObject = anObject$b; + var iteratorClose = iteratorClose$2; + + // call something on iterator step with safe closing on error + var callWithSafeIterationClosing$1 = function (iterator, fn, value, ENTRIES) { + try { + return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value); + } catch (error) { + iteratorClose(iterator, 'throw', error); + } + }; + + var bind = functionBindContext; + var call$2 = functionCall; + var toObject$4 = toObject$b; + var callWithSafeIterationClosing = callWithSafeIterationClosing$1; + var isArrayIteratorMethod = isArrayIteratorMethod$2; + var isConstructor = isConstructor$4; + var lengthOfArrayLike$2 = lengthOfArrayLike$9; + var createProperty$1 = createProperty$4; + var getIterator = getIterator$2; + var getIteratorMethod = getIteratorMethod$8; + + var $Array = Array; + + // `Array.from` method implementation + // https://tc39.es/ecma262/#sec-array.from + var arrayFrom = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) { + var O = toObject$4(arrayLike); + var IS_CONSTRUCTOR = isConstructor(this); + var argumentsLength = arguments.length; + var mapfn = argumentsLength > 1 ? arguments[1] : undefined; + var mapping = mapfn !== undefined; + if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined); + var iteratorMethod = getIteratorMethod(O); + var index = 0; + var length, result, step, iterator, next, value; + // if the target is not iterable or it's an array with the default iterator - use a simple case + if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) { + result = IS_CONSTRUCTOR ? new this() : []; + iterator = getIterator(O, iteratorMethod); + next = iterator.next; + for (;!(step = call$2(next, iterator)).done; index++) { + value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value; + createProperty$1(result, index, value); + } + } else { + length = lengthOfArrayLike$2(O); + result = IS_CONSTRUCTOR ? new this(length) : $Array(length); + for (;length > index; index++) { + value = mapping ? mapfn(O[index], index) : O[index]; + createProperty$1(result, index, value); + } + } + result.length = index; + return result; + }; + + var $$j = _export; + var from$6 = arrayFrom; + var checkCorrectnessOfIteration = checkCorrectnessOfIteration$2; + + var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) { + // eslint-disable-next-line es/no-array-from -- required for testing + Array.from(iterable); + }); + + // `Array.from` method + // https://tc39.es/ecma262/#sec-array.from + $$j({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, { + from: from$6 + }); + + var path$9 = path$h; + + var from$5 = path$9.Array.from; + + var parent$E = from$5; + + var from$4 = parent$E; + + var parent$D = from$4; + + var from$3 = parent$D; + + var parent$C = from$3; + + var from$2 = parent$C; + + var from$1 = from$2; + + var _Array$from$1 = /*@__PURE__*/getDefaultExportFromCjs(from$1); + + function _arrayLikeToArray$3(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; + return arr2; + } + + function _unsupportedIterableToArray$3(o, minLen) { + var _context; + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray$3(o, minLen); + var n = _sliceInstanceProperty$1(_context = Object.prototype.toString.call(o)).call(_context, 8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return _Array$from$1(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$3(o, minLen); + } + + 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 _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray$3(arr, i) || _nonIterableRest(); + } + + /** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ + + var isArray$c = Array.isArray; + + var isArray_1 = isArray$c; + + var _isArray = /*@__PURE__*/getDefaultExportFromCjs(isArray_1); + + /** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ + + function listCacheClear$1() { + this.__data__ = []; + this.size = 0; + } + + var _listCacheClear = listCacheClear$1; + + /** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ + + function eq$2(value, other) { + return value === other || (value !== value && other !== other); + } + + var eq_1 = eq$2; + + var eq$1 = eq_1; + + /** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + function assocIndexOf$4(array, key) { + var length = array.length; + while (length--) { + if (eq$1(array[length][0], key)) { + return length; + } + } + return -1; + } + + var _assocIndexOf = assocIndexOf$4; + + var assocIndexOf$3 = _assocIndexOf; + + /** Used for built-in method references. */ + var arrayProto = Array.prototype; + + /** Built-in value references. */ + var splice = arrayProto.splice; + + /** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function listCacheDelete$1(key) { + var data = this.__data__, + index = assocIndexOf$3(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; + } + + var _listCacheDelete = listCacheDelete$1; + + var assocIndexOf$2 = _assocIndexOf; + + /** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function listCacheGet$1(key) { + var data = this.__data__, + index = assocIndexOf$2(data, key); + + return index < 0 ? undefined : data[index][1]; + } + + var _listCacheGet = listCacheGet$1; + + var assocIndexOf$1 = _assocIndexOf; + + /** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function listCacheHas$1(key) { + return assocIndexOf$1(this.__data__, key) > -1; + } + + var _listCacheHas = listCacheHas$1; + + var assocIndexOf = _assocIndexOf; + + /** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ + function listCacheSet$1(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; + } + + var _listCacheSet = listCacheSet$1; + + var listCacheClear = _listCacheClear, + listCacheDelete = _listCacheDelete, + listCacheGet = _listCacheGet, + listCacheHas = _listCacheHas, + listCacheSet = _listCacheSet; + + /** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function ListCache$4(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + // Add methods to `ListCache`. + ListCache$4.prototype.clear = listCacheClear; + ListCache$4.prototype['delete'] = listCacheDelete; + ListCache$4.prototype.get = listCacheGet; + ListCache$4.prototype.has = listCacheHas; + ListCache$4.prototype.set = listCacheSet; + + var _ListCache = ListCache$4; + + var ListCache$3 = _ListCache; + + /** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ + function stackClear$1() { + this.__data__ = new ListCache$3; + this.size = 0; + } + + var _stackClear = stackClear$1; + + /** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + + function stackDelete$1(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; + } + + var _stackDelete = stackDelete$1; + + /** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + + function stackGet$1(key) { + return this.__data__.get(key); + } + + var _stackGet = stackGet$1; + + /** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + + function stackHas$1(key) { + return this.__data__.has(key); + } + + var _stackHas = stackHas$1; + + /** Detect free variable `global` from Node.js. */ + + var freeGlobal$1 = typeof global == 'object' && global && global.Object === Object && global; + + var _freeGlobal = freeGlobal$1; + + var freeGlobal = _freeGlobal; + + /** Detect free variable `self`. */ + var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + + /** Used as a reference to the global object. */ + var root$8 = freeGlobal || freeSelf || Function('return this')(); + + var _root = root$8; + + var root$7 = _root; + + /** Built-in value references. */ + var Symbol$6 = root$7.Symbol; + + var _Symbol$1 = Symbol$6; + + var Symbol$5 = _Symbol$1; + + /** Used for built-in method references. */ + var objectProto$c = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$9 = objectProto$c.hasOwnProperty; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString$1 = objectProto$c.toString; + + /** Built-in value references. */ + var symToStringTag$1 = Symbol$5 ? Symbol$5.toStringTag : undefined; + + /** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ + function getRawTag$1(value) { + var isOwn = hasOwnProperty$9.call(value, symToStringTag$1), + tag = value[symToStringTag$1]; + + try { + value[symToStringTag$1] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString$1.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag$1] = tag; + } else { + delete value[symToStringTag$1]; + } + } + return result; + } + + var _getRawTag = getRawTag$1; + + /** Used for built-in method references. */ + + var objectProto$b = Object.prototype; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ + var nativeObjectToString = objectProto$b.toString; + + /** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ + function objectToString$1(value) { + return nativeObjectToString.call(value); + } + + var _objectToString = objectToString$1; + + var Symbol$4 = _Symbol$1, + getRawTag = _getRawTag, + objectToString = _objectToString; + + /** `Object#toString` result references. */ + var nullTag = '[object Null]', + undefinedTag = '[object Undefined]'; + + /** Built-in value references. */ + var symToStringTag = Symbol$4 ? Symbol$4.toStringTag : undefined; + + /** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + function baseGetTag$7(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); + } + + var _baseGetTag = baseGetTag$7; + + /** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ + + function isObject$5(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); + } + + var isObject_1 = isObject$5; + + var _isObject = /*@__PURE__*/getDefaultExportFromCjs(isObject_1); + + var baseGetTag$6 = _baseGetTag, + isObject$4 = isObject_1; + + /** `Object#toString` result references. */ + var asyncTag = '[object AsyncFunction]', + funcTag$1 = '[object Function]', + genTag = '[object GeneratorFunction]', + proxyTag = '[object Proxy]'; + + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction$2(value) { + if (!isObject$4(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag$6(value); + return tag == funcTag$1 || tag == genTag || tag == asyncTag || tag == proxyTag; + } + + var isFunction_1 = isFunction$2; + + var _isFunction = /*@__PURE__*/getDefaultExportFromCjs(isFunction_1); + + var root$6 = _root; + + /** Used to detect overreaching core-js shims. */ + var coreJsData$1 = root$6['__core-js_shared__']; + + var _coreJsData = coreJsData$1; + + var coreJsData = _coreJsData; + + /** Used to detect methods masquerading as native. */ + var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; + }()); + + /** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ + function isMasked$1(func) { + return !!maskSrcKey && (maskSrcKey in func); + } + + var _isMasked = isMasked$1; + + /** Used for built-in method references. */ + + var funcProto$1 = Function.prototype; + + /** Used to resolve the decompiled source of functions. */ + var funcToString$1 = funcProto$1.toString; + + /** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ + function toSource$2(func) { + if (func != null) { + try { + return funcToString$1.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; + } + + var _toSource = toSource$2; + + var isFunction$1 = isFunction_1, + isMasked = _isMasked, + isObject$3 = isObject_1, + toSource$1 = _toSource; + + /** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ + var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + + /** Used to detect host constructors (Safari). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** Used for built-in method references. */ + var funcProto = Function.prototype, + objectProto$a = Object.prototype; + + /** Used to resolve the decompiled source of functions. */ + var funcToString = funcProto.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty$8 = objectProto$a.hasOwnProperty; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty$8).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' + ); + + /** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ + function baseIsNative$1(value) { + if (!isObject$3(value) || isMasked(value)) { + return false; + } + var pattern = isFunction$1(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource$1(value)); + } + + var _baseIsNative = baseIsNative$1; + + /** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ + + function getValue$1(object, key) { + return object == null ? undefined : object[key]; + } + + var _getValue = getValue$1; + + var baseIsNative = _baseIsNative, + getValue = _getValue; + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative$7(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; + } + + var _getNative = getNative$7; + + var getNative$6 = _getNative, + root$5 = _root; + + /* Built-in method references that are verified to be native. */ + var Map$3 = getNative$6(root$5, 'Map'); + + var _Map = Map$3; + + var getNative$5 = _getNative; + + /* Built-in method references that are verified to be native. */ + var nativeCreate$4 = getNative$5(Object, 'create'); + + var _nativeCreate = nativeCreate$4; + + var nativeCreate$3 = _nativeCreate; + + /** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ + function hashClear$1() { + this.__data__ = nativeCreate$3 ? nativeCreate$3(null) : {}; + this.size = 0; + } + + var _hashClear = hashClear$1; + + /** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + + function hashDelete$1(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; + } + + var _hashDelete = hashDelete$1; + + var nativeCreate$2 = _nativeCreate; + + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED$2 = '__lodash_hash_undefined__'; + + /** Used for built-in method references. */ + var objectProto$9 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$7 = objectProto$9.hasOwnProperty; + + /** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function hashGet$1(key) { + var data = this.__data__; + if (nativeCreate$2) { + var result = data[key]; + return result === HASH_UNDEFINED$2 ? undefined : result; + } + return hasOwnProperty$7.call(data, key) ? data[key] : undefined; + } + + var _hashGet = hashGet$1; + + var nativeCreate$1 = _nativeCreate; + + /** Used for built-in method references. */ + var objectProto$8 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$6 = objectProto$8.hasOwnProperty; + + /** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function hashHas$1(key) { + var data = this.__data__; + return nativeCreate$1 ? (data[key] !== undefined) : hasOwnProperty$6.call(data, key); + } + + var _hashHas = hashHas$1; + + var nativeCreate = _nativeCreate; + + /** Used to stand-in for `undefined` hash values. */ + var HASH_UNDEFINED$1 = '__lodash_hash_undefined__'; + + /** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ + function hashSet$1(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED$1 : value; + return this; + } + + var _hashSet = hashSet$1; + + var hashClear = _hashClear, + hashDelete = _hashDelete, + hashGet = _hashGet, + hashHas = _hashHas, + hashSet = _hashSet; + + /** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Hash$1(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + // Add methods to `Hash`. + Hash$1.prototype.clear = hashClear; + Hash$1.prototype['delete'] = hashDelete; + Hash$1.prototype.get = hashGet; + Hash$1.prototype.has = hashHas; + Hash$1.prototype.set = hashSet; + + var _Hash = Hash$1; + + var Hash = _Hash, + ListCache$2 = _ListCache, + Map$2 = _Map; + + /** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ + function mapCacheClear$1() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map$2 || ListCache$2), + 'string': new Hash + }; + } + + var _mapCacheClear = mapCacheClear$1; + + /** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ + + function isKeyable$1(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); + } + + var _isKeyable = isKeyable$1; + + var isKeyable = _isKeyable; + + /** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ + function getMapData$4(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; + } + + var _getMapData = getMapData$4; + + var getMapData$3 = _getMapData; + + /** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ + function mapCacheDelete$1(key) { + var result = getMapData$3(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; + } + + var _mapCacheDelete = mapCacheDelete$1; + + var getMapData$2 = _getMapData; + + /** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ + function mapCacheGet$1(key) { + return getMapData$2(this, key).get(key); + } + + var _mapCacheGet = mapCacheGet$1; + + var getMapData$1 = _getMapData; + + /** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + function mapCacheHas$1(key) { + return getMapData$1(this, key).has(key); + } + + var _mapCacheHas = mapCacheHas$1; + + var getMapData = _getMapData; + + /** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ + function mapCacheSet$1(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; + } + + var _mapCacheSet = mapCacheSet$1; + + var mapCacheClear = _mapCacheClear, + mapCacheDelete = _mapCacheDelete, + mapCacheGet = _mapCacheGet, + mapCacheHas = _mapCacheHas, + mapCacheSet = _mapCacheSet; + + /** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function MapCache$3(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } + } + + // Add methods to `MapCache`. + MapCache$3.prototype.clear = mapCacheClear; + MapCache$3.prototype['delete'] = mapCacheDelete; + MapCache$3.prototype.get = mapCacheGet; + MapCache$3.prototype.has = mapCacheHas; + MapCache$3.prototype.set = mapCacheSet; + + var _MapCache = MapCache$3; + + var ListCache$1 = _ListCache, + Map$1 = _Map, + MapCache$2 = _MapCache; + + /** Used as the size to enable large array optimizations. */ + var LARGE_ARRAY_SIZE$1 = 200; + + /** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ + function stackSet$1(key, value) { + var data = this.__data__; + if (data instanceof ListCache$1) { + var pairs = data.__data__; + if (!Map$1 || (pairs.length < LARGE_ARRAY_SIZE$1 - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache$2(pairs); + } + data.set(key, value); + this.size = data.size; + return this; + } + + var _stackSet = stackSet$1; + + var ListCache = _ListCache, + stackClear = _stackClear, + stackDelete = _stackDelete, + stackGet = _stackGet, + stackHas = _stackHas, + stackSet = _stackSet; + + /** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ + function Stack$2(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; + } + + // Add methods to `Stack`. + Stack$2.prototype.clear = stackClear; + Stack$2.prototype['delete'] = stackDelete; + Stack$2.prototype.get = stackGet; + Stack$2.prototype.has = stackHas; + Stack$2.prototype.set = stackSet; + + var _Stack = Stack$2; + + /** Used to stand-in for `undefined` hash values. */ + + var HASH_UNDEFINED = '__lodash_hash_undefined__'; + + /** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ + function setCacheAdd$1(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; + } + + var _setCacheAdd = setCacheAdd$1; + + /** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ + + function setCacheHas$1(value) { + return this.__data__.has(value); + } + + var _setCacheHas = setCacheHas$1; + + var MapCache$1 = _MapCache, + setCacheAdd = _setCacheAdd, + setCacheHas = _setCacheHas; + + /** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ + function SetCache$2(values) { + var index = -1, + length = values == null ? 0 : values.length; + + this.__data__ = new MapCache$1; + while (++index < length) { + this.add(values[index]); + } + } + + // Add methods to `SetCache`. + SetCache$2.prototype.add = SetCache$2.prototype.push = setCacheAdd; + SetCache$2.prototype.has = setCacheHas; + + var _SetCache = SetCache$2; + + /** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ + + function arraySome$1(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; + } + + var _arraySome = arraySome$1; + + /** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ + + function cacheHas$2(cache, key) { + return cache.has(key); + } + + var _cacheHas = cacheHas$2; + + var SetCache$1 = _SetCache, + arraySome = _arraySome, + cacheHas$1 = _cacheHas; + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$5 = 1, + COMPARE_UNORDERED_FLAG$3 = 2; + + /** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ + function equalArrays$2(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$5, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Check that cyclic values are equal. + var arrStacked = stack.get(array); + var othStacked = stack.get(other); + if (arrStacked && othStacked) { + return arrStacked == other && othStacked == array; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG$3) ? new SetCache$1 : undefined; + + stack.set(array, other); + stack.set(other, array); + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas$1(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } + } + stack['delete'](array); + stack['delete'](other); + return result; + } + + var _equalArrays = equalArrays$2; + + var root$4 = _root; + + /** Built-in value references. */ + var Uint8Array$2 = root$4.Uint8Array; + + var _Uint8Array = Uint8Array$2; + + /** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ + + function mapToArray$1(map) { + var index = -1, + result = Array(map.size); + + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; + } + + var _mapToArray = mapToArray$1; + + /** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ + + function setToArray$1(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; + } + + var _setToArray = setToArray$1; + + var Symbol$3 = _Symbol$1, + Uint8Array$1 = _Uint8Array, + eq = eq_1, + equalArrays$1 = _equalArrays, + mapToArray = _mapToArray, + setToArray = _setToArray; + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$4 = 1, + COMPARE_UNORDERED_FLAG$2 = 2; + + /** `Object#toString` result references. */ + var boolTag$2 = '[object Boolean]', + dateTag$1 = '[object Date]', + errorTag$1 = '[object Error]', + mapTag$3 = '[object Map]', + numberTag$1 = '[object Number]', + regexpTag$1 = '[object RegExp]', + setTag$3 = '[object Set]', + stringTag$2 = '[object String]', + symbolTag$1 = '[object Symbol]'; + + var arrayBufferTag$1 = '[object ArrayBuffer]', + dataViewTag$2 = '[object DataView]'; + + /** Used to convert symbols to primitives and strings. */ + var symbolProto$1 = Symbol$3 ? Symbol$3.prototype : undefined, + symbolValueOf = symbolProto$1 ? symbolProto$1.valueOf : undefined; + + /** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalByTag$1(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag$2: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + + case arrayBufferTag$1: + if ((object.byteLength != other.byteLength) || + !equalFunc(new Uint8Array$1(object), new Uint8Array$1(other))) { + return false; + } + return true; + + case boolTag$2: + case dateTag$1: + case numberTag$1: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag$1: + return object.name == other.name && object.message == other.message; + + case regexpTag$1: + case stringTag$2: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + case mapTag$3: + var convert = mapToArray; + + case setTag$3: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$4; + convert || (convert = setToArray); + + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG$2; + + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = equalArrays$1(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; + + case symbolTag$1: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; + } + + var _equalByTag = equalByTag$1; + + /** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ + + function arrayPush$2(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; + } + + var _arrayPush = arrayPush$2; + + var arrayPush$1 = _arrayPush, + isArray$b = isArray_1; + + /** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ + function baseGetAllKeys$1(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray$b(object) ? result : arrayPush$1(result, symbolsFunc(object)); + } + + var _baseGetAllKeys = baseGetAllKeys$1; + + /** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ + + function arrayFilter$1(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; + } + + var _arrayFilter = arrayFilter$1; + + /** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ + + function stubArray$1() { + return []; + } + + var stubArray_1 = stubArray$1; + + var arrayFilter = _arrayFilter, + stubArray = stubArray_1; + + /** Used for built-in method references. */ + var objectProto$7 = Object.prototype; + + /** Built-in value references. */ + var propertyIsEnumerable$2 = objectProto$7.propertyIsEnumerable; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeGetSymbols = Object.getOwnPropertySymbols; + + /** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ + var getSymbols$1 = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable$2.call(object, symbol); + }); + }; + + var _getSymbols = getSymbols$1; + + /** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ + + function baseTimes$1(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; + } + + var _baseTimes = baseTimes$1; + + /** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ + + function isObjectLike$8(value) { + return value != null && typeof value == 'object'; + } + + var isObjectLike_1 = isObjectLike$8; + + var baseGetTag$5 = _baseGetTag, + isObjectLike$7 = isObjectLike_1; + + /** `Object#toString` result references. */ + var argsTag$2 = '[object Arguments]'; + + /** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ + function baseIsArguments$1(value) { + return isObjectLike$7(value) && baseGetTag$5(value) == argsTag$2; + } + + var _baseIsArguments = baseIsArguments$1; + + var baseIsArguments = _baseIsArguments, + isObjectLike$6 = isObjectLike_1; + + /** Used for built-in method references. */ + var objectProto$6 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$5 = objectProto$6.hasOwnProperty; + + /** Built-in value references. */ + var propertyIsEnumerable$1 = objectProto$6.propertyIsEnumerable; + + /** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ + var isArguments$4 = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike$6(value) && hasOwnProperty$5.call(value, 'callee') && + !propertyIsEnumerable$1.call(value, 'callee'); + }; + + var isArguments_1 = isArguments$4; + + var isBuffer$3 = {exports: {}}; + + /** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ + + function stubFalse() { + return false; + } + + var stubFalse_1 = stubFalse; + + isBuffer$3.exports; + + (function (module, exports) { + var root = _root, + stubFalse = stubFalse_1; + + /** Detect free variable `exports`. */ + var freeExports = exports && !exports.nodeType && exports; + + /** Detect free variable `module`. */ + var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; + + /** Detect the popular CommonJS extension `module.exports`. */ + var moduleExports = freeModule && freeModule.exports === freeExports; + + /** Built-in value references. */ + var Buffer = moduleExports ? root.Buffer : undefined; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; + + /** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ + var isBuffer = nativeIsBuffer || stubFalse; + + module.exports = isBuffer; + } (isBuffer$3, isBuffer$3.exports)); + + var isBufferExports = isBuffer$3.exports; + + /** Used as references for various `Number` constants. */ + + var MAX_SAFE_INTEGER$1 = 9007199254740991; + + /** Used to detect unsigned integer values. */ + var reIsUint = /^(?:0|[1-9]\d*)$/; + + /** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ + function isIndex$2(value, length) { + var type = typeof value; + length = length == null ? MAX_SAFE_INTEGER$1 : length; + + return !!length && + (type == 'number' || + (type != 'symbol' && reIsUint.test(value))) && + (value > -1 && value % 1 == 0 && value < length); + } + + var _isIndex = isIndex$2; + + /** Used as references for various `Number` constants. */ + + var MAX_SAFE_INTEGER = 9007199254740991; + + /** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ + function isLength$3(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; + } + + var isLength_1 = isLength$3; + + var baseGetTag$4 = _baseGetTag, + isLength$2 = isLength_1, + isObjectLike$5 = isObjectLike_1; + + /** `Object#toString` result references. */ + var argsTag$1 = '[object Arguments]', + arrayTag$1 = '[object Array]', + boolTag$1 = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + mapTag$2 = '[object Map]', + numberTag = '[object Number]', + objectTag$2 = '[object Object]', + regexpTag = '[object RegExp]', + setTag$2 = '[object Set]', + stringTag$1 = '[object String]', + weakMapTag$1 = '[object WeakMap]'; + + var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag$1 = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + + /** Used to identify `toStringTag` values of typed arrays. */ + var typedArrayTags = {}; + typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = + typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = + typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = + typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = + typedArrayTags[uint32Tag] = true; + typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = + typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag$1] = + typedArrayTags[dataViewTag$1] = typedArrayTags[dateTag] = + typedArrayTags[errorTag] = typedArrayTags[funcTag] = + typedArrayTags[mapTag$2] = typedArrayTags[numberTag] = + typedArrayTags[objectTag$2] = typedArrayTags[regexpTag] = + typedArrayTags[setTag$2] = typedArrayTags[stringTag$1] = + typedArrayTags[weakMapTag$1] = false; + + /** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ + function baseIsTypedArray$1(value) { + return isObjectLike$5(value) && + isLength$2(value.length) && !!typedArrayTags[baseGetTag$4(value)]; + } + + var _baseIsTypedArray = baseIsTypedArray$1; + + /** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ + + function baseUnary$2(func) { + return function(value) { + return func(value); + }; + } + + var _baseUnary = baseUnary$2; + + var _nodeUtil = {exports: {}}; + + _nodeUtil.exports; + + (function (module, exports) { + var freeGlobal = _freeGlobal; + + /** Detect free variable `exports`. */ + var freeExports = exports && !exports.nodeType && exports; + + /** Detect free variable `module`. */ + var freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module; + + /** Detect the popular CommonJS extension `module.exports`. */ + var moduleExports = freeModule && freeModule.exports === freeExports; + + /** Detect free variable `process` from Node.js. */ + var freeProcess = moduleExports && freeGlobal.process; + + /** Used to access faster Node.js helpers. */ + var nodeUtil = (function() { + try { + // Use `util.types` for Node.js 10+. + var types = freeModule && freeModule.require && freeModule.require('util').types; + + if (types) { + return types; + } + + // Legacy `process.binding('util')` for Node.js < 10. + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} + }()); + + module.exports = nodeUtil; + } (_nodeUtil, _nodeUtil.exports)); + + var _nodeUtilExports = _nodeUtil.exports; + + var baseIsTypedArray = _baseIsTypedArray, + baseUnary$1 = _baseUnary, + nodeUtil = _nodeUtilExports; + + /* Node.js helper references. */ + var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + + /** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ + var isTypedArray$3 = nodeIsTypedArray ? baseUnary$1(nodeIsTypedArray) : baseIsTypedArray; + + var isTypedArray_1 = isTypedArray$3; + + var baseTimes = _baseTimes, + isArguments$3 = isArguments_1, + isArray$a = isArray_1, + isBuffer$2 = isBufferExports, + isIndex$1 = _isIndex, + isTypedArray$2 = isTypedArray_1; + + /** Used for built-in method references. */ + var objectProto$5 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$4 = objectProto$5.hasOwnProperty; + + /** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ + function arrayLikeKeys$1(value, inherited) { + var isArr = isArray$a(value), + isArg = !isArr && isArguments$3(value), + isBuff = !isArr && !isArg && isBuffer$2(value), + isType = !isArr && !isArg && !isBuff && isTypedArray$2(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty$4.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex$1(key, length) + ))) { + result.push(key); + } + } + return result; + } + + var _arrayLikeKeys = arrayLikeKeys$1; + + /** Used for built-in method references. */ + + var objectProto$4 = Object.prototype; + + /** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ + function isPrototype$2(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$4; + + return value === proto; + } + + var _isPrototype = isPrototype$2; + + /** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ + + function overArg$1(func, transform) { + return function(arg) { + return func(transform(arg)); + }; + } + + var _overArg = overArg$1; + + var overArg = _overArg; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeKeys$1 = overArg(Object.keys, Object); + + var _nativeKeys = nativeKeys$1; + + var isPrototype$1 = _isPrototype, + nativeKeys = _nativeKeys; + + /** Used for built-in method references. */ + var objectProto$3 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$3 = objectProto$3.hasOwnProperty; + + /** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ + function baseKeys$2(object) { + if (!isPrototype$1(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty$3.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; + } + + var _baseKeys = baseKeys$2; + + var isFunction = isFunction_1, + isLength$1 = isLength_1; + + /** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ + function isArrayLike$4(value) { + return value != null && isLength$1(value.length) && !isFunction(value); + } + + var isArrayLike_1 = isArrayLike$4; + + var arrayLikeKeys = _arrayLikeKeys, + baseKeys$1 = _baseKeys, + isArrayLike$3 = isArrayLike_1; + + /** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ + function keys$3(object) { + return isArrayLike$3(object) ? arrayLikeKeys(object) : baseKeys$1(object); + } + + var keys_1 = keys$3; + + var baseGetAllKeys = _baseGetAllKeys, + getSymbols = _getSymbols, + keys$2 = keys_1; + + /** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ + function getAllKeys$1(object) { + return baseGetAllKeys(object, keys$2, getSymbols); + } + + var _getAllKeys = getAllKeys$1; + + var getAllKeys = _getAllKeys; + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$3 = 1; + + /** Used for built-in method references. */ + var objectProto$2 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$2 = objectProto$2.hasOwnProperty; + + /** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function equalObjects$1(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG$3, + objProps = getAllKeys(object), + objLength = objProps.length, + othProps = getAllKeys(other), + othLength = othProps.length; + + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty$2.call(other, key))) { + return false; + } + } + // Check that cyclic values are equal. + var objStacked = stack.get(object); + var othStacked = stack.get(other); + if (objStacked && othStacked) { + return objStacked == other && othStacked == object; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); + } + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); + stack['delete'](other); + return result; + } + + var _equalObjects = equalObjects$1; + + var getNative$4 = _getNative, + root$3 = _root; + + /* Built-in method references that are verified to be native. */ + var DataView$1 = getNative$4(root$3, 'DataView'); + + var _DataView = DataView$1; + + var getNative$3 = _getNative, + root$2 = _root; + + /* Built-in method references that are verified to be native. */ + var Promise$2 = getNative$3(root$2, 'Promise'); + + var _Promise$1 = Promise$2; + + var getNative$2 = _getNative, + root$1 = _root; + + /* Built-in method references that are verified to be native. */ + var Set$1 = getNative$2(root$1, 'Set'); + + var _Set = Set$1; + + var getNative$1 = _getNative, + root = _root; + + /* Built-in method references that are verified to be native. */ + var WeakMap$1 = getNative$1(root, 'WeakMap'); + + var _WeakMap = WeakMap$1; + + var DataView = _DataView, + Map = _Map, + Promise$1 = _Promise$1, + Set = _Set, + WeakMap = _WeakMap, + baseGetTag$3 = _baseGetTag, + toSource = _toSource; + + /** `Object#toString` result references. */ + var mapTag$1 = '[object Map]', + objectTag$1 = '[object Object]', + promiseTag = '[object Promise]', + setTag$1 = '[object Set]', + weakMapTag = '[object WeakMap]'; + + var dataViewTag = '[object DataView]'; + + /** Used to detect maps, sets, and weakmaps. */ + var dataViewCtorString = toSource(DataView), + mapCtorString = toSource(Map), + promiseCtorString = toSource(Promise$1), + setCtorString = toSource(Set), + weakMapCtorString = toSource(WeakMap); + + /** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ + var getTag$2 = baseGetTag$3; + + // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. + if ((DataView && getTag$2(new DataView(new ArrayBuffer(1))) != dataViewTag) || + (Map && getTag$2(new Map) != mapTag$1) || + (Promise$1 && getTag$2(Promise$1.resolve()) != promiseTag) || + (Set && getTag$2(new Set) != setTag$1) || + (WeakMap && getTag$2(new WeakMap) != weakMapTag)) { + getTag$2 = function(value) { + var result = baseGetTag$3(value), + Ctor = result == objectTag$1 ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : ''; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag$1; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag$1; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; + } + + var _getTag = getTag$2; + + var Stack$1 = _Stack, + equalArrays = _equalArrays, + equalByTag = _equalByTag, + equalObjects = _equalObjects, + getTag$1 = _getTag, + isArray$9 = isArray_1, + isBuffer$1 = isBufferExports, + isTypedArray$1 = isTypedArray_1; + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$2 = 1; + + /** `Object#toString` result references. */ + var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + objectTag = '[object Object]'; + + /** Used for built-in method references. */ + var objectProto$1 = Object.prototype; + + /** Used to check objects for own properties. */ + var hasOwnProperty$1 = objectProto$1.hasOwnProperty; + + /** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ + function baseIsEqualDeep$1(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray$9(object), + othIsArr = isArray$9(other), + objTag = objIsArr ? arrayTag : getTag$1(object), + othTag = othIsArr ? arrayTag : getTag$1(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && isBuffer$1(object)) { + if (!isBuffer$1(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack$1); + return (objIsArr || isTypedArray$1(object)) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG$2)) { + var objIsWrapped = objIsObj && hasOwnProperty$1.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty$1.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + stack || (stack = new Stack$1); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack$1); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); + } + + var _baseIsEqualDeep = baseIsEqualDeep$1; + + var baseIsEqualDeep = _baseIsEqualDeep, + isObjectLike$4 = isObjectLike_1; + + /** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ + function baseIsEqual$2(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike$4(value) && !isObjectLike$4(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual$2, stack); + } + + var _baseIsEqual = baseIsEqual$2; + + var Stack = _Stack, + baseIsEqual$1 = _baseIsEqual; + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG$1 = 1, + COMPARE_UNORDERED_FLAG$1 = 2; + + /** + * The base implementation of `_.isMatch` without support for iteratee shorthands. + * + * @private + * @param {Object} object The object to inspect. + * @param {Object} source The object of property values to match. + * @param {Array} matchData The property names, values, and compare flags to match. + * @param {Function} [customizer] The function to customize comparisons. + * @returns {boolean} Returns `true` if `object` is a match, else `false`. + */ + function baseIsMatch$1(object, source, matchData, customizer) { + var index = matchData.length, + length = index, + noCustomizer = !customizer; + + if (object == null) { + return !length; + } + object = Object(object); + while (index--) { + var data = matchData[index]; + if ((noCustomizer && data[2]) + ? data[1] !== object[data[0]] + : !(data[0] in object) + ) { + return false; + } + } + while (++index < length) { + data = matchData[index]; + var key = data[0], + objValue = object[key], + srcValue = data[1]; + + if (noCustomizer && data[2]) { + if (objValue === undefined && !(key in object)) { + return false; + } + } else { + var stack = new Stack; + if (customizer) { + var result = customizer(objValue, srcValue, key, object, source, stack); + } + if (!(result === undefined + ? baseIsEqual$1(srcValue, objValue, COMPARE_PARTIAL_FLAG$1 | COMPARE_UNORDERED_FLAG$1, customizer, stack) + : result + )) { + return false; + } + } + } + return true; + } + + var _baseIsMatch = baseIsMatch$1; + + var isObject$2 = isObject_1; + + /** + * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` if suitable for strict + * equality comparisons, else `false`. + */ + function isStrictComparable$2(value) { + return value === value && !isObject$2(value); + } + + var _isStrictComparable = isStrictComparable$2; + + var isStrictComparable$1 = _isStrictComparable, + keys$1 = keys_1; + + /** + * Gets the property names, values, and compare flags of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the match data of `object`. + */ + function getMatchData$1(object) { + var result = keys$1(object), + length = result.length; + + while (length--) { + var key = result[length], + value = object[key]; + + result[length] = [key, value, isStrictComparable$1(value)]; + } + return result; + } + + var _getMatchData = getMatchData$1; + + /** + * A specialized version of `matchesProperty` for source values suitable + * for strict equality comparisons, i.e. `===`. + * + * @private + * @param {string} key The key of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ + + function matchesStrictComparable$2(key, srcValue) { + return function(object) { + if (object == null) { + return false; + } + return object[key] === srcValue && + (srcValue !== undefined || (key in Object(object))); + }; + } + + var _matchesStrictComparable = matchesStrictComparable$2; + + var baseIsMatch = _baseIsMatch, + getMatchData = _getMatchData, + matchesStrictComparable$1 = _matchesStrictComparable; + + /** + * The base implementation of `_.matches` which doesn't clone `source`. + * + * @private + * @param {Object} source The object of property values to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatches$1(source) { + var matchData = getMatchData(source); + if (matchData.length == 1 && matchData[0][2]) { + return matchesStrictComparable$1(matchData[0][0], matchData[0][1]); + } + return function(object) { + return object === source || baseIsMatch(object, source, matchData); + }; + } + + var _baseMatches = baseMatches$1; + + var baseGetTag$2 = _baseGetTag, + isObjectLike$3 = isObjectLike_1; + + /** `Object#toString` result references. */ + var symbolTag = '[object Symbol]'; + + /** + * Checks if `value` is classified as a `Symbol` primitive or object. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. + * @example + * + * _.isSymbol(Symbol.iterator); + * // => true + * + * _.isSymbol('abc'); + * // => false + */ + function isSymbol$4(value) { + return typeof value == 'symbol' || + (isObjectLike$3(value) && baseGetTag$2(value) == symbolTag); + } + + var isSymbol_1 = isSymbol$4; + + var isArray$8 = isArray_1, + isSymbol$3 = isSymbol_1; + + /** Used to match property names within property paths. */ + var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, + reIsPlainProp = /^\w*$/; + + /** + * Checks if `value` is a property name and not a property path. + * + * @private + * @param {*} value The value to check. + * @param {Object} [object] The object to query keys on. + * @returns {boolean} Returns `true` if `value` is a property name, else `false`. + */ + function isKey$3(value, object) { + if (isArray$8(value)) { + return false; + } + var type = typeof value; + if (type == 'number' || type == 'symbol' || type == 'boolean' || + value == null || isSymbol$3(value)) { + return true; + } + return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || + (object != null && value in Object(object)); + } + + var _isKey = isKey$3; + + var MapCache = _MapCache; + + /** Error message constants. */ + var FUNC_ERROR_TEXT = 'Expected a function'; + + /** + * Creates a function that memoizes the result of `func`. If `resolver` is + * provided, it determines the cache key for storing the result based on the + * arguments provided to the memoized function. By default, the first argument + * provided to the memoized function is used as the map cache key. The `func` + * is invoked with the `this` binding of the memoized function. + * + * **Note:** The cache is exposed as the `cache` property on the memoized + * function. Its creation may be customized by replacing the `_.memoize.Cache` + * constructor with one whose instances implement the + * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) + * method interface of `clear`, `delete`, `get`, `has`, and `set`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Function + * @param {Function} func The function to have its output memoized. + * @param {Function} [resolver] The function to resolve the cache key. + * @returns {Function} Returns the new memoized function. + * @example + * + * var object = { 'a': 1, 'b': 2 }; + * var other = { 'c': 3, 'd': 4 }; + * + * var values = _.memoize(_.values); + * values(object); + * // => [1, 2] + * + * values(other); + * // => [3, 4] + * + * object.a = 2; + * values(object); + * // => [1, 2] + * + * // Modify the result cache. + * values.cache.set(object, ['a', 'b']); + * values(object); + * // => ['a', 'b'] + * + * // Replace `_.memoize.Cache`. + * _.memoize.Cache = WeakMap; + */ + function memoize$1(func, resolver) { + if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { + throw new TypeError(FUNC_ERROR_TEXT); + } + var memoized = function() { + var args = arguments, + key = resolver ? resolver.apply(this, args) : args[0], + cache = memoized.cache; + + if (cache.has(key)) { + return cache.get(key); + } + var result = func.apply(this, args); + memoized.cache = cache.set(key, result) || cache; + return result; + }; + memoized.cache = new (memoize$1.Cache || MapCache); + return memoized; + } + + // Expose `MapCache`. + memoize$1.Cache = MapCache; + + var memoize_1 = memoize$1; + + var memoize = memoize_1; + + /** Used as the maximum memoize cache size. */ + var MAX_MEMOIZE_SIZE = 500; + + /** + * A specialized version of `_.memoize` which clears the memoized function's + * cache when it exceeds `MAX_MEMOIZE_SIZE`. + * + * @private + * @param {Function} func The function to have its output memoized. + * @returns {Function} Returns the new memoized function. + */ + function memoizeCapped$1(func) { + var result = memoize(func, function(key) { + if (cache.size === MAX_MEMOIZE_SIZE) { + cache.clear(); + } + return key; + }); + + var cache = result.cache; + return result; + } + + var _memoizeCapped = memoizeCapped$1; + + var memoizeCapped = _memoizeCapped; + + /** Used to match property names within property paths. */ + var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; + + /** Used to match backslashes in property paths. */ + var reEscapeChar = /\\(\\)?/g; + + /** + * Converts `string` to a property path array. + * + * @private + * @param {string} string The string to convert. + * @returns {Array} Returns the property path array. + */ + var stringToPath$1 = memoizeCapped(function(string) { + var result = []; + if (string.charCodeAt(0) === 46 /* . */) { + result.push(''); + } + string.replace(rePropName, function(match, number, quote, subString) { + result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); + }); + return result; + }); + + var _stringToPath = stringToPath$1; + + /** + * A specialized version of `_.map` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the new mapped array. + */ + + function arrayMap$2(array, iteratee) { + var index = -1, + length = array == null ? 0 : array.length, + result = Array(length); + + while (++index < length) { + result[index] = iteratee(array[index], index, array); + } + return result; + } + + var _arrayMap = arrayMap$2; + + var Symbol$2 = _Symbol$1, + arrayMap$1 = _arrayMap, + isArray$7 = isArray_1, + isSymbol$2 = isSymbol_1; + + /** Used as references for various `Number` constants. */ + var INFINITY$2 = 1 / 0; + + /** Used to convert symbols to primitives and strings. */ + var symbolProto = Symbol$2 ? Symbol$2.prototype : undefined, + symbolToString = symbolProto ? symbolProto.toString : undefined; + + /** + * The base implementation of `_.toString` which doesn't convert nullish + * values to empty strings. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ + function baseToString$1(value) { + // Exit early for strings to avoid a performance hit in some environments. + if (typeof value == 'string') { + return value; + } + if (isArray$7(value)) { + // Recursively convert values (susceptible to call stack limits). + return arrayMap$1(value, baseToString$1) + ''; + } + if (isSymbol$2(value)) { + return symbolToString ? symbolToString.call(value) : ''; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY$2) ? '-0' : result; + } + + var _baseToString = baseToString$1; + + var baseToString = _baseToString; + + /** + * Converts `value` to a string. An empty string is returned for `null` + * and `undefined` values. The sign of `-0` is preserved. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + * @example + * + * _.toString(null); + * // => '' + * + * _.toString(-0); + * // => '-0' + * + * _.toString([1, 2, 3]); + * // => '1,2,3' + */ + function toString$6(value) { + return value == null ? '' : baseToString(value); + } + + var toString_1 = toString$6; + + var isArray$6 = isArray_1, + isKey$2 = _isKey, + stringToPath = _stringToPath, + toString$5 = toString_1; + + /** + * Casts `value` to a path array if it's not one. + * + * @private + * @param {*} value The value to inspect. + * @param {Object} [object] The object to query keys on. + * @returns {Array} Returns the cast property path array. + */ + function castPath$2(value, object) { + if (isArray$6(value)) { + return value; + } + return isKey$2(value, object) ? [value] : stringToPath(toString$5(value)); + } + + var _castPath = castPath$2; + + var isSymbol$1 = isSymbol_1; + + /** Used as references for various `Number` constants. */ + var INFINITY$1 = 1 / 0; + + /** * Converts `value` to a string key if it's not a string or symbol. * - * @private - * @param {*} value The value to inspect. - * @returns {string|symbol} Returns the key. + * @private + * @param {*} value The value to inspect. + * @returns {string|symbol} Returns the key. + */ + function toKey$4(value) { + if (typeof value == 'string' || isSymbol$1(value)) { + return value; + } + var result = (value + ''); + return (result == '0' && (1 / value) == -INFINITY$1) ? '-0' : result; + } + + var _toKey = toKey$4; + + var castPath$1 = _castPath, + toKey$3 = _toKey; + + /** + * The base implementation of `_.get` without support for default values. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @returns {*} Returns the resolved value. + */ + function baseGet$2(object, path) { + path = castPath$1(path, object); + + var index = 0, + length = path.length; + + while (object != null && index < length) { + object = object[toKey$3(path[index++])]; + } + return (index && index == length) ? object : undefined; + } + + var _baseGet = baseGet$2; + + var baseGet$1 = _baseGet; + + /** + * Gets the value at `path` of `object`. If the resolved value is + * `undefined`, the `defaultValue` is returned in its place. + * + * @static + * @memberOf _ + * @since 3.7.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path of the property to get. + * @param {*} [defaultValue] The value returned for `undefined` resolved values. + * @returns {*} Returns the resolved value. + * @example + * + * var object = { 'a': [{ 'b': { 'c': 3 } }] }; + * + * _.get(object, 'a[0].b.c'); + * // => 3 + * + * _.get(object, ['a', '0', 'b', 'c']); + * // => 3 + * + * _.get(object, 'a.b.c', 'default'); + * // => 'default' + */ + function get$1(object, path, defaultValue) { + var result = object == null ? undefined : baseGet$1(object, path); + return result === undefined ? defaultValue : result; + } + + var get_1 = get$1; + + /** + * The base implementation of `_.hasIn` without support for deep paths. + * + * @private + * @param {Object} [object] The object to query. + * @param {Array|string} key The key to check. + * @returns {boolean} Returns `true` if `key` exists, else `false`. + */ + + function baseHasIn$1(object, key) { + return object != null && key in Object(object); + } + + var _baseHasIn = baseHasIn$1; + + var castPath = _castPath, + isArguments$2 = isArguments_1, + isArray$5 = isArray_1, + isIndex = _isIndex, + isLength = isLength_1, + toKey$2 = _toKey; + + /** + * Checks if `path` exists on `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @param {Function} hasFunc The function to check properties. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + */ + function hasPath$1(object, path, hasFunc) { + path = castPath(path, object); + + var index = -1, + length = path.length, + result = false; + + while (++index < length) { + var key = toKey$2(path[index]); + if (!(result = object != null && hasFunc(object, key))) { + break; + } + object = object[key]; + } + if (result || ++index != length) { + return result; + } + length = object == null ? 0 : object.length; + return !!length && isLength(length) && isIndex(key, length) && + (isArray$5(object) || isArguments$2(object)); + } + + var _hasPath = hasPath$1; + + var baseHasIn = _baseHasIn, + hasPath = _hasPath; + + /** + * Checks if `path` is a direct or inherited property of `object`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Object + * @param {Object} object The object to query. + * @param {Array|string} path The path to check. + * @returns {boolean} Returns `true` if `path` exists, else `false`. + * @example + * + * var object = _.create({ 'a': _.create({ 'b': 2 }) }); + * + * _.hasIn(object, 'a'); + * // => true + * + * _.hasIn(object, 'a.b'); + * // => true + * + * _.hasIn(object, ['a', 'b']); + * // => true + * + * _.hasIn(object, 'b'); + * // => false + */ + function hasIn$1(object, path) { + return object != null && hasPath(object, path, baseHasIn); + } + + var hasIn_1 = hasIn$1; + + var baseIsEqual = _baseIsEqual, + get = get_1, + hasIn = hasIn_1, + isKey$1 = _isKey, + isStrictComparable = _isStrictComparable, + matchesStrictComparable = _matchesStrictComparable, + toKey$1 = _toKey; + + /** Used to compose bitmasks for value comparisons. */ + var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + + /** + * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. + * + * @private + * @param {string} path The path of the property to get. + * @param {*} srcValue The value to match. + * @returns {Function} Returns the new spec function. + */ + function baseMatchesProperty$1(path, srcValue) { + if (isKey$1(path) && isStrictComparable(srcValue)) { + return matchesStrictComparable(toKey$1(path), srcValue); + } + return function(object) { + var objValue = get(object, path); + return (objValue === undefined && objValue === srcValue) + ? hasIn(object, path) + : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); + }; + } + + var _baseMatchesProperty = baseMatchesProperty$1; + + /** + * This method returns the first argument it receives. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Util + * @param {*} value Any value. + * @returns {*} Returns `value`. + * @example + * + * var object = { 'a': 1 }; + * + * console.log(_.identity(object) === object); + * // => true + */ + + function identity$3(value) { + return value; + } + + var identity_1 = identity$3; + + /** + * The base implementation of `_.property` without support for deep paths. + * + * @private + * @param {string} key The key of the property to get. + * @returns {Function} Returns the new accessor function. + */ + + function baseProperty$1(key) { + return function(object) { + return object == null ? undefined : object[key]; + }; + } + + var _baseProperty = baseProperty$1; + + var baseGet = _baseGet; + + /** + * A specialized version of `baseProperty` which supports deep paths. + * + * @private + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + */ + function basePropertyDeep$1(path) { + return function(object) { + return baseGet(object, path); + }; + } + + var _basePropertyDeep = basePropertyDeep$1; + + var baseProperty = _baseProperty, + basePropertyDeep = _basePropertyDeep, + isKey = _isKey, + toKey = _toKey; + + /** + * Creates a function that returns the value at `path` of a given object. + * + * @static + * @memberOf _ + * @since 2.4.0 + * @category Util + * @param {Array|string} path The path of the property to get. + * @returns {Function} Returns the new accessor function. + * @example + * + * var objects = [ + * { 'a': { 'b': 2 } }, + * { 'a': { 'b': 1 } } + * ]; + * + * _.map(objects, _.property('a.b')); + * // => [2, 1] + * + * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); + * // => [1, 2] + */ + function property$1(path) { + return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); + } + + var property_1 = property$1; + + var baseMatches = _baseMatches, + baseMatchesProperty = _baseMatchesProperty, + identity$2 = identity_1, + isArray$4 = isArray_1, + property = property_1; + + /** + * The base implementation of `_.iteratee`. + * + * @private + * @param {*} [value=_.identity] The value to convert to an iteratee. + * @returns {Function} Returns the iteratee. + */ + function baseIteratee$2(value) { + // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. + // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. + if (typeof value == 'function') { + return value; + } + if (value == null) { + return identity$2; + } + if (typeof value == 'object') { + return isArray$4(value) + ? baseMatchesProperty(value[0], value[1]) + : baseMatches(value); + } + return property(value); + } + + var _baseIteratee = baseIteratee$2; + + var baseIteratee$1 = _baseIteratee, + isArrayLike$2 = isArrayLike_1, + keys = keys_1; + + /** + * Creates a `_.find` or `_.findLast` function. + * + * @private + * @param {Function} findIndexFunc The function to find the collection index. + * @returns {Function} Returns the new find function. + */ + function createFind$1(findIndexFunc) { + return function(collection, predicate, fromIndex) { + var iterable = Object(collection); + if (!isArrayLike$2(collection)) { + var iteratee = baseIteratee$1(predicate); + collection = keys(collection); + predicate = function(key) { return iteratee(iterable[key], key, iterable); }; + } + var index = findIndexFunc(collection, predicate, fromIndex); + return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; + }; + } + + var _createFind = createFind$1; + + /** + * The base implementation of `_.findIndex` and `_.findLastIndex` without + * support for iteratee shorthands. + * + * @private + * @param {Array} array The array to inspect. + * @param {Function} predicate The function invoked per iteration. + * @param {number} fromIndex The index to search from. + * @param {boolean} [fromRight] Specify iterating from right to left. + * @returns {number} Returns the index of the matched value, else `-1`. + */ + + function baseFindIndex$2(array, predicate, fromIndex, fromRight) { + var length = array.length, + index = fromIndex + (fromRight ? 1 : -1); + + while ((fromRight ? index-- : ++index < length)) { + if (predicate(array[index], index, array)) { + return index; + } + } + return -1; + } + + var _baseFindIndex = baseFindIndex$2; + + /** Used to match a single whitespace character. */ + + var reWhitespace = /\s/; + + /** + * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace + * character of `string`. + * + * @private + * @param {string} string The string to inspect. + * @returns {number} Returns the index of the last non-whitespace character. + */ + function trimmedEndIndex$1(string) { + var index = string.length; + + while (index-- && reWhitespace.test(string.charAt(index))) {} + return index; + } + + var _trimmedEndIndex = trimmedEndIndex$1; + + var trimmedEndIndex = _trimmedEndIndex; + + /** Used to match leading whitespace. */ + var reTrimStart = /^\s+/; + + /** + * The base implementation of `_.trim`. + * + * @private + * @param {string} string The string to trim. + * @returns {string} Returns the trimmed string. + */ + function baseTrim$1(string) { + return string + ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') + : string; + } + + var _baseTrim = baseTrim$1; + + var baseTrim = _baseTrim, + isObject$1 = isObject_1, + isSymbol = isSymbol_1; + + /** Used as references for various `Number` constants. */ + var NAN = 0 / 0; + + /** Used to detect bad signed hexadecimal string values. */ + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + + /** Used to detect binary string values. */ + var reIsBinary = /^0b[01]+$/i; + + /** Used to detect octal string values. */ + var reIsOctal = /^0o[0-7]+$/i; + + /** Built-in method references without a dependency on `root`. */ + var freeParseInt = parseInt; + + /** + * Converts `value` to a number. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to process. + * @returns {number} Returns the number. + * @example + * + * _.toNumber(3.2); + * // => 3.2 + * + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3.2'); + * // => 3.2 + */ + function toNumber$1(value) { + if (typeof value == 'number') { + return value; + } + if (isSymbol(value)) { + return NAN; + } + if (isObject$1(value)) { + var other = typeof value.valueOf == 'function' ? value.valueOf() : value; + value = isObject$1(other) ? (other + '') : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = baseTrim(value); + var isBinary = reIsBinary.test(value); + return (isBinary || reIsOctal.test(value)) + ? freeParseInt(value.slice(2), isBinary ? 2 : 8) + : (reIsBadHex.test(value) ? NAN : +value); + } + + var toNumber_1 = toNumber$1; + + var toNumber = toNumber_1; + + /** Used as references for various `Number` constants. */ + var INFINITY = 1 / 0, + MAX_INTEGER = 1.7976931348623157e+308; + + /** + * Converts `value` to a finite number. + * + * @static + * @memberOf _ + * @since 4.12.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted number. + * @example + * + * _.toFinite(3.2); + * // => 3.2 + * + * _.toFinite(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toFinite(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toFinite('3.2'); + * // => 3.2 + */ + function toFinite$1(value) { + if (!value) { + return value === 0 ? value : 0; + } + value = toNumber(value); + if (value === INFINITY || value === -INFINITY) { + var sign = (value < 0 ? -1 : 1); + return sign * MAX_INTEGER; + } + return value === value ? value : 0; + } + + var toFinite_1 = toFinite$1; + + var toFinite = toFinite_1; + + /** + * Converts `value` to an integer. + * + * **Note:** This method is loosely based on + * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to convert. + * @returns {number} Returns the converted integer. + * @example + * + * _.toInteger(3.2); + * // => 3 + * + * _.toInteger(Number.MIN_VALUE); + * // => 0 + * + * _.toInteger(Infinity); + * // => 1.7976931348623157e+308 + * + * _.toInteger('3.2'); + * // => 3 + */ + function toInteger$1(value) { + var result = toFinite(value), + remainder = result % 1; + + return result === result ? (remainder ? result - remainder : result) : 0; + } + + var toInteger_1 = toInteger$1; + + var baseFindIndex$1 = _baseFindIndex, + baseIteratee = _baseIteratee, + toInteger = toInteger_1; + + /* Built-in method references for those with the same name as other `lodash` methods. */ + var nativeMax$1 = Math.max; + + /** + * This method is like `_.find` except that it returns the index of the first + * element `predicate` returns truthy for instead of the element itself. + * + * @static + * @memberOf _ + * @since 1.1.0 + * @category Array + * @param {Array} array The array to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {number} Returns the index of the found element, else `-1`. + * @example + * + * var users = [ + * { 'user': 'barney', 'active': false }, + * { 'user': 'fred', 'active': false }, + * { 'user': 'pebbles', 'active': true } + * ]; + * + * _.findIndex(users, function(o) { return o.user == 'barney'; }); + * // => 0 + * + * // The `_.matches` iteratee shorthand. + * _.findIndex(users, { 'user': 'fred', 'active': false }); + * // => 1 + * + * // The `_.matchesProperty` iteratee shorthand. + * _.findIndex(users, ['active', false]); + * // => 0 + * + * // The `_.property` iteratee shorthand. + * _.findIndex(users, 'active'); + * // => 2 */ - function toKey$4(value) { - if (typeof value == 'string' || isSymbol$1(value)) { - return value; + function findIndex$1(array, predicate, fromIndex) { + var length = array == null ? 0 : array.length; + if (!length) { + return -1; + } + var index = fromIndex == null ? 0 : toInteger(fromIndex); + if (index < 0) { + index = nativeMax$1(length + index, 0); + } + return baseFindIndex$1(array, baseIteratee(predicate), index); + } + + var findIndex_1 = findIndex$1; + + var createFind = _createFind, + findIndex = findIndex_1; + + /** + * Iterates over elements of `collection`, returning the first element + * `predicate` returns truthy for. The predicate is invoked with three + * arguments: (value, index|key, collection). + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Collection + * @param {Array|Object} collection The collection to inspect. + * @param {Function} [predicate=_.identity] The function invoked per iteration. + * @param {number} [fromIndex=0] The index to search from. + * @returns {*} Returns the matched element, else `undefined`. + * @example + * + * var users = [ + * { 'user': 'barney', 'age': 36, 'active': true }, + * { 'user': 'fred', 'age': 40, 'active': false }, + * { 'user': 'pebbles', 'age': 1, 'active': true } + * ]; + * + * _.find(users, function(o) { return o.age < 40; }); + * // => object for 'barney' + * + * // The `_.matches` iteratee shorthand. + * _.find(users, { 'age': 1, 'active': true }); + * // => object for 'pebbles' + * + * // The `_.matchesProperty` iteratee shorthand. + * _.find(users, ['active', false]); + * // => object for 'fred' + * + * // The `_.property` iteratee shorthand. + * _.find(users, 'active'); + * // => object for 'barney' + */ + var find = createFind(findIndex); + + var find_1 = find; + + var _find = /*@__PURE__*/getDefaultExportFromCjs(find_1); + + var regeneratorRuntime$1 = {exports: {}}; + + var _typeof$1 = {exports: {}}; + + var WrappedWellKnownSymbolModule$1 = wellKnownSymbolWrapped; + + var iterator$4 = WrappedWellKnownSymbolModule$1.f('iterator'); + + var parent$B = iterator$4; + + + var iterator$3 = parent$B; + + var parent$A = iterator$3; + + var iterator$2 = parent$A; + + var parent$z = iterator$2; + + var iterator$1 = parent$z; + + var iterator = iterator$1; + + var _Symbol$iterator = /*@__PURE__*/getDefaultExportFromCjs(iterator); + + (function (module) { + var _Symbol = symbol$1; + var _Symbol$iterator = iterator; + function _typeof(o) { + "@babel/helpers - typeof"; + + return (module.exports = _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; + }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(o); + } + module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports; + } (_typeof$1)); + + var _typeofExports = _typeof$1.exports; + + var defineProperty$9 = {exports: {}}; + + var $$i = _export; + var DESCRIPTORS$4 = descriptors; + var defineProperty$8 = objectDefineProperty.f; + + // `Object.defineProperty` method + // https://tc39.es/ecma262/#sec-object.defineproperty + // eslint-disable-next-line es/no-object-defineproperty -- safe + $$i({ target: 'Object', stat: true, forced: Object.defineProperty !== defineProperty$8, sham: !DESCRIPTORS$4 }, { + defineProperty: defineProperty$8 + }); + + var path$8 = path$h; + + var Object$2 = path$8.Object; + + var defineProperty$7 = defineProperty$9.exports = function defineProperty(it, key, desc) { + return Object$2.defineProperty(it, key, desc); + }; + + if (Object$2.defineProperty.sham) defineProperty$7.sham = true; + + var definePropertyExports = defineProperty$9.exports; + + var parent$y = definePropertyExports; + + var defineProperty$6 = parent$y; + + var parent$x = defineProperty$6; + + var defineProperty$5 = parent$x; + + var parent$w = defineProperty$5; + + var defineProperty$4 = parent$w; + + var defineProperty$3 = defineProperty$4; + + var _Object$defineProperty = /*@__PURE__*/getDefaultExportFromCjs(defineProperty$3); + + // TODO: Remove from `core-js@4` + var $$h = _export; + var DESCRIPTORS$3 = descriptors; + var create$6 = objectCreate; + + // `Object.create` method + // https://tc39.es/ecma262/#sec-object.create + $$h({ target: 'Object', stat: true, sham: !DESCRIPTORS$3 }, { + create: create$6 + }); + + var path$7 = path$h; + + var Object$1 = path$7.Object; + + var create$5 = function create(P, D) { + return Object$1.create(P, D); + }; + + var parent$v = create$5; + + var create$4 = parent$v; + + var parent$u = create$4; + + var create$3 = parent$u; + + var parent$t = create$3; + + var create$2 = parent$t; + + var create$1 = create$2; + + var $$g = _export; + var fails$7 = fails$r; + var toObject$3 = toObject$b; + var nativeGetPrototypeOf = objectGetPrototypeOf$1; + var CORRECT_PROTOTYPE_GETTER = correctPrototypeGetter; + + var FAILS_ON_PRIMITIVES = fails$7(function () { nativeGetPrototypeOf(1); }); + + // `Object.getPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.getprototypeof + $$g({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, { + getPrototypeOf: function getPrototypeOf(it) { + return nativeGetPrototypeOf(toObject$3(it)); + } + }); + + var path$6 = path$h; + + var getPrototypeOf$4 = path$6.Object.getPrototypeOf; + + var parent$s = getPrototypeOf$4; + + var getPrototypeOf$3 = parent$s; + + var parent$r = getPrototypeOf$3; + + var getPrototypeOf$2 = parent$r; + + var parent$q = getPrototypeOf$2; + + var getPrototypeOf$1 = parent$q; + + var getPrototypeOf = getPrototypeOf$1; + + var fails$6 = fails$r; + + var arrayMethodIsStrict$4 = function (METHOD_NAME, argument) { + var method = [][METHOD_NAME]; + return !!method && fails$6(function () { + // eslint-disable-next-line no-useless-call -- required for testing + method.call(null, argument || function () { return 1; }, 1); + }); + }; + + var $forEach = arrayIteration.forEach; + var arrayMethodIsStrict$3 = arrayMethodIsStrict$4; + + var STRICT_METHOD$1 = arrayMethodIsStrict$3('forEach'); + + // `Array.prototype.forEach` method implementation + // https://tc39.es/ecma262/#sec-array.prototype.foreach + var arrayForEach = !STRICT_METHOD$1 ? function forEach(callbackfn /* , thisArg */) { + return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); + // eslint-disable-next-line es/no-array-prototype-foreach -- safe + } : [].forEach; + + var $$f = _export; + var forEach$6 = arrayForEach; + + // `Array.prototype.forEach` method + // https://tc39.es/ecma262/#sec-array.prototype.foreach + // eslint-disable-next-line es/no-array-prototype-foreach -- safe + $$f({ target: 'Array', proto: true, forced: [].forEach !== forEach$6 }, { + forEach: forEach$6 + }); + + var getBuiltInPrototypeMethod$b = getBuiltInPrototypeMethod$e; + + var forEach$5 = getBuiltInPrototypeMethod$b('Array', 'forEach'); + + var parent$p = forEach$5; + + var forEach$4 = parent$p; + + var classof$2 = classof$b; + var hasOwn = hasOwnProperty_1; + var isPrototypeOf$a = objectIsPrototypeOf; + var method$9 = forEach$4; + + + var ArrayPrototype$8 = Array.prototype; + + var DOMIterables = { + DOMTokenList: true, + NodeList: true + }; + + var forEach$3 = function (it) { + var own = it.forEach; + return it === ArrayPrototype$8 || (isPrototypeOf$a(ArrayPrototype$8, it) && own === ArrayPrototype$8.forEach) + || hasOwn(DOMIterables, classof$2(it)) ? method$9 : own; + }; + + var parent$o = forEach$3; + + var forEach$2 = parent$o; + + var parent$n = forEach$2; + + var forEach$1 = parent$n; + + var forEach = forEach$1; + + var $$e = _export; + var setPrototypeOf$5 = objectSetPrototypeOf; + + // `Object.setPrototypeOf` method + // https://tc39.es/ecma262/#sec-object.setprototypeof + $$e({ target: 'Object', stat: true }, { + setPrototypeOf: setPrototypeOf$5 + }); + + var path$5 = path$h; + + var setPrototypeOf$4 = path$5.Object.setPrototypeOf; + + var parent$m = setPrototypeOf$4; + + var setPrototypeOf$3 = parent$m; + + var parent$l = setPrototypeOf$3; + + var setPrototypeOf$2 = parent$l; + + var parent$k = setPrototypeOf$2; + + var setPrototypeOf$1 = parent$k; + + var setPrototypeOf = setPrototypeOf$1; + + var $$d = _export; + var uncurryThis$8 = functionUncurryThis; + var isArray$3 = isArray$o; + + var nativeReverse = uncurryThis$8([].reverse); + var test = [1, 2]; + + // `Array.prototype.reverse` method + // https://tc39.es/ecma262/#sec-array.prototype.reverse + // fix for Safari 12.0 bug + // https://bugs.webkit.org/show_bug.cgi?id=188794 + $$d({ target: 'Array', proto: true, forced: String(test) === String(test.reverse()) }, { + reverse: function reverse() { + // eslint-disable-next-line no-self-assign -- dirty hack + if (isArray$3(this)) this.length = this.length; + return nativeReverse(this); + } + }); + + var getBuiltInPrototypeMethod$a = getBuiltInPrototypeMethod$e; + + var reverse$5 = getBuiltInPrototypeMethod$a('Array', 'reverse'); + + var isPrototypeOf$9 = objectIsPrototypeOf; + var method$8 = reverse$5; + + var ArrayPrototype$7 = Array.prototype; + + var reverse$4 = function (it) { + var own = it.reverse; + return it === ArrayPrototype$7 || (isPrototypeOf$9(ArrayPrototype$7, it) && own === ArrayPrototype$7.reverse) ? method$8 : own; + }; + + var parent$j = reverse$4; + + var reverse$3 = parent$j; + + var parent$i = reverse$3; + + var reverse$2 = parent$i; + + var parent$h = reverse$2; + + var reverse$1 = parent$h; + + var reverse = reverse$1; + + (function (module) { + var _typeof = _typeofExports["default"]; + var _Object$defineProperty = defineProperty$3; + var _Symbol = symbol$1; + var _Object$create = create$1; + var _Object$getPrototypeOf = getPrototypeOf; + var _forEachInstanceProperty = forEach; + var _pushInstanceProperty = push$1; + var _Object$setPrototypeOf = setPrototypeOf; + var _Promise = promise$1; + var _reverseInstanceProperty = reverse; + var _sliceInstanceProperty = slice$2; + function _regeneratorRuntime() { + module.exports = _regeneratorRuntime = function _regeneratorRuntime() { + return e; + }, module.exports.__esModule = true, module.exports["default"] = module.exports; + var t, + e = {}, + r = Object.prototype, + n = r.hasOwnProperty, + o = _Object$defineProperty || function (t, e, r) { + t[e] = r.value; + }, + i = "function" == typeof _Symbol ? _Symbol : {}, + a = i.iterator || "@@iterator", + c = i.asyncIterator || "@@asyncIterator", + u = i.toStringTag || "@@toStringTag"; + function define(t, e, r) { + return _Object$defineProperty(t, e, { + value: r, + enumerable: !0, + configurable: !0, + writable: !0 + }), t[e]; + } + try { + define({}, ""); + } catch (t) { + define = function define(t, e, r) { + return t[e] = r; + }; + } + function wrap(t, e, r, n) { + var i = e && e.prototype instanceof Generator ? e : Generator, + a = _Object$create(i.prototype), + c = new Context(n || []); + return o(a, "_invoke", { + value: makeInvokeMethod(t, r, c) + }), a; + } + function tryCatch(t, e, r) { + try { + return { + type: "normal", + arg: t.call(e, r) + }; + } catch (t) { + return { + type: "throw", + arg: t + }; + } + } + e.wrap = wrap; + var h = "suspendedStart", + l = "suspendedYield", + f = "executing", + s = "completed", + y = {}; + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + var p = {}; + define(p, a, function () { + return this; + }); + var d = _Object$getPrototypeOf, + v = d && d(d(values([]))); + v && v !== r && n.call(v, a) && (p = v); + var g = GeneratorFunctionPrototype.prototype = Generator.prototype = _Object$create(p); + function defineIteratorMethods(t) { + var _context; + _forEachInstanceProperty(_context = ["next", "throw", "return"]).call(_context, function (e) { + define(t, e, function (t) { + return this._invoke(e, t); + }); + }); + } + function AsyncIterator(t, e) { + function invoke(r, o, i, a) { + var c = tryCatch(t[r], t, o); + if ("throw" !== c.type) { + var u = c.arg, + h = u.value; + return h && "object" == _typeof(h) && n.call(h, "__await") ? e.resolve(h.__await).then(function (t) { + invoke("next", t, i, a); + }, function (t) { + invoke("throw", t, i, a); + }) : e.resolve(h).then(function (t) { + u.value = t, i(u); + }, function (t) { + return invoke("throw", t, i, a); + }); + } + a(c.arg); + } + var r; + o(this, "_invoke", { + value: function value(t, n) { + function callInvokeWithMethodAndArg() { + return new e(function (e, r) { + invoke(t, n, e, r); + }); + } + return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); + } + }); + } + function makeInvokeMethod(e, r, n) { + var o = h; + return function (i, a) { + if (o === f) throw Error("Generator is already running"); + if (o === s) { + if ("throw" === i) throw a; + return { + value: t, + done: !0 + }; + } + for (n.method = i, n.arg = a;;) { + var c = n.delegate; + if (c) { + var u = maybeInvokeDelegate(c, n); + if (u) { + if (u === y) continue; + return u; + } + } + if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { + if (o === h) throw o = s, n.arg; + n.dispatchException(n.arg); + } else "return" === n.method && n.abrupt("return", n.arg); + o = f; + var p = tryCatch(e, r, n); + if ("normal" === p.type) { + if (o = n.done ? s : l, p.arg === y) continue; + return { + value: p.arg, + done: n.done + }; + } + "throw" === p.type && (o = s, n.method = "throw", n.arg = p.arg); + } + }; + } + function maybeInvokeDelegate(e, r) { + var n = r.method, + o = e.iterator[n]; + if (o === t) return r.delegate = null, "throw" === n && e.iterator["return"] && (r.method = "return", r.arg = t, maybeInvokeDelegate(e, r), "throw" === r.method) || "return" !== n && (r.method = "throw", r.arg = new TypeError("The iterator does not provide a '" + n + "' method")), y; + var i = tryCatch(o, e.iterator, r.arg); + if ("throw" === i.type) return r.method = "throw", r.arg = i.arg, r.delegate = null, y; + var a = i.arg; + return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, "return" !== r.method && (r.method = "next", r.arg = t), r.delegate = null, y) : a : (r.method = "throw", r.arg = new TypeError("iterator result is not an object"), r.delegate = null, y); + } + function pushTryEntry(t) { + var _context2; + var e = { + tryLoc: t[0] + }; + 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), _pushInstanceProperty(_context2 = this.tryEntries).call(_context2, e); + } + function resetTryEntry(t) { + var e = t.completion || {}; + e.type = "normal", delete e.arg, t.completion = e; + } + function Context(t) { + this.tryEntries = [{ + tryLoc: "root" + }], _forEachInstanceProperty(t).call(t, pushTryEntry, this), this.reset(!0); + } + function values(e) { + if (e || "" === e) { + var r = e[a]; + if (r) return r.call(e); + if ("function" == typeof e.next) return e; + if (!isNaN(e.length)) { + var o = -1, + i = function next() { + for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next; + return next.value = t, next.done = !0, next; + }; + return i.next = i; + } + } + throw new TypeError(_typeof(e) + " is not iterable"); + } + return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, "constructor", { + value: GeneratorFunctionPrototype, + configurable: !0 + }), o(GeneratorFunctionPrototype, "constructor", { + value: GeneratorFunction, + configurable: !0 + }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, "GeneratorFunction"), e.isGeneratorFunction = function (t) { + var e = "function" == typeof t && t.constructor; + return !!e && (e === GeneratorFunction || "GeneratorFunction" === (e.displayName || e.name)); + }, e.mark = function (t) { + return _Object$setPrototypeOf ? _Object$setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, "GeneratorFunction")), t.prototype = _Object$create(g), t; + }, e.awrap = function (t) { + return { + __await: t + }; + }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () { + return this; + }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) { + void 0 === i && (i = _Promise); + var a = new AsyncIterator(wrap(t, r, n, o), i); + return e.isGeneratorFunction(r) ? a : a.next().then(function (t) { + return t.done ? t.value : a.next(); + }); + }, defineIteratorMethods(g), define(g, u, "Generator"), define(g, a, function () { + return this; + }), define(g, "toString", function () { + return "[object Generator]"; + }), e.keys = function (t) { + var e = Object(t), + r = []; + for (var n in e) _pushInstanceProperty(r).call(r, n); + return _reverseInstanceProperty(r).call(r), function next() { + for (; r.length;) { + var t = r.pop(); + if (t in e) return next.value = t, next.done = !1, next; + } + return next.done = !0, next; + }; + }, e.values = values, Context.prototype = { + constructor: Context, + reset: function reset(e) { + var _context3; + if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, _forEachInstanceProperty(_context3 = this.tryEntries).call(_context3, resetTryEntry), !e) for (var r in this) "t" === r.charAt(0) && n.call(this, r) && !isNaN(+_sliceInstanceProperty(r).call(r, 1)) && (this[r] = t); + }, + stop: function stop() { + this.done = !0; + var t = this.tryEntries[0].completion; + if ("throw" === t.type) throw t.arg; + return this.rval; + }, + dispatchException: function dispatchException(e) { + if (this.done) throw e; + var r = this; + function handle(n, o) { + return a.type = "throw", a.arg = e, r.next = n, o && (r.method = "next", r.arg = t), !!o; + } + for (var o = this.tryEntries.length - 1; o >= 0; --o) { + var i = this.tryEntries[o], + a = i.completion; + if ("root" === i.tryLoc) return handle("end"); + if (i.tryLoc <= this.prev) { + var c = n.call(i, "catchLoc"), + u = n.call(i, "finallyLoc"); + if (c && u) { + if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); + if (this.prev < i.finallyLoc) return handle(i.finallyLoc); + } else if (c) { + if (this.prev < i.catchLoc) return handle(i.catchLoc, !0); + } else { + if (!u) throw Error("try statement without catch or finally"); + if (this.prev < i.finallyLoc) return handle(i.finallyLoc); + } + } + } + }, + abrupt: function abrupt(t, e) { + for (var r = this.tryEntries.length - 1; r >= 0; --r) { + var o = this.tryEntries[r]; + if (o.tryLoc <= this.prev && n.call(o, "finallyLoc") && this.prev < o.finallyLoc) { + var i = o; + break; + } + } + i && ("break" === t || "continue" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null); + var a = i ? i.completion : {}; + return a.type = t, a.arg = e, i ? (this.method = "next", this.next = i.finallyLoc, y) : this.complete(a); + }, + complete: function complete(t, e) { + if ("throw" === t.type) throw t.arg; + return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && e && (this.next = e), y; + }, + finish: function finish(t) { + for (var e = this.tryEntries.length - 1; e >= 0; --e) { + var r = this.tryEntries[e]; + if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y; + } + }, + "catch": function _catch(t) { + for (var e = this.tryEntries.length - 1; e >= 0; --e) { + var r = this.tryEntries[e]; + if (r.tryLoc === t) { + var n = r.completion; + if ("throw" === n.type) { + var o = n.arg; + resetTryEntry(r); + } + return o; + } + } + throw Error("illegal catch attempt"); + }, + delegateYield: function delegateYield(e, r, n) { + return this.delegate = { + iterator: values(e), + resultName: r, + nextLoc: n + }, "next" === this.method && (this.arg = t), y; + } + }, e; + } + module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports; + } (regeneratorRuntime$1)); + + var regeneratorRuntimeExports = regeneratorRuntime$1.exports; + + // TODO(Babel 8): Remove this file. + + var runtime = regeneratorRuntimeExports(); + var regenerator = runtime; + + // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736= + try { + regeneratorRuntime = runtime; + } catch (accidentalStrictMode) { + if (typeof globalThis === "object") { + globalThis.regeneratorRuntime = runtime; + } else { + Function("r", "regeneratorRuntime = r")(runtime); } - var result = (value + ''); - return (result == '0' && (1 / value) == -INFINITY$1) ? '-0' : result; } - var _toKey = toKey$4; - - var castPath$1 = _castPath, - toKey$3 = _toKey; + var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regenerator); - /** - * The base implementation of `_.get` without support for default values. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @returns {*} Returns the resolved value. - */ - function baseGet$2(object, path) { - path = castPath$1(path, object); + var $$c = _export; + var $includes = arrayIncludes$2.includes; + var fails$5 = fails$r; - var index = 0, - length = path.length; + // FF99+ bug + var BROKEN_ON_SPARSE = fails$5(function () { + // eslint-disable-next-line es/no-array-prototype-includes -- detection + return !Array(1).includes(); + }); - while (object != null && index < length) { - object = object[toKey$3(path[index++])]; + // `Array.prototype.includes` method + // https://tc39.es/ecma262/#sec-array.prototype.includes + $$c({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, { + includes: function includes(el /* , fromIndex = 0 */) { + return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); } - return (index && index == length) ? object : undefined; - } + }); - var _baseGet = baseGet$2; + var getBuiltInPrototypeMethod$9 = getBuiltInPrototypeMethod$e; - var baseGet$1 = _baseGet; + var includes$4 = getBuiltInPrototypeMethod$9('Array', 'includes'); - /** - * Gets the value at `path` of `object`. If the resolved value is - * `undefined`, the `defaultValue` is returned in its place. - * - * @static - * @memberOf _ - * @since 3.7.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path of the property to get. - * @param {*} [defaultValue] The value returned for `undefined` resolved values. - * @returns {*} Returns the resolved value. - * @example - * - * var object = { 'a': [{ 'b': { 'c': 3 } }] }; - * - * _.get(object, 'a[0].b.c'); - * // => 3 - * - * _.get(object, ['a', '0', 'b', 'c']); - * // => 3 - * - * _.get(object, 'a.b.c', 'default'); - * // => 'default' - */ - function get$1(object, path, defaultValue) { - var result = object == null ? undefined : baseGet$1(object, path); - return result === undefined ? defaultValue : result; - } + var isObject = isObject$k; + var classof$1 = classofRaw$2; + var wellKnownSymbol$1 = wellKnownSymbol$o; - var get_1 = get$1; + var MATCH$1 = wellKnownSymbol$1('match'); - /** - * The base implementation of `_.hasIn` without support for deep paths. - * - * @private - * @param {Object} [object] The object to query. - * @param {Array|string} key The key to check. - * @returns {boolean} Returns `true` if `key` exists, else `false`. - */ + // `IsRegExp` abstract operation + // https://tc39.es/ecma262/#sec-isregexp + var isRegexp = function (it) { + var isRegExp; + return isObject(it) && ((isRegExp = it[MATCH$1]) !== undefined ? !!isRegExp : classof$1(it) === 'RegExp'); + }; - function baseHasIn$1(object, key) { - return object != null && key in Object(object); - } + var isRegExp = isRegexp; - var _baseHasIn = baseHasIn$1; + var $TypeError$1 = TypeError; - var castPath = _castPath, - isArguments$2 = isArguments_1, - isArray$4 = isArray_1, - isIndex = _isIndex, - isLength = isLength_1, - toKey$2 = _toKey; + var notARegexp = function (it) { + if (isRegExp(it)) { + throw new $TypeError$1("The method doesn't accept regular expressions"); + } return it; + }; - /** - * Checks if `path` exists on `object`. - * - * @private - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @param {Function} hasFunc The function to check properties. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - */ - function hasPath$1(object, path, hasFunc) { - path = castPath(path, object); + var wellKnownSymbol = wellKnownSymbol$o; - var index = -1, - length = path.length, - result = false; + var MATCH = wellKnownSymbol('match'); - while (++index < length) { - var key = toKey$2(path[index]); - if (!(result = object != null && hasFunc(object, key))) { - break; - } - object = object[key]; - } - if (result || ++index != length) { - return result; + var correctIsRegexpLogic = function (METHOD_NAME) { + var regexp = /./; + try { + '/./'[METHOD_NAME](regexp); + } catch (error1) { + try { + regexp[MATCH] = false; + return '/./'[METHOD_NAME](regexp); + } catch (error2) { /* empty */ } + } return false; + }; + + var $$b = _export; + var uncurryThis$7 = functionUncurryThis; + var notARegExp$1 = notARegexp; + var requireObjectCoercible$4 = requireObjectCoercible$9; + var toString$4 = toString$d; + var correctIsRegExpLogic$1 = correctIsRegexpLogic; + + var stringIndexOf = uncurryThis$7(''.indexOf); + + // `String.prototype.includes` method + // https://tc39.es/ecma262/#sec-string.prototype.includes + $$b({ target: 'String', proto: true, forced: !correctIsRegExpLogic$1('includes') }, { + includes: function includes(searchString /* , position = 0 */) { + return !!~stringIndexOf( + toString$4(requireObjectCoercible$4(this)), + toString$4(notARegExp$1(searchString)), + arguments.length > 1 ? arguments[1] : undefined + ); } - length = object == null ? 0 : object.length; - return !!length && isLength(length) && isIndex(key, length) && - (isArray$4(object) || isArguments$2(object)); - } + }); - var _hasPath = hasPath$1; + var getBuiltInPrototypeMethod$8 = getBuiltInPrototypeMethod$e; - var baseHasIn = _baseHasIn, - hasPath = _hasPath; + var includes$3 = getBuiltInPrototypeMethod$8('String', 'includes'); - /** - * Checks if `path` is a direct or inherited property of `object`. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Object - * @param {Object} object The object to query. - * @param {Array|string} path The path to check. - * @returns {boolean} Returns `true` if `path` exists, else `false`. - * @example - * - * var object = _.create({ 'a': _.create({ 'b': 2 }) }); - * - * _.hasIn(object, 'a'); - * // => true - * - * _.hasIn(object, 'a.b'); - * // => true - * - * _.hasIn(object, ['a', 'b']); - * // => true - * - * _.hasIn(object, 'b'); - * // => false - */ - function hasIn$1(object, path) { - return object != null && hasPath(object, path, baseHasIn); - } + var isPrototypeOf$8 = objectIsPrototypeOf; + var arrayMethod = includes$4; + var stringMethod = includes$3; - var hasIn_1 = hasIn$1; + var ArrayPrototype$6 = Array.prototype; + var StringPrototype$2 = String.prototype; - var baseIsEqual = _baseIsEqual, - get = get_1, - hasIn = hasIn_1, - isKey$1 = _isKey, - isStrictComparable = _isStrictComparable, - matchesStrictComparable = _matchesStrictComparable, - toKey$1 = _toKey; + var includes$2 = function (it) { + var own = it.includes; + if (it === ArrayPrototype$6 || (isPrototypeOf$8(ArrayPrototype$6, it) && own === ArrayPrototype$6.includes)) return arrayMethod; + if (typeof it == 'string' || it === StringPrototype$2 || (isPrototypeOf$8(StringPrototype$2, it) && own === StringPrototype$2.includes)) { + return stringMethod; + } return own; + }; - /** Used to compose bitmasks for value comparisons. */ - var COMPARE_PARTIAL_FLAG = 1, - COMPARE_UNORDERED_FLAG = 2; + var parent$g = includes$2; - /** - * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. - * - * @private - * @param {string} path The path of the property to get. - * @param {*} srcValue The value to match. - * @returns {Function} Returns the new spec function. - */ - function baseMatchesProperty$1(path, srcValue) { - if (isKey$1(path) && isStrictComparable(srcValue)) { - return matchesStrictComparable(toKey$1(path), srcValue); - } - return function(object) { - var objValue = get(object, path); - return (objValue === undefined && objValue === srcValue) - ? hasIn(object, path) - : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); - }; - } + var includes$1 = parent$g; - var _baseMatchesProperty = baseMatchesProperty$1; + var includes = includes$1; - /** - * This method returns the first argument it receives. - * - * @static - * @since 0.1.0 - * @memberOf _ - * @category Util - * @param {*} value Any value. - * @returns {*} Returns `value`. - * @example - * - * var object = { 'a': 1 }; - * - * console.log(_.identity(object) === object); - * // => true - */ + var _includesInstanceProperty = /*@__PURE__*/getDefaultExportFromCjs(includes); - function identity$3(value) { - return value; - } + var promise = promise$4; - var identity_1 = identity$3; + var _Promise = /*@__PURE__*/getDefaultExportFromCjs(promise); - /** - * The base implementation of `_.property` without support for deep paths. - * - * @private - * @param {string} key The key of the property to get. - * @returns {Function} Returns the new accessor function. - */ + var toIntegerOrInfinity$1 = toIntegerOrInfinity$5; + var toString$3 = toString$d; + var requireObjectCoercible$3 = requireObjectCoercible$9; - function baseProperty$1(key) { - return function(object) { - return object == null ? undefined : object[key]; + var $RangeError$1 = RangeError; + + // `String.prototype.repeat` method implementation + // https://tc39.es/ecma262/#sec-string.prototype.repeat + var stringRepeat = function repeat(count) { + var str = toString$3(requireObjectCoercible$3(this)); + var result = ''; + var n = toIntegerOrInfinity$1(count); + if (n < 0 || n === Infinity) throw new $RangeError$1('Wrong number of repetitions'); + for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str; + return result; + }; + + // https://github.com/tc39/proposal-string-pad-start-end + var uncurryThis$6 = functionUncurryThis; + var toLength$1 = toLength$3; + var toString$2 = toString$d; + var $repeat = stringRepeat; + var requireObjectCoercible$2 = requireObjectCoercible$9; + + var repeat = uncurryThis$6($repeat); + var stringSlice = uncurryThis$6(''.slice); + var ceil = Math.ceil; + + // `String.prototype.{ padStart, padEnd }` methods implementation + var createMethod$3 = function (IS_END) { + return function ($this, maxLength, fillString) { + var S = toString$2(requireObjectCoercible$2($this)); + var intMaxLength = toLength$1(maxLength); + var stringLength = S.length; + var fillStr = fillString === undefined ? ' ' : toString$2(fillString); + var fillLen, stringFiller; + if (intMaxLength <= stringLength || fillStr === '') return S; + fillLen = intMaxLength - stringLength; + stringFiller = repeat(fillStr, ceil(fillLen / fillStr.length)); + if (stringFiller.length > fillLen) stringFiller = stringSlice(stringFiller, 0, fillLen); + return IS_END ? S + stringFiller : stringFiller + S; }; - } + }; - var _baseProperty = baseProperty$1; + var stringPad = { + // `String.prototype.padStart` method + // https://tc39.es/ecma262/#sec-string.prototype.padstart + start: createMethod$3(false), + // `String.prototype.padEnd` method + // https://tc39.es/ecma262/#sec-string.prototype.padend + end: createMethod$3(true) + }; - var baseGet = _baseGet; + var uncurryThis$5 = functionUncurryThis; + var fails$4 = fails$r; + var padStart = stringPad.start; + + var $RangeError = RangeError; + var $isFinite = isFinite; + var abs = Math.abs; + var DatePrototype = Date.prototype; + var nativeDateToISOString = DatePrototype.toISOString; + var thisTimeValue = uncurryThis$5(DatePrototype.getTime); + var getUTCDate = uncurryThis$5(DatePrototype.getUTCDate); + var getUTCFullYear = uncurryThis$5(DatePrototype.getUTCFullYear); + var getUTCHours = uncurryThis$5(DatePrototype.getUTCHours); + var getUTCMilliseconds = uncurryThis$5(DatePrototype.getUTCMilliseconds); + var getUTCMinutes = uncurryThis$5(DatePrototype.getUTCMinutes); + var getUTCMonth = uncurryThis$5(DatePrototype.getUTCMonth); + var getUTCSeconds = uncurryThis$5(DatePrototype.getUTCSeconds); + + // `Date.prototype.toISOString` method implementation + // https://tc39.es/ecma262/#sec-date.prototype.toisostring + // PhantomJS / old WebKit fails here: + var dateToIsoString = (fails$4(function () { + return nativeDateToISOString.call(new Date(-5e13 - 1)) !== '0385-07-25T07:06:39.999Z'; + }) || !fails$4(function () { + nativeDateToISOString.call(new Date(NaN)); + })) ? function toISOString() { + if (!$isFinite(thisTimeValue(this))) throw new $RangeError('Invalid time value'); + var date = this; + var year = getUTCFullYear(date); + var milliseconds = getUTCMilliseconds(date); + var sign = year < 0 ? '-' : year > 9999 ? '+' : ''; + return sign + padStart(abs(year), sign ? 6 : 4, 0) + + '-' + padStart(getUTCMonth(date) + 1, 2, 0) + + '-' + padStart(getUTCDate(date), 2, 0) + + 'T' + padStart(getUTCHours(date), 2, 0) + + ':' + padStart(getUTCMinutes(date), 2, 0) + + ':' + padStart(getUTCSeconds(date), 2, 0) + + '.' + padStart(milliseconds, 3, 0) + + 'Z'; + } : nativeDateToISOString; + + var $$a = _export; + var call$1 = functionCall; + var toObject$2 = toObject$b; + var toPrimitive$6 = toPrimitive$8; + var toISOString = dateToIsoString; + var classof = classofRaw$2; + var fails$3 = fails$r; + + var FORCED$3 = fails$3(function () { + return new Date(NaN).toJSON() !== null + || call$1(Date.prototype.toJSON, { toISOString: function () { return 1; } }) !== 1; + }); - /** - * A specialized version of `baseProperty` which supports deep paths. - * - * @private - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new accessor function. - */ - function basePropertyDeep$1(path) { - return function(object) { - return baseGet(object, path); - }; - } + // `Date.prototype.toJSON` method + // https://tc39.es/ecma262/#sec-date.prototype.tojson + $$a({ target: 'Date', proto: true, forced: FORCED$3 }, { + // eslint-disable-next-line no-unused-vars -- required for `.length` + toJSON: function toJSON(key) { + var O = toObject$2(this); + var pv = toPrimitive$6(O, 'number'); + return typeof pv == 'number' && !isFinite(pv) ? null : + (!('toISOString' in O) && classof(O) === 'Date') ? call$1(toISOString, O) : O.toISOString(); + } + }); - var _basePropertyDeep = basePropertyDeep$1; + var path$4 = path$h; + var apply$3 = functionApply; - var baseProperty = _baseProperty, - basePropertyDeep = _basePropertyDeep, - isKey = _isKey, - toKey = _toKey; + // eslint-disable-next-line es/no-json -- safe + if (!path$4.JSON) path$4.JSON = { stringify: JSON.stringify }; - /** - * Creates a function that returns the value at `path` of a given object. - * - * @static - * @memberOf _ - * @since 2.4.0 - * @category Util - * @param {Array|string} path The path of the property to get. - * @returns {Function} Returns the new accessor function. - * @example - * - * var objects = [ - * { 'a': { 'b': 2 } }, - * { 'a': { 'b': 1 } } - * ]; - * - * _.map(objects, _.property('a.b')); - * // => [2, 1] - * - * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); - * // => [1, 2] - */ - function property$1(path) { - return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); - } + // eslint-disable-next-line no-unused-vars -- required for `.length` + var stringify$3 = function stringify(it, replacer, space) { + return apply$3(path$4.JSON.stringify, null, arguments); + }; + + var parent$f = stringify$3; - var property_1 = property$1; + var stringify$2 = parent$f; - var baseMatches = _baseMatches, - baseMatchesProperty = _baseMatchesProperty, - identity$2 = identity_1, - isArray$3 = isArray_1, - property = property_1; + var stringify$1 = stringify$2; - /** - * The base implementation of `_.iteratee`. - * - * @private - * @param {*} [value=_.identity] The value to convert to an iteratee. - * @returns {Function} Returns the iteratee. - */ - function baseIteratee$2(value) { - // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. - // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. - if (typeof value == 'function') { - return value; - } - if (value == null) { - return identity$2; - } - if (typeof value == 'object') { - return isArray$3(value) - ? baseMatchesProperty(value[0], value[1]) - : baseMatches(value); - } - return property(value); - } + var _JSON$stringify = /*@__PURE__*/getDefaultExportFromCjs(stringify$1); - var _baseIteratee = baseIteratee$2; + var getBuiltInPrototypeMethod$7 = getBuiltInPrototypeMethod$e; - var baseIteratee$1 = _baseIteratee, - isArrayLike$2 = isArrayLike_1, - keys = keys_1; + var concat$4 = getBuiltInPrototypeMethod$7('Array', 'concat'); - /** - * Creates a `_.find` or `_.findLast` function. - * - * @private - * @param {Function} findIndexFunc The function to find the collection index. - * @returns {Function} Returns the new find function. - */ - function createFind$1(findIndexFunc) { - return function(collection, predicate, fromIndex) { - var iterable = Object(collection); - if (!isArrayLike$2(collection)) { - var iteratee = baseIteratee$1(predicate); - collection = keys(collection); - predicate = function(key) { return iteratee(iterable[key], key, iterable); }; - } - var index = findIndexFunc(collection, predicate, fromIndex); - return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; - }; - } + var isPrototypeOf$7 = objectIsPrototypeOf; + var method$7 = concat$4; - var _createFind = createFind$1; + var ArrayPrototype$5 = Array.prototype; - /** - * The base implementation of `_.findIndex` and `_.findLastIndex` without - * support for iteratee shorthands. - * - * @private - * @param {Array} array The array to inspect. - * @param {Function} predicate The function invoked per iteration. - * @param {number} fromIndex The index to search from. - * @param {boolean} [fromRight] Specify iterating from right to left. - * @returns {number} Returns the index of the matched value, else `-1`. - */ + var concat$3 = function (it) { + var own = it.concat; + return it === ArrayPrototype$5 || (isPrototypeOf$7(ArrayPrototype$5, it) && own === ArrayPrototype$5.concat) ? method$7 : own; + }; - function baseFindIndex$2(array, predicate, fromIndex, fromRight) { - var length = array.length, - index = fromIndex + (fromRight ? 1 : -1); + var parent$e = concat$3; - while ((fromRight ? index-- : ++index < length)) { - if (predicate(array[index], index, array)) { - return index; - } + var concat$2 = parent$e; + + var concat$1 = concat$2; + + var _concatInstanceProperty = /*@__PURE__*/getDefaultExportFromCjs(concat$1); + + var $$9 = _export; + var $filter = arrayIteration.filter; + var arrayMethodHasSpeciesSupport$1 = arrayMethodHasSpeciesSupport$4; + + var HAS_SPECIES_SUPPORT$1 = arrayMethodHasSpeciesSupport$1('filter'); + + // `Array.prototype.filter` method + // https://tc39.es/ecma262/#sec-array.prototype.filter + // with adding support of @@species + $$9({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT$1 }, { + filter: function filter(callbackfn /* , thisArg */) { + return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } - return -1; - } + }); - var _baseFindIndex = baseFindIndex$2; + var getBuiltInPrototypeMethod$6 = getBuiltInPrototypeMethod$e; - /** Used to match a single whitespace character. */ + var filter$3 = getBuiltInPrototypeMethod$6('Array', 'filter'); - var reWhitespace = /\s/; + var isPrototypeOf$6 = objectIsPrototypeOf; + var method$6 = filter$3; - /** - * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace - * character of `string`. - * - * @private - * @param {string} string The string to inspect. - * @returns {number} Returns the index of the last non-whitespace character. - */ - function trimmedEndIndex$1(string) { - var index = string.length; + var ArrayPrototype$4 = Array.prototype; - while (index-- && reWhitespace.test(string.charAt(index))) {} - return index; - } + var filter$2 = function (it) { + var own = it.filter; + return it === ArrayPrototype$4 || (isPrototypeOf$6(ArrayPrototype$4, it) && own === ArrayPrototype$4.filter) ? method$6 : own; + }; - var _trimmedEndIndex = trimmedEndIndex$1; + var parent$d = filter$2; - var trimmedEndIndex = _trimmedEndIndex; + var filter$1 = parent$d; - /** Used to match leading whitespace. */ - var reTrimStart = /^\s+/; + var filter = filter$1; - /** - * The base implementation of `_.trim`. - * - * @private - * @param {string} string The string to trim. - * @returns {string} Returns the trimmed string. - */ - function baseTrim$1(string) { - return string - ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') - : string; - } + var _filterInstanceProperty = /*@__PURE__*/getDefaultExportFromCjs(filter); - var _baseTrim = baseTrim$1; + var slice$1 = slice$5; - var baseTrim = _baseTrim, - isObject = isObject_1, - isSymbol = isSymbol_1; + var _sliceInstanceProperty = /*@__PURE__*/getDefaultExportFromCjs(slice$1); - /** Used as references for various `Number` constants. */ - var NAN = 0 / 0; + var aCallable = aCallable$c; + var toObject$1 = toObject$b; + var IndexedObject$1 = indexedObject; + var lengthOfArrayLike$1 = lengthOfArrayLike$9; - /** Used to detect bad signed hexadecimal string values. */ - var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + var $TypeError = TypeError; - /** Used to detect binary string values. */ - var reIsBinary = /^0b[01]+$/i; + var REDUCE_EMPTY = 'Reduce of empty array with no initial value'; - /** Used to detect octal string values. */ - var reIsOctal = /^0o[0-7]+$/i; + // `Array.prototype.{ reduce, reduceRight }` methods implementation + var createMethod$2 = function (IS_RIGHT) { + return function (that, callbackfn, argumentsLength, memo) { + var O = toObject$1(that); + var self = IndexedObject$1(O); + var length = lengthOfArrayLike$1(O); + aCallable(callbackfn); + if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY); + var index = IS_RIGHT ? length - 1 : 0; + var i = IS_RIGHT ? -1 : 1; + if (argumentsLength < 2) while (true) { + if (index in self) { + memo = self[index]; + index += i; + break; + } + index += i; + if (IS_RIGHT ? index < 0 : length <= index) { + throw new $TypeError(REDUCE_EMPTY); + } + } + for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) { + memo = callbackfn(memo, self[index], index, O); + } + return memo; + }; + }; - /** Built-in method references without a dependency on `root`. */ - var freeParseInt = parseInt; + var arrayReduce = { + // `Array.prototype.reduce` method + // https://tc39.es/ecma262/#sec-array.prototype.reduce + left: createMethod$2(false), + // `Array.prototype.reduceRight` method + // https://tc39.es/ecma262/#sec-array.prototype.reduceright + right: createMethod$2(true) + }; - /** - * Converts `value` to a number. - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. - * @example - * - * _.toNumber(3.2); - * // => 3.2 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity - * - * _.toNumber('3.2'); - * // => 3.2 - */ - function toNumber$1(value) { - if (typeof value == 'number') { - return value; - } - if (isSymbol(value)) { - return NAN; - } - if (isObject(value)) { - var other = typeof value.valueOf == 'function' ? value.valueOf() : value; - value = isObject(other) ? (other + '') : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; + var $$8 = _export; + var $reduce = arrayReduce.left; + var arrayMethodIsStrict$2 = arrayMethodIsStrict$4; + var CHROME_VERSION = engineV8Version; + var IS_NODE = engineIsNode; + + // Chrome 80-82 has a critical bug + // https://bugs.chromium.org/p/chromium/issues/detail?id=1049982 + var CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83; + var FORCED$2 = CHROME_BUG || !arrayMethodIsStrict$2('reduce'); + + // `Array.prototype.reduce` method + // https://tc39.es/ecma262/#sec-array.prototype.reduce + $$8({ target: 'Array', proto: true, forced: FORCED$2 }, { + reduce: function reduce(callbackfn /* , initialValue */) { + var length = arguments.length; + return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined); } - value = baseTrim(value); - var isBinary = reIsBinary.test(value); - return (isBinary || reIsOctal.test(value)) - ? freeParseInt(value.slice(2), isBinary ? 2 : 8) - : (reIsBadHex.test(value) ? NAN : +value); - } + }); - var toNumber_1 = toNumber$1; + var getBuiltInPrototypeMethod$5 = getBuiltInPrototypeMethod$e; - var toNumber = toNumber_1; + var reduce$3 = getBuiltInPrototypeMethod$5('Array', 'reduce'); - /** Used as references for various `Number` constants. */ - var INFINITY = 1 / 0, - MAX_INTEGER = 1.7976931348623157e+308; + var isPrototypeOf$5 = objectIsPrototypeOf; + var method$5 = reduce$3; - /** - * Converts `value` to a finite number. - * - * @static - * @memberOf _ - * @since 4.12.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted number. - * @example - * - * _.toFinite(3.2); - * // => 3.2 - * - * _.toFinite(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toFinite(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toFinite('3.2'); - * // => 3.2 - */ - function toFinite$1(value) { - if (!value) { - return value === 0 ? value : 0; - } - value = toNumber(value); - if (value === INFINITY || value === -INFINITY) { - var sign = (value < 0 ? -1 : 1); - return sign * MAX_INTEGER; + var ArrayPrototype$3 = Array.prototype; + + var reduce$2 = function (it) { + var own = it.reduce; + return it === ArrayPrototype$3 || (isPrototypeOf$5(ArrayPrototype$3, it) && own === ArrayPrototype$3.reduce) ? method$5 : own; + }; + + var parent$c = reduce$2; + + var reduce$1 = parent$c; + + var reduce = reduce$1; + + var _reduceInstanceProperty = /*@__PURE__*/getDefaultExportFromCjs(reduce); + + var $$7 = _export; + var $map = arrayIteration.map; + var arrayMethodHasSpeciesSupport = arrayMethodHasSpeciesSupport$4; + + var HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map'); + + // `Array.prototype.map` method + // https://tc39.es/ecma262/#sec-array.prototype.map + // with adding support of @@species + $$7({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, { + map: function map(callbackfn /* , thisArg */) { + return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined); } - return value === value ? value : 0; - } + }); - var toFinite_1 = toFinite$1; + var getBuiltInPrototypeMethod$4 = getBuiltInPrototypeMethod$e; - var toFinite = toFinite_1; + var map$3 = getBuiltInPrototypeMethod$4('Array', 'map'); - /** - * Converts `value` to an integer. - * - * **Note:** This method is loosely based on - * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). - * - * @static - * @memberOf _ - * @since 4.0.0 - * @category Lang - * @param {*} value The value to convert. - * @returns {number} Returns the converted integer. - * @example - * - * _.toInteger(3.2); - * // => 3 - * - * _.toInteger(Number.MIN_VALUE); - * // => 0 - * - * _.toInteger(Infinity); - * // => 1.7976931348623157e+308 - * - * _.toInteger('3.2'); - * // => 3 - */ - function toInteger$1(value) { - var result = toFinite(value), - remainder = result % 1; + var isPrototypeOf$4 = objectIsPrototypeOf; + var method$4 = map$3; + + var ArrayPrototype$2 = Array.prototype; + + var map$2 = function (it) { + var own = it.map; + return it === ArrayPrototype$2 || (isPrototypeOf$4(ArrayPrototype$2, it) && own === ArrayPrototype$2.map) ? method$4 : own; + }; + + var parent$b = map$2; - return result === result ? (remainder ? result - remainder : result) : 0; - } + var map$1 = parent$b; - var toInteger_1 = toInteger$1; + var map = map$1; - var baseFindIndex$1 = _baseFindIndex, - baseIteratee = _baseIteratee, - toInteger = toInteger_1; + var _mapInstanceProperty = /*@__PURE__*/getDefaultExportFromCjs(map); - /* Built-in method references for those with the same name as other `lodash` methods. */ - var nativeMax$1 = Math.max; + /* eslint-disable es/no-array-prototype-indexof -- required for testing */ + var $$6 = _export; + var uncurryThis$4 = functionUncurryThisClause; + var $indexOf = arrayIncludes$2.indexOf; + var arrayMethodIsStrict$1 = arrayMethodIsStrict$4; - /** - * This method is like `_.find` except that it returns the index of the first - * element `predicate` returns truthy for instead of the element itself. - * - * @static - * @memberOf _ - * @since 1.1.0 - * @category Array - * @param {Array} array The array to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=0] The index to search from. - * @returns {number} Returns the index of the found element, else `-1`. - * @example - * - * var users = [ - * { 'user': 'barney', 'active': false }, - * { 'user': 'fred', 'active': false }, - * { 'user': 'pebbles', 'active': true } - * ]; - * - * _.findIndex(users, function(o) { return o.user == 'barney'; }); - * // => 0 - * - * // The `_.matches` iteratee shorthand. - * _.findIndex(users, { 'user': 'fred', 'active': false }); - * // => 1 - * - * // The `_.matchesProperty` iteratee shorthand. - * _.findIndex(users, ['active', false]); - * // => 0 - * - * // The `_.property` iteratee shorthand. - * _.findIndex(users, 'active'); - * // => 2 - */ - function findIndex$1(array, predicate, fromIndex) { - var length = array == null ? 0 : array.length; - if (!length) { - return -1; + var nativeIndexOf = uncurryThis$4([].indexOf); + + var NEGATIVE_ZERO$1 = !!nativeIndexOf && 1 / nativeIndexOf([1], 1, -0) < 0; + var FORCED$1 = NEGATIVE_ZERO$1 || !arrayMethodIsStrict$1('indexOf'); + + // `Array.prototype.indexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.indexof + $$6({ target: 'Array', proto: true, forced: FORCED$1 }, { + indexOf: function indexOf(searchElement /* , fromIndex = 0 */) { + var fromIndex = arguments.length > 1 ? arguments[1] : undefined; + return NEGATIVE_ZERO$1 + // convert -0 to +0 + ? nativeIndexOf(this, searchElement, fromIndex) || 0 + : $indexOf(this, searchElement, fromIndex); } - var index = fromIndex == null ? 0 : toInteger(fromIndex); - if (index < 0) { - index = nativeMax$1(length + index, 0); + }); + + var getBuiltInPrototypeMethod$3 = getBuiltInPrototypeMethod$e; + + var indexOf$3 = getBuiltInPrototypeMethod$3('Array', 'indexOf'); + + var isPrototypeOf$3 = objectIsPrototypeOf; + var method$3 = indexOf$3; + + var ArrayPrototype$1 = Array.prototype; + + var indexOf$2 = function (it) { + var own = it.indexOf; + return it === ArrayPrototype$1 || (isPrototypeOf$3(ArrayPrototype$1, it) && own === ArrayPrototype$1.indexOf) ? method$3 : own; + }; + + var parent$a = indexOf$2; + + var indexOf$1 = parent$a; + + var indexOf = indexOf$1; + + var _indexOfInstanceProperty = /*@__PURE__*/getDefaultExportFromCjs(indexOf); + + // a string of all valid unicode whitespaces + var whitespaces$2 = '\u0009\u000A\u000B\u000C\u000D\u0020\u00A0\u1680\u2000\u2001\u2002' + + '\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; + + var uncurryThis$3 = functionUncurryThis; + var requireObjectCoercible$1 = requireObjectCoercible$9; + var toString$1 = toString$d; + var whitespaces$1 = whitespaces$2; + + var replace = uncurryThis$3(''.replace); + var ltrim = RegExp('^[' + whitespaces$1 + ']+'); + var rtrim = RegExp('(^|[^' + whitespaces$1 + '])[' + whitespaces$1 + ']+$'); + + // `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation + var createMethod$1 = function (TYPE) { + return function ($this) { + var string = toString$1(requireObjectCoercible$1($this)); + if (TYPE & 1) string = replace(string, ltrim, ''); + if (TYPE & 2) string = replace(string, rtrim, '$1'); + return string; + }; + }; + + var stringTrim = { + // `String.prototype.{ trimLeft, trimStart }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimstart + start: createMethod$1(1), + // `String.prototype.{ trimRight, trimEnd }` methods + // https://tc39.es/ecma262/#sec-string.prototype.trimend + end: createMethod$1(2), + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + trim: createMethod$1(3) + }; + + var PROPER_FUNCTION_NAME = functionName.PROPER; + var fails$2 = fails$r; + var whitespaces = whitespaces$2; + + var non = '\u200B\u0085\u180E'; + + // check that a method works with the correct list + // of whitespaces and has a correct name + var stringTrimForced = function (METHOD_NAME) { + return fails$2(function () { + return !!whitespaces[METHOD_NAME]() + || non[METHOD_NAME]() !== non + || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME); + }); + }; + + var $$5 = _export; + var $trim = stringTrim.trim; + var forcedStringTrimMethod = stringTrimForced; + + // `String.prototype.trim` method + // https://tc39.es/ecma262/#sec-string.prototype.trim + $$5({ target: 'String', proto: true, forced: forcedStringTrimMethod('trim') }, { + trim: function trim() { + return $trim(this); } - return baseFindIndex$1(array, baseIteratee(predicate), index); - } + }); - var findIndex_1 = findIndex$1; + var getBuiltInPrototypeMethod$2 = getBuiltInPrototypeMethod$e; - var createFind = _createFind, - findIndex = findIndex_1; + var trim$3 = getBuiltInPrototypeMethod$2('String', 'trim'); - /** - * Iterates over elements of `collection`, returning the first element - * `predicate` returns truthy for. The predicate is invoked with three - * arguments: (value, index|key, collection). - * - * @static - * @memberOf _ - * @since 0.1.0 - * @category Collection - * @param {Array|Object} collection The collection to inspect. - * @param {Function} [predicate=_.identity] The function invoked per iteration. - * @param {number} [fromIndex=0] The index to search from. - * @returns {*} Returns the matched element, else `undefined`. - * @example - * - * var users = [ - * { 'user': 'barney', 'age': 36, 'active': true }, - * { 'user': 'fred', 'age': 40, 'active': false }, - * { 'user': 'pebbles', 'age': 1, 'active': true } - * ]; - * - * _.find(users, function(o) { return o.age < 40; }); - * // => object for 'barney' - * - * // The `_.matches` iteratee shorthand. - * _.find(users, { 'age': 1, 'active': true }); - * // => object for 'pebbles' - * - * // The `_.matchesProperty` iteratee shorthand. - * _.find(users, ['active', false]); - * // => object for 'fred' - * - * // The `_.property` iteratee shorthand. - * _.find(users, 'active'); - * // => object for 'barney' - */ - var find = createFind(findIndex); + var isPrototypeOf$2 = objectIsPrototypeOf; + var method$2 = trim$3; - var find_1 = find; + var StringPrototype$1 = String.prototype; - var _find = /*@__PURE__*/getDefaultExportFromCjs(find_1); + var trim$2 = function (it) { + var own = it.trim; + return typeof it == 'string' || it === StringPrototype$1 + || (isPrototypeOf$2(StringPrototype$1, it) && own === StringPrototype$1.trim) ? method$2 : own; + }; + + var parent$9 = trim$2; + + var trim$1 = parent$9; + + var trim = trim$1; + + var _trimInstanceProperty = /*@__PURE__*/getDefaultExportFromCjs(trim); var _wcImport4 = ".sp-separator {\n line-height: 1.8 !important;\n opacity: 1 !important;\n position: relative !important;\n float: none !important;\n top: 0 !important;\n left: 0 !important;\n min-width: 366px;\n width: auto;\n text-align: center !important;\n font-size: 14px !important;\n display: block !important;\n padding: 3px 0 !important;\n margin: 5px 10px 8px;\n clear: both !important;\n border-style: solid !important;\n border-color: #cccccc !important;\n border-width: 1px !important;\n -moz-border-radius: 30px !important;\n border-radius: 30px !important;\n background-color: #ffffff !important;\n}\n\n.sp-separator:hover {\n box-shadow: 0 0 11px rgba(33, 33, 33, 0.2);\n}\n\n#sp-separator-hover {\n display: none;\n}\n\n.sp-separator:hover #sp-separator-hover {\n display: block;\n}\n\n.sp-separator .sp-someinfo {\n position: absolute !important;\n right: 10px !important;\n font-size: 12px !important;\n font-style: italic !important;\n background: none !important;\n}\n\n.sp-separator img {\n vertical-align: middle !important;\n cursor: pointer !important;\n padding: 0 !important;\n margin: 0 5px !important;\n border: none !important;\n display: inline-block !important;\n float: none !important;\n width: auto;\n height: auto;\n}\n\n.sp-separator a {\n margin: 0 20px 0 -6px !important;\n display: inline !important;\n text-shadow: #fff 0 1px 0 !important;\n background: none !important;\n color: #595959 !important;\n}\n\n.sp-separator input {\n padding: 0 !important;\n line-height: 23px !important;\n}\n\n.sp-separator .sp-md-span {\n font-weight: bold !important;\n margin: 0 20px !important;\n}\n\n#sp-sp-md-number {\n width: 6ch !important;\n vertical-align: middle !important;\n display: inline-block !important;\n text-align: left !important;\n}"; @@ -3613,7 +9182,7 @@ // this is primarily because using the reduce we only perform the regex // execution once rather than once for the test and for the exec again below // probably something that needs to be benchmarked though - return ua !== '' && userAgentRules.reduce(function (matched, _a) { + return ua !== '' && _reduceInstanceProperty(userAgentRules).call(userAgentRules, function (matched, _a) { var browser = _a[0], regex = _a[1]; if (matched) { @@ -3624,6 +9193,7 @@ }, false); } function parseUserAgent(ua) { + var _context; var matchedRule = matchUserAgent(ua); if (!matchedRule) { return { @@ -3634,7 +9204,7 @@ var _matchedRule = _slicedToArray(matchedRule, 2), name = _matchedRule[0], match = _matchedRule[1]; - var versionParts = match[1] && match[1].split(/[._]/).slice(0, 3); + var versionParts = match[1] && _sliceInstanceProperty(_context = match[1].split(/[._]/)).call(_context, 0, 3); if (!versionParts) { versionParts = ['1']; } @@ -4103,7 +9673,7 @@ } } - var name="super-preloader";var version="7.0.13";var description="Super-preloader";var main="dist/Super_preloaderPlus_one_New.user.js";var author="Mach6";var license="GPL-3.0";var type="module";var bugs={url:"https://github.com/machsix/Super-preloader/issues"};var homepage="https://github.com/machsix/Super-preloader";var directories={doc:"docs"};var repository={type:"git",url:"git+https://github.com/machsix/Super-preloader.git"};var scripts={preinstall:"npx only-allow pnpm",lint:"eslint \"dist/*.json\" \"src/**/*.js\" \"ci/*.js\" \"rollup.config.mjs\"",fix:"eslint \"dist/*.json\" \"src/**/*.js\" \"ci/*.js\" \"rollup.config.mjs\" --fix",format:"prettier --write \"dist/*.json\" \"src/**/*.{js,css}\" \"ci/*.js\" \"rollup.config.mjs\" \"docs/**/*.{ts,js,md}\"","format:check":"prettier --check \"dist/*.json\" \"src/**/*.{js,css}\" \"ci/*.js\" \"rollup.config.mjs\" \"docs/**/*.{ts,js,md}\"","format:staged":"lint-staged -v",check:"pnpm run lint && pnpm run typecheck",test:"cd test && node test.js",dev:"rollup -c --dev -w",build:"rollup -c","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:publish":"pnpm run docs:build && bash ./ci/gen_ghpage.sh",preversion:"pnpm run check",version:"pnpm run build && git add dist/*.js && git add dist/*.json",postversion:"git add package.json package-lock.json && npm run test","publish:patch":"pnpm --no-git-tag-version version patch",publish:"pnpm --no-git-tag-version version minor",typecheck:"tsc -p jsconfig.json --noEmit","docs:preview":"vitepress preview docs"};var husky={hooks:{"pre-commit":"pnpm run check"}};var keywords=["userscript"];var devDependencies={typescript:"5.4.5",vitepress:"^1.1.4",vue:"^3.4.26"};var dependencies={"@babel/core":"7.24.4","@babel/plugin-syntax-import-attributes":"7.24.1","@babel/plugin-transform-runtime":"7.24.3","@babel/preset-env":"7.24.4","@rollup/plugin-babel":"6.0.4","@rollup/plugin-commonjs":"25.0.7","@rollup/plugin-json":"6.1.0","@rollup/plugin-node-resolve":"15.2.3","@types/greasemonkey":"4.0.7","@types/lodash":"4.17.0","babel-plugin-lodash":"3.3.4","babel-plugin-wildcard":"7.0.0","compare-versions":"6.1.0","cross-env":"7.0.3",displacejs:"https://github.com/machsix/displace.git#v1.4.0",eslint:"^8.0.0","eslint-config-prettier":"9.1.0","eslint-plugin-import":"2.29.1","eslint-plugin-json":"3.1.0","eslint-plugin-prettier":"5.1.3","extract-zip":"2.0.1",got:"14.2.1",husky:"9.0.11","lint-staged":"15.2.2",lodash:"4.17.21",loglevel:"1.9.1",prettier:"3.2.5",puppeteer:"2.1.0",rollup:"4.14.3","rollup-plugin-banner2":"1.2.3","rollup-plugin-dev":"2.0.4","rollup-plugin-ejs":"4.0.0","rollup-plugin-re":"1.0.7","rollup-plugin-scss-string":"github:machsix/rollup-plugin-scss-string",yargs:"17.7.2"};var pkg = {name:name,version:version,description:description,main:main,author:author,license:license,type:type,bugs:bugs,homepage:homepage,directories:directories,repository:repository,scripts:scripts,husky:husky,keywords:keywords,devDependencies:devDependencies,dependencies:dependencies}; + var name="super-preloader";var version="7.0.15";var description="Super-preloader";var main="dist/Super_preloaderPlus_one_New.user.js";var author="Mach6";var license="GPL-3.0";var type="module";var bugs={url:"https://github.com/machsix/Super-preloader/issues"};var homepage="https://github.com/machsix/Super-preloader";var directories={doc:"docs"};var repository={type:"git",url:"git+https://github.com/machsix/Super-preloader.git"};var scripts={preinstall:"npx only-allow pnpm",lint:"eslint \"dist/*.json\" \"src/**/*.js\" \"ci/*.js\" \"rollup.config.mjs\"",fix:"eslint \"dist/*.json\" \"src/**/*.js\" \"ci/*.js\" \"rollup.config.mjs\" --fix",format:"prettier --write \"dist/*.json\" \"src/**/*.{js,css}\" \"ci/*.js\" \"rollup.config.mjs\" \"docs/**/*.{ts,js,md}\"","format:check":"prettier --check \"dist/*.json\" \"src/**/*.{js,css}\" \"ci/*.js\" \"rollup.config.mjs\" \"docs/**/*.{ts,js,md}\"","format:staged":"lint-staged -v",check:"pnpm run lint && pnpm run typecheck",test:"cd test && node test.js",dev:"rollup -c --dev -w",build:"rollup -c","docs:dev":"vitepress dev docs","docs:build":"vitepress build docs","docs:publish":"pnpm run docs:build && bash ./ci/gen_ghpage.sh","docs:preview":"vitepress preview docs",preversion:"pnpm run check",version:"pnpm run build && git add dist/*.js && git add dist/*.json",postversion:"git add package.json package-lock.json && pnpm run test","publish:patch":"npm --no-git-tag-version version patch",publish:"npm --no-git-tag-version version minor",typecheck:"tsc -p jsconfig.json --noEmit"};var husky={hooks:{"pre-commit":"pnpm run check"}};var keywords=["userscript"];var devDependencies={typescript:"5.4.5",vitepress:"^1.1.4",vue:"^3.4.26"};var dependencies={"@babel/core":"7.24.4","@babel/plugin-syntax-import-attributes":"7.24.1","@babel/plugin-transform-runtime":"7.24.3","@babel/preset-env":"7.24.4","@babel/runtime-corejs3":"^7.24.5","@rollup/plugin-babel":"6.0.4","@rollup/plugin-commonjs":"25.0.7","@rollup/plugin-json":"6.1.0","@rollup/plugin-node-resolve":"15.2.3","@types/greasemonkey":"4.0.7","@types/lodash":"4.17.0","babel-plugin-lodash":"3.3.4","babel-plugin-wildcard":"7.0.0","compare-versions":"6.1.0","cross-env":"7.0.3",displacejs:"https://github.com/machsix/displace.git#v1.4.0",eslint:"^8.0.0","eslint-config-prettier":"9.1.0","eslint-plugin-import":"2.29.1","eslint-plugin-json":"3.1.0","eslint-plugin-prettier":"5.1.3","extract-zip":"2.0.1",got:"14.2.1",husky:"9.0.11","lint-staged":"15.2.2",lodash:"4.17.21",loglevel:"1.9.1",prettier:"3.2.5",puppeteer:"2.1.0",rollup:"4.14.3","rollup-plugin-banner2":"1.2.3","rollup-plugin-dev":"2.0.4","rollup-plugin-ejs":"4.0.0","rollup-plugin-re":"1.0.7","rollup-plugin-scss-string":"github:machsix/rollup-plugin-scss-string",yargs:"17.7.2"};var pnpm={overrides:{"babel-plugin-lodash>@babel/types":"~7.20.0"}};var pkg = {name:name,version:version,description:description,main:main,author:author,license:license,type:type,bugs:bugs,homepage:homepage,directories:directories,repository:repository,scripts:scripts,husky:husky,keywords:keywords,devDependencies:devDependencies,dependencies:dependencies,pnpm:pnpm}; // Information of script var now = new Date(); @@ -4393,6 +9963,78 @@ var TweenM = ['Linear', 'Quad', 'Cubic', 'Quart', 'Quint', 'Sine', 'Expo', 'Circ', 'Elastic', 'Back', 'Bounce']; var TweenEase = ['easeIn', 'easeOut', 'easeInOut']; + var DESCRIPTORS$2 = descriptors; + var fails$1 = fails$r; + var uncurryThis$2 = functionUncurryThis; + var objectGetPrototypeOf = objectGetPrototypeOf$1; + var objectKeys$1 = objectKeys$4; + var toIndexedObject$2 = toIndexedObject$b; + var $propertyIsEnumerable = objectPropertyIsEnumerable.f; + + var propertyIsEnumerable = uncurryThis$2($propertyIsEnumerable); + var push = uncurryThis$2([].push); + + // in some IE versions, `propertyIsEnumerable` returns incorrect result on integer keys + // of `null` prototype objects + var IE_BUG = DESCRIPTORS$2 && fails$1(function () { + // eslint-disable-next-line es/no-object-create -- safe + var O = Object.create(null); + O[2] = 2; + return !propertyIsEnumerable(O, 2); + }); + + // `Object.{ entries, values }` methods implementation + var createMethod = function (TO_ENTRIES) { + return function (it) { + var O = toIndexedObject$2(it); + var keys = objectKeys$1(O); + var IE_WORKAROUND = IE_BUG && objectGetPrototypeOf(O) === null; + var length = keys.length; + var i = 0; + var result = []; + var key; + while (length > i) { + key = keys[i++]; + if (!DESCRIPTORS$2 || (IE_WORKAROUND ? key in O : propertyIsEnumerable(O, key))) { + push(result, TO_ENTRIES ? [key, O[key]] : O[key]); + } + } + return result; + }; + }; + + var objectToArray = { + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + entries: createMethod(true), + // `Object.values` method + // https://tc39.es/ecma262/#sec-object.values + values: createMethod(false) + }; + + var $$4 = _export; + var $entries = objectToArray.entries; + + // `Object.entries` method + // https://tc39.es/ecma262/#sec-object.entries + $$4({ target: 'Object', stat: true }, { + entries: function entries(O) { + return $entries(O); + } + }); + + var path$3 = path$h; + + var entries$2 = path$3.Object.entries; + + var parent$8 = entries$2; + + var entries$1 = parent$8; + + var entries = entries$1; + + var _Object$entries2 = /*@__PURE__*/getDefaultExportFromCjs(entries); + /** * Set multiple attributes of a dom element * @param {object} el dom element @@ -4400,7 +10042,7 @@ * @returns {null} null */ function setMultipleAttributes(el, attr) { - for (var _i = 0, _Object$entries = Object.entries(attr); _i < _Object$entries.length; _i++) { + for (var _i = 0, _Object$entries = _Object$entries2(attr); _i < _Object$entries.length; _i++) { var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), key = _Object$entries$_i[0], val = _Object$entries$_i[1]; @@ -4519,6 +10161,124 @@ } } + var from = from$4; + + var _Array$from = /*@__PURE__*/getDefaultExportFromCjs(from); + + var symbol = symbol$4; + + var _Symbol = /*@__PURE__*/getDefaultExportFromCjs(symbol); + + var path$2 = path$h; + + var getOwnPropertySymbols$2 = path$2.Object.getOwnPropertySymbols; + + var parent$7 = getOwnPropertySymbols$2; + + var getOwnPropertySymbols$1 = parent$7; + + var getOwnPropertySymbols = getOwnPropertySymbols$1; + + var _Object$getOwnPropertySymbols = /*@__PURE__*/getDefaultExportFromCjs(getOwnPropertySymbols); + + var $$3 = _export; + var DESCRIPTORS$1 = descriptors; + var ownKeys$3 = ownKeys$5; + var toIndexedObject$1 = toIndexedObject$b; + var getOwnPropertyDescriptorModule = objectGetOwnPropertyDescriptor; + var createProperty = createProperty$4; + + // `Object.getOwnPropertyDescriptors` method + // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors + $$3({ target: 'Object', stat: true, sham: !DESCRIPTORS$1 }, { + getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) { + var O = toIndexedObject$1(object); + var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; + var keys = ownKeys$3(O); + var result = {}; + var index = 0; + var key, descriptor; + while (keys.length > index) { + descriptor = getOwnPropertyDescriptor(O, key = keys[index++]); + if (descriptor !== undefined) createProperty(result, key, descriptor); + } + return result; + } + }); + + var path$1 = path$h; + + var getOwnPropertyDescriptors$2 = path$1.Object.getOwnPropertyDescriptors; + + var parent$6 = getOwnPropertyDescriptors$2; + + var getOwnPropertyDescriptors$1 = parent$6; + + var getOwnPropertyDescriptors = getOwnPropertyDescriptors$1; + + var _Object$getOwnPropertyDescriptors = /*@__PURE__*/getDefaultExportFromCjs(getOwnPropertyDescriptors); + + function _typeof(o) { + "@babel/helpers - typeof"; + + return _typeof = "function" == typeof _Symbol$2 && "symbol" == typeof _Symbol$iterator ? function (o) { + return typeof o; + } : function (o) { + return o && "function" == typeof _Symbol$2 && o.constructor === _Symbol$2 && o !== _Symbol$2.prototype ? "symbol" : typeof o; + }, _typeof(o); + } + + var WrappedWellKnownSymbolModule = wellKnownSymbolWrapped; + + var toPrimitive$5 = WrappedWellKnownSymbolModule.f('toPrimitive'); + + var parent$5 = toPrimitive$5; + + var toPrimitive$4 = parent$5; + + var parent$4 = toPrimitive$4; + + var toPrimitive$3 = parent$4; + + var parent$3 = toPrimitive$3; + + var toPrimitive$2 = parent$3; + + var toPrimitive$1 = toPrimitive$2; + + var _Symbol$toPrimitive = /*@__PURE__*/getDefaultExportFromCjs(toPrimitive$1); + + 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 toPropertyKey(t) { + var i = toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : i + ""; + } + + function _defineProperty$1(obj, key, value) { + key = toPropertyKey(key); + if (key in obj) { + _Object$defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + return obj; + } + var baseGetTag$1 = _baseGetTag, isArray$2 = isArray_1, isObjectLike$2 = isObjectLike_1; @@ -4722,7 +10482,7 @@ var _baseDifference = baseDifference$1; - var Symbol$1 = _Symbol, + var Symbol$1 = _Symbol$1, isArguments$1 = isArguments_1, isArray$1 = isArray_1; @@ -4793,7 +10553,7 @@ * @returns {*} Returns the result of `func`. */ - function apply$1(func, thisArg, args) { + function apply$2(func, thisArg, args) { switch (args.length) { case 0: return func.call(thisArg); case 1: return func.call(thisArg, args[0]); @@ -4803,9 +10563,9 @@ return func.apply(thisArg, args); } - var _apply = apply$1; + var _apply = apply$2; - var apply = _apply; + var apply$1 = _apply; /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max; @@ -4836,7 +10596,7 @@ otherArgs[index] = args[index]; } otherArgs[start] = transform(array); - return apply(func, this, otherArgs); + return apply$1(func, this, otherArgs); }; } @@ -4872,7 +10632,7 @@ var getNative = _getNative; - var defineProperty$1 = (function() { + var defineProperty$2 = (function() { try { var func = getNative(Object, 'defineProperty'); func({}, '', {}); @@ -4880,10 +10640,10 @@ } catch (e) {} }()); - var _defineProperty = defineProperty$1; + var _defineProperty = defineProperty$2; var constant = constant_1, - defineProperty = _defineProperty, + defineProperty$1 = _defineProperty, identity$1 = identity_1; /** @@ -4894,8 +10654,8 @@ * @param {Function} string The `toString` result. * @returns {Function} Returns `func`. */ - var baseSetToString$1 = !defineProperty ? identity$1 : function(func, string) { - return defineProperty(func, 'toString', { + var baseSetToString$1 = !defineProperty$1 ? identity$1 : function(func, string) { + return defineProperty$1(func, 'toString', { 'configurable': true, 'enumerable': false, 'value': constant(string), @@ -5507,11 +11267,11 @@ var availableEjsLangs = Object.keys(ejs); for (var _i = 0, _availableEjsLangs = availableEjsLangs; _i < _availableEjsLangs.length; _i++) { var lang = _availableEjsLangs[_i]; - if (availableJsonLangs.includes(lang)) { + if (_includesInstanceProperty(availableJsonLangs).call(availableJsonLangs, lang)) { var li8n = i8n[lang]; // spinner var spinner = {}; - for (var _i2 = 0, _Object$entries = Object.entries(li8n.spinner); _i2 < _Object$entries.length; _i2++) { + for (var _i2 = 0, _Object$entries = _Object$entries2(li8n.spinner); _i2 < _Object$entries.length; _i2++) { var _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2), k = _Object$entries$_i[0], v = _Object$entries$_i[1]; @@ -5529,7 +11289,7 @@ var template = ejs.en_US; function langDetect() { var userLang = navigator.language || navigator.userLanguage; - if (userLang.indexOf('zh') !== -1) { + if (_indexOfInstanceProperty(userLang).call(userLang, 'zh') !== -1) { return 'zh_CN'; } else { return 'en_US'; @@ -5537,7 +11297,7 @@ } var userLang = langDetect(); function setLang(x) { - if (availableLangs.includes(x)) { + if (_includesInstanceProperty(availableLangs).call(availableLangs, x)) { userLang = x; template = ejs[userLang]; } else { @@ -5571,7 +11331,7 @@ return val; } if (val.length === 0) return val; - var mk = val.slice(0, 1); + var mk = _sliceInstanceProperty(val).call(val, 0, 1); try { switch (mk) { case magicKey.undefined: @@ -5579,7 +11339,7 @@ case magicKey.null: return null; case magicKey.function: - return new Function(`return ${val.slice(1)}`)(); + return new Function(`return ${_sliceInstanceProperty(val).call(val, 1)}`)(); default: return val; } @@ -5589,7 +11349,7 @@ } } function stringify(obj) { - return JSON.stringify(obj, replacer); + return _JSON$stringify(obj, replacer); } function parse(obj) { return JSON.parse(obj, reviver); @@ -5763,6 +11523,135 @@ var _isUndefined = /*@__PURE__*/getDefaultExportFromCjs(isUndefined_1); + var $$2 = _export; + var uncurryThis$1 = functionUncurryThisClause; + var toLength = toLength$3; + var toString = toString$d; + var notARegExp = notARegexp; + var requireObjectCoercible = requireObjectCoercible$9; + var correctIsRegExpLogic = correctIsRegexpLogic; + + var slice = uncurryThis$1(''.slice); + var min$1 = Math.min; + + var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith'); + + // `String.prototype.endsWith` method + // https://tc39.es/ecma262/#sec-string.prototype.endswith + $$2({ target: 'String', proto: true, forced: !CORRECT_IS_REGEXP_LOGIC }, { + endsWith: function endsWith(searchString /* , endPosition = @length */) { + var that = toString(requireObjectCoercible(this)); + notARegExp(searchString); + var endPosition = arguments.length > 1 ? arguments[1] : undefined; + var len = that.length; + var end = endPosition === undefined ? len : min$1(toLength(endPosition), len); + var search = toString(searchString); + return slice(that, end - search.length, end) === search; + } + }); + + var getBuiltInPrototypeMethod$1 = getBuiltInPrototypeMethod$e; + + var endsWith$3 = getBuiltInPrototypeMethod$1('String', 'endsWith'); + + var isPrototypeOf$1 = objectIsPrototypeOf; + var method$1 = endsWith$3; + + var StringPrototype = String.prototype; + + var endsWith$2 = function (it) { + var own = it.endsWith; + return typeof it == 'string' || it === StringPrototype + || (isPrototypeOf$1(StringPrototype, it) && own === StringPrototype.endsWith) ? method$1 : own; + }; + + var parent$2 = endsWith$2; + + var endsWith$1 = parent$2; + + var endsWith = endsWith$1; + + var _endsWithInstanceProperty = /*@__PURE__*/getDefaultExportFromCjs(endsWith); + + var DESCRIPTORS = descriptors; + var uncurryThis = functionUncurryThis; + var call = functionCall; + var fails = fails$r; + var objectKeys = objectKeys$4; + var getOwnPropertySymbolsModule = objectGetOwnPropertySymbols; + var propertyIsEnumerableModule = objectPropertyIsEnumerable; + var toObject = toObject$b; + var IndexedObject = indexedObject; + + // eslint-disable-next-line es/no-object-assign -- safe + var $assign = Object.assign; + // eslint-disable-next-line es/no-object-defineproperty -- required for testing + var defineProperty = Object.defineProperty; + var concat = uncurryThis([].concat); + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + var objectAssign = !$assign || fails(function () { + // should have correct order of operations (Edge bug) + if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', { + enumerable: true, + get: function () { + defineProperty(this, 'b', { + value: 3, + enumerable: false + }); + } + }), { b: 2 })).b !== 1) return true; + // should work with symbols and should have deterministic property order (V8 bug) + var A = {}; + var B = {}; + // eslint-disable-next-line es/no-symbol -- safe + var symbol = Symbol('assign detection'); + var alphabet = 'abcdefghijklmnopqrst'; + A[symbol] = 7; + alphabet.split('').forEach(function (chr) { B[chr] = chr; }); + return $assign({}, A)[symbol] !== 7 || objectKeys($assign({}, B)).join('') !== alphabet; + }) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length` + var T = toObject(target); + var argumentsLength = arguments.length; + var index = 1; + var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; + var propertyIsEnumerable = propertyIsEnumerableModule.f; + while (argumentsLength > index) { + var S = IndexedObject(arguments[index++]); + var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S); + var length = keys.length; + var j = 0; + var key; + while (length > j) { + key = keys[j++]; + if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key]; + } + } return T; + } : $assign; + + var $$1 = _export; + var assign$3 = objectAssign; + + // `Object.assign` method + // https://tc39.es/ecma262/#sec-object.assign + // eslint-disable-next-line es/no-object-assign -- required for testing + $$1({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign$3 }, { + assign: assign$3 + }); + + var path = path$h; + + var assign$2 = path.Object.assign; + + var parent$1 = assign$2; + + var assign$1 = parent$1; + + var assign = assign$1; + + var _Object$assign = /*@__PURE__*/getDefaultExportFromCjs(assign); + // #if IS_REMOVE // lite verions of https://github.com/machsix/iconv-browser // @@ -5779,8 +11668,9 @@ */ function buf2hex(buffer) { // buffer is an ArrayBuffer - return Array.prototype.map.call(new Uint8Array(buffer), function (x) { - return ('00' + x.toString(16)).slice(-2); + return _mapInstanceProperty(Array.prototype).call(new Uint8Array(buffer), function (x) { + var _context; + return _sliceInstanceProperty(_context = '00' + x.toString(16)).call(_context, -2); }); } @@ -5805,11 +11695,12 @@ function isURIcomponent(str) { return /^[A-Za-z0-9;,/?:@&=+$-_.!~*'()#]*$/.test(str); } - return [].map.call(text, function (x) { + return _mapInstanceProperty([]).call(text, function (x) { if (isURIcomponent(x)) { return x; } else { - return `%${encodeHex(x).map(function (x) { + var _context2; + return `%${_mapInstanceProperty(_context2 = encodeHex(x)).call(_context2, function (x) { return x.toUpperCase(); }).join('%')}`; } @@ -5818,7 +11709,7 @@ var lowercaseKeys = (function (object) { var result = {}; - for (var _i = 0, _Object$entries = Object.entries(object); _i < _Object$entries.length; _i++) { + for (var _i = 0, _Object$entries = _Object$entries2(object); _i < _Object$entries.length; _i++) { var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), key = _Object$entries$_i[0], value = _Object$entries$_i[1]; @@ -5827,8 +11718,8 @@ return result; }); - function ownKeys$2(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$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } + function ownKeys$2(e, r) { var t = Object.keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } + function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? Object.defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var isNullOrUndefined = function isNullOrUndefined(x) { return _isUndefined(x) || _isNull(x); }; @@ -5847,7 +11738,8 @@ return searchParams; }, stringify(params) { - return Object.keys(params).map(function (key) { + var _context; + return _mapInstanceProperty(_context = Object.keys(params)).call(_context, function (key) { return key + '=' + params[key]; }).join('&'); } @@ -5906,7 +11798,7 @@ options.headers = lowercaseKeys(options.headers); var headers = options.headers; if (headers) { - for (var _i = 0, _Object$entries = Object.entries(headers); _i < _Object$entries.length; _i++) { + for (var _i = 0, _Object$entries = _Object$entries2(headers); _i < _Object$entries.length; _i++) { var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), key = _Object$entries$_i[0], value = _Object$entries$_i[1]; @@ -5925,8 +11817,9 @@ // `options.prefixUrl` if (!isNullOrUndefined(options.prefixUrl)) { try { + var _context2; options.prefixUrl = options.prefixUrl.toString(); - if (!options.prefixUrl.endsWith('/')) { + if (!_endsWithInstanceProperty(_context2 = options.prefixUrl).call(_context2, '/')) { options.prefixUrl += '/'; } } catch (error) { @@ -6095,7 +11988,7 @@ retryCount: retryCount, executorName: name // use to track back which callback function is called }; - Object.assign(nodeResponse, xmlResponse); + _Object$assign(nodeResponse, xmlResponse); return executor(nodeResponse); }; }; @@ -6107,7 +12000,7 @@ */ var genPromise = function genPromise() { var retryCount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; - return new Promise(function (resolve, reject) { + return new _Promise(function (resolve, reject) { gmOptions.onload = genCallback(resolve, 'onload', retryCount); ['onabort', 'onerror', 'ontimeout'].forEach(function (method) { gmOptions[method] = genCallback(reject, method, retryCount); @@ -6115,7 +12008,7 @@ GM.xmlHttpRequest(gmOptions); }); }; - return new Promise(function (resolve, reject) { + return new _Promise(function (resolve, reject) { var retryPromise = function retryPromise(retryCount) { genPromise(retryCount).then(function (nodeResponse) { return resolve(nodeResponse); @@ -6182,10 +12075,10 @@ var _flatten = /*@__PURE__*/getDefaultExportFromCjs(flatten_1); - function ownKeys$1(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$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } - function _createForOfIteratorHelper$2(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$2(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } - function _unsupportedIterableToArray$2(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$2(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen); } + function ownKeys$1(e, r) { var t = Object.keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } + function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty$1(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? Object.defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } + function _createForOfIteratorHelper$2(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$2(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } + function _unsupportedIterableToArray$2(o, minLen) { var _context10; if (!o) return; if (typeof o === "string") return _arrayLikeToArray$2(o, minLen); var n = _sliceInstanceProperty(_context10 = Object.prototype.toString.call(o)).call(_context10, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$2(o, minLen); } function _arrayLikeToArray$2(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } var got = got$1.create({ cache: false @@ -6360,15 +12253,17 @@ // Providers var MyData = new RuleProvider('machsix.github.io', ['https://machsix.github.io/Super-preloader/mydata.json'], 'https://machsix.github.io/Super-preloader/mydata_detail.json'); var WeData = new RuleProvider('wedata.net', ['http://wedata.net/databases/AutoPagerize/items.json', 'https://machsix.github.io/Super-preloader/wedata.json'], 'http://wedata.net/databases/AutoPagerize.json', function (res) { - return (_isString(res.data) ? JSON.parse(res.data) : res.data).filter(function (i) { + var _context3, _context4; + return _mapInstanceProperty(_context3 = _filterInstanceProperty(_context4 = _isString(res.data) ? JSON.parse(res.data) : res.data).call(_context4, function (i) { var nameFilter = ['Generic Posts Rule', 'hAtom']; for (var j = 0; j < nameFilter.length; j++) { - if (nameFilter[j].indexOf(i.name) >= 0) { + var _context5; + if (_indexOfInstanceProperty(_context5 = nameFilter[j]).call(_context5, i.name) >= 0) { return false; } } return true; - }).map(function (i) { + })).call(_context3, function (i) { return _objectSpread$1({ name: i.name, resource_url: i.resource_url @@ -6383,7 +12278,7 @@ */ var jsonRuleLoader = { providers: p, - rule: p.map(function () { + rule: _mapInstanceProperty(p).call(p, function () { return []; }), expire: new Date('1992-05-15'), @@ -6395,64 +12290,61 @@ return _flatten(this.rule); }, saveRule() { - var _arguments = arguments, - _this3 = this; + var _this3 = this; + var saveDB = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() { - var saveDB; - return _regeneratorRuntime.wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { + return _regeneratorRuntime.wrap(function _callee3$(_context6) { + while (1) switch (_context6.prev = _context6.next) { case 0: - saveDB = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : true; - _context3.next = 3; + _context6.next = 2; return GM.setValue('jsonRuleInfo', { expire: _this3.expire.toJSON(), updatePeriodInDay: _this3.updatePeriodInDay }); - case 3: + case 2: if (!saveDB) { - _context3.next = 6; + _context6.next = 5; break; } - _context3.next = 6; + _context6.next = 5; return GM.setValue('SITEINFO_json', _this3.rule); - case 6: + case 5: case "end": - return _context3.stop(); + return _context6.stop(); } }, _callee3); }))(); }, updateRule() { - var _arguments2 = arguments, - _this4 = this; + var _this4 = this; + var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() { - var force, lastUpdate, today, promises; - return _regeneratorRuntime.wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { + var lastUpdate, today, _context7, promises; + return _regeneratorRuntime.wrap(function _callee4$(_context8) { + while (1) switch (_context8.prev = _context8.next) { case 0: - force = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : false; if (force) { _this4.resetExpire(); } lastUpdate = new Date(+_this4.expire - _this4.updatePeriodInDay * 24 * 60 * 60 * 1000); today = new Date(); if (!(today > _this4.expire)) { - _context4.next = 10; + _context8.next = 9; break; } - promises = _this4.providers.map(function (x) { + promises = _mapInstanceProperty(_context7 = _this4.providers).call(_context7, function (x) { return x.updateRule(lastUpdate); }); - _context4.next = 8; - return Promise.all(promises).then(function (values) { - var status = values.map(function (_ref) { + _context8.next = 7; + return _Promise.all(promises).then(function (values) { + var status = _mapInstanceProperty(values).call(values, function (_ref) { var status = _ref.status; return status === 'fulfilled' || false; }); if (status.every(function (x) { return x; })) { - _this4.rule = values.map(function (_ref2) { + _this4.rule = _mapInstanceProperty(values).call(values, function (_ref2) { var value = _ref2.value; return value ? value : _this4.rule; }); @@ -6465,34 +12357,33 @@ _this4.saveRule(false); } }); - case 8: - _context4.next = 11; + case 7: + _context8.next = 10; break; - case 10: + case 9: logger.info("[Super-preloader]", `[UpdateRule] Next update at: ${_this4.expire}`); - case 11: + case 10: case "end": - return _context4.stop(); + return _context8.stop(); } }, _callee4); }))(); }, loadRule() { - var _arguments3 = arguments, - _this5 = this; + var _this5 = this; + var forceUpdateRule = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() { - var forceUpdateRule, _yield$Promise$all, _yield$Promise$all2, jsonRuleInfo, rule; - return _regeneratorRuntime.wrap(function _callee5$(_context5) { - while (1) switch (_context5.prev = _context5.next) { + var _yield$Promise$all, _yield$Promise$all2, jsonRuleInfo, rule; + return _regeneratorRuntime.wrap(function _callee5$(_context9) { + while (1) switch (_context9.prev = _context9.next) { case 0: - forceUpdateRule = _arguments3.length > 0 && _arguments3[0] !== undefined ? _arguments3[0] : false; - _context5.next = 3; - return Promise.all([GM.getValue('jsonRuleInfo', { + _context9.next = 2; + return _Promise.all([GM.getValue('jsonRuleInfo', { expire: _this5.expire.toJSON(), updatePeriodInDay: _this5.updatePeriodInDay }), GM.getValue('SITEINFO_json', _this5.rule)]); - case 3: - _yield$Promise$all = _context5.sent; + case 2: + _yield$Promise$all = _context9.sent; _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2); jsonRuleInfo = _yield$Promise$all2[0]; rule = _yield$Promise$all2[1]; @@ -6502,26 +12393,26 @@ _this5.updatePeriodInDay = parseInt(jsonRuleInfo.updatePeriodInDay); _this5.rule = rule; if (!(forceUpdateRule || _this5.getRule().length === 0)) { - _context5.next = 15; + _context9.next = 14; break; } - _context5.next = 15; + _context9.next = 14; return _this5.updateRule(true); + case 14: + return _context9.abrupt("return", _this5.getRule()); case 15: - return _context5.abrupt("return", _this5.getRule()); - case 16: case "end": - return _context5.stop(); + return _context9.stop(); } }, _callee5); }))(); } }; - 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$1(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 _createForOfIteratorHelper$1(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } - function _unsupportedIterableToArray$1(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); } + function ownKeys(e, r) { var t = Object.keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, 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$1(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 _createForOfIteratorHelper$1(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray$1(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } + function _unsupportedIterableToArray$1(o, minLen) { var _context11; if (!o) return; if (typeof o === "string") return _arrayLikeToArray$1(o, minLen); var n = _sliceInstanceProperty(_context11 = Object.prototype.toString.call(o)).call(_context11, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray$1(o, minLen); } function _arrayLikeToArray$1(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } // ---------------------- Settings stored in GM storaged, changed by control pannel --------------- /**@type {ISettings} */ @@ -6736,7 +12627,7 @@ case 0: logger.info("[Super-preloader]", 'settings are reset'); _context.next = 3; - return Promise.all(settingsKeys.map(function (key) { + return _Promise.all(_mapInstanceProperty(settingsKeys).call(settingsKeys, function (key) { return GM.setValue(key, factorySettings[key]); })); case 3: @@ -6752,18 +12643,19 @@ } function _saveSettings() { _saveSettings = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(values) { - return _regeneratorRuntime.wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { + var _context2, _context3; + return _regeneratorRuntime.wrap(function _callee2$(_context4) { + while (1) switch (_context4.prev = _context4.next) { case 0: - _context2.next = 2; - return Promise.all(Object.keys(values).filter(function (x) { - return settingsKeys.includes(x); - }).map(function (key) { + _context4.next = 2; + return _Promise.all(_mapInstanceProperty(_context2 = _filterInstanceProperty(_context3 = Object.keys(values)).call(_context3, function (x) { + return _includesInstanceProperty(settingsKeys).call(settingsKeys, x); + })).call(_context2, function (key) { return GM.setValue(key, values[key]); })); case 2: case "end": - return _context2.stop(); + return _context4.stop(); } }, _callee2); })); @@ -6775,12 +12667,12 @@ function _getServerIp() { _getServerIp = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(hostname) { var ipv4Regex, res, result, _iterator, _step, d; - return _regeneratorRuntime.wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { + return _regeneratorRuntime.wrap(function _callee3$(_context5) { + while (1) switch (_context5.prev = _context5.next) { case 0: ipv4Regex = /^(\d{1,3}\.){3}\d{1,3}$/; - _context3.prev = 1; - _context3.next = 4; + _context5.prev = 1; + _context5.next = 4; return got$1.get('https://1.1.1.1/dns-query', { searchParams: { name: hostname, @@ -6791,45 +12683,45 @@ } }); case 4: - res = _context3.sent; + res = _context5.sent; result = JSON.parse(res.data); _iterator = _createForOfIteratorHelper$1(result.Answer); - _context3.prev = 7; + _context5.prev = 7; _iterator.s(); case 9: if ((_step = _iterator.n()).done) { - _context3.next = 15; + _context5.next = 15; break; } d = _step.value; if (!ipv4Regex.test(d.data)) { - _context3.next = 13; + _context5.next = 13; break; } - return _context3.abrupt("return", d.data); + return _context5.abrupt("return", d.data); case 13: - _context3.next = 9; + _context5.next = 9; break; case 15: - _context3.next = 20; + _context5.next = 20; break; case 17: - _context3.prev = 17; - _context3.t0 = _context3["catch"](7); - _iterator.e(_context3.t0); + _context5.prev = 17; + _context5.t0 = _context5["catch"](7); + _iterator.e(_context5.t0); case 20: - _context3.prev = 20; + _context5.prev = 20; _iterator.f(); - return _context3.finish(20); + return _context5.finish(20); case 23: - return _context3.abrupt("return", '127.0.0.1'); + return _context5.abrupt("return", '127.0.0.1'); case 26: - _context3.prev = 26; - _context3.t1 = _context3["catch"](1); - return _context3.abrupt("return", '127.0.0.1'); + _context5.prev = 26; + _context5.t1 = _context5["catch"](1); + return _context5.abrupt("return", '127.0.0.1'); case 29: case "end": - return _context3.stop(); + return _context5.stop(); } }, _callee3, null, [[1, 26], [7, 17, 20, 23]]); })); @@ -6842,16 +12734,17 @@ // ---------------------- Settings stored in localStorage, changed by floatWindow --------------- function _loadSettings() { _loadSettings = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() { - var values, myOldVersion, isRewrote, verDiff, isInstalled, postLoading, hasDifferency, opts, _yield$Promise$all, _yield$Promise$all2, jsonRule, blackList; - return _regeneratorRuntime.wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { + var _context8, _context9; + var values, myOldVersion, isRewrote, verDiff, isInstalled, postLoading, hasDifferency, _context6, opts, _context7, _yield$Promise$all, _yield$Promise$all2, jsonRule, blackList; + return _regeneratorRuntime.wrap(function _callee4$(_context10) { + while (1) switch (_context10.prev = _context10.next) { case 0: - _context4.next = 2; - return Promise.all(settingsKeys.map(function (key) { + _context10.next = 2; + return _Promise.all(_mapInstanceProperty(settingsKeys).call(settingsKeys, function (key) { return GM.getValue(key, factorySettings[key]); })); case 2: - values = _context4.sent; + values = _context10.sent; settingsKeys.forEach(function (x, i) { settings[settingsKeys[i]] = values[i]; }); @@ -6886,7 +12779,7 @@ } } else { if (settings.prefs.disableBuiltinSubscriptionRules) { - postLoading.push(Promise.resolve([])); //insert an empty jsonRule + postLoading.push(_Promise.resolve([])); //insert an empty jsonRule } else { postLoading.push(jsonRuleLoader.loadRule()); } @@ -6913,8 +12806,8 @@ oldversion: myOldVersion, newversion: settings.version }); - if (Object.keys(NOTIFICATION).includes('extratext')) { - if (Object.keys(NOTIFICATION.extratext).includes(userLang)) { + if (_includesInstanceProperty(_context6 = Object.keys(NOTIFICATION)).call(_context6, 'extratext')) { + if (_includesInstanceProperty(_context7 = Object.keys(NOTIFICATION.extratext)).call(_context7, userLang)) { opts.text += NOTIFICATION.extratext[userLang]; } else { opts.text += NOTIFICATION.extratext.en_US; @@ -6923,23 +12816,23 @@ GM.notification(opts); } } - _context4.next = 16; - return Promise.all(postLoading); + _context10.next = 16; + return _Promise.all(postLoading); case 16: - _yield$Promise$all = _context4.sent; + _yield$Promise$all = _context10.sent; _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 1); jsonRule = _yield$Promise$all2[0]; /** @type {string[]} */ - blackList = [].concat(settings.prefs.excludes.split(/[\n\r]+/).map(function (line) { - return line.trim(); + blackList = _concatInstanceProperty(_context8 = []).call(_context8, _mapInstanceProperty(_context9 = settings.prefs.excludes.split(/[\n\r]+/)).call(_context9, function (line) { + return _trimInstanceProperty(line).call(line); })); - return _context4.abrupt("return", _objectSpread({ + return _context10.abrupt("return", _objectSpread({ jsonRule, blackList }, settings)); case 21: case "end": - return _context4.stop(); + return _context10.stop(); } }, _callee4); })); @@ -6977,7 +12870,7 @@ for (var i = 0; i < domainSettings.length; i++) { var localSetting = domainSettings[i]; if (localSetting.Rurl === pageSetting.Rurl) { - for (var _i2 = 0, _Object$entries = Object.entries(localSetting); _i2 < _Object$entries.length; _i2++) { + for (var _i2 = 0, _Object$entries = _Object$entries2(localSetting); _i2 < _Object$entries.length; _i2++) { var _Object$entries$_i = _slicedToArray(_Object$entries[_i2], 2), key = _Object$entries$_i[0], value = _Object$entries$_i[1]; @@ -7023,7 +12916,7 @@ */ function getAllElementsByCSS(css) { var contextNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : document; - return [].slice.call(contextNode.querySelectorAll(css)); + return _sliceInstanceProperty([]).call(contextNode.querySelectorAll(css)); } /** @@ -7089,7 +12982,7 @@ contextNode = contextNode || doc; if (typeof selector === 'string') { if (selector.search(/^css;/i) === 0) { - return getAllElementsByCSS(selector.slice(4), contextNode); + return getAllElementsByCSS(_sliceInstanceProperty(selector).call(selector, 4), contextNode); } else { return getAllElementsByXpath(selector, contextNode, doc); } @@ -7141,7 +13034,7 @@ if (firstElems.length > 0) { var childNodeCount = []; for (var i = 0; i < firstElems.length; i++) { - childNodeCount.push([].reduce.call(elems[0].children, function (x, y) { + childNodeCount.push(_reduceInstanceProperty([]).call(elems[0].children, function (x, y) { return x + (y.nodeName != 'SCRIPT' ? 1 : 0); }, 0)); eles.push(firstElems[i]); @@ -7172,7 +13065,7 @@ */ function getLastVisibleElement(selector, _cplink, contextNode, doc, win) { var eles = getAllElementsDuplicate(selector, contextNode, doc, win, _cplink); - eles = eles.filter(function (e) { + eles = _filterInstanceProperty(eles).call(eles, function (e) { return e.offsetParent !== null; }); if (eles.length > 0) { @@ -7189,7 +13082,7 @@ return new RegExp(obj[0], obj[1]); } else { if (obj.search(/^wildc;/i) === 0) { - obj = wildcardToRegExpStr(obj.slice(6)); + obj = wildcardToRegExpStr(_sliceInstanceProperty(obj).call(obj, 6)); } return new RegExp(obj); } @@ -7660,7 +13553,7 @@ } : { childList: true }; - return new Promise(function (resolve) { + return new _Promise(function (resolve) { new MutationObserver(function (mutationList, observer) { resolve({ element: element, @@ -7672,8 +13565,6 @@ }); } - //@ts-check - /// // General rules for CMS like phpwind /**@type {IRule[]} */ var jsGeneralRule = [{ @@ -7882,9 +13773,10 @@ nextLink: "//ol[@class='page-navigator']/li[@class='next']/a", autopager: { pageElement: function pageElement(doc, _win, _cplink) { + var _context, _context2; var gen = getElementByXpath("//head/meta[@name='generator']", doc, doc); //@ts-ignore - if (!gen || !gen.content.includes('Typecho') || !doc.documentElement.outerHTML.includes('Typecho')) { + if (!gen || !_includesInstanceProperty(_context = gen.content).call(_context, 'Typecho') || !_includesInstanceProperty(_context2 = doc.documentElement.outerHTML).call(_context2, 'Typecho')) { return null; } try { @@ -7906,10 +13798,10 @@ url: '^https?://[^/]+(/page/\\d+)?', nextLink: function nextLink(_doc, _win, _cplink) { var cplink = _cplink.replace(/^(.*)(#[^\/]*)?$/, '$1'); - if (cplink.slice(cplink.length - 5, cplink.length) === '.html') { + if (_sliceInstanceProperty(cplink).call(cplink, cplink.length - 5, cplink.length) === '.html') { return undefined; } - if (cplink.slice(cplink.length - 4, cplink.length) === '.htm') { + if (_sliceInstanceProperty(cplink).call(cplink, cplink.length - 4, cplink.length) === '.htm') { return undefined; } var a = /^(https?:\/\/.*?)(\/page\/\d+\/?)?$/.exec(cplink); @@ -7922,6 +13814,7 @@ }, autopager: { pageElement: function pageElement(doc, win, _cplink) { + var _context4; var blackList = [/^https?:\/\/bwg\.net\/?$/, /^https?:\/\/sunbox\.cc\/?$/, /^https?:\/\/anime1\.me/, /^https?:\/\/github\.com/]; for (var i = 0; i < blackList.length; i++) { if (blackList[i].test(_cplink)) { @@ -7932,7 +13825,8 @@ var wpText = ['wp-content', 'wp-plugin', 'wp-comment']; var isWP = false; for (i = 0; i < wpText.length; i++) { - if (doc.documentElement.outerHTML.indexOf(wpText[i]) > -1) { + var _context3; + if (_indexOfInstanceProperty(_context3 = doc.documentElement.outerHTML).call(_context3, wpText[i]) > -1) { isWP = true; break; } @@ -7951,7 +13845,7 @@ return null; } } - if ((document.documentElement.textContent || document.documentElement.innerText).indexOf('comment-form')) { + if (_indexOfInstanceProperty(_context4 = document.documentElement.textContent || document.documentElement.innerText).call(_context4, 'comment-form')) { // https://www.vlchelp.com/how-to-disable-building-font-cache/ return null; } @@ -7997,8 +13891,68 @@ } }]; - function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } - function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } + /* eslint-disable es/no-array-prototype-lastindexof -- safe */ + var apply = functionApply; + var toIndexedObject = toIndexedObject$b; + var toIntegerOrInfinity = toIntegerOrInfinity$5; + var lengthOfArrayLike = lengthOfArrayLike$9; + var arrayMethodIsStrict = arrayMethodIsStrict$4; + + var min = Math.min; + var $lastIndexOf = [].lastIndexOf; + var NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0; + var STRICT_METHOD = arrayMethodIsStrict('lastIndexOf'); + var FORCED = NEGATIVE_ZERO || !STRICT_METHOD; + + // `Array.prototype.lastIndexOf` method implementation + // https://tc39.es/ecma262/#sec-array.prototype.lastindexof + var arrayLastIndexOf = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) { + // convert -0 to +0 + if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0; + var O = toIndexedObject(this); + var length = lengthOfArrayLike(O); + if (length === 0) return -1; + var index = length - 1; + if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1])); + if (index < 0) index = length + index; + for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0; + return -1; + } : $lastIndexOf; + + var $ = _export; + var lastIndexOf$4 = arrayLastIndexOf; + + // `Array.prototype.lastIndexOf` method + // https://tc39.es/ecma262/#sec-array.prototype.lastindexof + // eslint-disable-next-line es/no-array-prototype-lastindexof -- required for testing + $({ target: 'Array', proto: true, forced: lastIndexOf$4 !== [].lastIndexOf }, { + lastIndexOf: lastIndexOf$4 + }); + + var getBuiltInPrototypeMethod = getBuiltInPrototypeMethod$e; + + var lastIndexOf$3 = getBuiltInPrototypeMethod('Array', 'lastIndexOf'); + + var isPrototypeOf = objectIsPrototypeOf; + var method = lastIndexOf$3; + + var ArrayPrototype = Array.prototype; + + var lastIndexOf$2 = function (it) { + var own = it.lastIndexOf; + return it === ArrayPrototype || (isPrototypeOf(ArrayPrototype, it) && own === ArrayPrototype.lastIndexOf) ? method : own; + }; + + var parent = lastIndexOf$2; + + var lastIndexOf$1 = parent; + + var lastIndexOf = lastIndexOf$1; + + var _lastIndexOfInstanceProperty = /*@__PURE__*/getDefaultExportFromCjs(lastIndexOf); + + function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } + function _unsupportedIterableToArray(o, minLen) { var _context5; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty(_context5 = Object.prototype.toString.call(o)).call(_context5, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; } /**@type {Array} */ @@ -8257,7 +14211,7 @@ break; } _context2.next = 5; - return Promise.all([].map.call(items, /*#__PURE__*/function () { + return _Promise.all(_mapInstanceProperty([]).call(items, /*#__PURE__*/function () { var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(a) { var link, res, docPage, img, newImg; return _regeneratorRuntime.wrap(function _callee$(_context) { @@ -8828,7 +14782,7 @@ nextLink: function nextLink(doc, _win, _cplink) { for (var i = 0; i < doc.scripts.length; i++) { var scriptText = doc.scripts[i].text; - if (typeof scriptText != 'undefined' && scriptText.indexOf('currentPage') > 0) { + if (typeof scriptText != 'undefined' && _indexOfInstanceProperty(scriptText).call(scriptText, 'currentPage') > 0) { var pageMatches = scriptText.match(/currentPage[ ]?=[ ]?(\d+)/); if (pageMatches.length != 2) { continue; @@ -8935,12 +14889,14 @@ var re = /chapter\s*=\s*secret\(['"](.*)['"],\s*['"](.*)['"],\s*(\w+)\s*\)/g; var c; [].forEach.call(scripts, function (x) { - if (x.innerText.indexOf('var chapter') >= 0) { + var _context3; + if (_indexOfInstanceProperty(_context3 = x.innerText).call(_context3, 'var chapter') >= 0) { + var _context4; var temp = re.exec(x.innerText); var content = temp[1]; var salt = temp[2]; // function secret is provided by the website - if (temp[3].indexOf('true') >= 0) { + if (_indexOfInstanceProperty(_context4 = temp[3]).call(_context4, 'true') >= 0) { //@ts-ignore // eslint-disable-next-line no-undef c = secret(content, salt, true); @@ -8964,7 +14920,7 @@ pageElement: "//div[@id='content']", nextLink: function nextLink(doc, _win, cplink) { var chapters = getAllElementsByXpath("//div[@class='chapterPages']/a", doc); - var prefix = cplink.substr(0, cplink.lastIndexOf('/')) + '/'; + var prefix = cplink.substr(0, _lastIndexOfInstanceProperty(cplink).call(cplink, '/')) + '/'; var i = 0; for (i = 0; i < chapters.length; i++) { if (chapters[i].className === 'curr') { @@ -8990,9 +14946,9 @@ if (next > res.dataset.pagemax) { return undefined; } else { - if (cplink.indexOf('page=') != -1) { + if (_indexOfInstanceProperty(cplink).call(cplink, 'page=') != -1) { return cplink.replace(/page=\d+/, 'page=' + next); - } else if (cplink.indexOf('?') != -1) { + } else if (_indexOfInstanceProperty(cplink).call(cplink, '?') != -1) { return cplink + '&page=' + next; } else { return cplink + '?page=' + next; @@ -9048,9 +15004,9 @@ return undefined; } var pageInfo = findout[1] + '=' + findout[2]; - if (cplink.indexOf(findout[1] + '=') != -1) { + if (_indexOfInstanceProperty(cplink).call(cplink, findout[1] + '=') != -1) { return cplink.replace(new RegExp(findout[1] + '=\\d+'), pageInfo); - } else if (cplink.indexOf('?') != -1) { + } else if (_indexOfInstanceProperty(cplink).call(cplink, '?') != -1) { return cplink + '&' + pageInfo; } else { return cplink + '?' + pageInfo; @@ -9294,7 +15250,7 @@ startFilter: function startFilter(d, _win) { //@ts-ignore d.getElementById('bigpic').src = d.getElementById('bigpic').src.replace('fmvip.xzglasses.com', 'fmvip.xzglasses.com'); - Array.from(d.querySelectorAll('iframe')).forEach(function (frame) { + _Array$from(d.querySelectorAll('iframe')).forEach(function (frame) { return frame.remove(); }); }, @@ -9467,7 +15423,7 @@ function getAllIndexes(arr, val) { var indexes = []; var i = -1; - while ((i = arr.indexOf(val, i + 1)) != -1) { + while ((i = _indexOfInstanceProperty(arr).call(arr, val, i + 1)) != -1) { indexes.push(i); } return indexes; @@ -9527,7 +15483,7 @@ spcss["sp-prefs-spinner"] = _wcImport3; spcss["sp-prefs-setup"] = _wcImport2; spcss["sp-fw"] = _wcImport; - (function () { + (function (_context) { // use charset from currentDocument var gotConfig = { html: true, @@ -9547,7 +15503,7 @@ logger.warn("[Super-preloader]", 'Check https://github.com/Tampermonkey/tampermonkey/issues/786 and https://github.com/violentmonkey/violentmonkey/issues/606 to learn more'); gotConfig.cookie = true; } - if (SCRIPT_MANAGER.name.toLowerCase().includes('adguard')) { + if (_includesInstanceProperty(_context = SCRIPT_MANAGER.name.toLowerCase()).call(_context, 'adguard')) { logger.warn("[Super-preloader]", `${SCRIPT_MANAGER.name} has issues with some specific like Google due to the way it injects script`); } var got = got$1.create(gotConfig); @@ -9617,9 +15573,9 @@ }); } if (p) { - p = Promise.all(parr); + p = _Promise.all(parr); } else { - p = Promise.resolve(undefined); + p = _Promise.resolve(undefined); } var timeout = mutationObserver.timeout && 0; setTimeout(function () { @@ -9710,7 +15666,7 @@ // ------------------------下面的不要管他----------------- /// //////////////////////////////////////////////////////////////// // eslint-disable-next-line prettier/prettier - Promise.all([loadSettings(), getServerIp(location.hostname)]).then(function (_ref2) { + _Promise.all([loadSettings(), getServerIp(location.hostname)]).then(function (_ref2) { var _ref3 = _slicedToArray(_ref2, 2), values = _ref3[0], serverIp = _ref3[1]; @@ -9725,11 +15681,11 @@ } else { logger.setLevel(5); } - logger.debug("[Super-preloader]", 'Script Manager: ', JSON.stringify({ + logger.debug("[Super-preloader]", 'Script Manager: ', _JSON$stringify({ name: SCRIPT_MANAGER.name, version: SCRIPT_MANAGER.version || 'unknown' })); - logger.debug("[Super-preloader]", 'Browser: ', JSON.stringify(BROWSER)); + logger.debug("[Super-preloader]", 'Browser: ', _JSON$stringify(BROWSER)); logger.debug("[Super-preloader]", `Server ip: ', ${serverIp}`); var setup = function setup() { var d = document; @@ -9864,7 +15820,7 @@ isHashchangeSite = true; hashchangeTimer = hashSite.timer; logger.debug("[Super-preloader]", 'This site does not refresh the page.', hashSite); - var p1 = new Promise(function (resolve, reject) { + var p1 = new _Promise(function (resolve, reject) { setTimeout(resolve, hashchangeTimer); }); p1.then(function (values) { @@ -9900,7 +15856,7 @@ logger.error("[Super-preloader]", 'Custom site rule error:', prefs.custom_siteinfo); } if (_isArray(userRules)) { - SSRules = SSRules.concat(userRules); + SSRules = _concatInstanceProperty(SSRules).call(SSRules, userRules); } }; loadDblclickPause(); @@ -10442,7 +16398,7 @@ } i.src = link; if (SSS.a_mutationObserver) { - i.setAttribute('mutationObserver', JSON.stringify(SSS.a_mutationObserver)); + i.setAttribute('mutationObserver', _JSON$stringify(SSS.a_mutationObserver)); if (SSS.a_mutationObserver.relatedObj) { insertLoc = getAllElements(SSS.a_mutationObserver.relatedObj); if (insertLoc.length > 0) { @@ -10565,11 +16521,11 @@ var spage = /*#__PURE__*/function () { var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(el) { var value; - return _regeneratorRuntime.wrap(function _callee$(_context) { - while (1) switch (_context.prev = _context.next) { + return _regeneratorRuntime.wrap(function _callee$(_context2) { + while (1) switch (_context2.prev = _context2.next) { case 0: if (!doc) { - _context.next = 7; + _context2.next = 7; break; } value = Number(el.value); @@ -10578,11 +16534,11 @@ } ipagesmode = true; ipagesnumber = value + paged; - _context.next = 7; + _context2.next = 7; return insertedIntoDoc(); case 7: case "end": - return _context.stop(); + return _context2.stop(); } }, _callee); })); @@ -10659,27 +16615,27 @@ } function _beforeInsertIntoDoc() { _beforeInsertIntoDoc = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() { - return _regeneratorRuntime.wrap(function _callee3$(_context3) { - while (1) switch (_context3.prev = _context3.next) { + return _regeneratorRuntime.wrap(function _callee3$(_context4) { + while (1) switch (_context4.prev = _context4.next) { case 0: working = true; if (!(SSS.a_manualA && !ipagesmode)) { - _context3.next = 6; + _context4.next = 6; break; } // 显示手动翻页触发条. logger.debug("[Super-preloader]", 'Manual stitching'); manualAdiv(); - _context3.next = 9; + _context4.next = 9; break; case 6: // 直接拼接. logger.debug("[Super-preloader]", 'Direct stitching'); - _context3.next = 9; + _context4.next = 9; return insertedIntoDoc(); case 9: case "end": - return _context3.stop(); + return _context4.stop(); } }, _callee3); })); @@ -10787,43 +16743,43 @@ function _insertedIntoDoc() { _insertedIntoDoc = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() { var docTitle, fragment, pageElements, ii, lastUrl, nl, i, pe_x, pe_x_nn, nodes, nodes_x, imgs, arr, sepdiv, toInsert, insertParent, colNodes, _ncol, trs, _ncol2, oldE, oldE_lt, newE, newE_lt, oldE_x, newE_x, ev, delayiframe; - return _regeneratorRuntime.wrap(function _callee4$(_context4) { - while (1) switch (_context4.prev = _context4.next) { + return _regeneratorRuntime.wrap(function _callee4$(_context5) { + while (1) switch (_context5.prev = _context5.next) { case 0: if (doc) { - _context4.next = 3; + _context5.next = 3; break; } logger.error("[Super-preloader]", 'No document'); - return _context4.abrupt("return"); + return _context5.abrupt("return"); case 3: if (!SSS.a_documentFilter) { - _context4.next = 13; + _context5.next = 13; break; } - _context4.prev = 4; - _context4.next = 7; + _context5.prev = 4; + _context5.next = 7; return SSS.a_documentFilter(doc, typeof nextlink === 'string' && nextlink); case 7: logger.debug("[Super-preloader]", 'Successfully executeed documentFilter'); - _context4.next = 13; + _context5.next = 13; break; case 10: - _context4.prev = 10; - _context4.t0 = _context4["catch"](4); - logger.error("[Super-preloader]", 'Error executing documentFilter', _context4.t0, SSS.a_documentFilter.toString()); + _context5.prev = 10; + _context5.t0 = _context5["catch"](4); + logger.error("[Super-preloader]", 'Error executing documentFilter', _context5.t0, SSS.a_documentFilter.toString()); case 13: docTitle = getElementByCSS('title', doc).textContent; fragment = document.createDocumentFragment(); pageElements = getAllElements(SSS.a_pageElement, undefined, doc, win, typeof nextlink === 'string' && nextlink); ii = pageElements.length; if (!(ii <= 0)) { - _context4.next = 23; + _context5.next = 23; break; } logger.error("[Super-preloader]", 'Failed to get the main content of the next page', SSS.a_pageElement); removeL(); - return _context4.abrupt("return"); + return _context5.abrupt("return"); case 23: logger.debug("[Super-preloader]", 'Successfully got the main content of the next page', pageElements); case 24: @@ -10847,28 +16803,28 @@ i = 0; case 31: if (!(i < ii)) { - _context4.next = 40; + _context5.next = 40; break; } pe_x = pageElements[i]; pe_x_nn = pe_x.nodeName; if (!(pe_x_nn == 'BODY' || pe_x_nn == 'HTML' || pe_x_nn == 'SCRIPT')) { - _context4.next = 36; + _context5.next = 36; break; } - return _context4.abrupt("continue", 37); + return _context5.abrupt("continue", 37); case 36: fragment.appendChild(pe_x); case 37: i++; - _context4.next = 31; + _context5.next = 31; break; case 40: - if (SSS.filter && typeof SSS.filter === 'string') { + if (_filterInstanceProperty(SSS) && typeof _filterInstanceProperty(SSS) === 'string') { // 功能未完善. nodes = []; try { - nodes = getAllElements(SSS.filter, fragment); + nodes = getAllElements(_filterInstanceProperty(SSS), fragment); } catch (e) {} for (i = nodes.length - 1; i >= 0; i--) { nodes_x = nodes[i]; @@ -10887,7 +16843,7 @@ // 处理下一页内容部分链接是否新标签页打开 if (prefs.forceTargetWindow) { - arr = Array.prototype.slice.call(fragment.querySelectorAll('a[href]:not([href^="mailto:"]):not([href^="javascript:"]):not([href^="#"])')); + arr = _sliceInstanceProperty(Array.prototype).call(fragment.querySelectorAll('a[href]:not([href^="mailto:"]):not([href^="javascript:"]):not([href^="#"])')); arr.forEach(function (elem) { elem.setAttribute('target', '_blank'); if (elem.getAttribute('onclick') == 'atarget(this)') { @@ -10908,7 +16864,7 @@ if (colNodes.length == 0) { colNodes = getAllElements('child::*[self::td or self::th]', pageElements[0]); } - _ncol = [].reduce.call(colNodes, function (acc, cur) { + _ncol = _reduceInstanceProperty([]).call(colNodes, function (acc, cur) { return acc + (parseInt(cur.getAttribute('colspan'), 10) || 1); }, 0); toInsert = createDOM('tr', { @@ -10923,7 +16879,7 @@ // https://bbs.kafan.cn/forum-8-1.html trs = pageElements[pageElements.length - 1].getElementsByTagName('tr'); if (trs) { - _ncol2 = [].reduce.call(trs[trs.length - 1].children, function (acc, cur) { + _ncol2 = _reduceInstanceProperty([]).call(trs[trs.length - 1].children, function (acc, cur) { return acc + (parseInt(cur.getAttribute('colspan'), 10) || 1); }, 0); toInsert = createDOM('tbody', { @@ -10944,12 +16900,12 @@ addIntoDoc(fragment); // filter - if (SSS.filter && typeof SSS.filter === 'function') { + if (_filterInstanceProperty(SSS) && typeof _filterInstanceProperty(SSS) === 'function') { try { - SSS.filter(pageElements); + _filterInstanceProperty(SSS).call(SSS, pageElements); logger.debug("[Super-preloader]", 'Execution of filter(pages) succeeded'); } catch (e) { - logger.error("[Super-preloader]", 'Error executing filter(pages)', e, SSS.filter.toString()); + logger.error("[Super-preloader]", 'Error executing filter(pages)', e, _filterInstanceProperty(SSS).toString()); } } if (imgs) { @@ -11000,18 +16956,18 @@ } catch (e) {} } if (!(paged >= SSS.a_maxpage)) { - _context4.next = 66; + _context5.next = 66; break; } logger.debug("[Super-preloader]", `Reached the set maximum number of page turns ${SSS.a_maxpage}`); notice('Status:' + 'Reached the set maximum number of page turns:' + SSS.a_maxpage + ''); removeL(); - return _context4.abrupt("return"); + return _context5.abrupt("return"); case 66: delayiframe = function delayiframe(fn) { setTimeout(fn, 199); }; - if (nextlink && !pagedLinks.includes(nextlink)) { + if (nextlink && !_includesInstanceProperty(pagedLinks).call(pagedLinks, nextlink)) { // debug('Found the next page link:', nextlink); doc = win = null; if (ipagesmode) { @@ -11035,7 +16991,7 @@ } case 68: case "end": - return _context4.stop(); + return _context5.stop(); } }, _callee4, null, [[4, 10]]); })); @@ -11140,27 +17096,27 @@ autoPO = { startipages: function () { var _startipages = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(value) { - return _regeneratorRuntime.wrap(function _callee2$(_context2) { - while (1) switch (_context2.prev = _context2.next) { + return _regeneratorRuntime.wrap(function _callee2$(_context3) { + while (1) switch (_context3.prev = _context3.next) { case 0: if (!(value > 0)) { - _context2.next = 8; + _context3.next = 8; break; } ipagesmode = true; ipagesnumber = value + paged; notice('Status:' + 'Current number of pages turned: ' + paged + ',' + 'Continue to turn page ' + ipagesnumber + ''); if (!SSS.a_manualA) { - _context2.next = 7; + _context3.next = 7; break; } - _context2.next = 7; + _context3.next = 7; return insertedIntoDoc(); case 7: scroll(); case 8: case "end": - return _context2.stop(); + return _context3.stop(); } }, _callee2); })); @@ -11308,7 +17264,7 @@ // 执行开始../////////////////// // 分析黑名单 - var blackList_re = new RegExp(blackList.map(function (x) { + var blackList_re = new RegExp(_mapInstanceProperty(blackList).call(blackList, function (x) { if (x.substring(0, 3).toLowerCase() == 're:') { return x.substring(4); } else { @@ -11337,15 +17293,15 @@ if (prefs.disableBuiltinRules) { logger.warn("[Super-preloader]", 'Builtin js rules are disabled'); } else { - SSRules = SSRules.concat(jsSiteRule); + SSRules = _concatInstanceProperty(SSRules).call(SSRules, jsSiteRule); } if (prefs.disableBuiltinSubscriptionRules) { logger.warn("[Super-preloader]", 'Remote json rules are disabled'); } else { - SSRules = SSRules.concat(jsonRule); + SSRules = _concatInstanceProperty(SSRules).call(SSRules, jsonRule); } if (!prefs.disableBuiltinRules) { - SSRules = SSRules.concat(jsGeneralRule); + SSRules = _concatInstanceProperty(SSRules).call(SSRules, jsGeneralRule); } if (!prefs.numOfRule || prefs.numOfRule != SSRules.length) { prefs.numOfRule = SSRules.length; @@ -11369,8 +17325,8 @@ var findCurSiteInfo = /*#__PURE__*/function () { var _ref5 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() { var SIIAD, Rurl, ii, _loop, _ret, i, FA; - return _regeneratorRuntime.wrap(function _callee5$(_context6) { - while (1) switch (_context6.prev = _context6.next) { + return _regeneratorRuntime.wrap(function _callee5$(_context8) { + while (1) switch (_context8.prev = _context8.next) { case 0: SIIAD = SITEINFO_D.autopager; ii = SSRules.length; @@ -11381,24 +17337,24 @@ logger.debug("[Super-preloader]", `Number of advanced rules:${ii}`); } _loop = /*#__PURE__*/_regeneratorRuntime.mark(function _loop() { - var SII, SIIA, documentFilter, pageElement; - return _regeneratorRuntime.wrap(function _loop$(_context5) { - while (1) switch (_context5.prev = _context5.next) { + var SII, _context6, SIIA, documentFilter, pageElement; + return _regeneratorRuntime.wrap(function _loop$(_context7) { + while (1) switch (_context7.prev = _context7.next) { case 0: SII = SSRules[i]; if (!(SII.autopager && SII.autopager.ip)) { - _context5.next = 4; + _context7.next = 4; break; } - if (!(SII.autopager.ip.indexOf(serverIp) < 0)) { - _context5.next = 4; + if (!(_indexOfInstanceProperty(_context6 = SII.autopager.ip).call(_context6, serverIp) < 0)) { + _context7.next = 4; break; } - return _context5.abrupt("return", 0); + return _context7.abrupt("return", 0); case 4: Rurl = toRE(SII.url); if (!Rurl.test(url)) { - _context5.next = 75; + _context7.next = 75; break; } if (userLang === 'zh_CN') { @@ -11411,45 +17367,45 @@ // 运行规则的 startFilter if (!(SII.autopager && SII.autopager.startFilter)) { - _context5.next = 17; + _context7.next = 17; break; } - _context5.prev = 8; - _context5.next = 11; + _context7.prev = 8; + _context7.next = 11; return SII.autopager.startFilter(document, window); case 11: logger.debug("[Super-preloader]", 'startFilter executed successfully'); - _context5.next = 17; + _context7.next = 17; break; case 14: - _context5.prev = 14; - _context5.t0 = _context5["catch"](8); - logger.error("[Super-preloader]", 'Error executing startFilter', _context5.t0); + _context7.prev = 14; + _context7.t0 = _context7["catch"](8); + logger.error("[Super-preloader]", 'Error executing startFilter', _context7.t0); case 17: if (!(SII.nextLink === 'null;')) { - _context5.next = 21; + _context7.next = 21; break; } logger.debug("[Super-preloader]", 'Find the rule for a site without nextpage', SII); SSS.hasRule = false; - return _context5.abrupt("return", 1); + return _context7.abrupt("return", 1); case 21: nextlinkElem = getElement(SII.nextLink || 'auto;'); if (nextlinkElem) { - _context5.next = 25; + _context7.next = 25; break; } logger.warn("[Super-preloader]", 'Could not find the next page link, continue searching for other rules, skiping rule:', SII); - return _context5.abrupt("return", 0); + return _context7.abrupt("return", 0); case 25: // extract next page link from an a link nextlink = getFullHref(nextlinkElem); if (!(nextlink === document.location.href)) { - _context5.next = 29; + _context7.next = 29; break; } nextlinkElem = null; - return _context5.abrupt("return", 0); + return _context7.abrupt("return", 0); case 29: if (SII.preLink && SII.preLink != 'auto;') { // 如果设定了具体的preLink @@ -11477,15 +17433,15 @@ // 自动翻页设置. SIIA = SII.autopager; if (!SIIA) { - _context5.next = 68; + _context7.next = 68; break; } SSS.a_pageElement = SIIA.pageElement; if (SSS.a_pageElement) { - _context5.next = 42; + _context7.next = 42; break; } - return _context5.abrupt("return", 1); + return _context7.abrupt("return", 1); case 42: SSS.a_manualA = SIIA.manualA === undefined ? SIIAD.manualA : SIIA.manualA; SSS.a_enable = SIIA.enable === undefined ? SIIAD.enable : SIIA.enable; @@ -11505,7 +17461,7 @@ SSS.a_ipages = SIIA.ipages === undefined ? SIIAD.ipages : SIIA.ipages; // new - SSS.filter = SII.filter || SIIA.filter; // 新增了函数的形式,原来的功能是移除 pageElement + SSS.filter = _filterInstanceProperty(SII) || _filterInstanceProperty(SIIA); // 新增了函数的形式,原来的功能是移除 pageElement documentFilter = SII.documentFilter || SIIA.documentFilter; if (documentFilter === 'startFilter') { SSS.a_documentFilter = function (doc) { @@ -11530,44 +17486,44 @@ // 检验是否存在内容 pageElement = getElement(SSS.a_pageElement); if (!(!pageElement || Array.isArray(pageElement) && pageElement.length === 0)) { - _context5.next = 73; + _context7.next = 73; break; } nextlinkElem = null; logger.error("[Super-preloader]", 'Could not find content, skiping rule:', SII, 'Continue to search for other rules.'); - return _context5.abrupt("return", 0); + return _context7.abrupt("return", 0); case 73: SSS.hasRule = true; - return _context5.abrupt("return", 1); + return _context7.abrupt("return", 1); case 75: case "end": - return _context5.stop(); + return _context7.stop(); } }, _loop, null, [[8, 14]]); }); i = 0; case 5: if (!(i < ii)) { - _context6.next = 15; + _context8.next = 15; break; } - return _context6.delegateYield(_loop(), "t0", 7); + return _context8.delegateYield(_loop(), "t0", 7); case 7: - _ret = _context6.t0; + _ret = _context8.t0; if (!(_ret === 0)) { - _context6.next = 10; + _context8.next = 10; break; } - return _context6.abrupt("continue", 12); + return _context8.abrupt("continue", 12); case 10: if (!(_ret === 1)) { - _context6.next = 12; + _context8.next = 12; break; } - return _context6.abrupt("break", 15); + return _context8.abrupt("break", 15); case 12: i++; - _context6.next = 5; + _context8.next = 5; break; case 15: if (!SSS.hasRule) { @@ -11606,7 +17562,7 @@ logger.debug("[Super-preloader]", `Total time spent on searching for advanced rules and automatic matching: ${new Date().getTime() - startTime.getTime()}ms`); case 18: case "end": - return _context6.stop(); + return _context8.stop(); } }, _callee5); })); @@ -11754,7 +17710,7 @@ contextNode = contextNode || doc; if (typeof selector === 'string') { if (selector.search(/^css;/i) === 0) { - ret = getElementByCSS(selector.slice(4), contextNode); + ret = getElementByCSS(_sliceInstanceProperty(selector).call(selector, 4), contextNode); } else if (selector.toLowerCase() == 'auto;') { ret = autoGetLink(doc); } else { @@ -12071,8 +18027,9 @@ // 不满足以上条件,再根据地址特征来匹配 var sitePattern; for (var i = 0, length = REALPAGE_SITE_PATTERN.length; i < length; i++) { + var _context9; sitePattern = REALPAGE_SITE_PATTERN[i]; - if (currentUrl.toLocaleLowerCase().indexOf(sitePattern) >= 0) { + if (_indexOfInstanceProperty(_context9 = currentUrl.toLocaleLowerCase()).call(_context9, sitePattern) >= 0) { realPageSiteMatch = true; break; } @@ -12143,8 +18100,8 @@ for (var i = 0, ii = mFails.length; i < ii; i++) { var fx = mFails[i]; if (!fx) continue; - if (typeof fx !== 'string' || fx.indexOf('re;') === 0) { - var fxre = typeof fx === 'string' ? toRE(fx.slice(3)) : fx; + if (typeof fx !== 'string' || _indexOfInstanceProperty(fx).call(fx, 're;') === 0) { + var fxre = typeof fx === 'string' ? toRE(_sliceInstanceProperty(fx).call(fx, 3)) : fx; var mValue = href.match(fxre); if (!mValue) return href; array.push(mValue); @@ -12162,10 +18119,10 @@ if (sa[0] == '#') { _cplink = doc.location.href; } - index = _cplink.indexOf(sa); + index = _indexOfInstanceProperty(_cplink).call(_cplink, sa); if (index == -1) { _cplink = getHref(_cplink); - index = _cplink.indexOf(sa); + index = _indexOfInstanceProperty(_cplink).call(_cplink, sa); if (index == -1) return; } } else { @@ -12174,18 +18131,18 @@ _cplink = getHref(_cplink); sa = (_cplink.match(sa) || [])[0]; if (!sa) return; - index = _cplink.indexOf(sa); + index = _indexOfInstanceProperty(_cplink).call(_cplink, sa); if (index == -1) return; } else { sa = tsa[0]; - index = _cplink.indexOf(sa); + index = _indexOfInstanceProperty(_cplink).call(_cplink, sa); } } index += sa.length; var max = obj.max === undefined ? 9999 : obj.max; var min = obj.min === undefined ? 1 : obj.min; - var aStr = _cplink.slice(0, index); - var bStr = _cplink.slice(index); + var aStr = _sliceInstanceProperty(_cplink).call(_cplink, 0, index); + var bStr = _sliceInstanceProperty(_cplink).call(_cplink, index); var nbStr = bStr.replace(/^(\d+)(.*)$/, function (a, b, c) { b = Number(b) + obj.inc; if (b >= max || b < min) return a; @@ -12205,7 +18162,7 @@ function handleLazyImgSrc(rule, doc) { var imgAttrs = rule.split('|'); imgAttrs.forEach(function (attr) { - attr = attr.trim(); + attr = _trimInstanceProperty(attr).call(attr); [].forEach.call(doc.querySelectorAll('img[' + attr + ']'), function (img) { var newSrc = img.getAttribute(attr); if (newSrc && newSrc != img.src) { @@ -12364,4 +18321,4 @@ } })(); -})(_asyncToGenerator, _slicedToArray, _regeneratorRuntime, _defineProperty$1); +})(); diff --git a/assets/cn_compatibility.md.BclZlKgy.js b/assets/cn_compatibility.md.BclZlKgy.js new file mode 100644 index 000000000..4011cd582 --- /dev/null +++ b/assets/cn_compatibility.md.BclZlKgy.js @@ -0,0 +1 @@ +import{_ as t,c as e,o as r,a1 as o}from"./chunks/framework.qh4ipt1c.js";const b=JSON.parse('{"title":"兼容性","description":"","frontmatter":{},"headers":[],"relativePath":"cn/compatibility.md","filePath":"cn/compatibility.md","lastUpdated":1715150893000}'),a={name:"cn/compatibility.md"},d=o('

兼容性

浏览器及脚本管理器

Firefox + violentmonkey
Firefox + Violentmonkey
Chrome violentmonkey
Chrome/Microsoft Edge Dev + Tampermonkey
Microsoft Edge Dev+ violentmonkey
Waterfox + Greasemonkey 4
Firefox > ESRChrome > 45 , Edge Dev ChannelLatest

漫画网站

WebsiteChromeFirefox
天极动漫频道新闻 yesky
动漫之家 dmzj
看漫画 manhuagui✅ X-Header
CC 漫画网 tuku
SF 在线漫画
哦漫画 omanhua
汗汗/虎虎漫画
99 漫画
酷酷动漫 kukudm
天使漫画网 tsdm
',6),i=[d];function n(s,h,l,m,p,c){return r(),e("div",null,i)}const u=t(a,[["render",n]]);export{b as __pageData,u as default}; diff --git a/assets/cn_compatibility.md.BclZlKgy.lean.js b/assets/cn_compatibility.md.BclZlKgy.lean.js new file mode 100644 index 000000000..04ac3919b --- /dev/null +++ b/assets/cn_compatibility.md.BclZlKgy.lean.js @@ -0,0 +1 @@ +import{_ as t,c as e,o as r,a1 as o}from"./chunks/framework.qh4ipt1c.js";const b=JSON.parse('{"title":"兼容性","description":"","frontmatter":{},"headers":[],"relativePath":"cn/compatibility.md","filePath":"cn/compatibility.md","lastUpdated":1715150893000}'),a={name:"cn/compatibility.md"},d=o("",6),i=[d];function n(s,h,l,m,p,c){return r(),e("div",null,i)}const u=t(a,[["render",n]]);export{b as __pageData,u as default}; diff --git a/assets/cn_database.md.DoUteAbj.js b/assets/cn_database.md.DoUteAbj.js new file mode 100644 index 000000000..8eefefafe --- /dev/null +++ b/assets/cn_database.md.DoUteAbj.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a1 as r}from"./chunks/framework.qh4ipt1c.js";const _=JSON.parse('{"title":"规则数据库","description":"","frontmatter":{},"headers":[],"relativePath":"cn/database.md","filePath":"cn/database.md","lastUpdated":1715150893000}'),o={name:"cn/database.md"},i=r('

规则数据库

Wedata.net

machsix.github.io

',5),l=[i];function n(s,h,d,c,p,u){return t(),a("div",null,l)}const b=e(o,[["render",n]]);export{_ as __pageData,b as default}; diff --git a/assets/cn_database.md.DoUteAbj.lean.js b/assets/cn_database.md.DoUteAbj.lean.js new file mode 100644 index 000000000..a82019cb2 --- /dev/null +++ b/assets/cn_database.md.DoUteAbj.lean.js @@ -0,0 +1 @@ +import{_ as e,c as a,o as t,a1 as r}from"./chunks/framework.qh4ipt1c.js";const _=JSON.parse('{"title":"规则数据库","description":"","frontmatter":{},"headers":[],"relativePath":"cn/database.md","filePath":"cn/database.md","lastUpdated":1715150893000}'),o={name:"cn/database.md"},i=r("",5),l=[i];function n(s,h,d,c,p,u){return t(),a("div",null,l)}const b=e(o,[["render",n]]);export{_ as __pageData,b as default}; diff --git a/assets/cn_develop.md.CXRZ5T5Y.js b/assets/cn_develop.md.CXRZ5T5Y.js new file mode 100644 index 000000000..a16fc4708 --- /dev/null +++ b/assets/cn_develop.md.CXRZ5T5Y.js @@ -0,0 +1 @@ +import{_ as e,c as o,o as r,a1 as a}from"./chunks/framework.qh4ipt1c.js";const m=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"cn/develop.md","filePath":"cn/develop.md","lastUpdated":1715150893000}'),t={name:"cn/develop.md"},c=a('

简介

开发主要在Github展开。 参加开发前请先完成以下步骤

  1. 安装node js, yarn
  2. fork it!
  3. 使用yarn安装相关依赖(主要是代码格式化以及 lint)。请不要使用npm由于npm无法正确解析vuepress的依赖
  4. 完整修改
  5. 使用yarn test检查代码格式及脚本的正确性
  6. 提交 PR,PR 前请使用git rebase将 commit 合并一个英文指南

脚本开发

你可以对任何文件进行合理修改

PR 请使用fix, fea, featurecore的前缀

规则的添加及修复

你可以对dist/mydata.jsonSuper_preloaderPlus_one_New.user.js进行合理修改

PR 请使用rule的前缀

请先学习JSON 格式,然后学习Xpath 选择器并尝试使用浏览器的开发者工具提取 XPath。

之后你就可以阅读站点规则学习规则的格式然后编写规则了 😄

在可能的情况下请优先对dist/mydata.json进行修改。

',13),l=[c];function s(d,p,i,n,u,h){return r(),o("div",null,l)}const f=e(t,[["render",s]]);export{m as __pageData,f as default}; diff --git a/assets/cn_develop.md.CXRZ5T5Y.lean.js b/assets/cn_develop.md.CXRZ5T5Y.lean.js new file mode 100644 index 000000000..bb710d7fb --- /dev/null +++ b/assets/cn_develop.md.CXRZ5T5Y.lean.js @@ -0,0 +1 @@ +import{_ as e,c as o,o as r,a1 as a}from"./chunks/framework.qh4ipt1c.js";const m=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"cn/develop.md","filePath":"cn/develop.md","lastUpdated":1715150893000}'),t={name:"cn/develop.md"},c=a("",13),l=[c];function s(d,p,i,n,u,h){return r(),o("div",null,l)}const f=e(t,[["render",s]]);export{m as __pageData,f as default}; diff --git a/assets/cn_example.md.OONiTRqv.js b/assets/cn_example.md.OONiTRqv.js new file mode 100644 index 000000000..551e5fc97 --- /dev/null +++ b/assets/cn_example.md.OONiTRqv.js @@ -0,0 +1 @@ +import{_ as a,a as e,b as t,c as o}from"./chunks/hhmm.apdfnDZY.js";import{_ as r,c as i,o as h,a1 as l}from"./chunks/framework.qh4ipt1c.js";const g=JSON.parse('{"title":"例子","description":"","frontmatter":{},"headers":[],"relativePath":"cn/example.md","filePath":"cn/example.md","lastUpdated":1715150893000}'),s={name:"cn/example.md"},c=l('

例子

搜索引擎

Google:

Google

Baidu

Baidu

漫画

XKCD:

XKCD

hhmm:

hhmm

',11),d=[c];function n(m,_,p,u,b,f){return h(),i("div",null,d)}const k=r(s,[["render",n]]);export{g as __pageData,k as default}; diff --git a/assets/cn_example.md.OONiTRqv.lean.js b/assets/cn_example.md.OONiTRqv.lean.js new file mode 100644 index 000000000..ea3fe8468 --- /dev/null +++ b/assets/cn_example.md.OONiTRqv.lean.js @@ -0,0 +1 @@ +import{_ as a,a as e,b as t,c as o}from"./chunks/hhmm.apdfnDZY.js";import{_ as r,c as i,o as h,a1 as l}from"./chunks/framework.qh4ipt1c.js";const g=JSON.parse('{"title":"例子","description":"","frontmatter":{},"headers":[],"relativePath":"cn/example.md","filePath":"cn/example.md","lastUpdated":1715150893000}'),s={name:"cn/example.md"},c=l("",11),d=[c];function n(m,_,p,u,b,f){return h(),i("div",null,d)}const k=r(s,[["render",n]]);export{g as __pageData,k as default}; diff --git a/assets/cn_faq.md.Bqy42Qi3.js b/assets/cn_faq.md.Bqy42Qi3.js new file mode 100644 index 000000000..c414320d3 --- /dev/null +++ b/assets/cn_faq.md.Bqy42Qi3.js @@ -0,0 +1,8 @@ +import{_ as a,c as e,o as s,a1 as n}from"./chunks/framework.qh4ipt1c.js";const f=JSON.parse('{"title":"Faq","description":"","frontmatter":{},"headers":[],"relativePath":"cn/faq.md","filePath":"cn/faq.md","lastUpdated":1715150893000}'),t={name:"cn/faq.md"},o=n(`

Faq

How to repquest rule?

To request rule, you should follow the following format


+    Title: [NSFW]Rule for www.example.com
+    Content:
+      Link: www.example.com/a.html
+      NSFW: yes or no
+      Screenshot:
+            xxx
+      Rule: (If you create one but fail, you'd better provide it to make life easier for me)

I won’t spend time on writing rules for those who don’t obey the rule.

`,5),p=[o];function l(r,i,c,d,u,h){return s(),e("div",null,p)}const m=a(t,[["render",l]]);export{f as __pageData,m as default}; diff --git a/assets/cn_faq.md.Bqy42Qi3.lean.js b/assets/cn_faq.md.Bqy42Qi3.lean.js new file mode 100644 index 000000000..d81d08b54 --- /dev/null +++ b/assets/cn_faq.md.Bqy42Qi3.lean.js @@ -0,0 +1 @@ +import{_ as a,c as e,o as s,a1 as n}from"./chunks/framework.qh4ipt1c.js";const f=JSON.parse('{"title":"Faq","description":"","frontmatter":{},"headers":[],"relativePath":"cn/faq.md","filePath":"cn/faq.md","lastUpdated":1715150893000}'),t={name:"cn/faq.md"},o=n("",5),p=[o];function l(r,i,c,d,u,h){return s(),e("div",null,p)}const m=a(t,[["render",l]]);export{f as __pageData,m as default}; diff --git a/assets/cn_index.md.B6yeXy3W.js b/assets/cn_index.md.B6yeXy3W.js new file mode 100644 index 000000000..f39025dff --- /dev/null +++ b/assets/cn_index.md.B6yeXy3W.js @@ -0,0 +1 @@ +import{_ as t}from"./chunks/logo.BLgnOXGY.js";import{c as a,l as e,a as r,m as s,a1 as o,o as i,g as l}from"./chunks/framework.qh4ipt1c.js";const n=e("p",{align:"center",class:"logo-img"},[e("img",{src:t,alt:"logo",width:"100"})],-1),_=e("h1",{align:"center",class:"logo-text"},"Super-preloader",-1),h=e("br",null,null,-1),p={class:"center"},d=e("a",{href:"https://greasyfork.org/en/scripts/33522-super-preloaderplus-one-new",target:"_blank"},"Greasy Fork",-1),c=e("a",{href:"https://github.com/machsix/Super-preloader/raw/master/dist/Super_preloaderPlus_one_New.user.js",target:"_blank"},"Github",-1),u=["href"],f=o('

简介

自动翻页脚本,由ywzhaiqi/Super_preloaderPlus修改而来。在此首先对作者swdyh, ywzhaiqiNLF致以谢意。swdyh 仍在频繁的更新规则以及开发扩展AutoPagerize

相比AutoPagerize, 该脚本的主要优势在于规则的定义和 DOM 的处理更加灵活。你不仅可以使用xpath selector定义规则,还可以直接使用JavaScript提取元素、修改页面(比如去广告DocumentFilter、增加新功能)等。另一方面,鉴于 swdyh 维护的规则主要针对日文用户,我也希望该脚本及相关规则能惠及中文、英文用户。

',4),P=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"cn/index.md","filePath":"cn/index.md","lastUpdated":1715150893000}'),g={name:"cn/index.md"},x=Object.assign(g,{setup(m){return(b,k)=>(i(),a("div",null,[n,_,h,e("div",p,[r("从"),d,r(", "),c,r(" 或 "),e("a",{href:s(l)("/Super_preloaderPlus_one_New.user.js"),target:"_blank"},"Dev version",8,u),r("安装")]),f]))}});export{P as __pageData,x as default}; diff --git a/assets/cn_index.md.B6yeXy3W.lean.js b/assets/cn_index.md.B6yeXy3W.lean.js new file mode 100644 index 000000000..6ed377354 --- /dev/null +++ b/assets/cn_index.md.B6yeXy3W.lean.js @@ -0,0 +1 @@ +import{_ as t}from"./chunks/logo.BLgnOXGY.js";import{c as a,l as e,a as r,m as s,a1 as o,o as i,g as l}from"./chunks/framework.qh4ipt1c.js";const n=e("p",{align:"center",class:"logo-img"},[e("img",{src:t,alt:"logo",width:"100"})],-1),_=e("h1",{align:"center",class:"logo-text"},"Super-preloader",-1),h=e("br",null,null,-1),p={class:"center"},d=e("a",{href:"https://greasyfork.org/en/scripts/33522-super-preloaderplus-one-new",target:"_blank"},"Greasy Fork",-1),c=e("a",{href:"https://github.com/machsix/Super-preloader/raw/master/dist/Super_preloaderPlus_one_New.user.js",target:"_blank"},"Github",-1),u=["href"],f=o("",4),P=JSON.parse('{"title":"简介","description":"","frontmatter":{},"headers":[],"relativePath":"cn/index.md","filePath":"cn/index.md","lastUpdated":1715150893000}'),g={name:"cn/index.md"},x=Object.assign(g,{setup(m){return(b,k)=>(i(),a("div",null,[n,_,h,e("div",p,[r("从"),d,r(", "),c,r(" 或 "),e("a",{href:s(l)("/Super_preloaderPlus_one_New.user.js"),target:"_blank"},"Dev version",8,u),r("安装")]),f]))}});export{P as __pageData,x as default}; diff --git a/assets/cn_siterule.md.BN7q6AiN.js b/assets/cn_siterule.md.BN7q6AiN.js new file mode 100644 index 000000000..3ae644bf4 --- /dev/null +++ b/assets/cn_siterule.md.BN7q6AiN.js @@ -0,0 +1,24 @@ +import{_ as o,D as a,c as r,l,a as e,I as s,a1 as i,o as h}from"./chunks/framework.qh4ipt1c.js";const ks=JSON.parse('{"title":"站点规则","description":"","frontmatter":{"sidebarDepth":3},"headers":[],"relativePath":"cn/siterule.md","filePath":"cn/siterule.md","lastUpdated":1715150893000}'),d={name:"cn/siterule.md"},c=i('

站点规则

站点规则可以是

我们更倾向于JSON data因为JSON可以实现热更新. 🌰 在文末.

规则的基本构成

name

',6),u=l("strong",null,"type",-1),p=l("code",null,"String",-1),_=l("li",null,[l("strong",null,"description"),e(": 站点名称")],-1),k=l("h3",{id:"url",tabindex:"-1"},[e("url "),l("a",{class:"header-anchor",href:"#url","aria-label":'Permalink to "url"'},"​")],-1),g=l("strong",null,"type",-1),E=l("code",null,"XPath String",-1),m=l("code",null,"XPath",-1),f=l("li",null,[l("strong",null,"description"),e(": 匹配站点的正则表达式")],-1),y={id:"exampleurl",tabindex:"-1"},b=l("a",{class:"header-anchor",href:"#exampleurl","aria-label":'Permalink to "exampleUrl "'},"​",-1),F=l("strong",null,"type",-1),x=l("code",null,"String",-1),S=l("li",null,[l("strong",null,"description"),e(": 地址范例")],-1),v=l("h3",{id:"enable",tabindex:"-1"},[e("enable "),l("a",{class:"header-anchor",href:"#enable","aria-label":'Permalink to "enable"'},"​")],-1),C=l("strong",null,"type",-1),P=l("code",null,"Boolean",-1),A=l("li",null,[l("strong",null,"default"),e(": "),l("code",null,"true")],-1),D=l("li",null,[l("strong",null,"description"),e(": 规则开关")],-1),T=l("h3",{id:"nextlink",tabindex:"-1"},[e("nextLink "),l("a",{class:"header-anchor",href:"#nextlink","aria-label":'Permalink to "nextLink"'},"​")],-1),B=l("p",null,[e("脚本依据"),l("code",null,"nextLink"),e("寻找"),l("code",null,"下一页"),e("的 URL,我们提供了多种方式:")],-1),j=l("p",null,[l("a",{href:"https://devhints.io/xpath",target:"_blank",rel:"noreferrer"},"XPath selector"),e(":拥有"),l("code",null,"href"),e("属性并指向下一页的元素 或 内容为下一页的元素")],-1),q=l("strong",null,"type",-1),N=l("code",null,"XPath String",-1),O=l("code",null,"XPath",-1),I=l("li",null,[l("strong",null,"example"),e(": "),l("code",null,'//div[@id="nav"]/a'),e(", "),l("code",null,'//div[@id="nav"]/a/@href'),e(",两者等效")],-1),J=l("p",null,[l("a",{href:"https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors",target:"_blank",rel:"noreferrer"},"CSS selector"),l("br")],-1),R=l("strong",null,"type",-1),w=l("code",null,"String",-1),V=l("li",null,[l("strong",null,"content"),e(": "),l("code",null,"css;${CSS selector}")],-1),L=l("li",null,[l("strong",null,"example"),e(": "),l("code",null,"css;div#nav>a")],-1),X=l("p",null,[l("a",{href:"./.html"},'"auto;"'),e("脚本会自动寻找所有"),l("code",null,"text()"),e("为“下一页”, “next page”等预定义的下一页文字且含有"),l("code",null,"href"),e("属性的"),l("code",null,"a"),e("的元素")],-1),W=l("strong",null,"type",-1),M=l("code",null,"String",-1),U=l("li",null,[l("strong",null,"content"),e(": "),l("code",null,"auto;"),e(" 无选项")],-1),z=l("p",null,[l("a",{href:"./.html"},"function"),e("返回值为下一页链接的"),l("code",null,"JS"),e("函数")],-1),H=l("strong",null,"type",-1),$=l("code",null,"JS function",-1),G=l("li",null,[l("strong",null,"content"),e(":")],-1),Y=i(`
js
function(currentDocument, currentWindow, currentPageURL) {
+  // **** your function is here ****
+  return urlOfNextPage
+}
`,1),K=l("li",null,[l("p",null,[l("a",{href:"./.html"},"Array"),e("脚本会遍历所有元素并使用 "),l("span",{style:{color:"blue","font-weight":"bold"}},"以上方法"),e(" 直至找到下一页链接地址")])],-1),Q=l("a",{href:"./.html"},"Object",-1),Z=l("code",null,"hrefInc",-1),ll={id:"prevlink",tabindex:"-1"},el=l("a",{class:"header-anchor",href:"#prevlink","aria-label":'Permalink to "prevLink "'},"​",-1),sl=l("p",null,[e("同"),l("a",{href:"#nextlink"},"nextLink"),e(", 然而基本没什么时候需要😂")],-1),nl=l("h3",{id:"pageelement",tabindex:"-1"},[e("pageElement "),l("a",{class:"header-anchor",href:"#pageelement","aria-label":'Permalink to "pageElement"'},"​")],-1),tl=l("p",null,[e("脚本根据"),l("code",null,"pageElement"),e("的定义查找自动翻页时拼接的元素。举个🌰,对于搜索引擎,"),l("code",null,"pageElement"),e("应为搜索的结果。 我们同样提供了以下方式:")],-1),il=l("p",null,[l("a",{href:"https://devhints.io/xpath",target:"_blank",rel:"noreferrer"},"XPath selector"),e(":拼接元素的"),l("code",null,"XPath selector")],-1),al=l("strong",null,"type",-1),ol=l("code",null,"XPath String",-1),rl=l("code",null,"XPath",-1),hl=l("li",null,[l("strong",null,"example"),e(": "),l("code",null,'//div[@id="content]')],-1),dl=l("p",null,[l("a",{href:"https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Selectors",target:"_blank",rel:"noreferrer"},"CSS selector"),l("br")],-1),cl=l("strong",null,"type",-1),ul=l("code",null,"String",-1),pl=l("li",null,[l("strong",null,"content"),e(": "),l("code",null,"css;${CSS selector}")],-1),_l=l("li",null,[l("strong",null,"example"),e(": "),l("code",null,"css;div#content")],-1),kl=l("p",null,[l("a",{href:"./.html"},"function"),e("返回拼接元素的"),l("a",{href:"https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection",target:"_blank",rel:"noreferrer"},"HTMLCollection"),e("的函数。 一个🌰是"),l("code",null,"WordPress"),e("的规则, 通过"),l("code",null,"JS"),e("函数我们可以判断一个页面是否是 post,如果不是就返回"),l("code",null,"null"),e("跳出脚本逻辑,如果是就返回 post 的内容。再一个🌰是某些漫画网站,我们可以使用"),l("code",null,"pageElement"),e("直接计算下一张图片的地址,从而避免加载无用的内容。")],-1),gl=l("strong",null,"type",-1),El=l("code",null,"JS function",-1),ml=l("li",null,[l("strong",null,"content"),e(":")],-1),fl=i(`
js
function(currentDocument, currentWindow, currentPageURL) {
+  // **** your function is here ****
+  return HTMLCollection
+}
`,1),yl=l("h2",{id:"规则的增强功能",tabindex:"-1"},[e("规则的增强功能 "),l("a",{class:"header-anchor",href:"#规则的增强功能","aria-label":'Permalink to "规则的增强功能"'},"​")],-1),bl=l("code",null,"key",-1),Fl=l("code",null,"autopager",-1),xl=l("code",null,"Object",-1),Sl=l("code",null,"autopager",-1),vl=l("code",null,"key",-1),Cl=l("code",null,"key",-1),Pl=l("h3",{id:"useiframe",tabindex:"-1"},[e("useiframe "),l("a",{class:"header-anchor",href:"#useiframe","aria-label":'Permalink to "useiframe"'},"​")],-1),Al=l("strong",null,"type",-1),Dl=l("code",null,"Boolean",-1),Tl=l("li",null,[l("strong",null,"default"),e(": "),l("code",null,"false")],-1),Bl=l("li",null,[l("strong",null,"description"),e(": 使用 iframe 读取内容而不使用"),l("a",{href:"https://developer.mozilla.org/en/docs/Web/API/XMLHttpRequest",target:"_blank",rel:"noreferrer"},"XHR")],-1),jl=l("h3",{id:"iloaded",tabindex:"-1"},[e("iloaded "),l("a",{class:"header-anchor",href:"#iloaded","aria-label":'Permalink to "iloaded"'},"​")],-1),ql=l("strong",null,"type",-1),Nl=l("code",null,"Boolean",-1),Ol=l("li",null,[l("strong",null,"default"),e(": "),l("code",null,"false")],-1),Il=l("li",null,[l("strong",null,"description"),e(": 是否在 iframe 完全 load 后操作..否则在 DOM 完成后操作")],-1),Jl=l("h3",{id:"itimeout",tabindex:"-1"},[e("itimeout "),l("a",{class:"header-anchor",href:"#itimeout","aria-label":'Permalink to "itimeout"'},"​")],-1),Rl=l("strong",null,"type",-1),wl=l("code",null,"Number",-1),Vl=l("li",null,[l("strong",null,"default"),e(": "),l("code",null,"0")],-1),Ll=l("li",null,[l("strong",null,"description"),e(": "),l("code",null,"iloaded"),e("为"),l("code",null,"false"),e("时的延迟,单位为毫秒")],-1),Xl=l("h3",{id:"newiframe",tabindex:"-1"},[e("newIframe "),l("a",{class:"header-anchor",href:"#newiframe","aria-label":'Permalink to "newIframe"'},"​")],-1),Wl=l("strong",null,"type",-1),Ml=l("code",null,"Boolean",-1),Ul=l("li",null,[l("strong",null,"default"),e(": "),l("code",null,"false")],-1),zl=l("li",null,[l("strong",null,"description"),e(": 当翻当前页面+2 时是否新建一个"),l("code",null,"iframe"),e(",在部分情况下有奇效")],-1),Hl=l("h3",{id:"reload",tabindex:"-1"},[e("reload "),l("a",{class:"header-anchor",href:"#reload","aria-label":'Permalink to "reload"'},"​")],-1),$l=l("strong",null,"type",-1),Gl=l("code",null,"Boolean",-1),Yl=l("li",null,[l("strong",null,"default"),e(": "),l("code",null,"false")],-1),Kl=l("li",null,[l("strong",null,"description"),e(": 强制重载"),l("code",null,"iframe"),e(",在部分情况下有奇效")],-1),Ql=l("h3",{id:"force-enable",tabindex:"-1"},[e("force_enable "),l("a",{class:"header-anchor",href:"#force-enable","aria-label":'Permalink to "force_enable"'},"​")],-1),Zl=l("strong",null,"type",-1),le=l("code",null,"Boolean",-1),ee=l("li",null,[l("strong",null,"default"),e(": "),l("code",null,"false")],-1),se=l("li",null,[l("strong",null,"description"),e(": 如果实在难以找出"),l("a",{href:"#pageelement"},"pageElement"),e(",开启该选项会使整个页面被拼接上去")],-1),ne=l("h3",{id:"headers",tabindex:"-1"},[e("headers "),l("a",{class:"header-anchor",href:"#headers","aria-label":'Permalink to "headers"'},"​")],-1),te=l("strong",null,"type",-1),ie=l("code",null,"Object",-1),ae=l("li",null,[l("strong",null,"default"),e(": "),l("code",null,"{ Referer: <本页链接> }")],-1),oe=l("li",null,[l("strong",null,"description"),e(": 自定义请求下一页的 headers")],-1),re=l("h3",{id:"remain",tabindex:"-1"},[e("remain "),l("a",{class:"header-anchor",href:"#remain","aria-label":'Permalink to "remain"'},"​")],-1),he=l("strong",null,"type",-1),de=l("code",null,"Number",-1),ce=i("
  • default: 1 总是预翻一页
  • description: 脚本会根据当前页面所剩余的高度决定是否翻页,当剩余高度 <= 页面高度 x remain 时开始翻页
  • ",2),ue=l("h3",{id:"maxpage",tabindex:"-1"},[e("maxpage "),l("a",{class:"header-anchor",href:"#maxpage","aria-label":'Permalink to "maxpage"'},"​")],-1),pe=l("strong",null,"type",-1),_e=l("code",null,"Number",-1),ke=l("li",null,[l("strong",null,"default"),e(": "),l("code",null,"99")],-1),ge=l("li",null,[l("strong",null,"description"),e(": 最多翻页次数")],-1),Ee=i(`

    mutationObserver

    iframe 监听选项,用来控制主页面和 iframe 之间的通讯,一个例子

    js
    {
    +  timeout: 1000,
    +  observers: {
    +    attributes: "//div[@class='x']",   // the node to monitor change of attributes
    +    addedNodes: "//div[@class='x']",   // the node to monitor MutationRecord.addedNodes
    +    removedNodes: "//div[@class='x']"  // the node to monitor MutationRecord.removedNodes
    +  }
    +}

    timeout:

    `,4),me=l("strong",null,"type",-1),fe=l("code",null,"Int",-1),ye=l("li",null,[l("strong",null,"default"),e(": null")],-1),be=l("li",null,[l("strong",null,"description"),e(": 延迟通讯时间")],-1),Fe=l("p",null,"observer:",-1),xe=l("strong",null,"type",-1),Se=l("code",null,"Array",-1),ve=l("li",null,[l("strong",null,"default"),e(": null")],-1),Ce=l("li",null,[l("strong",null,"description"),e(": mutationObserver 监控的 element 的 selector")],-1),Pe=l("h3",{id:"ipages",tabindex:"-1"},[e("ipages "),l("a",{class:"header-anchor",href:"#ipages","aria-label":'Permalink to "ipages"'},"​")],-1),Ae=l("strong",null,"type",-1),De=l("code",null,"Array",-1),Te=l("li",null,[l("strong",null,"default"),e(": "),l("code",null,"[false,2]")],-1),Be=l("li",null,[l("strong",null,"description"),e(": 立即翻页,第一项是控制是否在脚本加载的时候立即翻第二项(必须小于 maxpage)的页数,比如"),l("code",null,"[true,3]"),e(".就是说 JS 加载后.立即翻 3 页。对于图站可以有😂的体验")],-1),je=l("h3",{id:"separator",tabindex:"-1"},[e("separator "),l("a",{class:"header-anchor",href:"#separator","aria-label":'Permalink to "separator"'},"​")],-1),qe=l("strong",null,"type",-1),Ne=l("code",null,"Boolean",-1),Oe=l("li",null,[l("strong",null,"default"),e(": "),l("code",null,"true")],-1),Ie=l("li",null,[l("strong",null,"description"),e(": 是否显示翻页导航栏")],-1),Je=l("h3",{id:"sepdivdom",tabindex:"-1"},[e("sepdivDom "),l("a",{class:"header-anchor",href:"#sepdivdom","aria-label":'Permalink to "sepdivDom"'},"​")],-1),Re=l("strong",null,"type",-1),we=l("code",null,"JS function",-1),Ve=l("li",null,[l("strong",null,"description"),e(": 对于部分页面,脚本自动添加的导航栏可能造成页面格式错乱。"),l("code",null,"sepdivDom"),e("定义了一个函数来生成合适的导航栏,该导航栏会被插入在最后一个"),l("a",{href:"#pageelement"},"pageElement"),e("之后。 一个例子是"),l("code",null,"小木虫-帖子")],-1),Le=l("li",null,[l("strong",null,"example")],-1),Xe=i(`
    js
    function(currentDocument, sepdiv) {
    +  // currentDocument: 读取的下一页的DOM
    +  // sepdiv: 脚本生成的导航栏,tag为div
    +  const td = doc.createElement("td");
    +  td.appendChild(sepdiv);
    +  const tr = doc.createElement("tr");
    +  td.setAttribute("colspan", 2);
    +  tr.appendChild(td);
    +  const tbody = doc.createElement("tbody");
    +  return tbody;
    +},

    startFilter

    `,2),We=l("strong",null,"type",-1),Me=l("code",null,"JS function",-1),Ue=l("li",null,[l("strong",null,"description"),e(": 一个作用于首页(i.e. 当前页面)的 js 函数,用于修正页面。接收"),l("code",null,"currentDocument"),e(", "),l("code",null,"currentWindow"),e("两个参数。 详情请查看"),l("a",{href:"#documentfilter"},"documentFilter (1)")],-1),ze=l("h3",{id:"documentfilter",tabindex:"-1"},[e("documentFilter "),l("a",{class:"header-anchor",href:"#documentfilter","aria-label":'Permalink to "documentFilter"'},"​")],-1),He=l("a",{href:"./.html"},"JS function",-1),$e=l("ul",null,[l("li",null,[l("strong",null,"description"),e(": 一个作用于预读内容整体的 js 函数,执行于预读内容被插入到当前页面前。可以用来修正预读内容(比如 csdn)、去除广告(比如很多 nsfw)、根据 XHR 结果生成页面内容而避免使用 iframe(比如 bl-novel)甚至生成新的内容(比如 m-team)。 理论上你可以用 js 实现对 DOM 静态内容的修改")]),l("li",null,[l("strong",null,"content"),e(": "),l("code",null,"function (currentDocument, nextPageLink) {return newDocument}")])],-1),Ge=l("li",null,[l("a",{href:"./.html"},'"startFilter"'),l("ul",null,[l("li",null,[l("strong",null,"description"),e(": 重复使用"),l("a",{href:"#startfilter"},"startFilter")])])],-1),Ye=l("h3",{id:"scriptfilter",tabindex:"-1"},[e("scriptFilter "),l("a",{class:"header-anchor",href:"#scriptfilter","aria-label":'Permalink to "scriptFilter"'},"​")],-1),Ke=l("strong",null,"type",-1),Qe=l("li",null,[l("strong",null,"description"),e(": 在将预读内容插入到当前页面之前,脚本默认会移除所有的"),l("code",null," -
    Skip to content

    兼容性

    浏览器及脚本管理器

    Firefox + violentmonkey
    Firefox + Violentmonkey
    Chrome violentmonkey
    Chrome/Microsoft Edge Dev + Tampermonkey
    Microsoft Edge Dev+ violentmonkey
    Waterfox + Greasemonkey 4
    Firefox > ESRChrome > 45 , Edge Dev ChannelLatest
    • Script is tested under:

      • Firefox latest + Violentmonkey (Recommended combination)
      • Microsoft Edge Dev + Tampermonkey
      • Waterfox 56.3 + Greasemonkey 4.9
      • Chrome 48 + Tampermonkey
    • Known issue:

    漫画网站

    WebsiteChromeFirefox
    天极动漫频道新闻 yesky
    动漫之家 dmzj
    看漫画 manhuagui✅ X-Header
    CC 漫画网 tuku
    SF 在线漫画
    哦漫画 omanhua
    汗汗/虎虎漫画
    99 漫画
    酷酷动漫 kukudm
    天使漫画网 tsdm
    - +
    Skip to content

    兼容性

    浏览器及脚本管理器

    Firefox + violentmonkey
    Firefox + Violentmonkey
    Chrome violentmonkey
    Chrome/Microsoft Edge Dev + Tampermonkey
    Microsoft Edge Dev+ violentmonkey
    Waterfox + Greasemonkey 4
    Firefox > ESRChrome > 45 , Edge Dev ChannelLatest
    • Script is tested under:

      • Firefox latest + Violentmonkey (Recommended combination)
      • Microsoft Edge Dev + Tampermonkey
      • Waterfox 56.3 + Greasemonkey 4.9
      • Chrome 48 + Tampermonkey
    • Known issue:

    漫画网站

    WebsiteChromeFirefox
    天极动漫频道新闻 yesky
    动漫之家 dmzj
    看漫画 manhuagui✅ X-Header
    CC 漫画网 tuku
    SF 在线漫画
    哦漫画 omanhua
    汗汗/虎虎漫画
    99 漫画
    酷酷动漫 kukudm
    天使漫画网 tsdm
    + \ No newline at end of file diff --git a/cn/database.html b/cn/database.html index 4f5af21c6..894bd36e0 100644 --- a/cn/database.html +++ b/cn/database.html @@ -12,13 +12,13 @@ - + -
    Skip to content

    规则数据库

    Wedata.net

    machsix.github.io

    - +
    Skip to content

    规则数据库

    Wedata.net

    machsix.github.io

    + \ No newline at end of file diff --git a/cn/develop.html b/cn/develop.html index ed18f3d44..0f0f3dba8 100644 --- a/cn/develop.html +++ b/cn/develop.html @@ -12,13 +12,13 @@ - + -
    Skip to content

    简介

    开发主要在Github展开。 参加开发前请先完成以下步骤

    1. 安装node js, yarn
    2. fork it!
    3. 使用yarn安装相关依赖(主要是代码格式化以及 lint)。请不要使用npm由于npm无法正确解析vuepress的依赖
    4. 完整修改
    5. 使用yarn test检查代码格式及脚本的正确性
    6. 提交 PR,PR 前请使用git rebase将 commit 合并一个英文指南

    脚本开发

    你可以对任何文件进行合理修改

    PR 请使用fix, fea, featurecore的前缀

    • 当前需求主要列在issueproject中。

    • 目前的主要需求包括:

      + 固化Super_preloaderPlus_one_New.user.js

      + 将脚本分拆为函数,同时将规则从脚本中提取到mydata.json

      + 使用 ES8 重写Super_preloaderPlus_one_ES8.user.js

      • Beautify UI and use HTML template (maybe mustache-loader, vue is too big for such a tiny script)

    规则的添加及修复

    你可以对dist/mydata.jsonSuper_preloaderPlus_one_New.user.js进行合理修改

    PR 请使用rule的前缀

    请先学习JSON 格式,然后学习Xpath 选择器并尝试使用浏览器的开发者工具提取 XPath。

    之后你就可以阅读站点规则学习规则的格式然后编写规则了 😄

    在可能的情况下请优先对dist/mydata.json进行修改。

    - +
    Skip to content

    简介

    开发主要在Github展开。 参加开发前请先完成以下步骤

    1. 安装node js, yarn
    2. fork it!
    3. 使用yarn安装相关依赖(主要是代码格式化以及 lint)。请不要使用npm由于npm无法正确解析vuepress的依赖
    4. 完整修改
    5. 使用yarn test检查代码格式及脚本的正确性
    6. 提交 PR,PR 前请使用git rebase将 commit 合并一个英文指南

    脚本开发

    你可以对任何文件进行合理修改

    PR 请使用fix, fea, featurecore的前缀

    • 当前需求主要列在issueproject中。

    • 目前的主要需求包括:

      + 固化Super_preloaderPlus_one_New.user.js

      + 将脚本分拆为函数,同时将规则从脚本中提取到mydata.json

      + 使用 ES8 重写Super_preloaderPlus_one_ES8.user.js

      • Beautify UI and use HTML template (maybe mustache-loader, vue is too big for such a tiny script)

    规则的添加及修复

    你可以对dist/mydata.jsonSuper_preloaderPlus_one_New.user.js进行合理修改

    PR 请使用rule的前缀

    请先学习JSON 格式,然后学习Xpath 选择器并尝试使用浏览器的开发者工具提取 XPath。

    之后你就可以阅读站点规则学习规则的格式然后编写规则了 😄

    在可能的情况下请优先对dist/mydata.json进行修改。

    + \ No newline at end of file diff --git a/cn/example.html b/cn/example.html index 942b3c373..56e54866d 100644 --- a/cn/example.html +++ b/cn/example.html @@ -13,13 +13,13 @@ - + -
    Skip to content

    例子

    搜索引擎

    Google:

    Google

    Baidu

    Baidu

    漫画

    XKCD:

    XKCD

    hhmm:

    hhmm

    - +
    Skip to content

    例子

    搜索引擎

    Google:

    Google

    Baidu

    Baidu

    漫画

    XKCD:

    XKCD

    hhmm:

    hhmm

    + \ No newline at end of file diff --git a/cn/faq.html b/cn/faq.html index c9e552a88..96312e442 100644 --- a/cn/faq.html +++ b/cn/faq.html @@ -12,7 +12,7 @@ - + @@ -24,8 +24,8 @@ NSFW: yes or no Screenshot: xxx - Rule: (If you create one but fail, you'd better provide it to make life easier for me)

    I won’t spend time on writing rules for those who don’t obey the rule.

    - + Rule: (If you create one but fail, you'd better provide it to make life easier for me)

    I won’t spend time on writing rules for those who don’t obey the rule.

    + \ No newline at end of file diff --git a/cn/index.html b/cn/index.html index c35f37ee9..1e727b6f0 100644 --- a/cn/index.html +++ b/cn/index.html @@ -13,13 +13,13 @@ - + -
    Skip to content

    logo

    Super-preloader



    简介

    自动翻页脚本,由ywzhaiqi/Super_preloaderPlus修改而来。在此首先对作者swdyh, ywzhaiqiNLF致以谢意。swdyh 仍在频繁的更新规则以及开发扩展AutoPagerize

    相比AutoPagerize, 该脚本的主要优势在于规则的定义和 DOM 的处理更加灵活。你不仅可以使用xpath selector定义规则,还可以直接使用JavaScript提取元素、修改页面(比如去广告DocumentFilter、增加新功能)等。另一方面,鉴于 swdyh 维护的规则主要针对日文用户,我也希望该脚本及相关规则能惠及中文、英文用户。

    - +
    Skip to content

    logo

    Super-preloader



    简介

    自动翻页脚本,由ywzhaiqi/Super_preloaderPlus修改而来。在此首先对作者swdyh, ywzhaiqiNLF致以谢意。swdyh 仍在频繁的更新规则以及开发扩展AutoPagerize

    相比AutoPagerize, 该脚本的主要优势在于规则的定义和 DOM 的处理更加灵活。你不仅可以使用xpath selector定义规则,还可以直接使用JavaScript提取元素、修改页面(比如去广告DocumentFilter、增加新功能)等。另一方面,鉴于 swdyh 维护的规则主要针对日文用户,我也希望该脚本及相关规则能惠及中文、英文用户。

    + \ No newline at end of file diff --git a/cn/siterule.html b/cn/siterule.html index 4559a7ae7..6c0290325 100644 --- a/cn/siterule.html +++ b/cn/siterule.html @@ -12,7 +12,7 @@ - + @@ -40,8 +40,8 @@ tr.appendChild(td); const tbody = doc.createElement("tbody"); return tbody; -},

    startFilter

    • type: JS function JS
    • description: 一个作用于首页(i.e. 当前页面)的 js 函数,用于修正页面。接收currentDocument, currentWindow两个参数。 详情请查看documentFilter (1)

    documentFilter

    1. JS function JS
      • description: 一个作用于预读内容整体的 js 函数,执行于预读内容被插入到当前页面前。可以用来修正预读内容(比如 csdn)、去除广告(比如很多 nsfw)、根据 XHR 结果生成页面内容而避免使用 iframe(比如 bl-novel)甚至生成新的内容(比如 m-team)。 理论上你可以用 js 实现对 DOM 静态内容的修改
      • content: function (currentDocument, nextPageLink) {return newDocument}
    2. "startFilter"

    scriptFilter

    • type: String JSJSON
    • description: 在将预读内容插入到当前页面之前,脚本默认会移除所有的<script>元素。 如果你想保留某些<script>, 可以讲 scriptFilter 设置为一个匹配 inline code 或者 src 的正则表达式。 可以参考站点 kongregate

    filter

    1. JS function JS
      • description: 一个作用预读内容 element 的 js 函数,执行于预读内容被插入到当前页面后。
      • content: function (pageElements) {return null}

    stylish

    • type: String JSJSON
    • description: 用于修正页面的CSS 样式

    replaceE

    • description: 类似pageElement, 选择用于替换导航栏的node

    例子

    https://github.com/machsix/Super-preloader/raw/master/dist/mydata.json

    - +},

    startFilter

    • type: JS function JS
    • description: 一个作用于首页(i.e. 当前页面)的 js 函数,用于修正页面。接收currentDocument, currentWindow两个参数。 详情请查看documentFilter (1)

    documentFilter

    1. JS function JS
      • description: 一个作用于预读内容整体的 js 函数,执行于预读内容被插入到当前页面前。可以用来修正预读内容(比如 csdn)、去除广告(比如很多 nsfw)、根据 XHR 结果生成页面内容而避免使用 iframe(比如 bl-novel)甚至生成新的内容(比如 m-team)。 理论上你可以用 js 实现对 DOM 静态内容的修改
      • content: function (currentDocument, nextPageLink) {return newDocument}
    2. "startFilter"

    scriptFilter

    • type: String JSJSON
    • description: 在将预读内容插入到当前页面之前,脚本默认会移除所有的<script>元素。 如果你想保留某些<script>, 可以讲 scriptFilter 设置为一个匹配 inline code 或者 src 的正则表达式。 可以参考站点 kongregate

    filter

    1. JS function JS
      • description: 一个作用预读内容 element 的 js 函数,执行于预读内容被插入到当前页面后。
      • content: function (pageElements) {return null}

    stylish

    • type: String JSJSON
    • description: 用于修正页面的CSS 样式

    replaceE

    • description: 类似pageElement, 选择用于替换导航栏的node

    例子

    https://github.com/machsix/Super-preloader/raw/master/dist/mydata.json

    + \ No newline at end of file diff --git a/compatibility.html b/compatibility.html index bfb0eeb3d..3966332da 100644 --- a/compatibility.html +++ b/compatibility.html @@ -12,13 +12,13 @@ - + -
    Skip to content

    Compatibility

    Browser + Script Manager

    Firefox + violentmonkey
    Firefox + Violentmonkey
    Chrome violentmonkey
    Chrome/Microsoft Edge Dev + Tampermonkey
    Microsoft Edge Dev+ violentmonkey
    Waterfox + Greasemonkey 4
    Firefox > ESRChrome > 45 , Edge Dev ChannelLatest
    • Script is tested under:

      • Firefox latest + Violentmonkey (Recommended combination)
      • Microsoft Edge Dev + Tampermonkey
      • Waterfox 56.3 + Greasemonkey 4.9
      • Chrome 48 + Tampermonkey
    • Known issue:

    Manga websites

    WebsiteChromeFirefox
    天极动漫频道新闻 yesky
    动漫之家 dmzj
    看漫画 manhuagui✅ X-Header
    CC 漫画网 tuku
    SF 在线漫画
    哦漫画 omanhua
    汗汗/虎虎漫画
    99 漫画
    酷酷动漫 kukudm
    天使漫画网 tsdm
    - +
    Skip to content

    Compatibility

    Browser + Script Manager

    Firefox + violentmonkey
    Firefox + Violentmonkey
    Chrome violentmonkey
    Chrome/Microsoft Edge Dev + Tampermonkey
    Microsoft Edge Dev+ violentmonkey
    Waterfox + Greasemonkey 4
    Firefox > ESRChrome > 45 , Edge Dev ChannelLatest
    • Script is tested under:

      • Firefox latest + Violentmonkey (Recommended combination)
      • Microsoft Edge Dev + Tampermonkey
      • Waterfox 56.3 + Greasemonkey 4.9
      • Chrome 48 + Tampermonkey
    • Known issue:

    Manga websites

    WebsiteChromeFirefox
    天极动漫频道新闻 yesky
    动漫之家 dmzj
    看漫画 manhuagui✅ X-Header
    CC 漫画网 tuku
    SF 在线漫画
    哦漫画 omanhua
    汗汗/虎虎漫画
    99 漫画
    酷酷动漫 kukudm
    天使漫画网 tsdm
    + \ No newline at end of file diff --git a/database.html b/database.html index 28365cfce..3ee163041 100644 --- a/database.html +++ b/database.html @@ -12,13 +12,13 @@ - + -
    Skip to content

    Database

    Wedata.net

    machsix.github.io

    - +
    Skip to content

    Database

    Wedata.net

    machsix.github.io

    + \ No newline at end of file diff --git a/example.html b/example.html index eb4653c54..e9de50c63 100644 --- a/example.html +++ b/example.html @@ -13,13 +13,13 @@ - + -
    Skip to content

    Example

    Search Engine

    Google:

    Google

    Baidu

    Baidu

    Manga

    XKCD:

    XKCD

    hhmm:

    hhmm

    - +
    Skip to content

    Example

    Search Engine

    Google:

    Google

    Baidu

    Baidu

    Manga

    XKCD:

    XKCD

    hhmm:

    hhmm

    + \ No newline at end of file diff --git a/faq.html b/faq.html index 007091438..9ed36f07e 100644 --- a/faq.html +++ b/faq.html @@ -12,7 +12,7 @@ - + @@ -24,8 +24,8 @@ NSFW: yes or no Screenshot: xxx - Rule: (If you create one but fail, you'd better provide it to make life easier for me)

    I won’t spend time writing rules for those who don’t obey this.

    - + Rule: (If you create one but fail, you'd better provide it to make life easier for me)

    I won’t spend time writing rules for those who don’t obey this.

    + \ No newline at end of file diff --git a/hashmap.json b/hashmap.json index 2bb2e36e3..a2e95e87c 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"index.md":"B-VkCBg5","cn_example.md":"C1LVQ_ed","siterule.md":"DYsQHBca","compatibility.md":"BI7A23S1","cn_database.md":"0MAp0LYl","faq.md":"GcAR8P0d","cn_compatibility.md":"DFXspByW","cn_develop.md":"BfMaFYH0","cn_index.md":"DiJrdMqx","database.md":"CBUxs3Nf","example.md":"CjslsAG_","cn_faq.md":"DKPUHfL4","cn_siterule.md":"D7WIuG0H"} +{"cn_faq.md":"Bqy42Qi3","cn_index.md":"B6yeXy3W","cn_develop.md":"CXRZ5T5Y","cn_database.md":"DoUteAbj","index.md":"acYz5P1e","database.md":"V3GpuHdV","faq.md":"CWrjSBd0","compatibility.md":"DToehLF-","example.md":"BsIBA-yV","cn_siterule.md":"BN7q6AiN","cn_example.md":"OONiTRqv","cn_compatibility.md":"BclZlKgy","siterule.md":"PcV0dGJu"} diff --git a/index.html b/index.html index b3f9598f6..78cb83fcf 100644 --- a/index.html +++ b/index.html @@ -13,13 +13,13 @@ - + -
    Skip to content

    logo

    Super-preloader


    Install from JS Delivr, Github DEV or here

    Introduction

    An userscript to preload next page and join pages together.

    The script is forked from ywzhaiqi/Super_preloaderPlus. Thanks to the original author swdyh, ywzhaiqi and NLF. swdyh is still actively improving rules and developing the Chrome extension, AutoPagerize

    This userscript is more powerful than AutoPagerize in the sense that it has more flexibility for the method to define rules. You can not only use xpath selector link to derive the url for the next page, but also use JavaScript function to achieve the goal. You are also able to correct the content if the automatic rule is not perfect since we provide DocumentFilter.

    The other reason for the existence of this userscript is because someone needs to maintain the rules for Chinese and English users since swdyh’s rules are mainly for Japanese websites. Don’t be afraid of the fact that most feedbacks are in Chinese. I would like to add rules for English users if I could. Feel free to leave feedback.

    - +
    Skip to content

    logo

    Super-preloader


    Install from JS Delivr, Github DEV or here

    Introduction

    An userscript to preload next page and join pages together.

    The script is forked from ywzhaiqi/Super_preloaderPlus. Thanks to the original author swdyh, ywzhaiqi and NLF. swdyh is still actively improving rules and developing the Chrome extension, AutoPagerize

    This userscript is more powerful than AutoPagerize in the sense that it has more flexibility for the method to define rules. You can not only use xpath selector link to derive the url for the next page, but also use JavaScript function to achieve the goal. You are also able to correct the content if the automatic rule is not perfect since we provide DocumentFilter.

    The other reason for the existence of this userscript is because someone needs to maintain the rules for Chinese and English users since swdyh’s rules are mainly for Japanese websites. Don’t be afraid of the fact that most feedbacks are in Chinese. I would like to add rules for English users if I could. Feel free to leave feedback.

    + \ No newline at end of file diff --git a/mydata_detail.json b/mydata_detail.json index dd90f636a..86c8f3c12 100644 --- a/mydata_detail.json +++ b/mydata_detail.json @@ -1 +1 @@ -{"created_by":"mach6","name":"Super-preloader","updated_at":"2024-05-08T05:26:58.000Z","required_keys":"url nextLink pageElement","created_at":"2017-09-27T00:00:00.000Z","resource_url":"https://machsix.github.io/Super-preloader/mydata.json","description":"Rule for Super_preloaderPlus_one_New","permit_other_keys":true} \ No newline at end of file +{"created_by":"mach6","name":"Super-preloader","updated_at":"2024-05-08T06:48:13.000Z","required_keys":"url nextLink pageElement","created_at":"2017-09-27T00:00:00.000Z","resource_url":"https://machsix.github.io/Super-preloader/mydata.json","description":"Rule for Super_preloaderPlus_one_New","permit_other_keys":true} \ No newline at end of file diff --git a/siterule.html b/siterule.html index b9271e9de..b50810817 100644 --- a/siterule.html +++ b/siterule.html @@ -12,7 +12,7 @@ - + @@ -33,8 +33,8 @@ tr.appendChild(td); Const tbody = doc.createElement("tbody"); Return tbody; -},

    startFilter

    • type: JS function JS
    • description: A js function that acts on the home page (i.e. current page) to fix the page. Receive currentDocument, currentWindow two parameters. For details, please see documentFilter (1)

    documentFilter

    1. JS function JS
      • description: A js function for prefetching content that can be used to correct prefetched content (such as csdn), remove ads (such as many nsfw), generate page content based on XHR results, and avoid using iframes (such as bl -novel) even generate new content (like m-team). In theory, you can use js to modify the static content of DOM.
      • content: function (currentDocument, nextPageLink) {return newDocument}
    2. "startFilter"

    scriptFilter

    • type: String JSJSON
    • description: The script will delete all <script> nodes before inserting the preloaded content into the page. You can set scriptFilter as a Regex string to match the src or inline content of the <script> node to keep some nodes. In this way, you can use these inline js scripts in the filter. This only take effect in iframe mode

    filter

    1. JS function JS
      • description: a js function to manipulate with the preloaded content once it is inserted into the page
      • content: function (pageElements) {return null}

    stylish

    replaceE

    • description: Similar to pageElement, select the node to replace the navigation bar.

    example

    https://github.com/machsix/Super-preloader/raw/master/dist/mydata.json

    - +},

    startFilter

    • type: JS function JS
    • description: A js function that acts on the home page (i.e. current page) to fix the page. Receive currentDocument, currentWindow two parameters. For details, please see documentFilter (1)

    documentFilter

    1. JS function JS
      • description: A js function for prefetching content that can be used to correct prefetched content (such as csdn), remove ads (such as many nsfw), generate page content based on XHR results, and avoid using iframes (such as bl -novel) even generate new content (like m-team). In theory, you can use js to modify the static content of DOM.
      • content: function (currentDocument, nextPageLink) {return newDocument}
    2. "startFilter"

    scriptFilter

    • type: String JSJSON
    • description: The script will delete all <script> nodes before inserting the preloaded content into the page. You can set scriptFilter as a Regex string to match the src or inline content of the <script> node to keep some nodes. In this way, you can use these inline js scripts in the filter. This only take effect in iframe mode

    filter

    1. JS function JS
      • description: a js function to manipulate with the preloaded content once it is inserted into the page
      • content: function (pageElements) {return null}

    stylish

    replaceE

    • description: Similar to pageElement, select the node to replace the navigation bar.

    example

    https://github.com/machsix/Super-preloader/raw/master/dist/mydata.json

    + \ No newline at end of file