{"version":3,"file":"environment.umd.js","sources":["../node_modules/core-js/internals/global.js","../node_modules/core-js/internals/fails.js","../node_modules/core-js/internals/descriptors.js","../node_modules/core-js/internals/is-object.js","../node_modules/core-js/internals/document-create-element.js","../node_modules/core-js/internals/ie8-dom-define.js","../node_modules/core-js/internals/an-object.js","../node_modules/core-js/internals/to-primitive.js","../node_modules/core-js/internals/object-define-property.js","../node_modules/core-js/internals/create-property-descriptor.js","../node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/core-js/internals/set-global.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/has.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/native-symbol.js","../node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/internals/to-string-tag-support.js","../node_modules/core-js/internals/inspect-source.js","../node_modules/core-js/internals/internal-state.js","../node_modules/core-js/internals/native-weak-map.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/redefine.js","../node_modules/core-js/internals/classof-raw.js","../node_modules/core-js/internals/classof.js","../node_modules/core-js/internals/object-to-string.js","../node_modules/core-js/modules/es.object.to-string.js","../node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/core-js/internals/indexed-object.js","../node_modules/core-js/internals/require-object-coercible.js","../node_modules/core-js/internals/to-indexed-object.js","../node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/core-js/internals/path.js","../node_modules/core-js/internals/get-built-in.js","../node_modules/core-js/internals/to-integer.js","../node_modules/core-js/internals/to-length.js","../node_modules/core-js/internals/to-absolute-index.js","../node_modules/core-js/internals/array-includes.js","../node_modules/core-js/internals/object-keys-internal.js","../node_modules/core-js/internals/enum-bug-keys.js","../node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/core-js/internals/own-keys.js","../node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/core-js/internals/is-forced.js","../node_modules/core-js/internals/export.js","../node_modules/core-js/internals/native-promise-constructor.js","../node_modules/core-js/internals/set-to-string-tag.js","../node_modules/core-js/internals/set-species.js","../node_modules/core-js/internals/a-function.js","../node_modules/core-js/internals/iterators.js","../node_modules/core-js/internals/is-array-iterator-method.js","../node_modules/core-js/internals/bind-context.js","../node_modules/core-js/internals/get-iterator-method.js","../node_modules/core-js/internals/call-with-safe-iteration-closing.js","../node_modules/core-js/internals/iterate.js","../node_modules/core-js/internals/check-correctness-of-iteration.js","../node_modules/core-js/internals/task.js","../node_modules/core-js/internals/species-constructor.js","../node_modules/core-js/internals/html.js","../node_modules/core-js/internals/user-agent.js","../node_modules/core-js/internals/is-ios.js","../node_modules/core-js/internals/microtask.js","../node_modules/core-js/internals/v8-version.js","../node_modules/core-js/internals/new-promise-capability.js","../node_modules/core-js/internals/promise-resolve.js","../node_modules/core-js/internals/perform.js","../node_modules/core-js/modules/es.promise.js","../node_modules/core-js/internals/host-report-errors.js","../node_modules/core-js/internals/an-instance.js","../node_modules/core-js/internals/redefine-all.js","../node_modules/core-js/modules/es.promise.all-settled.js","../node_modules/core-js/modules/es.promise.finally.js","../node_modules/core-js/internals/string-multibyte.js","../node_modules/core-js/internals/iterators-core.js","../node_modules/core-js/internals/correct-prototype-getter.js","../node_modules/core-js/internals/object-get-prototype-of.js","../node_modules/core-js/internals/to-object.js","../node_modules/core-js/internals/object-keys.js","../node_modules/core-js/internals/object-define-properties.js","../node_modules/core-js/internals/object-create.js","../node_modules/core-js/internals/create-iterator-constructor.js","../node_modules/core-js/internals/object-set-prototype-of.js","../node_modules/core-js/internals/a-possible-prototype.js","../node_modules/core-js/internals/define-iterator.js","../node_modules/core-js/modules/es.string.iterator.js","../node_modules/core-js/modules/esnext.aggregate-error.js","../node_modules/core-js/modules/esnext.promise.any.js","../node_modules/core-js/modules/esnext.promise.try.js","../node_modules/core-js/internals/dom-iterables.js","../node_modules/core-js/internals/add-to-unscopables.js","../node_modules/core-js/modules/es.array.iterator.js","../node_modules/core-js/modules/web.dom-collections.iterator.js","../node_modules/framebus/lib/framebus.js","../node_modules/@researchmetrics/event-bus/src/event-bus.js","../node_modules/@researchmetrics/app-wrapper/src/app-wrapper.js","../node_modules/@researchmetrics/callback-registry/src/callback-registry.js","../node_modules/@researchmetrics/platform-bridge-factory/src/platform-bridge-factory.js","../node_modules/platform/platform.js","../src/environment-errors.js","../src/environment-web-implementation.js","../src/environment-bridge-api.js","../src/environment.js"],"sourcesContent":["var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.4.8',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol() == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar redefine = require('../internals/redefine');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","exports.f = Object.getOwnPropertySymbols;\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","module.exports = {};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('../internals/an-object');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\nvar bind = require('../internals/bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/is-ios');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var userAgent = require('../internals/user-agent');\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar classof = require('../internals/classof-raw');\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/is-ios');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var global = require('../internals/global');\nvar userAgent = require('../internals/user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar classof = require('../internals/classof-raw');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar fails = require('../internals/fails');\nvar getBuiltIn = require('../internals/get-built-in');\nvar speciesConstructor = require('../internals/species-constructor');\nvar promiseResolve = require('../internals/promise-resolve');\nvar redefine = require('../internals/redefine');\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar PROTOTYPE = 'prototype';\nvar Empty = function () { /* empty */ };\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var length = enumBugKeys.length;\n var lt = '<';\n var script = 'script';\n var gt = '>';\n var js = 'java' + script + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n iframe.src = String(js);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]];\n return createDict();\n};\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\nhiddenKeys[IE_PROTO] = true;\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar iterate = require('../internals/iterate');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalAggregateErrorState = InternalStateModule.getterFor('AggregateError');\n\nvar $AggregateError = function AggregateError(errors, message) {\n var that = this;\n if (!(that instanceof $AggregateError)) return new $AggregateError(errors, message);\n if (setPrototypeOf) {\n that = setPrototypeOf(new Error(message), getPrototypeOf(that));\n }\n var errorsArray = [];\n iterate(errors, errorsArray.push, errorsArray);\n if (DESCRIPTORS) setInternalState(that, { errors: errorsArray, type: 'AggregateError' });\n else that.errors = errorsArray;\n if (message !== undefined) createNonEnumerableProperty(that, 'message', String(message));\n return that;\n};\n\n$AggregateError.prototype = create(Error.prototype, {\n constructor: createPropertyDescriptor(5, $AggregateError),\n message: createPropertyDescriptor(5, ''),\n name: createPropertyDescriptor(5, 'AggregateError')\n});\n\nif (DESCRIPTORS) defineProperty.f($AggregateError.prototype, 'errors', {\n get: function () {\n return getInternalAggregateErrorState(this).errors;\n },\n configurable: true\n});\n\n$({ global: true }, {\n AggregateError: $AggregateError\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar aFunction = require('../internals/a-function');\nvar getBuiltIn = require('../internals/get-built-in');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\nvar PROMISE_ANY_ERROR = 'No one promise resolved';\n\n// `Promise.any` method\n// https://github.com/tc39/proposal-promise-any\n$({ target: 'Promise', stat: true }, {\n any: function any(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var errors = [];\n var counter = 0;\n var remaining = 1;\n var alreadyResolved = false;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyRejected = false;\n errors.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyResolved = true;\n resolve(value);\n }, function (e) {\n if (alreadyRejected || alreadyResolved) return;\n alreadyRejected = true;\n errors[index] = e;\n --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));\n });\n });\n --remaining || reject(new (getBuiltIn('AggregateError'))(errors, PROMISE_ANY_ERROR));\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\n\n// `Promise.try` method\n// https://github.com/tc39/proposal-promise-try\n$({ target: 'Promise', stat: true }, {\n 'try': function (callbackfn) {\n var promiseCapability = newPromiseCapabilityModule.f(this);\n var result = perform(callbackfn);\n (result.error ? promiseCapability.reject : promiseCapability.resolve)(result.value);\n return promiseCapability.promise;\n }\n});\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n createNonEnumerableProperty(ArrayPrototype, UNSCOPABLES, create(null));\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","'use strict';\n\nvar win, framebus;\nvar popups = [];\nvar subscribers = {};\nvar prefix = '/*framebus*/';\n\nfunction include(popup) {\n if (popup == null) { return false; }\n if (popup.Window == null) { return false; }\n if (popup.constructor !== popup.Window) { return false; }\n\n popups.push(popup);\n return true;\n}\n\nfunction target(origin) {\n var key;\n var targetedFramebus = {};\n\n for (key in framebus) {\n if (!framebus.hasOwnProperty(key)) { continue; }\n\n targetedFramebus[key] = framebus[key];\n }\n\n targetedFramebus._origin = origin || '*';\n\n return targetedFramebus;\n}\n\nfunction publish(event) {\n var payload, args;\n var origin = _getOrigin(this); // eslint-disable-line no-invalid-this\n\n if (_isntString(event)) { return false; }\n if (_isntString(origin)) { return false; }\n\n args = Array.prototype.slice.call(arguments, 1);\n\n payload = _packagePayload(event, args, origin);\n if (payload === false) { return false; }\n\n _broadcast(win.top || win.self, payload, origin);\n\n return true;\n}\n\nfunction subscribe(event, fn) {\n var origin = _getOrigin(this); // eslint-disable-line no-invalid-this\n\n if (_subscriptionArgsInvalid(event, fn, origin)) { return false; }\n\n subscribers[origin] = subscribers[origin] || {};\n subscribers[origin][event] = subscribers[origin][event] || [];\n subscribers[origin][event].push(fn);\n\n return true;\n}\n\nfunction unsubscribe(event, fn) {\n var i, subscriberList;\n var origin = _getOrigin(this); // eslint-disable-line no-invalid-this\n\n if (_subscriptionArgsInvalid(event, fn, origin)) { return false; }\n\n subscriberList = subscribers[origin] && subscribers[origin][event];\n if (!subscriberList) { return false; }\n\n for (i = 0; i < subscriberList.length; i++) {\n if (subscriberList[i] === fn) {\n subscriberList.splice(i, 1);\n return true;\n }\n }\n\n return false;\n}\n\nfunction _getOrigin(scope) {\n return scope && scope._origin || '*';\n}\n\nfunction _isntString(string) {\n return typeof string !== 'string';\n}\n\nfunction _packagePayload(event, args, origin) {\n var packaged = false;\n var payload = {\n event: event,\n origin: origin\n };\n var reply = args[args.length - 1];\n\n if (typeof reply === 'function') {\n payload.reply = _subscribeReplier(reply, origin);\n args = args.slice(0, -1);\n }\n\n payload.args = args;\n\n try {\n packaged = prefix + JSON.stringify(payload);\n } catch (e) {\n throw new Error('Could not stringify event: ' + e.message);\n }\n return packaged;\n}\n\nfunction _unpackPayload(e) {\n var payload, replyOrigin, replySource, replyEvent;\n\n if (e.data.slice(0, prefix.length) !== prefix) { return false; }\n\n try {\n payload = JSON.parse(e.data.slice(prefix.length));\n } catch (err) {\n return false;\n }\n\n if (payload.reply != null) {\n replyOrigin = e.origin;\n replySource = e.source;\n replyEvent = payload.reply;\n\n payload.reply = function reply(data) { // eslint-disable-line consistent-return\n var replyPayload;\n\n if (!replySource) { return false; }\n\n replyPayload = _packagePayload(replyEvent, [data], replyOrigin);\n\n if (replyPayload === false) { return false; }\n\n replySource.postMessage(replyPayload, replyOrigin);\n };\n\n payload.args.push(payload.reply);\n }\n\n return payload;\n}\n\nfunction _attach(w) {\n if (win) { return; }\n win = w || global;\n\n if (win.addEventListener) {\n win.addEventListener('message', _onmessage, false);\n } else if (win.attachEvent) {\n win.attachEvent('onmessage', _onmessage);\n } else if (win.onmessage === null) {\n win.onmessage = _onmessage;\n } else {\n win = null;\n }\n}\n\n// removeIf(production)\nfunction _detach() {\n if (win == null) { return; }\n\n if (win.removeEventListener) {\n win.removeEventListener('message', _onmessage, false);\n } else if (win.detachEvent) {\n win.detachEvent('onmessage', _onmessage);\n } else if (win.onmessage === _onmessage) {\n win.onmessage = null;\n }\n\n win = null;\n popups = [];\n subscribers = {};\n}\n// endRemoveIf(production)\n\nfunction _uuid() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0;\n var v = c === 'x' ? r : r & 0x3 | 0x8;\n\n return v.toString(16);\n });\n}\n\nfunction _onmessage(e) {\n var payload;\n\n if (_isntString(e.data)) { return; }\n\n payload = _unpackPayload(e);\n if (!payload) { return; }\n\n _dispatch('*', payload.event, payload.args, e);\n _dispatch(e.origin, payload.event, payload.args, e);\n _broadcastPopups(e.data, payload.origin, e.source);\n}\n\nfunction _dispatch(origin, event, args, e) {\n var i;\n\n if (!subscribers[origin]) { return; }\n if (!subscribers[origin][event]) { return; }\n\n for (i = 0; i < subscribers[origin][event].length; i++) {\n subscribers[origin][event][i].apply(e, args);\n }\n}\n\nfunction _hasOpener(frame) {\n if (frame.top !== frame) { return false; }\n if (frame.opener == null) { return false; }\n if (frame.opener === frame) { return false; }\n if (frame.opener.closed === true) { return false; }\n\n return true;\n}\n\nfunction _broadcast(frame, payload, origin) {\n var i = 0;\n var frameToBroadcastTo;\n\n try {\n frame.postMessage(payload, origin);\n\n if (_hasOpener(frame)) {\n _broadcast(frame.opener.top, payload, origin);\n }\n\n // previously, our max value was frame.frames.length\n // but frames.length inherits from window.length\n // which can be overwritten if a developer does\n // `var length = value;` outside of a function\n // scope, it'll prevent us from looping through\n // all the frames. With this, we loop through\n // until there are no longer any frames\n while (frameToBroadcastTo = frame.frames[i]) { // eslint-disable-line no-cond-assign\n _broadcast(frameToBroadcastTo, payload, origin);\n i++;\n }\n } catch (_) { /* ignored */ }\n}\n\nfunction _broadcastPopups(payload, origin, source) {\n var i, popup;\n\n for (i = popups.length - 1; i >= 0; i--) {\n popup = popups[i];\n\n if (popup.closed === true) {\n popups = popups.slice(i, 1);\n } else if (source !== popup) {\n _broadcast(popup.top, payload, origin);\n }\n }\n}\n\nfunction _subscribeReplier(fn, origin) {\n var uuid = _uuid();\n\n function replier(d, o) {\n fn(d, o);\n framebus.target(origin).unsubscribe(uuid, replier);\n }\n\n framebus.target(origin).subscribe(uuid, replier);\n return uuid;\n}\n\nfunction _subscriptionArgsInvalid(event, fn, origin) {\n if (_isntString(event)) { return true; }\n if (typeof fn !== 'function') { return true; }\n if (_isntString(origin)) { return true; }\n\n return false;\n}\n\n_attach();\n\nframebus = {\n target: target,\n // removeIf(production)\n _packagePayload: _packagePayload,\n _unpackPayload: _unpackPayload,\n _attach: _attach,\n _detach: _detach,\n _dispatch: _dispatch,\n _broadcast: _broadcast,\n _subscribeReplier: _subscribeReplier,\n _subscriptionArgsInvalid: _subscriptionArgsInvalid,\n _onmessage: _onmessage,\n _uuid: _uuid,\n _getSubscribers: function () { return subscribers; },\n _win: function () { return win; },\n // endRemoveIf(production)\n include: include,\n publish: publish,\n pub: publish,\n trigger: publish,\n emit: publish,\n subscribe: subscribe,\n sub: subscribe,\n on: subscribe,\n unsubscribe: unsubscribe,\n unsub: unsubscribe,\n off: unsubscribe\n};\n\nmodule.exports = framebus;\n","import framebus from 'framebus'\r\n\r\n/* eslint-disable no-unused-vars */\r\n\r\nconst getTarget = function(target) {\r\n return '*'\r\n}\r\n\r\nconst eventBus = {\r\n publish: function(event, args, target, callback) {\r\n target = getTarget(target)\r\n return framebus.target(target).emit(event, args, callback)\r\n },\r\n emit: function(event, args, target, callback) {\r\n return this.publish(event, args, target, callback)\r\n },\r\n trigger: function(event, args, target, callback) {\r\n return this.publish(event, args, target, callback)\r\n },\r\n pub: function(event, args, target, callback) {\r\n return this.publish(event, args, target, callback)\r\n },\r\n subscribe: function(event, callback, target) {\r\n target = getTarget(target)\r\n return framebus.target(target).subscribe(event, callback)\r\n },\r\n sub: function(event, callback, target) {\r\n return this.subscribe(event, callback, target)\r\n },\r\n on: function(event, callback, target) {\r\n return this.subscribe(event, callback, target)\r\n },\r\n unsubscribe: function(event, callback, target) {\r\n target = getTarget(target)\r\n return framebus.target(target).unsubscribe(event, callback)\r\n },\r\n unsub: function(event, callback, target) {\r\n return this.unsubscribe(event, callback, target)\r\n },\r\n off: function(event, callback, target) {\r\n return this.unsubscribe(event, callback, target)\r\n }\r\n}\r\n\r\nexport default eventBus\r\n","import eventBus from '@researchmetrics/event-bus'\r\n\r\nconst EventTitles = {\r\n 'AppWrapper.ToolbarButtonTap': 'AppWrapper.ToolbarButtonTap',\r\n toolbarBackButtonShow: 'toolbar-back-button-show',\r\n toolbarBackButtonHide: 'toolbar-back-button-hide',\r\n toolbarTitleUpdate: 'toolbar-title-update',\r\n surveyOpen: 'app-wrapper-open-survey',\r\n contentLoad: 'app-wrapper-load-content',\r\n setModalEvent: 'app-wrapper-set-modal',\r\n setBackBtnEvent: 'app-back-button',\r\n goBackEvent: 'app-go-back',\r\n loadingShow: 'loading-show',\r\n loadingHide: 'loading-hide',\r\n menuBadgeUpdate: 'menu-badge-update',\r\n callbackRegistryDelegate: 'callback-registry-delegate',\r\n callbackRegistryResolve: 'callback-registry-resolve'\r\n}\r\n\r\nlet loadingCounter = 0\r\n\r\nconst Loading = {\r\n show: function() {\r\n if (loadingCounter < 0) {\r\n loadingCounter = 0\r\n }\r\n loadingCounter++\r\n eventBus.publish(EventTitles.loadingShow, '')\r\n },\r\n hide: function(forced) {\r\n if (forced) {\r\n loadingCounter = 0\r\n } else {\r\n loadingCounter--\r\n }\r\n if (loadingCounter <= 0) {\r\n eventBus.publish(EventTitles.loadingHide, '')\r\n }\r\n }\r\n}\r\n\r\nconst Toolbar = {\r\n buttons: {\r\n back: {\r\n id: 'rm-toolbar-back',\r\n name: 'Back'\r\n },\r\n close: {\r\n id: 'rm-toolbar-close',\r\n name: 'Close'\r\n }\r\n },\r\n show: function() {},\r\n hide: function() {},\r\n addItems: function() {},\r\n removeItems: function() {},\r\n showBackButton: function() {\r\n eventBus.publish(EventTitles.toolbarBackButtonShow, '')\r\n },\r\n hideBackButton: function() {\r\n eventBus.publish(EventTitles.toolbarBackButtonHide, '')\r\n },\r\n showCloseButton: function() {},\r\n hideCloseButton: function() {},\r\n setTitle: function(titleText) {\r\n eventBus.publish(EventTitles.toolbarTitleUpdate, titleText)\r\n },\r\n setTitleBadge: function() {}\r\n}\r\n\r\nconst Menu = {\r\n setBadge: function(badgeData) {\r\n eventBus.publish(EventTitles.menuBadgeUpdate, badgeData)\r\n }\r\n}\r\n\r\nconst Wrapper = {\r\n loadURL: function(params) {\r\n eventBus.publish(EventTitles.contentLoad, params)\r\n },\r\n openSurvey: function(surveyInstanceID) {\r\n eventBus.publish(EventTitles.surveyOpen, {\r\n surveyInstanceID: surveyInstanceID\r\n })\r\n },\r\n setActiveItem: function() {}\r\n}\r\n/*\r\nconst Event = {\r\n toolbarButtonTap: function() {}\r\n}\r\n*/\r\nexport { EventTitles }\r\nexport { Toolbar }\r\nexport { Loading }\r\nexport { Wrapper }\r\nexport { Menu }\r\n\r\nexport default {\r\n Loading: Loading,\r\n EventTitles: EventTitles,\r\n Toolbar: Toolbar,\r\n Wrapper: Wrapper,\r\n Menu: Menu\r\n}\r\n","/* eslint-disable prettier/prettier */\r\n/* eslint-disable no-console */\r\n/* eslint-disable no-unused-vars */\r\n/**\r\n * This class is private. Singleton class for storing callback functions and executing them by id in later time. Used in the mobile apps.\r\n *\r\n * @singleton\r\n * @type {RM_CallbackRegistry}\r\n * @Class RM.CallbackRegistry\r\n * @static\r\n * @private\r\n */\r\n\r\nimport { EventTitles as eventTitles } from '@researchmetrics/app-wrapper'\r\nimport eventBus from '@researchmetrics/event-bus'\r\n\r\nlet defaultExport = ''\r\nif(window && window.RM && typeof window.RM.CallbackRegistry === \"object\"){\r\n defaultExport = window.RM.CallbackRegistry\r\n} else {\r\n const _callbackRegistryConstructor = function() {\r\n // eslint-disable-next-line prefer-const\r\n let _instance = null\r\n const _getInstance = function() {\r\n if (!_instance) {\r\n const isInFrame = (function() {\r\n try {\r\n return window.self !== window.top\r\n } catch (e) {\r\n return true\r\n }\r\n })()\r\n _instance = {\r\n eventBus: eventBus,\r\n eventTitles: eventTitles,\r\n registry: {},\r\n idCounter: 1001,\r\n generateGUID: function() {\r\n let strSource = ''\r\n \r\n strSource += new Date().getTime().toString(16)\r\n strSource += (new Date().getTimezoneOffset() + 12 * 60).toString(16)\r\n \r\n for (let counter0 = 0; counter0 < 5; counter0++) {\r\n strSource += parseInt(\r\n Math.random()\r\n .toString()\r\n .slice(2)\r\n ).toString(16)\r\n }\r\n \r\n return (\r\n '{' +\r\n strSource.slice(0, 8) +\r\n '-' +\r\n strSource.slice(8, 12) +\r\n '-' +\r\n strSource.slice(12, 16) +\r\n '-' +\r\n strSource.slice(16, 20) +\r\n '-' +\r\n strSource.slice(20, 32) +\r\n '}'\r\n ).toUpperCase()\r\n },\r\n \r\n /**\r\n * Register a function\r\n * @example\r\n * ```javascript\r\n * (function (){\r\n * var regid = RM.CallbackRegistry.register(this, function (){ console.log(arguments); } );\r\n *\r\n * RM.CallbackRegistry.execute(regid, \"callback param1\", \"2\");\r\n * })();\r\n * ```\r\n * @private\r\n * @method register\r\n * @param {Object} context The context will be this for the callback\r\n * @param {Function} func The callback\r\n * @return {Number} Id in the registry. Use it to call the callback\r\n */\r\n register: function(context, func) {\r\n const id = this.idCounter++\r\n const _this = this\r\n \r\n this.registry[id] = {\r\n func: func,\r\n context: context\r\n }\r\n // to do - fix the documentation\r\n \r\n return new Promise(function(resolve, reject) {\r\n if (isInFrame) {\r\n // the platform bridge in the top window must handle requests from below\r\n /* console.log(\r\n 'Callback registry REGISTER SLAVE - will publish',\r\n _this.eventTitles.platformBridgeDelegate\r\n ) */\r\n const requestGUID = _this.generateGUID()\r\n _this.registry[requestGUID] = id\r\n \r\n _this.eventBus.publish(\r\n _this.eventTitles.callbackRegistryDelegate,\r\n {\r\n requestGUID: requestGUID\r\n },\r\n '*',\r\n function(registeredID) {\r\n /* console.log('Callback registry RESOLVE SLAVE REGISTERED') */\r\n resolve(registeredID)\r\n }\r\n )\r\n } else {\r\n /* console.log('Callback registry REGISTER MASTER') */\r\n resolve(id)\r\n }\r\n })\r\n },\r\n /**\r\n * Execute the callback. After execution the callback is evicted from the registry.\r\n * @method execute\r\n * @private\r\n * @param {Number} callbackId The id of the callback to be executed\r\n * @param {Object} param Parameter passed to the callback\r\n * @param {Object} param All following parameters are passed to the callback\r\n */\r\n execute: function() {\r\n // console.log('Callback registry EXECUTE', arguments)\r\n const id = arguments[0]\r\n \r\n const args = []\r\n for (let a = 1; a < arguments.length; a++) {\r\n args.push(arguments[a])\r\n }\r\n \r\n const callback = this.registry[id]\r\n callback.func.apply(callback.context, args)\r\n \r\n delete this.registry[id]\r\n },\r\n registerChildCallback: function(eventPayload, callback) {\r\n // eventPayload contains request guid\r\n // console.log('Callback registry REGISTER SLAVE CALLBACK', eventPayload)\r\n const requestGUID = eventPayload.requestGUID\r\n const id = this.idCounter++\r\n const _this = this\r\n \r\n this.registry[id] = {\r\n func: function() {\r\n // args - the result returned from NATIVE code\r\n const args = []\r\n for (const k in arguments) {\r\n args.push(arguments[k])\r\n }\r\n _this.eventBus.publish(\r\n _this.eventTitles.callbackRegistryResolve,\r\n {\r\n requestGUID: requestGUID,\r\n arguments: args\r\n }\r\n )\r\n },\r\n context: this\r\n }\r\n \r\n callback(id)\r\n },\r\n resolveDelegated: function(eventPayload) {\r\n // eventPayload contains request guid\r\n // console.log('Callback registry RESOLVE DELEGATED', eventPayload)\r\n const requestGUID = eventPayload.requestGUID\r\n if (typeof this.registry[requestGUID] !== 'undefined') {\r\n const that = this\r\n const args = [this.registry[requestGUID]]\r\n for (const k in eventPayload.arguments) {\r\n args.push(eventPayload.arguments[k])\r\n }\r\n this.execute.apply(that, args)\r\n }\r\n }\r\n }\r\n \r\n if (isInFrame) {\r\n // if in an inner iframe, the registry must listen for its callback request being resolved by the top\r\n eventBus.subscribe(\r\n eventTitles.callbackRegistryResolve,\r\n _instance.resolveDelegated.bind(_instance),\r\n '*'\r\n )\r\n } else {\r\n // the platform bridge in the top window must handle requests from below\r\n eventBus.subscribe(\r\n eventTitles.callbackRegistryDelegate,\r\n _instance.registerChildCallback.bind(_instance),\r\n '*'\r\n )\r\n }\r\n \r\n if (typeof window.RM !== 'object') {\r\n window.RM = {}\r\n }\r\n if (typeof window.RM.CallbackRegistry !== 'object') {\r\n window.RM.CallbackRegistry = _instance\r\n }\r\n }\r\n return _instance\r\n }\r\n \r\n return _getInstance()\r\n }\r\n\r\n defaultExport = new _callbackRegistryConstructor()\r\n}\r\n\r\nexport default defaultExport\r\n","/* eslint-disable new-cap */\r\n/* eslint-disable no-unused-vars */\r\n/* eslint-disable spaced-comment */\r\n/* eslint-disable no-var */\r\n/* eslint-disable no-console */\r\n/**\r\n * MobiAudit v6 interface bridge factory class.\r\n * Requires CallbackRegistry.\r\n *\r\n *\r\n * @class PlatformBridgeFactory\r\n * @static\r\n * @author vdimov\r\n */\r\nimport CallbackRegistry from '@researchmetrics/callback-registry'\r\n\r\nconst platformBridgeFactory = function() {\r\n // eslint-disable-next-line prefer-const\r\n let _instance = null\r\n const _getInstance = function() {\r\n if (!_instance) {\r\n var root = window\r\n\r\n _instance = {\r\n webPlatformBridgeAPISuffix: 'WebImplementation',\r\n create: function(APIObject, APIName, source, preferredPlatform) {\r\n var platform = 'web'\r\n var platformBridge = null\r\n\r\n if (preferredPlatform === 'web') {\r\n platformBridge = new this.platformBridgeWeb(\r\n APIName + this.webPlatformBridgeAPISuffix,\r\n source\r\n )\r\n } else if (typeof RMAndroidNativeApp === 'object') {\r\n platform = 'Android'\r\n platformBridge = new this.platformBridgeAndroid(\r\n APIName,\r\n CallbackRegistry\r\n )\r\n } else if (typeof RMIOS === 'object') {\r\n platform = 'iOS'\r\n platformBridge = new this.platformBridgeIOS(\r\n APIName,\r\n CallbackRegistry\r\n )\r\n } else {\r\n platformBridge = new this.platformBridgeWeb(\r\n APIName + this.webPlatformBridgeAPISuffix,\r\n source\r\n )\r\n }\r\n\r\n this.wirePlatformMethods(APIObject, platformBridge)\r\n APIObject.platform = platform\r\n return platformBridge\r\n },\r\n platformBridgeIOS: function(APIName, CallbackRegistry) {\r\n this.APIName = APIName\r\n this.CallbackRegistry = CallbackRegistry\r\n\r\n this.execute = function(methodName, args) {\r\n var _this = this\r\n var _args = Array.prototype.slice.call(args, 0)\r\n var _originalArgumentsCount = _args.length\r\n\r\n // We are cleaning up 'undefine'-s because they are trasmited as null\r\n // in the native. The native then cant diferenciate between null and\r\n // undefined coming from the js side. Generally undefined is not a valid\r\n // argument for a javascript method that calls the native\r\n _args = _args.filter(argument => argument !== undefined)\r\n const _CallbackRegistry = this.CallbackRegistry\r\n return new Promise(function(resolve, reject) {\r\n var handlerExists = !!root.webkit.messageHandlers\r\n .iOS_Native_Bridge\r\n\r\n if (!handlerExists) {\r\n var errorMessaage =\r\n \"iOS js-native bridge has no messageHandler exposed named '\" +\r\n \"iOS_Native_Bridge'\"\r\n reject(new Error(errorMessaage))\r\n return\r\n }\r\n\r\n _CallbackRegistry\r\n .register(_this, function(data) {\r\n var parsedData = JSON.parse(data)\r\n if (!parsedData.error) {\r\n resolve(parsedData.result)\r\n } else {\r\n reject(parsedData.error)\r\n }\r\n })\r\n .then(function(callbackId) {\r\n var data = {\r\n APIName: APIName,\r\n methodName: methodName,\r\n callbackID: callbackId,\r\n arguments: _args,\r\n originalArgumentsCount: _originalArgumentsCount\r\n }\r\n\r\n root.webkit.messageHandlers.iOS_Native_Bridge.postMessage(\r\n data\r\n )\r\n })\r\n })\r\n }\r\n },\r\n\r\n platformBridgeAndroid: function(APIName, CallbackRegistry) {\r\n this.APIName = APIName\r\n this.CallbackRegistry = CallbackRegistry\r\n\r\n this.execute = function(methodName, args) {\r\n var _this = this\r\n var _args = args\r\n const _CallbackRegistry = this.CallbackRegistry\r\n return new Promise(function(resolve, reject) {\r\n _CallbackRegistry\r\n .register(_this, function(status, data) {\r\n if (status) {\r\n resolve(JSON.parse(data))\r\n } else {\r\n try {\r\n data = JSON.parse(data)\r\n } catch (e) {\r\n reject(e, data)\r\n }\r\n reject(data)\r\n }\r\n })\r\n .then(function(callbackId) {\r\n var callArgs = []\r\n callArgs.push(callbackId)\r\n if (_args.length > 0) {\r\n for (var i = 0, size = _args.length; i < size; i++) {\r\n if (typeof _args[i] === 'object') {\r\n _args[i] = JSON.stringify(_args[i])\r\n }\r\n }\r\n\r\n callArgs = callArgs.concat(\r\n Array.prototype.slice.call(_args, 0)\r\n )\r\n }\r\n root[_this.APIName][methodName].apply(\r\n root[_this.APIName],\r\n callArgs\r\n )\r\n })\r\n })\r\n }\r\n },\r\n\r\n platformBridgeWeb: function(APIName, source) {\r\n this.APIName = APIName\r\n this.source = source\r\n\r\n this.execute = function(methodName, args) {\r\n var _this = this\r\n var _args = args\r\n return new Promise(function(resolve, reject) {\r\n var callArgs = []\r\n callArgs.push(resolve, reject)\r\n if (_args.length > 0) {\r\n callArgs = callArgs.concat(Array.prototype.slice.call(_args, 0))\r\n }\r\n _this.source[methodName].apply(_this.source, callArgs)\r\n })\r\n }\r\n },\r\n\r\n wirePlatformMethods: function(APIObject, platformBridge) {\r\n var propNames = Object.keys(APIObject)\r\n for (var prop in propNames) {\r\n var propName = propNames[prop]\r\n\r\n APIObject[propName] = (function(pn) {\r\n return function() {\r\n return platformBridge.execute(pn, arguments)\r\n }\r\n })(propName)\r\n }\r\n }\r\n }\r\n }\r\n return _instance\r\n }\r\n\r\n return _getInstance()\r\n}\r\n\r\nexport default new platformBridgeFactory()\r\n","/*!\n * Platform.js \n * Copyright 2014-2018 Benjamin Tan \n * Copyright 2011-2013 John-David Dalton \n * Available under MIT license \n */\n;(function() {\n 'use strict';\n\n /** Used to determine if values are of the language type `Object`. */\n var objectTypes = {\n 'function': true,\n 'object': true\n };\n\n /** Used as a reference to the global object. */\n var root = (objectTypes[typeof window] && window) || this;\n\n /** Backup possible global object. */\n var oldRoot = root;\n\n /** Detect free variable `exports`. */\n var freeExports = objectTypes[typeof exports] && exports;\n\n /** Detect free variable `module`. */\n var freeModule = objectTypes[typeof module] && module && !module.nodeType && module;\n\n /** Detect free variable `global` from Node.js or Browserified code and use it as `root`. */\n var freeGlobal = freeExports && freeModule && typeof global == 'object' && global;\n if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal)) {\n root = freeGlobal;\n }\n\n /**\n * Used as the maximum length of an array-like object.\n * See the [ES6 spec](http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength)\n * for more details.\n */\n var maxSafeInteger = Math.pow(2, 53) - 1;\n\n /** Regular expression to detect Opera. */\n var reOpera = /\\bOpera/;\n\n /** Possible global object. */\n var thisBinding = this;\n\n /** Used for native method references. */\n var objectProto = Object.prototype;\n\n /** Used to check for own properties of an object. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to resolve the internal `[[Class]]` of values. */\n var toString = objectProto.toString;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Capitalizes a string value.\n *\n * @private\n * @param {string} string The string to capitalize.\n * @returns {string} The capitalized string.\n */\n function capitalize(string) {\n string = String(string);\n return string.charAt(0).toUpperCase() + string.slice(1);\n }\n\n /**\n * A utility function to clean up the OS name.\n *\n * @private\n * @param {string} os The OS name to clean up.\n * @param {string} [pattern] A `RegExp` pattern matching the OS name.\n * @param {string} [label] A label for the OS.\n */\n function cleanupOS(os, pattern, label) {\n // Platform tokens are defined at:\n // http://msdn.microsoft.com/en-us/library/ms537503(VS.85).aspx\n // http://web.archive.org/web/20081122053950/http://msdn.microsoft.com/en-us/library/ms537503(VS.85).aspx\n var data = {\n '10.0': '10',\n '6.4': '10 Technical Preview',\n '6.3': '8.1',\n '6.2': '8',\n '6.1': 'Server 2008 R2 / 7',\n '6.0': 'Server 2008 / Vista',\n '5.2': 'Server 2003 / XP 64-bit',\n '5.1': 'XP',\n '5.01': '2000 SP1',\n '5.0': '2000',\n '4.0': 'NT',\n '4.90': 'ME'\n };\n // Detect Windows version from platform tokens.\n if (pattern && label && /^Win/i.test(os) && !/^Windows Phone /i.test(os) &&\n (data = data[/[\\d.]+$/.exec(os)])) {\n os = 'Windows ' + data;\n }\n // Correct character case and cleanup string.\n os = String(os);\n\n if (pattern && label) {\n os = os.replace(RegExp(pattern, 'i'), label);\n }\n\n os = format(\n os.replace(/ ce$/i, ' CE')\n .replace(/\\bhpw/i, 'web')\n .replace(/\\bMacintosh\\b/, 'Mac OS')\n .replace(/_PowerPC\\b/i, ' OS')\n .replace(/\\b(OS X) [^ \\d]+/i, '$1')\n .replace(/\\bMac (OS X)\\b/, '$1')\n .replace(/\\/(\\d)/, ' $1')\n .replace(/_/g, '.')\n .replace(/(?: BePC|[ .]*fc[ \\d.]+)$/i, '')\n .replace(/\\bx86\\.64\\b/gi, 'x86_64')\n .replace(/\\b(Windows Phone) OS\\b/, '$1')\n .replace(/\\b(Chrome OS \\w+) [\\d.]+\\b/, '$1')\n .split(' on ')[0]\n );\n\n return os;\n }\n\n /**\n * An iteration utility for arrays and objects.\n *\n * @private\n * @param {Array|Object} object The object to iterate over.\n * @param {Function} callback The function called per iteration.\n */\n function each(object, callback) {\n var index = -1,\n length = object ? object.length : 0;\n\n if (typeof length == 'number' && length > -1 && length <= maxSafeInteger) {\n while (++index < length) {\n callback(object[index], index, object);\n }\n } else {\n forOwn(object, callback);\n }\n }\n\n /**\n * Trim and conditionally capitalize string values.\n *\n * @private\n * @param {string} string The string to format.\n * @returns {string} The formatted string.\n */\n function format(string) {\n string = trim(string);\n return /^(?:webOS|i(?:OS|P))/.test(string)\n ? string\n : capitalize(string);\n }\n\n /**\n * Iterates over an object's own properties, executing the `callback` for each.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} callback The function executed per own property.\n */\n function forOwn(object, callback) {\n for (var key in object) {\n if (hasOwnProperty.call(object, key)) {\n callback(object[key], key, object);\n }\n }\n }\n\n /**\n * Gets the internal `[[Class]]` of a value.\n *\n * @private\n * @param {*} value The value.\n * @returns {string} The `[[Class]]`.\n */\n function getClassOf(value) {\n return value == null\n ? capitalize(value)\n : toString.call(value).slice(8, -1);\n }\n\n /**\n * Host objects can return type values that are different from their actual\n * data type. The objects we are concerned with usually return non-primitive\n * types of \"object\", \"function\", or \"unknown\".\n *\n * @private\n * @param {*} object The owner of the property.\n * @param {string} property The property to check.\n * @returns {boolean} Returns `true` if the property value is a non-primitive, else `false`.\n */\n function isHostType(object, property) {\n var type = object != null ? typeof object[property] : 'number';\n return !/^(?:boolean|number|string|undefined)$/.test(type) &&\n (type == 'object' ? !!object[property] : true);\n }\n\n /**\n * Prepares a string for use in a `RegExp` by making hyphens and spaces optional.\n *\n * @private\n * @param {string} string The string to qualify.\n * @returns {string} The qualified string.\n */\n function qualify(string) {\n return String(string).replace(/([ -])(?!$)/g, '$1?');\n }\n\n /**\n * A bare-bones `Array#reduce` like utility function.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function called per iteration.\n * @returns {*} The accumulated result.\n */\n function reduce(array, callback) {\n var accumulator = null;\n each(array, function(value, index) {\n accumulator = callback(accumulator, value, index, array);\n });\n return accumulator;\n }\n\n /**\n * Removes leading and trailing whitespace from a string.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} The trimmed string.\n */\n function trim(string) {\n return String(string).replace(/^ +| +$/g, '');\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Creates a new platform object.\n *\n * @memberOf platform\n * @param {Object|string} [ua=navigator.userAgent] The user agent string or\n * context object.\n * @returns {Object} A platform object.\n */\n function parse(ua) {\n\n /** The environment context object. */\n var context = root;\n\n /** Used to flag when a custom context is provided. */\n var isCustomContext = ua && typeof ua == 'object' && getClassOf(ua) != 'String';\n\n // Juggle arguments.\n if (isCustomContext) {\n context = ua;\n ua = null;\n }\n\n /** Browser navigator object. */\n var nav = context.navigator || {};\n\n /** Browser user agent string. */\n var userAgent = nav.userAgent || '';\n\n ua || (ua = userAgent);\n\n /** Used to flag when `thisBinding` is the [ModuleScope]. */\n var isModuleScope = isCustomContext || thisBinding == oldRoot;\n\n /** Used to detect if browser is like Chrome. */\n var likeChrome = isCustomContext\n ? !!nav.likeChrome\n : /\\bChrome\\b/.test(ua) && !/internal|\\n/i.test(toString.toString());\n\n /** Internal `[[Class]]` value shortcuts. */\n var objectClass = 'Object',\n airRuntimeClass = isCustomContext ? objectClass : 'ScriptBridgingProxyObject',\n enviroClass = isCustomContext ? objectClass : 'Environment',\n javaClass = (isCustomContext && context.java) ? 'JavaPackage' : getClassOf(context.java),\n phantomClass = isCustomContext ? objectClass : 'RuntimeObject';\n\n /** Detect Java environments. */\n var java = /\\bJava/.test(javaClass) && context.java;\n\n /** Detect Rhino. */\n var rhino = java && getClassOf(context.environment) == enviroClass;\n\n /** A character to represent alpha. */\n var alpha = java ? 'a' : '\\u03b1';\n\n /** A character to represent beta. */\n var beta = java ? 'b' : '\\u03b2';\n\n /** Browser document object. */\n var doc = context.document || {};\n\n /**\n * Detect Opera browser (Presto-based).\n * http://www.howtocreate.co.uk/operaStuff/operaObject.html\n * http://dev.opera.com/articles/view/opera-mini-web-content-authoring-guidelines/#operamini\n */\n var opera = context.operamini || context.opera;\n\n /** Opera `[[Class]]`. */\n var operaClass = reOpera.test(operaClass = (isCustomContext && opera) ? opera['[[Class]]'] : getClassOf(opera))\n ? operaClass\n : (opera = null);\n\n /*------------------------------------------------------------------------*/\n\n /** Temporary variable used over the script's lifetime. */\n var data;\n\n /** The CPU architecture. */\n var arch = ua;\n\n /** Platform description array. */\n var description = [];\n\n /** Platform alpha/beta indicator. */\n var prerelease = null;\n\n /** A flag to indicate that environment features should be used to resolve the platform. */\n var useFeatures = ua == userAgent;\n\n /** The browser/environment version. */\n var version = useFeatures && opera && typeof opera.version == 'function' && opera.version();\n\n /** A flag to indicate if the OS ends with \"/ Version\" */\n var isSpecialCasedOS;\n\n /* Detectable layout engines (order is important). */\n var layout = getLayout([\n { 'label': 'EdgeHTML', 'pattern': 'Edge' },\n 'Trident',\n { 'label': 'WebKit', 'pattern': 'AppleWebKit' },\n 'iCab',\n 'Presto',\n 'NetFront',\n 'Tasman',\n 'KHTML',\n 'Gecko'\n ]);\n\n /* Detectable browser names (order is important). */\n var name = getName([\n 'Adobe AIR',\n 'Arora',\n 'Avant Browser',\n 'Breach',\n 'Camino',\n 'Electron',\n 'Epiphany',\n 'Fennec',\n 'Flock',\n 'Galeon',\n 'GreenBrowser',\n 'iCab',\n 'Iceweasel',\n 'K-Meleon',\n 'Konqueror',\n 'Lunascape',\n 'Maxthon',\n { 'label': 'Microsoft Edge', 'pattern': 'Edge' },\n 'Midori',\n 'Nook Browser',\n 'PaleMoon',\n 'PhantomJS',\n 'Raven',\n 'Rekonq',\n 'RockMelt',\n { 'label': 'Samsung Internet', 'pattern': 'SamsungBrowser' },\n 'SeaMonkey',\n { 'label': 'Silk', 'pattern': '(?:Cloud9|Silk-Accelerated)' },\n 'Sleipnir',\n 'SlimBrowser',\n { 'label': 'SRWare Iron', 'pattern': 'Iron' },\n 'Sunrise',\n 'Swiftfox',\n 'Waterfox',\n 'WebPositive',\n 'Opera Mini',\n { 'label': 'Opera Mini', 'pattern': 'OPiOS' },\n 'Opera',\n { 'label': 'Opera', 'pattern': 'OPR' },\n 'Chrome',\n { 'label': 'Chrome Mobile', 'pattern': '(?:CriOS|CrMo)' },\n { 'label': 'Firefox', 'pattern': '(?:Firefox|Minefield)' },\n { 'label': 'Firefox for iOS', 'pattern': 'FxiOS' },\n { 'label': 'IE', 'pattern': 'IEMobile' },\n { 'label': 'IE', 'pattern': 'MSIE' },\n 'Safari'\n ]);\n\n /* Detectable products (order is important). */\n var product = getProduct([\n { 'label': 'BlackBerry', 'pattern': 'BB10' },\n 'BlackBerry',\n { 'label': 'Galaxy S', 'pattern': 'GT-I9000' },\n { 'label': 'Galaxy S2', 'pattern': 'GT-I9100' },\n { 'label': 'Galaxy S3', 'pattern': 'GT-I9300' },\n { 'label': 'Galaxy S4', 'pattern': 'GT-I9500' },\n { 'label': 'Galaxy S5', 'pattern': 'SM-G900' },\n { 'label': 'Galaxy S6', 'pattern': 'SM-G920' },\n { 'label': 'Galaxy S6 Edge', 'pattern': 'SM-G925' },\n { 'label': 'Galaxy S7', 'pattern': 'SM-G930' },\n { 'label': 'Galaxy S7 Edge', 'pattern': 'SM-G935' },\n 'Google TV',\n 'Lumia',\n 'iPad',\n 'iPod',\n 'iPhone',\n 'Kindle',\n { 'label': 'Kindle Fire', 'pattern': '(?:Cloud9|Silk-Accelerated)' },\n 'Nexus',\n 'Nook',\n 'PlayBook',\n 'PlayStation Vita',\n 'PlayStation',\n 'TouchPad',\n 'Transformer',\n { 'label': 'Wii U', 'pattern': 'WiiU' },\n 'Wii',\n 'Xbox One',\n { 'label': 'Xbox 360', 'pattern': 'Xbox' },\n 'Xoom'\n ]);\n\n /* Detectable manufacturers. */\n var manufacturer = getManufacturer({\n 'Apple': { 'iPad': 1, 'iPhone': 1, 'iPod': 1 },\n 'Archos': {},\n 'Amazon': { 'Kindle': 1, 'Kindle Fire': 1 },\n 'Asus': { 'Transformer': 1 },\n 'Barnes & Noble': { 'Nook': 1 },\n 'BlackBerry': { 'PlayBook': 1 },\n 'Google': { 'Google TV': 1, 'Nexus': 1 },\n 'HP': { 'TouchPad': 1 },\n 'HTC': {},\n 'LG': {},\n 'Microsoft': { 'Xbox': 1, 'Xbox One': 1 },\n 'Motorola': { 'Xoom': 1 },\n 'Nintendo': { 'Wii U': 1, 'Wii': 1 },\n 'Nokia': { 'Lumia': 1 },\n 'Samsung': { 'Galaxy S': 1, 'Galaxy S2': 1, 'Galaxy S3': 1, 'Galaxy S4': 1 },\n 'Sony': { 'PlayStation': 1, 'PlayStation Vita': 1 }\n });\n\n /* Detectable operating systems (order is important). */\n var os = getOS([\n 'Windows Phone',\n 'Android',\n 'CentOS',\n { 'label': 'Chrome OS', 'pattern': 'CrOS' },\n 'Debian',\n 'Fedora',\n 'FreeBSD',\n 'Gentoo',\n 'Haiku',\n 'Kubuntu',\n 'Linux Mint',\n 'OpenBSD',\n 'Red Hat',\n 'SuSE',\n 'Ubuntu',\n 'Xubuntu',\n 'Cygwin',\n 'Symbian OS',\n 'hpwOS',\n 'webOS ',\n 'webOS',\n 'Tablet OS',\n 'Tizen',\n 'Linux',\n 'Mac OS X',\n 'Macintosh',\n 'Mac',\n 'Windows 98;',\n 'Windows '\n ]);\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Picks the layout engine from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected layout engine.\n */\n function getLayout(guesses) {\n return reduce(guesses, function(result, guess) {\n return result || RegExp('\\\\b' + (\n guess.pattern || qualify(guess)\n ) + '\\\\b', 'i').exec(ua) && (guess.label || guess);\n });\n }\n\n /**\n * Picks the manufacturer from an array of guesses.\n *\n * @private\n * @param {Array} guesses An object of guesses.\n * @returns {null|string} The detected manufacturer.\n */\n function getManufacturer(guesses) {\n return reduce(guesses, function(result, value, key) {\n // Lookup the manufacturer by product or scan the UA for the manufacturer.\n return result || (\n value[product] ||\n value[/^[a-z]+(?: +[a-z]+\\b)*/i.exec(product)] ||\n RegExp('\\\\b' + qualify(key) + '(?:\\\\b|\\\\w*\\\\d)', 'i').exec(ua)\n ) && key;\n });\n }\n\n /**\n * Picks the browser name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected browser name.\n */\n function getName(guesses) {\n return reduce(guesses, function(result, guess) {\n return result || RegExp('\\\\b' + (\n guess.pattern || qualify(guess)\n ) + '\\\\b', 'i').exec(ua) && (guess.label || guess);\n });\n }\n\n /**\n * Picks the OS name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected OS name.\n */\n function getOS(guesses) {\n return reduce(guesses, function(result, guess) {\n var pattern = guess.pattern || qualify(guess);\n if (!result && (result =\n RegExp('\\\\b' + pattern + '(?:/[\\\\d.]+|[ \\\\w.]*)', 'i').exec(ua)\n )) {\n result = cleanupOS(result, pattern, guess.label || guess);\n }\n return result;\n });\n }\n\n /**\n * Picks the product name from an array of guesses.\n *\n * @private\n * @param {Array} guesses An array of guesses.\n * @returns {null|string} The detected product name.\n */\n function getProduct(guesses) {\n return reduce(guesses, function(result, guess) {\n var pattern = guess.pattern || qualify(guess);\n if (!result && (result =\n RegExp('\\\\b' + pattern + ' *\\\\d+[.\\\\w_]*', 'i').exec(ua) ||\n RegExp('\\\\b' + pattern + ' *\\\\w+-[\\\\w]*', 'i').exec(ua) ||\n RegExp('\\\\b' + pattern + '(?:; *(?:[a-z]+[_-])?[a-z]+\\\\d+|[^ ();-]*)', 'i').exec(ua)\n )) {\n // Split by forward slash and append product version if needed.\n if ((result = String((guess.label && !RegExp(pattern, 'i').test(guess.label)) ? guess.label : result).split('/'))[1] && !/[\\d.]+/.test(result[0])) {\n result[0] += ' ' + result[1];\n }\n // Correct character case and cleanup string.\n guess = guess.label || guess;\n result = format(result[0]\n .replace(RegExp(pattern, 'i'), guess)\n .replace(RegExp('; *(?:' + guess + '[_-])?', 'i'), ' ')\n .replace(RegExp('(' + guess + ')[-_.]?(\\\\w)', 'i'), '$1 $2'));\n }\n return result;\n });\n }\n\n /**\n * Resolves the version using an array of UA patterns.\n *\n * @private\n * @param {Array} patterns An array of UA patterns.\n * @returns {null|string} The detected version.\n */\n function getVersion(patterns) {\n return reduce(patterns, function(result, pattern) {\n return result || (RegExp(pattern +\n '(?:-[\\\\d.]+/|(?: for [\\\\w-]+)?[ /-])([\\\\d.]+[^ ();/_-]*)', 'i').exec(ua) || 0)[1] || null;\n });\n }\n\n /**\n * Returns `platform.description` when the platform object is coerced to a string.\n *\n * @name toString\n * @memberOf platform\n * @returns {string} Returns `platform.description` if available, else an empty string.\n */\n function toStringPlatform() {\n return this.description || '';\n }\n\n /*------------------------------------------------------------------------*/\n\n // Convert layout to an array so we can add extra details.\n layout && (layout = [layout]);\n\n // Detect product names that contain their manufacturer's name.\n if (manufacturer && !product) {\n product = getProduct([manufacturer]);\n }\n // Clean up Google TV.\n if ((data = /\\bGoogle TV\\b/.exec(product))) {\n product = data[0];\n }\n // Detect simulators.\n if (/\\bSimulator\\b/i.test(ua)) {\n product = (product ? product + ' ' : '') + 'Simulator';\n }\n // Detect Opera Mini 8+ running in Turbo/Uncompressed mode on iOS.\n if (name == 'Opera Mini' && /\\bOPiOS\\b/.test(ua)) {\n description.push('running in Turbo/Uncompressed mode');\n }\n // Detect IE Mobile 11.\n if (name == 'IE' && /\\blike iPhone OS\\b/.test(ua)) {\n data = parse(ua.replace(/like iPhone OS/, ''));\n manufacturer = data.manufacturer;\n product = data.product;\n }\n // Detect iOS.\n else if (/^iP/.test(product)) {\n name || (name = 'Safari');\n os = 'iOS' + ((data = / OS ([\\d_]+)/i.exec(ua))\n ? ' ' + data[1].replace(/_/g, '.')\n : '');\n }\n // Detect Kubuntu.\n else if (name == 'Konqueror' && !/buntu/i.test(os)) {\n os = 'Kubuntu';\n }\n // Detect Android browsers.\n else if ((manufacturer && manufacturer != 'Google' &&\n ((/Chrome/.test(name) && !/\\bMobile Safari\\b/i.test(ua)) || /\\bVita\\b/.test(product))) ||\n (/\\bAndroid\\b/.test(os) && /^Chrome/.test(name) && /\\bVersion\\//i.test(ua))) {\n name = 'Android Browser';\n os = /\\bAndroid\\b/.test(os) ? os : 'Android';\n }\n // Detect Silk desktop/accelerated modes.\n else if (name == 'Silk') {\n if (!/\\bMobi/i.test(ua)) {\n os = 'Android';\n description.unshift('desktop mode');\n }\n if (/Accelerated *= *true/i.test(ua)) {\n description.unshift('accelerated');\n }\n }\n // Detect PaleMoon identifying as Firefox.\n else if (name == 'PaleMoon' && (data = /\\bFirefox\\/([\\d.]+)\\b/.exec(ua))) {\n description.push('identifying as Firefox ' + data[1]);\n }\n // Detect Firefox OS and products running Firefox.\n else if (name == 'Firefox' && (data = /\\b(Mobile|Tablet|TV)\\b/i.exec(ua))) {\n os || (os = 'Firefox OS');\n product || (product = data[1]);\n }\n // Detect false positives for Firefox/Safari.\n else if (!name || (data = !/\\bMinefield\\b/i.test(ua) && /\\b(?:Firefox|Safari)\\b/.exec(name))) {\n // Escape the `/` for Firefox 1.\n if (name && !product && /[\\/,]|^[^(]+?\\)/.test(ua.slice(ua.indexOf(data + '/') + 8))) {\n // Clear name of false positives.\n name = null;\n }\n // Reassign a generic name.\n if ((data = product || manufacturer || os) &&\n (product || manufacturer || /\\b(?:Android|Symbian OS|Tablet OS|webOS)\\b/.test(os))) {\n name = /[a-z]+(?: Hat)?/i.exec(/\\bAndroid\\b/.test(os) ? os : data) + ' Browser';\n }\n }\n // Add Chrome version to description for Electron.\n else if (name == 'Electron' && (data = (/\\bChrome\\/([\\d.]+)\\b/.exec(ua) || 0)[1])) {\n description.push('Chromium ' + data);\n }\n // Detect non-Opera (Presto-based) versions (order is important).\n if (!version) {\n version = getVersion([\n '(?:Cloud9|CriOS|CrMo|Edge|FxiOS|IEMobile|Iron|Opera ?Mini|OPiOS|OPR|Raven|SamsungBrowser|Silk(?!/[\\\\d.]+$))',\n 'Version',\n qualify(name),\n '(?:Firefox|Minefield|NetFront)'\n ]);\n }\n // Detect stubborn layout engines.\n if ((data =\n layout == 'iCab' && parseFloat(version) > 3 && 'WebKit' ||\n /\\bOpera\\b/.test(name) && (/\\bOPR\\b/.test(ua) ? 'Blink' : 'Presto') ||\n /\\b(?:Midori|Nook|Safari)\\b/i.test(ua) && !/^(?:Trident|EdgeHTML)$/.test(layout) && 'WebKit' ||\n !layout && /\\bMSIE\\b/i.test(ua) && (os == 'Mac OS' ? 'Tasman' : 'Trident') ||\n layout == 'WebKit' && /\\bPlayStation\\b(?! Vita\\b)/i.test(name) && 'NetFront'\n )) {\n layout = [data];\n }\n // Detect Windows Phone 7 desktop mode.\n if (name == 'IE' && (data = (/; *(?:XBLWP|ZuneWP)(\\d+)/i.exec(ua) || 0)[1])) {\n name += ' Mobile';\n os = 'Windows Phone ' + (/\\+$/.test(data) ? data : data + '.x');\n description.unshift('desktop mode');\n }\n // Detect Windows Phone 8.x desktop mode.\n else if (/\\bWPDesktop\\b/i.test(ua)) {\n name = 'IE Mobile';\n os = 'Windows Phone 8.x';\n description.unshift('desktop mode');\n version || (version = (/\\brv:([\\d.]+)/.exec(ua) || 0)[1]);\n }\n // Detect IE 11 identifying as other browsers.\n else if (name != 'IE' && layout == 'Trident' && (data = /\\brv:([\\d.]+)/.exec(ua))) {\n if (name) {\n description.push('identifying as ' + name + (version ? ' ' + version : ''));\n }\n name = 'IE';\n version = data[1];\n }\n // Leverage environment features.\n if (useFeatures) {\n // Detect server-side environments.\n // Rhino has a global function while others have a global object.\n if (isHostType(context, 'global')) {\n if (java) {\n data = java.lang.System;\n arch = data.getProperty('os.arch');\n os = os || data.getProperty('os.name') + ' ' + data.getProperty('os.version');\n }\n if (rhino) {\n try {\n version = context.require('ringo/engine').version.join('.');\n name = 'RingoJS';\n } catch(e) {\n if ((data = context.system) && data.global.system == context.system) {\n name = 'Narwhal';\n os || (os = data[0].os || null);\n }\n }\n if (!name) {\n name = 'Rhino';\n }\n }\n else if (\n typeof context.process == 'object' && !context.process.browser &&\n (data = context.process)\n ) {\n if (typeof data.versions == 'object') {\n if (typeof data.versions.electron == 'string') {\n description.push('Node ' + data.versions.node);\n name = 'Electron';\n version = data.versions.electron;\n } else if (typeof data.versions.nw == 'string') {\n description.push('Chromium ' + version, 'Node ' + data.versions.node);\n name = 'NW.js';\n version = data.versions.nw;\n }\n }\n if (!name) {\n name = 'Node.js';\n arch = data.arch;\n os = data.platform;\n version = /[\\d.]+/.exec(data.version);\n version = version ? version[0] : null;\n }\n }\n }\n // Detect Adobe AIR.\n else if (getClassOf((data = context.runtime)) == airRuntimeClass) {\n name = 'Adobe AIR';\n os = data.flash.system.Capabilities.os;\n }\n // Detect PhantomJS.\n else if (getClassOf((data = context.phantom)) == phantomClass) {\n name = 'PhantomJS';\n version = (data = data.version || null) && (data.major + '.' + data.minor + '.' + data.patch);\n }\n // Detect IE compatibility modes.\n else if (typeof doc.documentMode == 'number' && (data = /\\bTrident\\/(\\d+)/i.exec(ua))) {\n // We're in compatibility mode when the Trident version + 4 doesn't\n // equal the document mode.\n version = [version, doc.documentMode];\n if ((data = +data[1] + 4) != version[1]) {\n description.push('IE ' + version[1] + ' mode');\n layout && (layout[1] = '');\n version[1] = data;\n }\n version = name == 'IE' ? String(version[1].toFixed(1)) : version[0];\n }\n // Detect IE 11 masking as other browsers.\n else if (typeof doc.documentMode == 'number' && /^(?:Chrome|Firefox)\\b/.test(name)) {\n description.push('masking as ' + name + ' ' + version);\n name = 'IE';\n version = '11.0';\n layout = ['Trident'];\n os = 'Windows';\n }\n os = os && format(os);\n }\n // Detect prerelease phases.\n if (version && (data =\n /(?:[ab]|dp|pre|[ab]\\d+pre)(?:\\d+\\+?)?$/i.exec(version) ||\n /(?:alpha|beta)(?: ?\\d)?/i.exec(ua + ';' + (useFeatures && nav.appMinorVersion)) ||\n /\\bMinefield\\b/i.test(ua) && 'a'\n )) {\n prerelease = /b/i.test(data) ? 'beta' : 'alpha';\n version = version.replace(RegExp(data + '\\\\+?$'), '') +\n (prerelease == 'beta' ? beta : alpha) + (/\\d+\\+?/.exec(data) || '');\n }\n // Detect Firefox Mobile.\n if (name == 'Fennec' || name == 'Firefox' && /\\b(?:Android|Firefox OS)\\b/.test(os)) {\n name = 'Firefox Mobile';\n }\n // Obscure Maxthon's unreliable version.\n else if (name == 'Maxthon' && version) {\n version = version.replace(/\\.[\\d.]+/, '.x');\n }\n // Detect Xbox 360 and Xbox One.\n else if (/\\bXbox\\b/i.test(product)) {\n if (product == 'Xbox 360') {\n os = null;\n }\n if (product == 'Xbox 360' && /\\bIEMobile\\b/.test(ua)) {\n description.unshift('mobile mode');\n }\n }\n // Add mobile postfix.\n else if ((/^(?:Chrome|IE|Opera)$/.test(name) || name && !product && !/Browser|Mobi/.test(name)) &&\n (os == 'Windows CE' || /Mobi/i.test(ua))) {\n name += ' Mobile';\n }\n // Detect IE platform preview.\n else if (name == 'IE' && useFeatures) {\n try {\n if (context.external === null) {\n description.unshift('platform preview');\n }\n } catch(e) {\n description.unshift('embedded');\n }\n }\n // Detect BlackBerry OS version.\n // http://docs.blackberry.com/en/developers/deliverables/18169/HTTP_headers_sent_by_BB_Browser_1234911_11.jsp\n else if ((/\\bBlackBerry\\b/.test(product) || /\\bBB10\\b/.test(ua)) && (data =\n (RegExp(product.replace(/ +/g, ' *') + '/([.\\\\d]+)', 'i').exec(ua) || 0)[1] ||\n version\n )) {\n data = [data, /BB10/.test(ua)];\n os = (data[1] ? (product = null, manufacturer = 'BlackBerry') : 'Device Software') + ' ' + data[0];\n version = null;\n }\n // Detect Opera identifying/masking itself as another browser.\n // http://www.opera.com/support/kb/view/843/\n else if (this != forOwn && product != 'Wii' && (\n (useFeatures && opera) ||\n (/Opera/.test(name) && /\\b(?:MSIE|Firefox)\\b/i.test(ua)) ||\n (name == 'Firefox' && /\\bOS X (?:\\d+\\.){2,}/.test(os)) ||\n (name == 'IE' && (\n (os && !/^Win/.test(os) && version > 5.5) ||\n /\\bWindows XP\\b/.test(os) && version > 8 ||\n version == 8 && !/\\bTrident\\b/.test(ua)\n ))\n ) && !reOpera.test((data = parse.call(forOwn, ua.replace(reOpera, '') + ';'))) && data.name) {\n // When \"identifying\", the UA contains both Opera and the other browser's name.\n data = 'ing as ' + data.name + ((data = data.version) ? ' ' + data : '');\n if (reOpera.test(name)) {\n if (/\\bIE\\b/.test(data) && os == 'Mac OS') {\n os = null;\n }\n data = 'identify' + data;\n }\n // When \"masking\", the UA contains only the other browser's name.\n else {\n data = 'mask' + data;\n if (operaClass) {\n name = format(operaClass.replace(/([a-z])([A-Z])/g, '$1 $2'));\n } else {\n name = 'Opera';\n }\n if (/\\bIE\\b/.test(data)) {\n os = null;\n }\n if (!useFeatures) {\n version = null;\n }\n }\n layout = ['Presto'];\n description.push(data);\n }\n // Detect WebKit Nightly and approximate Chrome/Safari versions.\n if ((data = (/\\bAppleWebKit\\/([\\d.]+\\+?)/i.exec(ua) || 0)[1])) {\n // Correct build number for numeric comparison.\n // (e.g. \"532.5\" becomes \"532.05\")\n data = [parseFloat(data.replace(/\\.(\\d)$/, '.0$1')), data];\n // Nightly builds are postfixed with a \"+\".\n if (name == 'Safari' && data[1].slice(-1) == '+') {\n name = 'WebKit Nightly';\n prerelease = 'alpha';\n version = data[1].slice(0, -1);\n }\n // Clear incorrect browser versions.\n else if (version == data[1] ||\n version == (data[2] = (/\\bSafari\\/([\\d.]+\\+?)/i.exec(ua) || 0)[1])) {\n version = null;\n }\n // Use the full Chrome version when available.\n data[1] = (/\\bChrome\\/([\\d.]+)/i.exec(ua) || 0)[1];\n // Detect Blink layout engine.\n if (data[0] == 537.36 && data[2] == 537.36 && parseFloat(data[1]) >= 28 && layout == 'WebKit') {\n layout = ['Blink'];\n }\n // Detect JavaScriptCore.\n // http://stackoverflow.com/questions/6768474/how-can-i-detect-which-javascript-engine-v8-or-jsc-is-used-at-runtime-in-androi\n if (!useFeatures || (!likeChrome && !data[1])) {\n layout && (layout[1] = 'like Safari');\n data = (data = data[0], data < 400 ? 1 : data < 500 ? 2 : data < 526 ? 3 : data < 533 ? 4 : data < 534 ? '4+' : data < 535 ? 5 : data < 537 ? 6 : data < 538 ? 7 : data < 601 ? 8 : '8');\n } else {\n layout && (layout[1] = 'like Chrome');\n data = data[1] || (data = data[0], data < 530 ? 1 : data < 532 ? 2 : data < 532.05 ? 3 : data < 533 ? 4 : data < 534.03 ? 5 : data < 534.07 ? 6 : data < 534.10 ? 7 : data < 534.13 ? 8 : data < 534.16 ? 9 : data < 534.24 ? 10 : data < 534.30 ? 11 : data < 535.01 ? 12 : data < 535.02 ? '13+' : data < 535.07 ? 15 : data < 535.11 ? 16 : data < 535.19 ? 17 : data < 536.05 ? 18 : data < 536.10 ? 19 : data < 537.01 ? 20 : data < 537.11 ? '21+' : data < 537.13 ? 23 : data < 537.18 ? 24 : data < 537.24 ? 25 : data < 537.36 ? 26 : layout != 'Blink' ? '27' : '28');\n }\n // Add the postfix of \".x\" or \"+\" for approximate versions.\n layout && (layout[1] += ' ' + (data += typeof data == 'number' ? '.x' : /[.+]/.test(data) ? '' : '+'));\n // Obscure version for some Safari 1-2 releases.\n if (name == 'Safari' && (!version || parseInt(version) > 45)) {\n version = data;\n }\n }\n // Detect Opera desktop modes.\n if (name == 'Opera' && (data = /\\bzbov|zvav$/.exec(os))) {\n name += ' ';\n description.unshift('desktop mode');\n if (data == 'zvav') {\n name += 'Mini';\n version = null;\n } else {\n name += 'Mobile';\n }\n os = os.replace(RegExp(' *' + data + '$'), '');\n }\n // Detect Chrome desktop mode.\n else if (name == 'Safari' && /\\bChrome\\b/.exec(layout && layout[1])) {\n description.unshift('desktop mode');\n name = 'Chrome Mobile';\n version = null;\n\n if (/\\bOS X\\b/.test(os)) {\n manufacturer = 'Apple';\n os = 'iOS 4.3+';\n } else {\n os = null;\n }\n }\n // Strip incorrect OS versions.\n if (version && version.indexOf((data = /[\\d.]+$/.exec(os))) == 0 &&\n ua.indexOf('/' + data + '-') > -1) {\n os = trim(os.replace(data, ''));\n }\n // Add layout engine.\n if (layout && !/\\b(?:Avant|Nook)\\b/.test(name) && (\n /Browser|Lunascape|Maxthon/.test(name) ||\n name != 'Safari' && /^iOS/.test(os) && /\\bSafari\\b/.test(layout[1]) ||\n /^(?:Adobe|Arora|Breach|Midori|Opera|Phantom|Rekonq|Rock|Samsung Internet|Sleipnir|Web)/.test(name) && layout[1])) {\n // Don't add layout details to description if they are falsey.\n (data = layout[layout.length - 1]) && description.push(data);\n }\n // Combine contextual information.\n if (description.length) {\n description = ['(' + description.join('; ') + ')'];\n }\n // Append manufacturer to description.\n if (manufacturer && product && product.indexOf(manufacturer) < 0) {\n description.push('on ' + manufacturer);\n }\n // Append product to description.\n if (product) {\n description.push((/^on /.test(description[description.length - 1]) ? '' : 'on ') + product);\n }\n // Parse the OS into an object.\n if (os) {\n data = / ([\\d.+]+)$/.exec(os);\n isSpecialCasedOS = data && os.charAt(os.length - data[0].length - 1) == '/';\n os = {\n 'architecture': 32,\n 'family': (data && !isSpecialCasedOS) ? os.replace(data[0], '') : os,\n 'version': data ? data[1] : null,\n 'toString': function() {\n var version = this.version;\n return this.family + ((version && !isSpecialCasedOS) ? ' ' + version : '') + (this.architecture == 64 ? ' 64-bit' : '');\n }\n };\n }\n // Add browser/OS architecture.\n if ((data = /\\b(?:AMD|IA|Win|WOW|x86_|x)64\\b/i.exec(arch)) && !/\\bi686\\b/i.test(arch)) {\n if (os) {\n os.architecture = 64;\n os.family = os.family.replace(RegExp(' *' + data), '');\n }\n if (\n name && (/\\bWOW64\\b/i.test(ua) ||\n (useFeatures && /\\w(?:86|32)$/.test(nav.cpuClass || nav.platform) && !/\\bWin64; x64\\b/i.test(ua)))\n ) {\n description.unshift('32-bit');\n }\n }\n // Chrome 39 and above on OS X is always 64-bit.\n else if (\n os && /^OS X/.test(os.family) &&\n name == 'Chrome' && parseFloat(version) >= 39\n ) {\n os.architecture = 64;\n }\n\n ua || (ua = null);\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The platform object.\n *\n * @name platform\n * @type Object\n */\n var platform = {};\n\n /**\n * The platform description.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.description = ua;\n\n /**\n * The name of the browser's layout engine.\n *\n * The list of common layout engines include:\n * \"Blink\", \"EdgeHTML\", \"Gecko\", \"Trident\" and \"WebKit\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.layout = layout && layout[0];\n\n /**\n * The name of the product's manufacturer.\n *\n * The list of manufacturers include:\n * \"Apple\", \"Archos\", \"Amazon\", \"Asus\", \"Barnes & Noble\", \"BlackBerry\",\n * \"Google\", \"HP\", \"HTC\", \"LG\", \"Microsoft\", \"Motorola\", \"Nintendo\",\n * \"Nokia\", \"Samsung\" and \"Sony\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.manufacturer = manufacturer;\n\n /**\n * The name of the browser/environment.\n *\n * The list of common browser names include:\n * \"Chrome\", \"Electron\", \"Firefox\", \"Firefox for iOS\", \"IE\",\n * \"Microsoft Edge\", \"PhantomJS\", \"Safari\", \"SeaMonkey\", \"Silk\",\n * \"Opera Mini\" and \"Opera\"\n *\n * Mobile versions of some browsers have \"Mobile\" appended to their name:\n * eg. \"Chrome Mobile\", \"Firefox Mobile\", \"IE Mobile\" and \"Opera Mobile\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.name = name;\n\n /**\n * The alpha/beta release indicator.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.prerelease = prerelease;\n\n /**\n * The name of the product hosting the browser.\n *\n * The list of common products include:\n *\n * \"BlackBerry\", \"Galaxy S4\", \"Lumia\", \"iPad\", \"iPod\", \"iPhone\", \"Kindle\",\n * \"Kindle Fire\", \"Nexus\", \"Nook\", \"PlayBook\", \"TouchPad\" and \"Transformer\"\n *\n * @memberOf platform\n * @type string|null\n */\n platform.product = product;\n\n /**\n * The browser's user agent string.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.ua = ua;\n\n /**\n * The browser/environment version.\n *\n * @memberOf platform\n * @type string|null\n */\n platform.version = name && version;\n\n /**\n * The name of the operating system.\n *\n * @memberOf platform\n * @type Object\n */\n platform.os = os || {\n\n /**\n * The CPU architecture the OS is built for.\n *\n * @memberOf platform.os\n * @type number|null\n */\n 'architecture': null,\n\n /**\n * The family of the OS.\n *\n * Common values include:\n * \"Windows\", \"Windows Server 2008 R2 / 7\", \"Windows Server 2008 / Vista\",\n * \"Windows XP\", \"OS X\", \"Ubuntu\", \"Debian\", \"Fedora\", \"Red Hat\", \"SuSE\",\n * \"Android\", \"iOS\" and \"Windows Phone\"\n *\n * @memberOf platform.os\n * @type string|null\n */\n 'family': null,\n\n /**\n * The version of the OS.\n *\n * @memberOf platform.os\n * @type string|null\n */\n 'version': null,\n\n /**\n * Returns the OS string.\n *\n * @memberOf platform.os\n * @returns {string} The OS string.\n */\n 'toString': function() { return 'null'; }\n };\n\n platform.parse = parse;\n platform.toString = toStringPlatform;\n\n if (platform.version) {\n description.unshift(version);\n }\n if (platform.name) {\n description.unshift(name);\n }\n if (os && name && !(os == String(os).split(' ')[0] && (os == name.split(' ')[0] || product))) {\n description.push(product ? '(' + os + ')' : 'on ' + os);\n }\n if (description.length) {\n platform.description = description.join(' ');\n }\n return platform;\n }\n\n /*--------------------------------------------------------------------------*/\n\n // Export platform.\n var platform = parse();\n\n // Some AMD build optimizers, like r.js, check for condition patterns like the following:\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n // Expose platform on the global object to prevent errors when platform is\n // loaded by a script tag in the presence of an AMD loader.\n // See http://requirejs.org/docs/errors.html#mismatch for more details.\n root.platform = platform;\n\n // Define as an anonymous module so platform can be aliased through path mapping.\n define(function() {\n return platform;\n });\n }\n // Check for `exports` after `define` in case a build optimizer adds an `exports` object.\n else if (freeExports && freeModule) {\n // Export for CommonJS support.\n forOwn(platform, function(value, key) {\n freeExports[key] = value;\n });\n }\n else {\n // Export to the global object.\n root.platform = platform;\n }\n}.call(this));\n","/**\r\n * Names of errors that are part of the [environment]{@link module:environment} module's domain\r\n * @memberof module:environment\r\n * @enum {string}\r\n * @readonly\r\n * @inner\r\n */\r\nconst EnvironmentError = {\r\n /**\r\n * Returned when your try to use a method that is not supported in the context\r\n * of your current environment (OS/Device)\r\n */\r\n METHOD_NOT_SUPPORTED: 'METHOD_NOT_SUPPORTED'\r\n}\r\nexport default EnvironmentError\r\n","import platform from 'platform'\r\nimport ERRORS from './environment-errors.js'\r\n\r\n/* eslint-disable no-unused-vars */\r\n\r\nconst environmentWebImplementation = {\r\n isMobileApplication: function(resolve, reject) {\r\n resolve(false)\r\n },\r\n getBridgeAPIs: function(resolve, reject) {\r\n resolve([])\r\n },\r\n getApplicationInstallID: function(resolve, reject) {\r\n resolve(null)\r\n },\r\n getUserAgent: function(resolve, reject) {\r\n resolve(navigator.userAgent)\r\n },\r\n getPlatformInformation: function(resolve, reject) {\r\n let result = {\r\n applicationType: 'Browser',\r\n applicationName: platform.name,\r\n version: platform.version,\r\n manufacturer: platform.manufacturer,\r\n product: platform.product,\r\n productCode: null,\r\n layoutEngine: platform.layout,\r\n os: platform.os,\r\n description: platform.description\r\n }\r\n result.os.string = platform.os.toString()\r\n delete result.os.toString\r\n resolve(result)\r\n },\r\n getWebDebuggingEnabled: function(resolve, reject) {\r\n resolve(true)\r\n },\r\n isActiveNetworkWifi: function(resolve, reject) {\r\n reject({\r\n name: ERRORS.METHOD_NOT_SUPPORTED,\r\n message: \"Can't determin network type on this platform.\"\r\n })\r\n },\r\n getApplicationBaseURL: function(resolve, reject) {\r\n resolve(location.protocol + '//' + location.host)\r\n }\r\n}\r\n\r\nexport default environmentWebImplementation\r\n","import platformBridgeFactory from '@researchmetrics/platform-bridge-factory'\r\nimport environmentWebImplementation from './environment-web-implementation.js'\r\n\r\n/* eslint-disable no-unused-vars */\r\n\r\nconst environmentBridgeAPI = {\r\n isMobileApplication: function() {},\r\n getBridgeAPIs: function() {},\r\n getApplicationInstallID: function() {},\r\n getUserAgent: function() {},\r\n getPlatformInformation: function() {},\r\n getWebDebuggingEnabled: function() {},\r\n isActiveNetworkWifi: function() {},\r\n getApplicationBaseURL: function() {}\r\n}\r\n\r\nplatformBridgeFactory.create(\r\n environmentBridgeAPI,\r\n 'EnvironmentBridgeAPI',\r\n environmentWebImplementation\r\n)\r\n\r\nif (\r\n environmentBridgeAPI.platform === 'Android' ||\r\n environmentBridgeAPI.platform === 'iOS'\r\n) {\r\n environmentBridgeAPI.isMobileApplication = function() {\r\n return new Promise(function(resolve, reject) {\r\n resolve(true)\r\n })\r\n }\r\n}\r\n\r\nexport default environmentBridgeAPI\r\n","/**\r\n * Module used for getting information about the environment it is running in.\r\n *\r\n * Exports the [environment]{@link module:environment~environment} namespace by\r\n * default.\r\n *\r\n * ## Installation\r\n *\r\n * ```shell\r\n * $ npm install --save @researchmetrics/environment\r\n * ```\r\n * ## Usage as an ES6 module\r\n *\r\n * * Required polyfills\r\n * * core-js/features/promise\r\n *\r\n *\r\n * ```js\r\n * import environment from '@researchmetrics/environment'\r\n * ```\r\n *\r\n * ## Usage of bundles with `\r\n * ```\r\n *\r\n * ## Examples\r\n *\r\n * ```javascript\r\n * // are we running in the mobile app?\r\n * environment.isMobileApplication().then(function(res){\r\n * if(res){\r\n * // mobile app\r\n * } else {\r\n * // browser / pwa saved\r\n * }\r\n * })\r\n * ```\r\n * @module environment\r\n * @requires module:event-bus\r\n */\r\nimport environmentBridgeAPI from './environment-bridge-api.js'\r\nimport eventBus from '@researchmetrics/event-bus'\r\nimport ERRORS from './environment-errors.js'\r\n\r\n/**\r\n * Provides functionality for getting information about the environment it is\r\n * running in.\r\n *\r\n * @summary Provides environment information.\r\n * @namespace */\r\nconst environment = {\r\n /**\r\n * Error names of the [environment]{@link module:environment} module domain.\r\n * @type {module:environment~EnvironmentError}\r\n */\r\n Errors: ERRORS,\r\n /**\r\n * Checks whether it is in a native application.\r\n *\r\n * @return {Promise.} Promise that resolves to boolean. On\r\n * installed applicatioins will be `treu` for browsers will be `false`.\r\n */\r\n isMobileApplication: function() {\r\n return environmentBridgeAPI.isMobileApplication()\r\n },\r\n /**\r\n * See if device is online (has internet).\r\n *\r\n * @return {Promise.} Promise that resolves to boolean of\r\n * wheter the device is online.\r\n */\r\n isOnline: function() {\r\n return new Promise(function(resolutionFunc) {\r\n resolutionFunc(navigator.onLine)\r\n })\r\n },\r\n /**\r\n * Returns the available Bridge APIs and their versions.\r\n *\r\n * @return {Promise} Promise\r\n * object resolving to array of\r\n * [BridgeApiInfo]{@link module:environment~environment~BridgeApiInfo}\r\n * objects each with information about an API.\r\n */\r\n getBridgeAPIs: function() {\r\n return environmentBridgeAPI.getBridgeAPIs()\r\n },\r\n /**\r\n * Get application installation ID.\r\n * @return {Promise.} A promise that resolves to the application\r\n * installation ID.\r\n */\r\n getApplicationInstallID: function() {\r\n return environmentBridgeAPI.getApplicationInstallID()\r\n },\r\n /**\r\n * Return browser's or device native application UserAgent.\r\n *\r\n * @return {Promise.} Promise that resolves to the user agent.\r\n */\r\n getUserAgent: function() {\r\n return environmentBridgeAPI.getUserAgent()\r\n },\r\n /**\r\n * Returns information about the platform\r\n *\r\n * @return {Promise.} Promise that resolves to object with platform\r\n * information. For example:\r\n * ```js\r\n * {\r\n * \"applicationType\": \"Mobile App\",\r\n * \"applicationName\": \"MobiAudit\",\r\n * \"mobileAppVerion\": \"6.0.2\",\r\n * \"mobileAppVerionInt\": 60002,\r\n * \"mobileAppPackageId\": \"com.researchmetrics.mobiaudit\",\r\n * \"mobileAppBasePackageId\": \"com.researchmetrics.mobiaudit\",\r\n * \"version\": \"6.0.2\",\r\n * \"manufacturer\": \"Xiaomi\",\r\n * \"product\": \"Mi A3\",\r\n * \"productCode\": \"laurel_sprout_eea\",\r\n * \"layoutEngine\": \"com.android.chrome 80.0.3987.149\",\r\n * \"os\": {\r\n * \"architecture\": \"aarch64\",\r\n * \"family\": \"Android\",\r\n * \"version\": \"9\",\r\n * \"string\": \"Android 9\"\r\n * },\r\n * \"description\": \"MobiAudit 6.0.2 on Xiaomi Mi A3 (Android 9)\"\r\n * }\r\n *\r\n *\r\n * {\r\n * \"applicationType\": \"Browser\",\r\n * \"applicationName\": \"Chrome\",\r\n * \"version\": \"80.0.3987.149\",\r\n * \"manufacturer\": null,\r\n * \"product\": null,\r\n * \"productCode\": null,\r\n * \"layoutEngine\": \"Blink\",\r\n * \"os\": {\r\n * \"architecture\": 64,\r\n * \"family\": \"Windows\",\r\n * \"version\": \"10\",\r\n * \"string\": \"Windows 10 64-bit\"\r\n * },\r\n * \"description\": \"Chrome 80.0.3987.149 on Windows 10 64-bit\"\r\n * }\r\n * ```\r\n */\r\n getPlatformInformation: function() {\r\n return environmentBridgeAPI.getPlatformInformation()\r\n },\r\n /**\r\n * Check if web debugging is enabled\r\n *\r\n * @return {Promise.} Promise that resolves to boolean representing\r\n * whether debbuging is enabled.\r\n */\r\n getWebDebuggingEnabled: function() {\r\n return environmentBridgeAPI.getWebDebuggingEnabled()\r\n },\r\n /**\r\n * Check if the active network is over WiFi\r\n *\r\n * @return {Promise.} Promise that resolves to boolean representing\r\n * whether we are currently on a WiFi conection.\r\n */\r\n isActiveNetworkWifi: function() {\r\n return environmentBridgeAPI.isActiveNetworkWifi()\r\n },\r\n /**\r\n * Returns the base application URL hardcoded in the application.\r\n *\r\n * @return {Promise.} Promise that resolves to the application base URL.\r\n */\r\n getApplicationBaseURL: function() {\r\n return environmentBridgeAPI.getApplicationBaseURL()\r\n }\r\n}\r\n\r\ndocument.addEventListener('visibilitychange', function() {\r\n if (document.visibilityState === 'visible') {\r\n eventBus.emit('Environment.appVisibilityChange', true)\r\n } else {\r\n eventBus.emit('Environment.appVisibilityChange', false)\r\n }\r\n})\r\n\r\nwindow.addEventListener('offline', function() {\r\n eventBus.emit('Environment.onlineStatusChange', false)\r\n})\r\n\r\nwindow.addEventListener('online', function() {\r\n eventBus.emit('Environment.onlineStatusChange', true)\r\n})\r\n\r\nexport default environment\r\n\r\n/**\r\n * Information for the API\r\n * @typedef {Object} module:environment~environment~BridgeApiInfo\r\n * @property {string} name - Name of the API.\r\n * @property {string} version - Version of the API.\r\n * @property {number} versionInt - Version of the API as a number.\r\n */\r\n\r\n/**\r\n * Published when online status changes.\r\n * @event module:environment#event:\"Environment.onlineStatusChange\"\r\n * @property {boolean} status Boolean representing whether we are online or not.\r\n */\r\n\r\n/**\r\n * Published when document visibility changes.\r\n * @event module:environment#event:\"Environment.appVisibilityChange\"\r\n * @property {boolean} status Visibility status.\r\n */\r\n"],"names":["check","it","Math","globalThis","window","self","global","Function","exec","error","fails","Object","defineProperty","get","a","document","EXISTS","isObject","createElement","DESCRIPTORS","TypeError","String","input","PREFERRED_STRING","fn","val","toString","call","valueOf","nativeDefineProperty","O","P","Attributes","anObject","toPrimitive","IE8_DOM_DEFINE","value","bitmap","enumerable","configurable","writable","object","key","definePropertyModule","f","createPropertyDescriptor","createNonEnumerableProperty","setGlobal","module","store","undefined","push","version","mode","copyright","hasOwnProperty","id","postfix","random","getOwnPropertySymbols","Symbol","NATIVE_SYMBOL","sham","WellKnownSymbolsStore","shared","createWellKnownSymbol","USE_SYMBOL_AS_UID","uid","name","has","test","wellKnownSymbol","functionToString","inspectSource","set","WeakMap","keys","NATIVE_WEAK_MAP","wmget","wmhas","wmset","metadata","STATE","sharedKey","hiddenKeys","objectHas","enforce","getterFor","TYPE","state","type","getInternalState","InternalStateModule","enforceInternalState","TEMPLATE","split","options","unsafe","simple","noTargetGet","source","join","prototype","this","slice","TO_STRING_TAG","CORRECT_ARGUMENTS","classofRaw","arguments","TO_STRING_TAG_SUPPORT","tag","result","tryGet","callee","classof","redefine","nativePropertyIsEnumerable","propertyIsEnumerable","getOwnPropertyDescriptor","1","V","descriptor","IndexedObject","requireObjectCoercible","nativeGetOwnPropertyDescriptor","toIndexedObject","propertyIsEnumerableModule","aFunction","variable","namespace","method","length","path","ceil","floor","argument","isNaN","min","toInteger","max","createMethod","IS_INCLUDES","$this","el","fromIndex","toLength","index","integer","toAbsoluteIndex","indexOf","includes","names","i","enumBugKeys","concat","getOwnPropertyNames","internalObjectKeys","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","target","ownKeys","getOwnPropertyDescriptorModule","replacement","isForced","feature","detection","data","normalize","POLYFILL","NATIVE","string","replace","toLowerCase","require$$0","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","forced","copyConstructorProperties","Promise","TAG","SPECIES","ITERATOR","ArrayPrototype","Array","that","b","c","apply","iterator","ENTRIES","returnMethod","Result","stopped","iterable","AS_ENTRIES","IS_ITERATOR","iterFn","next","step","boundFunction","bind","Iterators","getIteratorMethod","done","callWithSafeIterationClosing","stop","SAFE_CLOSING","called","iteratorWithReturn","return","from","defer","channel","port","defaultConstructor","S","C","constructor","userAgent","location","setImmediate","clear","clearImmediate","process","MessageChannel","Dispatch","counter","queue","run","runner","listener","event","post","postMessage","protocol","host","args","nextTick","now","IS_IOS","port2","port1","onmessage","addEventListener","importScripts","html","appendChild","removeChild","setTimeout","flush","head","last","notify","toggle","node","promise","then","macrotask","require$$1","MutationObserver","WebKitMutationObserver","IS_NODE","queueMicrotaskDescriptor","queueMicrotask","parent","domain","exit","enter","createTextNode","observe","characterData","resolve","match","task","PromiseCapability","reject","$$resolve","$$reject","x","promiseCapability","newPromiseCapability","versions","v8","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","PROMISE","setInternalState","getInternalPromiseState","PromiseConstructor","NativePromise","$fetch","newPromiseCapabilityModule","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","FORCED","V8_VERSION","PromiseRejectionEvent","FakePromise","INCORRECT_ITERATION","SKIP_CLOSING","ITERATION_SUPPORT","checkCorrectnessOfIteration","all","isThenable","isReject","notified","chain","reactions","microtask","ok","exited","reaction","handler","fail","rejection","onHandleUnhandled","onUnhandled","reason","initEvent","console","hostReportErrors","isUnhandled","perform","emit","unwrap","internalReject","internalResolve","wrapper","executor","Constructor","anInstance","src","redefineAll","onFulfilled","onRejected","speciesConstructor","catch","$","fetch","promiseResolve","wrap","setToStringTag","CONSTRUCTOR_NAME","setSpecies","r","capability","$promiseResolve","values","remaining","iterate","alreadyCalled","race","allSettled","status","e","NON_GENERIC","proto","real","finally","onFinally","isFunction","IteratorPrototype","PrototypeOfArrayIteratorPrototype","arrayIterator","CONVERT_TO_STRING","pos","first","second","position","size","charCodeAt","charAt","codeAt","F","getPrototypeOf","IE_PROTO","ObjectPrototype","CORRECT_PROTOTYPE_GETTER","BUGGY_SAFARI_ITERATORS","defineProperties","Properties","objectKeys","Empty","createDict","iframeDocument","iframe","documentCreateElement","style","display","contentWindow","open","write","lt","close","create","returnThis","setPrototypeOf","setter","CORRECT_SETTER","aPossiblePrototype","__proto__","IteratorsCore","Iterable","NAME","IteratorConstructor","DEFAULT","IS_SET","createIteratorConstructor","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","entries","defineIterator","iterated","point","getInternalAggregateErrorState","$AggregateError","errors","message","Error","errorsArray","AggregateError","any","alreadyResolved","alreadyRejected","try","callbackfn","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","UNSCOPABLES","kind","Arguments","addToUnscopables","win","framebus","ArrayValues","ArrayIteratorMethods","COLLECTION_NAME","DOMIterables","Collection","CollectionPrototype","METHOD_NAME","popups","subscribers","prefix","publish","payload","origin","_getOrigin","_isntString","_packagePayload","_broadcast","top","subscribe","_subscriptionArgsInvalid","unsubscribe","subscriberList","splice","scope","_origin","packaged","reply","_subscribeReplier","JSON","stringify","_unpackPayload","replyOrigin","replySource","replyEvent","parse","err","replyPayload","_attach","w","_onmessage","attachEvent","_uuid","_dispatch","popup","closed","_broadcastPopups","frame","frameToBroadcastTo","opener","_hasOpener","frames","_","uuid","replier","d","o","targetedFramebus","_detach","removeEventListener","detachEvent","_getSubscribers","_win","include","Window","pub","trigger","sub","on","unsub","off","eventBus","callback","EventTitles","toolbarBackButtonShow","toolbarBackButtonHide","toolbarTitleUpdate","surveyOpen","contentLoad","setModalEvent","setBackBtnEvent","goBackEvent","loadingShow","loadingHide","menuBadgeUpdate","callbackRegistryDelegate","callbackRegistryResolve","defaultExport","RM","_typeof","CallbackRegistry","_instance","isInFrame","eventTitles","registry","idCounter","generateGUID","strSource","Date","getTime","getTimezoneOffset","counter0","parseInt","toUpperCase","register","context","func","_this","requestGUID","registeredID","execute","registerChildCallback","eventPayload","k","resolveDelegated","_getInstance","root","webPlatformBridgeAPISuffix","APIObject","APIName","preferredPlatform","platform","platformBridge","platformBridgeWeb","RMAndroidNativeApp","platformBridgeAndroid","RMIOS","platformBridgeIOS","wirePlatformMethods","methodName","_args","_originalArgumentsCount","filter","_CallbackRegistry","webkit","messageHandlers","iOS_Native_Bridge","parsedData","callbackId","callbackID","originalArgumentsCount","callArgs","propNames","prop","propName","pn","objectTypes","function","freeExports","exports","freeModule","nodeType","freeGlobal","maxSafeInteger","pow","reOpera","objectProto","capitalize","format","trim","forOwn","getClassOf","qualify","reduce","array","accumulator","each","ua","isCustomContext","nav","navigator","isSpecialCasedOS","property","likeChrome","airRuntimeClass","enviroClass","javaClass","java","phantomClass","rhino","environment","alpha","beta","doc","opera","operamini","operaClass","arch","description","prerelease","useFeatures","layout","label","pattern","guess","RegExp","guesses","getName","product","getProduct","manufacturer","getManufacturer","Apple","iPad","iPhone","iPod","Archos","Amazon","Kindle","Kindle Fire","Asus","Transformer","Barnes & Noble","Nook","BlackBerry","PlayBook","Google","Google TV","Nexus","HP","TouchPad","HTC","LG","Microsoft","Xbox","Xbox One","Motorola","Xoom","Nintendo","Wii U","Wii","Nokia","Lumia","Samsung","Galaxy S","Galaxy S2","Galaxy S3","Galaxy S4","Sony","PlayStation","PlayStation Vita","os","10.0","6.4","6.3","6.2","6.1","6.0","5.2","5.1","5.01","5.0","4.0","4.90","cleanupOS","getOS","unshift","parseFloat","runtime","flash","system","Capabilities","phantom","major","minor","patch","documentMode","toFixed","lang","System","getProperty","require","browser","electron","nw","appMinorVersion","external","architecture","family","cpuClass","EnvironmentError","METHOD_NOT_SUPPORTED","environmentWebImplementation","isMobileApplication","getBridgeAPIs","getApplicationInstallID","getUserAgent","getPlatformInformation","applicationType","applicationName","productCode","layoutEngine","getWebDebuggingEnabled","isActiveNetworkWifi","ERRORS","getApplicationBaseURL","environmentBridgeAPI","Errors","isOnline","resolutionFunc","onLine","visibilityState"],"mappings":"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"}