{"version":3,"file":"js/448-8cc8e9062c05519e3ad9.js","mappings":"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","sources":["webpack://obc/./node_modules/@bugsnag/browser/dist/bugsnag.js","webpack://obc/./node_modules/@bugsnag/js/browser/notifier.js","webpack://obc/./node_modules/@bugsnag/plugin-react/dist/bugsnag-react.js","webpack://obc/./node_modules/browser-update/update.npm.full.js"],"sourcesContent":["(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Bugsnag = f()}})(function(){var define,module,exports;\nvar _$breadcrumbTypes_8 = ['navigation', 'request', 'process', 'log', 'user', 'state', 'error', 'manual'];\n\n// Array#reduce\nvar _$reduce_17 = function (arr, fn, accum) {\n var val = accum;\n\n for (var i = 0, len = arr.length; i < len; i++) {\n val = fn(val, arr[i], i, arr);\n }\n\n return val;\n};\n\n/* removed: var _$reduce_17 = require('./reduce'); */; // Array#filter\n\n\nvar _$filter_12 = function (arr, fn) {\n return _$reduce_17(arr, function (accum, item, i, arr) {\n return !fn(item, i, arr) ? accum : accum.concat(item);\n }, []);\n};\n\n/* removed: var _$reduce_17 = require('./reduce'); */; // Array#includes\n\n\nvar _$includes_13 = function (arr, x) {\n return _$reduce_17(arr, function (accum, item, i, arr) {\n return accum === true || item === x;\n }, false);\n};\n\n// Array#isArray\nvar _$isArray_14 = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n};\n\n/* eslint-disable-next-line no-prototype-builtins */\nvar _hasDontEnumBug = !{\n toString: null\n}.propertyIsEnumerable('toString');\n\nvar _dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor']; // Object#keys\n\nvar _$keys_15 = function (obj) {\n // stripped down version of\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/Keys\n var result = [];\n var prop;\n\n for (prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) result.push(prop);\n }\n\n if (!_hasDontEnumBug) return result;\n\n for (var i = 0, len = _dontEnums.length; i < len; i++) {\n if (Object.prototype.hasOwnProperty.call(obj, _dontEnums[i])) result.push(_dontEnums[i]);\n }\n\n return result;\n};\n\nvar _$intRange_24 = function (min, max) {\n if (min === void 0) {\n min = 1;\n }\n\n if (max === void 0) {\n max = Infinity;\n }\n\n return function (value) {\n return typeof value === 'number' && parseInt('' + value, 10) === value && value >= min && value <= max;\n };\n};\n\n/* removed: var _$filter_12 = require('../es-utils/filter'); */;\n\n/* removed: var _$isArray_14 = require('../es-utils/is-array'); */;\n\nvar _$listOfFunctions_25 = function (value) {\n return typeof value === 'function' || _$isArray_14(value) && _$filter_12(value, function (f) {\n return typeof f === 'function';\n }).length === value.length;\n};\n\nvar _$stringWithLength_26 = function (value) {\n return typeof value === 'string' && !!value.length;\n};\n\nvar _$config_5 = {};\n/* removed: var _$filter_12 = require('./lib/es-utils/filter'); */;\n\n/* removed: var _$reduce_17 = require('./lib/es-utils/reduce'); */;\n\n/* removed: var _$keys_15 = require('./lib/es-utils/keys'); */;\n\n/* removed: var _$isArray_14 = require('./lib/es-utils/is-array'); */;\n\n/* removed: var _$includes_13 = require('./lib/es-utils/includes'); */;\n\n/* removed: var _$intRange_24 = require('./lib/validators/int-range'); */;\n\n/* removed: var _$stringWithLength_26 = require('./lib/validators/string-with-length'); */;\n\n/* removed: var _$listOfFunctions_25 = require('./lib/validators/list-of-functions'); */;\n\n/* removed: var _$breadcrumbTypes_8 = require('./lib/breadcrumb-types'); */;\n\nvar defaultErrorTypes = function () {\n return {\n unhandledExceptions: true,\n unhandledRejections: true\n };\n};\n\n_$config_5.schema = {\n apiKey: {\n defaultValue: function () {\n return null;\n },\n message: 'is required',\n validate: _$stringWithLength_26\n },\n appVersion: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be a string',\n validate: function (value) {\n return value === undefined || _$stringWithLength_26(value);\n }\n },\n appType: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be a string',\n validate: function (value) {\n return value === undefined || _$stringWithLength_26(value);\n }\n },\n autoDetectErrors: {\n defaultValue: function () {\n return true;\n },\n message: 'should be true|false',\n validate: function (value) {\n return value === true || value === false;\n }\n },\n enabledErrorTypes: {\n defaultValue: function () {\n return defaultErrorTypes();\n },\n message: 'should be an object containing the flags { unhandledExceptions:true|false, unhandledRejections:true|false }',\n allowPartialObject: true,\n validate: function (value) {\n // ensure we have an object\n if (typeof value !== 'object' || !value) return false;\n var providedKeys = _$keys_15(value);\n var defaultKeys = _$keys_15(defaultErrorTypes()); // ensure it only has a subset of the allowed keys\n\n if (_$filter_12(providedKeys, function (k) {\n return _$includes_13(defaultKeys, k);\n }).length < providedKeys.length) return false; // ensure all of the values are boolean\n\n if (_$filter_12(_$keys_15(value), function (k) {\n return typeof value[k] !== 'boolean';\n }).length > 0) return false;\n return true;\n }\n },\n onError: {\n defaultValue: function () {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: _$listOfFunctions_25\n },\n onSession: {\n defaultValue: function () {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: _$listOfFunctions_25\n },\n onBreadcrumb: {\n defaultValue: function () {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: _$listOfFunctions_25\n },\n endpoints: {\n defaultValue: function () {\n return {\n notify: 'https://notify.bugsnag.com',\n sessions: 'https://sessions.bugsnag.com'\n };\n },\n message: 'should be an object containing endpoint URLs { notify, sessions }',\n validate: function (val) {\n return (// first, ensure it's an object\n val && typeof val === 'object' && // notify and sessions must always be set\n _$stringWithLength_26(val.notify) && _$stringWithLength_26(val.sessions) && // ensure no keys other than notify/session are set on endpoints object\n _$filter_12(_$keys_15(val), function (k) {\n return !_$includes_13(['notify', 'sessions'], k);\n }).length === 0\n );\n }\n },\n autoTrackSessions: {\n defaultValue: function (val) {\n return true;\n },\n message: 'should be true|false',\n validate: function (val) {\n return val === true || val === false;\n }\n },\n enabledReleaseStages: {\n defaultValue: function () {\n return null;\n },\n message: 'should be an array of strings',\n validate: function (value) {\n return value === null || _$isArray_14(value) && _$filter_12(value, function (f) {\n return typeof f === 'string';\n }).length === value.length;\n }\n },\n releaseStage: {\n defaultValue: function () {\n return 'production';\n },\n message: 'should be a string',\n validate: function (value) {\n return typeof value === 'string' && value.length;\n }\n },\n maxBreadcrumbs: {\n defaultValue: function () {\n return 25;\n },\n message: 'should be a number ≤100',\n validate: function (value) {\n return _$intRange_24(0, 100)(value);\n }\n },\n enabledBreadcrumbTypes: {\n defaultValue: function () {\n return _$breadcrumbTypes_8;\n },\n message: \"should be null or a list of available breadcrumb types (\" + _$breadcrumbTypes_8.join(',') + \")\",\n validate: function (value) {\n return value === null || _$isArray_14(value) && _$reduce_17(value, function (accum, maybeType) {\n if (accum === false) return accum;\n return _$includes_13(_$breadcrumbTypes_8, maybeType);\n }, true);\n }\n },\n context: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be a string',\n validate: function (value) {\n return value === undefined || typeof value === 'string';\n }\n },\n user: {\n defaultValue: function () {\n return {};\n },\n message: 'should be an object with { id, email, name } properties',\n validate: function (value) {\n return value === null || value && _$reduce_17(_$keys_15(value), function (accum, key) {\n return accum && _$includes_13(['id', 'email', 'name'], key);\n }, true);\n }\n },\n metadata: {\n defaultValue: function () {\n return {};\n },\n message: 'should be an object',\n validate: function (value) {\n return typeof value === 'object' && value !== null;\n }\n },\n logger: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be null or an object with methods { debug, info, warn, error }',\n validate: function (value) {\n return !value || value && _$reduce_17(['debug', 'info', 'warn', 'error'], function (accum, method) {\n return accum && typeof value[method] === 'function';\n }, true);\n }\n },\n redactedKeys: {\n defaultValue: function () {\n return ['password'];\n },\n message: 'should be an array of strings|regexes',\n validate: function (value) {\n return _$isArray_14(value) && value.length === _$filter_12(value, function (s) {\n return typeof s === 'string' || s && typeof s.test === 'function';\n }).length;\n }\n },\n plugins: {\n defaultValue: function () {\n return [];\n },\n message: 'should be an array of plugin objects',\n validate: function (value) {\n return _$isArray_14(value) && value.length === _$filter_12(value, function (p) {\n return p && typeof p === 'object' && typeof p.load === 'function';\n }).length;\n }\n },\n featureFlags: {\n defaultValue: function () {\n return [];\n },\n message: 'should be an array of objects that have a \"name\" property',\n validate: function (value) {\n return _$isArray_14(value) && value.length === _$filter_12(value, function (feature) {\n return feature && typeof feature === 'object' && typeof feature.name === 'string';\n }).length;\n }\n }\n};\n\n// extends helper from babel\n// https://github.com/babel/babel/blob/916429b516e6466fd06588ee820e40e025d7f3a3/packages/babel-helpers/src/helpers.js#L377-L393\nvar _$assign_11 = function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/* removed: var _$reduce_17 = require('./reduce'); */; // Array#map\n\n\nvar _$map_16 = function (arr, fn) {\n return _$reduce_17(arr, function (accum, item, i, arr) {\n return accum.concat(fn(item, i, arr));\n }, []);\n};\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nvar schema = _$config_5.schema;\n\n/* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */;\n\n/* removed: var _$assign_11 = require('@bugsnag/core/lib/es-utils/assign'); */;\n\nvar _$config_1 = {\n releaseStage: _$assign_11({}, schema.releaseStage, {\n defaultValue: function () {\n if (/^localhost(:\\d+)?$/.test(window.location.host)) return 'development';\n return 'production';\n }\n }),\n appType: _extends({}, schema.appType, {\n defaultValue: function () {\n return 'browser';\n }\n }),\n logger: _$assign_11({}, schema.logger, {\n defaultValue: function () {\n return (// set logger based on browser capability\n typeof console !== 'undefined' && typeof console.debug === 'function' ? getPrefixedConsole() : undefined\n );\n }\n })\n};\n\nvar getPrefixedConsole = function () {\n var logger = {};\n var consoleLog = console.log;\n _$map_16(['debug', 'info', 'warn', 'error'], function (method) {\n var consoleMethod = console[method];\n logger[method] = typeof consoleMethod === 'function' ? consoleMethod.bind(console, '[bugsnag]') : consoleLog.bind(console, '[bugsnag]');\n });\n return logger;\n};\n\nvar Breadcrumb = /*#__PURE__*/function () {\n function Breadcrumb(message, metadata, type, timestamp) {\n if (timestamp === void 0) {\n timestamp = new Date();\n }\n\n this.type = type;\n this.message = message;\n this.metadata = metadata;\n this.timestamp = timestamp;\n }\n\n var _proto = Breadcrumb.prototype;\n\n _proto.toJSON = function toJSON() {\n return {\n type: this.type,\n name: this.message,\n timestamp: this.timestamp,\n metaData: this.metadata\n };\n };\n\n return Breadcrumb;\n}();\n\nvar _$Breadcrumb_3 = Breadcrumb;\n\nvar _$stackframe_34 = {};\n(function (root, factory) {\n 'use strict'; // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (typeof _$stackframe_34 === 'object') {\n _$stackframe_34 = factory();\n } else {\n root.StackFrame = factory();\n }\n})(this, function () {\n 'use strict';\n\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n\n function _getter(p) {\n return function () {\n return this[p];\n };\n }\n\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n var props = booleanProps.concat(numericProps, stringProps, arrayProps);\n\n function StackFrame(obj) {\n if (obj instanceof Object) {\n for (var i = 0; i < props.length; i++) {\n if (obj.hasOwnProperty(props[i]) && obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n }\n\n StackFrame.prototype = {\n getArgs: function () {\n return this.args;\n },\n setArgs: function (v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n\n this.args = v;\n },\n getEvalOrigin: function () {\n return this.evalOrigin;\n },\n setEvalOrigin: function (v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n toString: function () {\n var functionName = this.getFunctionName() || '{anonymous}';\n var args = '(' + (this.getArgs() || []).join(',') + ')';\n var fileName = this.getFileName() ? '@' + this.getFileName() : '';\n var lineNumber = _isNumber(this.getLineNumber()) ? ':' + this.getLineNumber() : '';\n var columnNumber = _isNumber(this.getColumnNumber()) ? ':' + this.getColumnNumber() : '';\n return functionName + args + fileName + lineNumber + columnNumber;\n }\n };\n\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = function (p) {\n return function (v) {\n this[p] = Boolean(v);\n };\n }(booleanProps[i]);\n }\n\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = function (p) {\n return function (v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n\n this[p] = Number(v);\n };\n }(numericProps[j]);\n }\n\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = function (p) {\n return function (v) {\n this[p] = String(v);\n };\n }(stringProps[k]);\n }\n\n return StackFrame;\n});\n\nvar _$errorStackParser_31 = {};\n(function (root, factory) {\n 'use strict'; // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (typeof _$errorStackParser_31 === 'object') {\n _$errorStackParser_31 = factory(_$stackframe_34);\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n})(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+\\:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+\\:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code\\])?$/;\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?:\\:(\\d+))?(?:\\:(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[\\(\\)]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n return filtered.map(function (line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^\\()]*)|(\\)\\,.*$)/g, '');\n }\n\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '('); // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n // case it has spaces in it, as the string is split on \\s+ later on\n\n var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/); // remove the parenthesized location from the line, if it was matched\n\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n var tokens = sanitizedLine.split(/\\s+/).slice(1); // if a location was matched, pass it to extractLocation() otherwise pop the last token\n\n var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n return filtered.map(function (line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval\\:\\d+\\:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || e.message.indexOf('\\n') > -1 && e.message.split('\\n').length > e.stacktrace.split('\\n').length) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n\n if (match) {\n result.push(new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n return filtered.map(function (line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = tokens.shift() || '';\n var functionName = functionCall.replace(//, '$2').replace(/\\([^\\)]*\\)/g, '') || undefined;\n var argsRaw;\n\n if (functionCall.match(/\\(([^\\)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^\\(]+\\(([^\\)]*)\\)$/, '$1');\n }\n\n var args = argsRaw === undefined || argsRaw === '[arguments not available]' ? undefined : argsRaw.split(',');\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n});\n\nvar _$errorStackParser_10 = _$errorStackParser_31;\n\nvar _$safeJsonStringify_30 = function (data, replacer, space, opts) {\n var redactedKeys = opts && opts.redactedKeys ? opts.redactedKeys : [];\n var redactedPaths = opts && opts.redactedPaths ? opts.redactedPaths : [];\n return JSON.stringify(prepareObjForSerialization(data, redactedKeys, redactedPaths), replacer, space);\n};\n\nvar MAX_DEPTH = 20;\nvar MAX_EDGES = 25000;\nvar MIN_PRESERVED_DEPTH = 8;\nvar REPLACEMENT_NODE = '...';\n\nfunction isError(o) {\n return o instanceof Error || /^\\[object (Error|(Dom)?Exception)\\]$/.test(Object.prototype.toString.call(o));\n}\n\nfunction throwsMessage(err) {\n return '[Throws: ' + (err ? err.message : '?') + ']';\n}\n\nfunction find(haystack, needle) {\n for (var i = 0, len = haystack.length; i < len; i++) {\n if (haystack[i] === needle) return true;\n }\n\n return false;\n} // returns true if the string `path` starts with any of the provided `paths`\n\n\nfunction isDescendent(paths, path) {\n for (var i = 0, len = paths.length; i < len; i++) {\n if (path.indexOf(paths[i]) === 0) return true;\n }\n\n return false;\n}\n\nfunction shouldRedact(patterns, key) {\n for (var i = 0, len = patterns.length; i < len; i++) {\n if (typeof patterns[i] === 'string' && patterns[i].toLowerCase() === key.toLowerCase()) return true;\n if (patterns[i] && typeof patterns[i].test === 'function' && patterns[i].test(key)) return true;\n }\n\n return false;\n}\n\nfunction __isArray_30(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction safelyGetProp(obj, prop) {\n try {\n return obj[prop];\n } catch (err) {\n return throwsMessage(err);\n }\n}\n\nfunction prepareObjForSerialization(obj, redactedKeys, redactedPaths) {\n var seen = []; // store references to objects we have seen before\n\n var edges = 0;\n\n function visit(obj, path) {\n function edgesExceeded() {\n return path.length > MIN_PRESERVED_DEPTH && edges > MAX_EDGES;\n }\n\n edges++;\n if (path.length > MAX_DEPTH) return REPLACEMENT_NODE;\n if (edgesExceeded()) return REPLACEMENT_NODE;\n if (obj === null || typeof obj !== 'object') return obj;\n if (find(seen, obj)) return '[Circular]';\n seen.push(obj);\n\n if (typeof obj.toJSON === 'function') {\n try {\n // we're not going to count this as an edge because it\n // replaces the value of the currently visited object\n edges--;\n var fResult = visit(obj.toJSON(), path);\n seen.pop();\n return fResult;\n } catch (err) {\n return throwsMessage(err);\n }\n }\n\n var er = isError(obj);\n\n if (er) {\n edges--;\n var eResult = visit({\n name: obj.name,\n message: obj.message\n }, path);\n seen.pop();\n return eResult;\n }\n\n if (__isArray_30(obj)) {\n var aResult = [];\n\n for (var i = 0, len = obj.length; i < len; i++) {\n if (edgesExceeded()) {\n aResult.push(REPLACEMENT_NODE);\n break;\n }\n\n aResult.push(visit(obj[i], path.concat('[]')));\n }\n\n seen.pop();\n return aResult;\n }\n\n var result = {};\n\n try {\n for (var prop in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) continue;\n\n if (isDescendent(redactedPaths, path.join('.')) && shouldRedact(redactedKeys, prop)) {\n result[prop] = '[REDACTED]';\n continue;\n }\n\n if (edgesExceeded()) {\n result[prop] = REPLACEMENT_NODE;\n break;\n }\n\n result[prop] = visit(safelyGetProp(obj, prop), path.concat(prop));\n }\n } catch (e) {}\n\n seen.pop();\n return result;\n }\n\n return visit(obj, []);\n}\n\n/* removed: var _$map_16 = require('./es-utils/map'); */;\n\n/* removed: var _$keys_15 = require('./es-utils/keys'); */;\n\n/* removed: var _$isArray_14 = require('./es-utils/is-array'); */;\n\n/* removed: var _$safeJsonStringify_30 = require('@bugsnag/safe-json-stringify'); */;\n\nfunction add(existingFeatures, name, variant) {\n if (typeof name !== 'string') {\n return;\n }\n\n if (variant === undefined) {\n variant = null;\n } else if (variant !== null && typeof variant !== 'string') {\n variant = _$safeJsonStringify_30(variant);\n }\n\n existingFeatures[name] = variant;\n}\n\nfunction merge(existingFeatures, newFeatures) {\n if (!_$isArray_14(newFeatures)) {\n return;\n }\n\n for (var i = 0; i < newFeatures.length; ++i) {\n var feature = newFeatures[i];\n\n if (feature === null || typeof feature !== 'object') {\n continue;\n } // 'add' will handle if 'name' doesn't exist & 'variant' is optional\n\n\n add(existingFeatures, feature.name, feature.variant);\n }\n} // convert feature flags from a map of 'name -> variant' into the format required\n// by the Bugsnag Event API:\n// [{ featureFlag: 'name', variant: 'variant' }, { featureFlag: 'name 2' }]\n\n\nfunction toEventApi(featureFlags) {\n return _$map_16(_$keys_15(featureFlags), function (name) {\n var flag = {\n featureFlag: name\n }; // don't add a 'variant' property unless there's actually a value\n\n if (typeof featureFlags[name] === 'string') {\n flag.variant = featureFlags[name];\n }\n\n return flag;\n });\n}\n\nvar _$featureFlagDelegate_18 = {\n add: add,\n merge: merge,\n toEventApi: toEventApi\n};\n\n// Given `err` which may be an error, does it have a stack property which is a string?\nvar _$hasStack_19 = function (err) {\n return !!err && (!!err.stack || !!err.stacktrace || !!err['opera#sourceloc']) && typeof (err.stack || err.stacktrace || err['opera#sourceloc']) === 'string' && err.stack !== err.name + \": \" + err.message;\n};\n\n/**\n * Expose `isError`.\n */\nvar _$isError_32 = __isError_32;\n/**\n * Test whether `value` is error object.\n *\n * @param {*} value\n * @returns {boolean}\n */\n\nfunction __isError_32(value) {\n switch (Object.prototype.toString.call(value)) {\n case '[object Error]':\n return true;\n\n case '[object Exception]':\n return true;\n\n case '[object DOMException]':\n return true;\n\n default:\n return value instanceof Error;\n }\n}\n\nvar _$iserror_20 = _$isError_32;\n\n/* removed: var _$assign_11 = require('./es-utils/assign'); */;\n\nvar __add_22 = function (state, section, keyOrObj, maybeVal) {\n var _updates;\n\n if (!section) return;\n var updates; // addMetadata(\"section\", null) -> clears section\n\n if (keyOrObj === null) return clear(state, section); // normalise the two supported input types into object form\n\n if (typeof keyOrObj === 'object') updates = keyOrObj;\n if (typeof keyOrObj === 'string') updates = (_updates = {}, _updates[keyOrObj] = maybeVal, _updates); // exit if we don't have an updates object at this point\n\n if (!updates) return; // ensure a section with this name exists\n\n if (!state[section]) state[section] = {}; // merge the updates with the existing section\n\n state[section] = _$assign_11({}, state[section], updates);\n};\n\nvar get = function (state, section, key) {\n if (typeof section !== 'string') return undefined;\n\n if (!key) {\n return state[section];\n }\n\n if (state[section]) {\n return state[section][key];\n }\n\n return undefined;\n};\n\nvar clear = function (state, section, key) {\n if (typeof section !== 'string') return; // clear an entire section\n\n if (!key) {\n delete state[section];\n return;\n } // clear a single value from a section\n\n\n if (state[section]) {\n delete state[section][key];\n }\n};\n\nvar _$metadataDelegate_22 = {\n add: __add_22,\n get: get,\n clear: clear\n};\n\nvar _$stackGenerator_33 = {};\n(function (root, factory) {\n 'use strict'; // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n\n if (typeof define === 'function' && define.amd) {\n define('stack-generator', ['stackframe'], factory);\n } else if (typeof _$stackGenerator_33 === 'object') {\n _$stackGenerator_33 = factory(_$stackframe_34);\n } else {\n root.StackGenerator = factory(root.StackFrame);\n }\n})(this, function (StackFrame) {\n return {\n backtrace: function StackGenerator$$backtrace(opts) {\n var stack = [];\n var maxStackSize = 10;\n\n if (typeof opts === 'object' && typeof opts.maxStackSize === 'number') {\n maxStackSize = opts.maxStackSize;\n }\n\n var curr = arguments.callee;\n\n while (curr && stack.length < maxStackSize && curr['arguments']) {\n // Allow V8 optimizations\n var args = new Array(curr['arguments'].length);\n\n for (var i = 0; i < args.length; ++i) {\n args[i] = curr['arguments'][i];\n }\n\n if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n stack.push(new StackFrame({\n functionName: RegExp.$1 || undefined,\n args: args\n }));\n } else {\n stack.push(new StackFrame({\n args: args\n }));\n }\n\n try {\n curr = curr.caller;\n } catch (e) {\n break;\n }\n }\n\n return stack;\n }\n };\n});\n\n/* removed: var _$errorStackParser_10 = require('./lib/error-stack-parser'); */;\n\n/* removed: var _$stackGenerator_33 = require('stack-generator'); */;\n\n/* removed: var _$hasStack_19 = require('./lib/has-stack'); */;\n\n/* removed: var _$map_16 = require('./lib/es-utils/map'); */;\n\n/* removed: var _$reduce_17 = require('./lib/es-utils/reduce'); */;\n\n/* removed: var _$filter_12 = require('./lib/es-utils/filter'); */;\n\n/* removed: var _$assign_11 = require('./lib/es-utils/assign'); */;\n\n/* removed: var _$metadataDelegate_22 = require('./lib/metadata-delegate'); */;\n\n/* removed: var _$featureFlagDelegate_18 = require('./lib/feature-flag-delegate'); */;\n\n/* removed: var _$iserror_20 = require('./lib/iserror'); */;\n\nvar Event = /*#__PURE__*/function () {\n function Event(errorClass, errorMessage, stacktrace, handledState, originalError) {\n if (stacktrace === void 0) {\n stacktrace = [];\n }\n\n if (handledState === void 0) {\n handledState = defaultHandledState();\n }\n\n this.apiKey = undefined;\n this.context = undefined;\n this.groupingHash = undefined;\n this.originalError = originalError;\n this._handledState = handledState;\n this.severity = this._handledState.severity;\n this.unhandled = this._handledState.unhandled;\n this.app = {};\n this.device = {};\n this.request = {};\n this.breadcrumbs = [];\n this.threads = [];\n this._metadata = {};\n this._features = {};\n this._user = {};\n this._session = undefined;\n this.errors = [createBugsnagError(errorClass, errorMessage, Event.__type, stacktrace)]; // Flags.\n // Note these are not initialised unless they are used\n // to save unnecessary bytes in the browser bundle\n\n /* this.attemptImmediateDelivery, default: true */\n }\n\n var _proto = Event.prototype;\n\n _proto.addMetadata = function addMetadata(section, keyOrObj, maybeVal) {\n return _$metadataDelegate_22.add(this._metadata, section, keyOrObj, maybeVal);\n };\n\n _proto.getMetadata = function getMetadata(section, key) {\n return _$metadataDelegate_22.get(this._metadata, section, key);\n };\n\n _proto.clearMetadata = function clearMetadata(section, key) {\n return _$metadataDelegate_22.clear(this._metadata, section, key);\n };\n\n _proto.addFeatureFlag = function addFeatureFlag(name, variant) {\n if (variant === void 0) {\n variant = null;\n }\n\n _$featureFlagDelegate_18.add(this._features, name, variant);\n };\n\n _proto.addFeatureFlags = function addFeatureFlags(featureFlags) {\n _$featureFlagDelegate_18.merge(this._features, featureFlags);\n };\n\n _proto.clearFeatureFlag = function clearFeatureFlag(name) {\n delete this._features[name];\n };\n\n _proto.clearFeatureFlags = function clearFeatureFlags() {\n this._features = {};\n };\n\n _proto.getUser = function getUser() {\n return this._user;\n };\n\n _proto.setUser = function setUser(id, email, name) {\n this._user = {\n id: id,\n email: email,\n name: name\n };\n };\n\n _proto.toJSON = function toJSON() {\n return {\n payloadVersion: '4',\n exceptions: _$map_16(this.errors, function (er) {\n return _$assign_11({}, er, {\n message: er.errorMessage\n });\n }),\n severity: this.severity,\n unhandled: this._handledState.unhandled,\n severityReason: this._handledState.severityReason,\n app: this.app,\n device: this.device,\n request: this.request,\n breadcrumbs: this.breadcrumbs,\n context: this.context,\n groupingHash: this.groupingHash,\n metaData: this._metadata,\n user: this._user,\n session: this._session,\n featureFlags: _$featureFlagDelegate_18.toEventApi(this._features)\n };\n };\n\n return Event;\n}(); // takes a stacktrace.js style stackframe (https://github.com/stacktracejs/stackframe)\n// and returns a Bugsnag compatible stackframe (https://docs.bugsnag.com/api/error-reporting/#json-payload)\n\n\nvar formatStackframe = function (frame) {\n var f = {\n file: frame.fileName,\n method: normaliseFunctionName(frame.functionName),\n lineNumber: frame.lineNumber,\n columnNumber: frame.columnNumber,\n code: undefined,\n inProject: undefined\n }; // Some instances result in no file:\n // - calling notify() from chrome's terminal results in no file/method.\n // - non-error exception thrown from global code in FF\n // This adds one.\n\n if (f.lineNumber > -1 && !f.file && !f.method) {\n f.file = 'global code';\n }\n\n return f;\n};\n\nvar normaliseFunctionName = function (name) {\n return /^global code$/i.test(name) ? 'global code' : name;\n};\n\nvar defaultHandledState = function () {\n return {\n unhandled: false,\n severity: 'warning',\n severityReason: {\n type: 'handledException'\n }\n };\n};\n\nvar ensureString = function (str) {\n return typeof str === 'string' ? str : '';\n};\n\nfunction createBugsnagError(errorClass, errorMessage, type, stacktrace) {\n return {\n errorClass: ensureString(errorClass),\n errorMessage: ensureString(errorMessage),\n type: type,\n stacktrace: _$reduce_17(stacktrace, function (accum, frame) {\n var f = formatStackframe(frame); // don't include a stackframe if none of its properties are defined\n\n try {\n if (JSON.stringify(f) === '{}') return accum;\n return accum.concat(f);\n } catch (e) {\n return accum;\n }\n }, [])\n };\n}\n\nfunction getCauseStack(error) {\n if (error.cause) {\n return [error].concat(getCauseStack(error.cause));\n } else {\n return [error];\n }\n} // Helpers\n\n\nEvent.getStacktrace = function (error, errorFramesToSkip, backtraceFramesToSkip) {\n if (_$hasStack_19(error)) return _$errorStackParser_10.parse(error).slice(errorFramesToSkip); // error wasn't provided or didn't have a stacktrace so try to walk the callstack\n\n try {\n return _$filter_12(_$stackGenerator_33.backtrace(), function (frame) {\n return (frame.functionName || '').indexOf('StackGenerator$$') === -1;\n }).slice(1 + backtraceFramesToSkip);\n } catch (e) {\n return [];\n }\n};\n\nEvent.create = function (maybeError, tolerateNonErrors, handledState, component, errorFramesToSkip, logger) {\n if (errorFramesToSkip === void 0) {\n errorFramesToSkip = 0;\n }\n\n var _normaliseError = normaliseError(maybeError, tolerateNonErrors, component, logger),\n error = _normaliseError[0],\n internalFrames = _normaliseError[1];\n\n var event;\n\n try {\n var stacktrace = Event.getStacktrace(error, // if an error was created/throw in the normaliseError() function, we need to\n // tell the getStacktrace() function to skip the number of frames we know will\n // be from our own functions. This is added to the number of frames deep we\n // were told about\n internalFrames > 0 ? 1 + internalFrames + errorFramesToSkip : 0, // if there's no stacktrace, the callstack may be walked to generated one.\n // this is how many frames should be removed because they come from our library\n 1 + errorFramesToSkip);\n event = new Event(error.name, error.message, stacktrace, handledState, maybeError);\n } catch (e) {\n event = new Event(error.name, error.message, [], handledState, maybeError);\n }\n\n if (error.name === 'InvalidError') {\n event.addMetadata(\"\" + component, 'non-error parameter', makeSerialisable(maybeError));\n }\n\n if (error.cause) {\n var _event$errors;\n\n var causes = getCauseStack(error).slice(1);\n var normalisedCauses = _$map_16(causes, function (cause) {\n // Only get stacktrace for error causes that are a valid JS Error and already have a stack\n var stacktrace = _$iserror_20(cause) && _$hasStack_19(cause) ? _$errorStackParser_10.parse(cause) : [];\n\n var _normaliseError2 = normaliseError(cause, true, 'error cause'),\n error = _normaliseError2[0];\n\n if (error.name === 'InvalidError') event.addMetadata('error cause', makeSerialisable(cause));\n return createBugsnagError(error.name, error.message, Event.__type, stacktrace);\n });\n\n (_event$errors = event.errors).push.apply(_event$errors, normalisedCauses);\n }\n\n return event;\n};\n\nvar makeSerialisable = function (err) {\n if (err === null) return 'null';\n if (err === undefined) return 'undefined';\n return err;\n};\n\nvar normaliseError = function (maybeError, tolerateNonErrors, component, logger) {\n var error;\n var internalFrames = 0;\n\n var createAndLogInputError = function (reason) {\n var verb = component === 'error cause' ? 'was' : 'received';\n if (logger) logger.warn(component + \" \" + verb + \" a non-error: \\\"\" + reason + \"\\\"\");\n var err = new Error(component + \" \" + verb + \" a non-error. See \\\"\" + component + \"\\\" tab for more detail.\");\n err.name = 'InvalidError';\n return err;\n }; // In some cases:\n //\n // - the promise rejection handler (both in the browser and node)\n // - the node uncaughtException handler\n //\n // We are really limited in what we can do to get a stacktrace. So we use the\n // tolerateNonErrors option to ensure that the resulting error communicates as\n // such.\n\n\n if (!tolerateNonErrors) {\n if (_$iserror_20(maybeError)) {\n error = maybeError;\n } else {\n error = createAndLogInputError(typeof maybeError);\n internalFrames += 2;\n }\n } else {\n switch (typeof maybeError) {\n case 'string':\n case 'number':\n case 'boolean':\n error = new Error(String(maybeError));\n internalFrames += 1;\n break;\n\n case 'function':\n error = createAndLogInputError('function');\n internalFrames += 2;\n break;\n\n case 'object':\n if (maybeError !== null && _$iserror_20(maybeError)) {\n error = maybeError;\n } else if (maybeError !== null && hasNecessaryFields(maybeError)) {\n error = new Error(maybeError.message || maybeError.errorMessage);\n error.name = maybeError.name || maybeError.errorClass;\n internalFrames += 1;\n } else {\n error = createAndLogInputError(maybeError === null ? 'null' : 'unsupported object');\n internalFrames += 2;\n }\n\n break;\n\n default:\n error = createAndLogInputError('nothing');\n internalFrames += 2;\n }\n }\n\n if (!_$hasStack_19(error)) {\n // in IE10/11 a new Error() doesn't have a stacktrace until you throw it, so try that here\n try {\n throw error;\n } catch (e) {\n if (_$hasStack_19(e)) {\n error = e; // if the error only got a stacktrace after we threw it here, we know it\n // will only have one extra internal frame from this function, regardless\n // of whether it went through createAndLogInputError() or not\n\n internalFrames = 1;\n }\n }\n }\n\n return [error, internalFrames];\n}; // default value for stacktrace.type\n\n\nEvent.__type = 'browserjs';\n\nvar hasNecessaryFields = function (error) {\n return (typeof error.name === 'string' || typeof error.errorClass === 'string') && (typeof error.message === 'string' || typeof error.errorMessage === 'string');\n};\n\nvar _$Event_6 = Event;\n\n// This is a heavily modified/simplified version of\n// https://github.com/othiym23/async-some\n// with the logic flipped so that it is akin to the\n// synchronous \"every\" method instead of \"some\".\n// run the asynchronous test function (fn) over each item in the array (arr)\n// in series until:\n// - fn(item, cb) => calls cb(null, false)\n// - or the end of the array is reached\n// the callback (cb) will be passed (null, false) if any of the items in arr\n// caused fn to call back with false, otherwise it will be passed (null, true)\nvar _$asyncEvery_7 = function (arr, fn, cb) {\n var index = 0;\n\n var next = function () {\n if (index >= arr.length) return cb(null, true);\n fn(arr[index], function (err, result) {\n if (err) return cb(err);\n if (result === false) return cb(null, false);\n index++;\n next();\n });\n };\n\n next();\n};\n\n/* removed: var _$asyncEvery_7 = require('./async-every'); */;\n\nvar _$callbackRunner_9 = function (callbacks, event, onCallbackError, cb) {\n // This function is how we support different kinds of callback:\n // - synchronous - return value\n // - node-style async with callback - cb(err, value)\n // - promise/thenable - resolve(value)\n // It normalises each of these into the lowest common denominator – a node-style callback\n var runMaybeAsyncCallback = function (fn, cb) {\n if (typeof fn !== 'function') return cb(null);\n\n try {\n // if function appears sync…\n if (fn.length !== 2) {\n var ret = fn(event); // check if it returned a \"thenable\" (promise)\n\n if (ret && typeof ret.then === 'function') {\n return ret.then( // resolve\n function (val) {\n return setTimeout(function () {\n return cb(null, val);\n });\n }, // reject\n function (err) {\n setTimeout(function () {\n onCallbackError(err);\n return cb(null, true);\n });\n });\n }\n\n return cb(null, ret);\n } // if function is async…\n\n\n fn(event, function (err, result) {\n if (err) {\n onCallbackError(err);\n return cb(null);\n }\n\n cb(null, result);\n });\n } catch (e) {\n onCallbackError(e);\n cb(null);\n }\n };\n\n _$asyncEvery_7(callbacks, runMaybeAsyncCallback, cb);\n};\n\nvar _$syncCallbackRunner_23 = function (callbacks, callbackArg, callbackType, logger) {\n var ignore = false;\n var cbs = callbacks.slice();\n\n while (!ignore) {\n if (!cbs.length) break;\n\n try {\n ignore = cbs.pop()(callbackArg) === false;\n } catch (e) {\n logger.error(\"Error occurred in \" + callbackType + \" callback, continuing anyway\\u2026\");\n logger.error(e);\n }\n }\n\n return ignore;\n};\n\nvar _$pad_29 = function pad(num, size) {\n var s = '000000000' + num;\n return s.substr(s.length - size);\n};\n\n/* removed: var _$pad_29 = require('./pad.js'); */;\n\nvar env = typeof window === 'object' ? window : self;\nvar globalCount = 0;\n\nfor (var prop in env) {\n if (Object.hasOwnProperty.call(env, prop)) globalCount++;\n}\n\nvar mimeTypesLength = navigator.mimeTypes ? navigator.mimeTypes.length : 0;\nvar clientId = _$pad_29((mimeTypesLength + navigator.userAgent.length).toString(36) + globalCount.toString(36), 4);\n\nvar _$fingerprint_28 = function fingerprint() {\n return clientId;\n};\n\n/**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n/* removed: var _$fingerprint_28 = require('./lib/fingerprint.js'); */;\n\n/* removed: var _$pad_29 = require('./lib/pad.js'); */;\n\nvar c = 0,\n blockSize = 4,\n base = 36,\n discreteValues = Math.pow(base, blockSize);\n\nfunction randomBlock() {\n return _$pad_29((Math.random() * discreteValues << 0).toString(base), blockSize);\n}\n\nfunction safeCounter() {\n c = c < discreteValues ? c : 0;\n c++; // this is not subliminal\n\n return c - 1;\n}\n\nfunction cuid() {\n // Starting with a lowercase letter makes\n // it HTML element ID friendly.\n var letter = 'c',\n // hard-coded allows for sequential access\n // timestamp\n // warning: this exposes the exact date and time\n // that the uid was created.\n timestamp = new Date().getTime().toString(base),\n // Prevent same-machine collisions.\n counter = _$pad_29(safeCounter().toString(base), blockSize),\n // A few chars to generate distinct ids for different\n // clients (so different computers are far less\n // likely to generate the same id)\n print = _$fingerprint_28(),\n // Grab some more chars from Math.random()\n random = randomBlock() + randomBlock();\n return letter + timestamp + counter + print + random;\n}\n\ncuid.fingerprint = _$fingerprint_28;\nvar _$cuid_27 = cuid;\n\n/* removed: var _$cuid_27 = require('@bugsnag/cuid'); */;\n\nvar Session = /*#__PURE__*/function () {\n function Session() {\n this.id = _$cuid_27();\n this.startedAt = new Date();\n this._handled = 0;\n this._unhandled = 0;\n this._user = {};\n this.app = {};\n this.device = {};\n }\n\n var _proto = Session.prototype;\n\n _proto.getUser = function getUser() {\n return this._user;\n };\n\n _proto.setUser = function setUser(id, email, name) {\n this._user = {\n id: id,\n email: email,\n name: name\n };\n };\n\n _proto.toJSON = function toJSON() {\n return {\n id: this.id,\n startedAt: this.startedAt,\n events: {\n handled: this._handled,\n unhandled: this._unhandled\n }\n };\n };\n\n _proto._track = function _track(event) {\n this[event._handledState.unhandled ? '_unhandled' : '_handled'] += 1;\n };\n\n return Session;\n}();\n\nvar _$Session_35 = Session;\n\n/* removed: var _$config_5 = require('./config'); */;\n\n/* removed: var _$Event_6 = require('./event'); */;\n\n/* removed: var _$Breadcrumb_3 = require('./breadcrumb'); */;\n\n/* removed: var _$Session_35 = require('./session'); */;\n\n/* removed: var _$map_16 = require('./lib/es-utils/map'); */;\n\n/* removed: var _$includes_13 = require('./lib/es-utils/includes'); */;\n\n/* removed: var _$filter_12 = require('./lib/es-utils/filter'); */;\n\n/* removed: var _$reduce_17 = require('./lib/es-utils/reduce'); */;\n\n/* removed: var _$keys_15 = require('./lib/es-utils/keys'); */;\n\n/* removed: var _$assign_11 = require('./lib/es-utils/assign'); */;\n\n/* removed: var _$callbackRunner_9 = require('./lib/callback-runner'); */;\n\n/* removed: var _$featureFlagDelegate_18 = require('./lib/feature-flag-delegate'); */;\n\n/* removed: var _$metadataDelegate_22 = require('./lib/metadata-delegate'); */;\n\n/* removed: var _$syncCallbackRunner_23 = require('./lib/sync-callback-runner'); */;\n\n/* removed: var _$breadcrumbTypes_8 = require('./lib/breadcrumb-types'); */;\n\nvar noop = function () {};\n\nvar Client = /*#__PURE__*/function () {\n function Client(configuration, schema, internalPlugins, notifier) {\n var _this = this;\n\n if (schema === void 0) {\n schema = _$config_5.schema;\n }\n\n if (internalPlugins === void 0) {\n internalPlugins = [];\n }\n\n // notifier id\n this._notifier = notifier; // intialise opts and config\n\n this._config = {};\n this._schema = schema; // i/o\n\n this._delivery = {\n sendSession: noop,\n sendEvent: noop\n };\n this._logger = {\n debug: noop,\n info: noop,\n warn: noop,\n error: noop\n }; // plugins\n\n this._plugins = {}; // state\n\n this._breadcrumbs = [];\n this._session = null;\n this._metadata = {};\n this._features = {};\n this._context = undefined;\n this._user = {}; // callbacks:\n // e: onError\n // s: onSession\n // sp: onSessionPayload\n // b: onBreadcrumb\n // (note these names are minified by hand because object\n // properties are not safe to minify automatically)\n\n this._cbs = {\n e: [],\n s: [],\n sp: [],\n b: []\n }; // expose internal constructors\n\n this.Client = Client;\n this.Event = _$Event_6;\n this.Breadcrumb = _$Breadcrumb_3;\n this.Session = _$Session_35;\n this._config = this._configure(configuration, internalPlugins);\n _$map_16(internalPlugins.concat(this._config.plugins), function (pl) {\n if (pl) _this._loadPlugin(pl);\n }); // when notify() is called we need to know how many frames are from our own source\n // this inital value is 1 not 0 because we wrap notify() to ensure it is always\n // bound to have the client as its `this` value – see below.\n\n this._depth = 1;\n var self = this;\n var notify = this.notify;\n\n this.notify = function () {\n return notify.apply(self, arguments);\n };\n }\n\n var _proto = Client.prototype;\n\n _proto.addMetadata = function addMetadata(section, keyOrObj, maybeVal) {\n return _$metadataDelegate_22.add(this._metadata, section, keyOrObj, maybeVal);\n };\n\n _proto.getMetadata = function getMetadata(section, key) {\n return _$metadataDelegate_22.get(this._metadata, section, key);\n };\n\n _proto.clearMetadata = function clearMetadata(section, key) {\n return _$metadataDelegate_22.clear(this._metadata, section, key);\n };\n\n _proto.addFeatureFlag = function addFeatureFlag(name, variant) {\n if (variant === void 0) {\n variant = null;\n }\n\n _$featureFlagDelegate_18.add(this._features, name, variant);\n };\n\n _proto.addFeatureFlags = function addFeatureFlags(featureFlags) {\n _$featureFlagDelegate_18.merge(this._features, featureFlags);\n };\n\n _proto.clearFeatureFlag = function clearFeatureFlag(name) {\n delete this._features[name];\n };\n\n _proto.clearFeatureFlags = function clearFeatureFlags() {\n this._features = {};\n };\n\n _proto.getContext = function getContext() {\n return this._context;\n };\n\n _proto.setContext = function setContext(c) {\n this._context = c;\n };\n\n _proto._configure = function _configure(opts, internalPlugins) {\n var schema = _$reduce_17(internalPlugins, function (schema, plugin) {\n if (plugin && plugin.configSchema) return _$assign_11({}, schema, plugin.configSchema);\n return schema;\n }, this._schema); // accumulate configuration and error messages\n\n var _reduce = _$reduce_17(_$keys_15(schema), function (accum, key) {\n var defaultValue = schema[key].defaultValue(opts[key]);\n\n if (opts[key] !== undefined) {\n var valid = schema[key].validate(opts[key]);\n\n if (!valid) {\n accum.errors[key] = schema[key].message;\n accum.config[key] = defaultValue;\n } else {\n if (schema[key].allowPartialObject) {\n accum.config[key] = _$assign_11(defaultValue, opts[key]);\n } else {\n accum.config[key] = opts[key];\n }\n }\n } else {\n accum.config[key] = defaultValue;\n }\n\n return accum;\n }, {\n errors: {},\n config: {}\n }),\n errors = _reduce.errors,\n config = _reduce.config;\n\n if (schema.apiKey) {\n // missing api key is the only fatal error\n if (!config.apiKey) throw new Error('No Bugsnag API Key set'); // warn about an apikey that is not of the expected format\n\n if (!/^[0-9a-f]{32}$/i.test(config.apiKey)) errors.apiKey = 'should be a string of 32 hexadecimal characters';\n } // update and elevate some options\n\n\n this._metadata = _$assign_11({}, config.metadata);\n _$featureFlagDelegate_18.merge(this._features, config.featureFlags);\n this._user = _$assign_11({}, config.user);\n this._context = config.context;\n if (config.logger) this._logger = config.logger; // add callbacks\n\n if (config.onError) this._cbs.e = this._cbs.e.concat(config.onError);\n if (config.onBreadcrumb) this._cbs.b = this._cbs.b.concat(config.onBreadcrumb);\n if (config.onSession) this._cbs.s = this._cbs.s.concat(config.onSession); // finally warn about any invalid config where we fell back to the default\n\n if (_$keys_15(errors).length) {\n this._logger.warn(generateConfigErrorMessage(errors, opts));\n }\n\n return config;\n };\n\n _proto.getUser = function getUser() {\n return this._user;\n };\n\n _proto.setUser = function setUser(id, email, name) {\n this._user = {\n id: id,\n email: email,\n name: name\n };\n };\n\n _proto._loadPlugin = function _loadPlugin(plugin) {\n var result = plugin.load(this); // JS objects are not the safest way to store arbitrarily keyed values,\n // so bookend the key with some characters that prevent tampering with\n // stuff like __proto__ etc. (only store the result if the plugin had a\n // name)\n\n if (plugin.name) this._plugins[\"~\" + plugin.name + \"~\"] = result;\n return this;\n };\n\n _proto.getPlugin = function getPlugin(name) {\n return this._plugins[\"~\" + name + \"~\"];\n };\n\n _proto._setDelivery = function _setDelivery(d) {\n this._delivery = d(this);\n };\n\n _proto.startSession = function startSession() {\n var session = new _$Session_35();\n session.app.releaseStage = this._config.releaseStage;\n session.app.version = this._config.appVersion;\n session.app.type = this._config.appType;\n session._user = _$assign_11({}, this._user); // run onSession callbacks\n\n var ignore = _$syncCallbackRunner_23(this._cbs.s, session, 'onSession', this._logger);\n\n if (ignore) {\n this._logger.debug('Session not started due to onSession callback');\n\n return this;\n }\n\n return this._sessionDelegate.startSession(this, session);\n };\n\n _proto.addOnError = function addOnError(fn, front) {\n if (front === void 0) {\n front = false;\n }\n\n this._cbs.e[front ? 'unshift' : 'push'](fn);\n };\n\n _proto.removeOnError = function removeOnError(fn) {\n this._cbs.e = _$filter_12(this._cbs.e, function (f) {\n return f !== fn;\n });\n };\n\n _proto._addOnSessionPayload = function _addOnSessionPayload(fn) {\n this._cbs.sp.push(fn);\n };\n\n _proto.addOnSession = function addOnSession(fn) {\n this._cbs.s.push(fn);\n };\n\n _proto.removeOnSession = function removeOnSession(fn) {\n this._cbs.s = _$filter_12(this._cbs.s, function (f) {\n return f !== fn;\n });\n };\n\n _proto.addOnBreadcrumb = function addOnBreadcrumb(fn, front) {\n if (front === void 0) {\n front = false;\n }\n\n this._cbs.b[front ? 'unshift' : 'push'](fn);\n };\n\n _proto.removeOnBreadcrumb = function removeOnBreadcrumb(fn) {\n this._cbs.b = _$filter_12(this._cbs.b, function (f) {\n return f !== fn;\n });\n };\n\n _proto.pauseSession = function pauseSession() {\n return this._sessionDelegate.pauseSession(this);\n };\n\n _proto.resumeSession = function resumeSession() {\n return this._sessionDelegate.resumeSession(this);\n };\n\n _proto.leaveBreadcrumb = function leaveBreadcrumb(message, metadata, type) {\n // coerce bad values so that the defaults get set\n message = typeof message === 'string' ? message : '';\n type = typeof type === 'string' && _$includes_13(_$breadcrumbTypes_8, type) ? type : 'manual';\n metadata = typeof metadata === 'object' && metadata !== null ? metadata : {}; // if no message, discard\n\n if (!message) return;\n var crumb = new _$Breadcrumb_3(message, metadata, type); // run onBreadcrumb callbacks\n\n var ignore = _$syncCallbackRunner_23(this._cbs.b, crumb, 'onBreadcrumb', this._logger);\n\n if (ignore) {\n this._logger.debug('Breadcrumb not attached due to onBreadcrumb callback');\n\n return;\n } // push the valid crumb onto the queue and maintain the length\n\n\n this._breadcrumbs.push(crumb);\n\n if (this._breadcrumbs.length > this._config.maxBreadcrumbs) {\n this._breadcrumbs = this._breadcrumbs.slice(this._breadcrumbs.length - this._config.maxBreadcrumbs);\n }\n };\n\n _proto._isBreadcrumbTypeEnabled = function _isBreadcrumbTypeEnabled(type) {\n var types = this._config.enabledBreadcrumbTypes;\n return types === null || _$includes_13(types, type);\n };\n\n _proto.notify = function notify(maybeError, onError, postReportCallback) {\n if (postReportCallback === void 0) {\n postReportCallback = noop;\n }\n\n var event = _$Event_6.create(maybeError, true, undefined, 'notify()', this._depth + 1, this._logger);\n\n this._notify(event, onError, postReportCallback);\n };\n\n _proto._notify = function _notify(event, onError, postReportCallback) {\n var _this2 = this;\n\n if (postReportCallback === void 0) {\n postReportCallback = noop;\n }\n\n event.app = _$assign_11({}, event.app, {\n releaseStage: this._config.releaseStage,\n version: this._config.appVersion,\n type: this._config.appType\n });\n event.context = event.context || this._context;\n event._metadata = _$assign_11({}, event._metadata, this._metadata);\n event._features = _$assign_11({}, event._features, this._features);\n event._user = _$assign_11({}, event._user, this._user);\n event.breadcrumbs = this._breadcrumbs.slice(); // exit early if events should not be sent on the current releaseStage\n\n if (this._config.enabledReleaseStages !== null && !_$includes_13(this._config.enabledReleaseStages, this._config.releaseStage)) {\n this._logger.warn('Event not sent due to releaseStage/enabledReleaseStages configuration');\n\n return postReportCallback(null, event);\n }\n\n var originalSeverity = event.severity;\n\n var onCallbackError = function (err) {\n // errors in callbacks are tolerated but we want to log them out\n _this2._logger.error('Error occurred in onError callback, continuing anyway…');\n\n _this2._logger.error(err);\n };\n\n var callbacks = [].concat(this._cbs.e).concat(onError);\n _$callbackRunner_9(callbacks, event, onCallbackError, function (err, shouldSend) {\n if (err) onCallbackError(err);\n\n if (!shouldSend) {\n _this2._logger.debug('Event not sent due to onError callback');\n\n return postReportCallback(null, event);\n }\n\n if (_this2._isBreadcrumbTypeEnabled('error')) {\n // only leave a crumb for the error if actually got sent\n Client.prototype.leaveBreadcrumb.call(_this2, event.errors[0].errorClass, {\n errorClass: event.errors[0].errorClass,\n errorMessage: event.errors[0].errorMessage,\n severity: event.severity\n }, 'error');\n }\n\n if (originalSeverity !== event.severity) {\n event._handledState.severityReason = {\n type: 'userCallbackSetSeverity'\n };\n }\n\n if (event.unhandled !== event._handledState.unhandled) {\n event._handledState.severityReason.unhandledOverridden = true;\n event._handledState.unhandled = event.unhandled;\n }\n\n if (_this2._session) {\n _this2._session._track(event);\n\n event._session = _this2._session;\n }\n\n _this2._delivery.sendEvent({\n apiKey: event.apiKey || _this2._config.apiKey,\n notifier: _this2._notifier,\n events: [event]\n }, function (err) {\n return postReportCallback(err, event);\n });\n });\n };\n\n return Client;\n}();\n\nvar generateConfigErrorMessage = function (errors, rawInput) {\n var er = new Error(\"Invalid configuration\\n\" + _$map_16(_$keys_15(errors), function (key) {\n return \" - \" + key + \" \" + errors[key] + \", got \" + stringify(rawInput[key]);\n }).join('\\n\\n'));\n return er;\n};\n\nvar stringify = function (val) {\n switch (typeof val) {\n case 'string':\n case 'number':\n case 'object':\n return JSON.stringify(val);\n\n default:\n return String(val);\n }\n};\n\nvar _$Client_4 = Client;\n\nvar _$jsonPayload_21 = {};\n/* removed: var _$safeJsonStringify_30 = require('@bugsnag/safe-json-stringify'); */;\n\nvar EVENT_REDACTION_PATHS = ['events.[].metaData', 'events.[].breadcrumbs.[].metaData', 'events.[].request'];\n\n_$jsonPayload_21.event = function (event, redactedKeys) {\n var payload = _$safeJsonStringify_30(event, null, null, {\n redactedPaths: EVENT_REDACTION_PATHS,\n redactedKeys: redactedKeys\n });\n\n if (payload.length > 10e5) {\n event.events[0]._metadata = {\n notifier: \"WARNING!\\nSerialized payload was \" + payload.length / 10e5 + \"MB (limit = 1MB)\\nmetadata was removed\"\n };\n payload = _$safeJsonStringify_30(event, null, null, {\n redactedPaths: EVENT_REDACTION_PATHS,\n redactedKeys: redactedKeys\n });\n if (payload.length > 10e5) throw new Error('payload exceeded 1MB limit');\n }\n\n return payload;\n};\n\n_$jsonPayload_21.session = function (event, redactedKeys) {\n var payload = _$safeJsonStringify_30(event, null, null);\n if (payload.length > 10e5) throw new Error('payload exceeded 1MB limit');\n return payload;\n};\n\nvar _$delivery_36 = {};\n/* removed: var _$jsonPayload_21 = require('@bugsnag/core/lib/json-payload'); */;\n\n_$delivery_36 = function (client, win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n sendEvent: function (event, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n\n var url = getApiUrl(client._config, 'notify', '4', win);\n var req = new win.XDomainRequest();\n\n req.onload = function () {\n cb(null);\n };\n\n req.open('POST', url);\n setTimeout(function () {\n try {\n req.send(_$jsonPayload_21.event(event, client._config.redactedKeys));\n } catch (e) {\n client._logger.error(e);\n\n cb(e);\n }\n }, 0);\n },\n sendSession: function (session, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n\n var url = getApiUrl(client._config, 'sessions', '1', win);\n var req = new win.XDomainRequest();\n\n req.onload = function () {\n cb(null);\n };\n\n req.open('POST', url);\n setTimeout(function () {\n try {\n req.send(_$jsonPayload_21.session(session, client._config.redactedKeys));\n } catch (e) {\n client._logger.error(e);\n\n cb(e);\n }\n }, 0);\n }\n };\n};\n\nvar getApiUrl = function (config, endpoint, version, win) {\n // IE8 doesn't support Date.prototype.toISOstring(), but it does convert a date\n // to an ISO string when you use JSON stringify. Simply parsing the result of\n // JSON.stringify is smaller than using a toISOstring() polyfill.\n var isoDate = JSON.parse(JSON.stringify(new Date()));\n var url = matchPageProtocol(config.endpoints[endpoint], win.location.protocol);\n return url + \"?apiKey=\" + encodeURIComponent(config.apiKey) + \"&payloadVersion=\" + version + \"&sentAt=\" + encodeURIComponent(isoDate);\n};\n\nvar matchPageProtocol = _$delivery_36._matchPageProtocol = function (endpoint, pageProtocol) {\n return pageProtocol === 'http:' ? endpoint.replace(/^https:/, 'http:') : endpoint;\n};\n\n/* removed: var _$jsonPayload_21 = require('@bugsnag/core/lib/json-payload'); */;\n\nvar _$delivery_37 = function (client, win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n sendEvent: function (event, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n\n try {\n var url = client._config.endpoints.notify;\n var req = new win.XMLHttpRequest();\n\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) cb(null);\n };\n\n req.open('POST', url);\n req.setRequestHeader('Content-Type', 'application/json');\n req.setRequestHeader('Bugsnag-Api-Key', event.apiKey || client._config.apiKey);\n req.setRequestHeader('Bugsnag-Payload-Version', '4');\n req.setRequestHeader('Bugsnag-Sent-At', new Date().toISOString());\n req.send(_$jsonPayload_21.event(event, client._config.redactedKeys));\n } catch (e) {\n client._logger.error(e);\n }\n },\n sendSession: function (session, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n\n try {\n var url = client._config.endpoints.sessions;\n var req = new win.XMLHttpRequest();\n\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) cb(null);\n };\n\n req.open('POST', url);\n req.setRequestHeader('Content-Type', 'application/json');\n req.setRequestHeader('Bugsnag-Api-Key', client._config.apiKey);\n req.setRequestHeader('Bugsnag-Payload-Version', '1');\n req.setRequestHeader('Bugsnag-Sent-At', new Date().toISOString());\n req.send(_$jsonPayload_21.session(session, client._config.redactedKeys));\n } catch (e) {\n client._logger.error(e);\n }\n }\n };\n};\n\nvar appStart = new Date();\n\nvar reset = function () {\n appStart = new Date();\n};\n\nvar _$app_38 = {\n name: 'appDuration',\n load: function (client) {\n client.addOnError(function (event) {\n var now = new Date();\n event.app.duration = now - appStart;\n }, true);\n return {\n reset: reset\n };\n }\n};\n\n/*\n * Sets the default context to be the current URL\n */\nvar _$context_39 = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n load: function (client) {\n client.addOnError(function (event) {\n if (event.context !== undefined) return;\n event.context = win.location.pathname;\n }, true);\n }\n };\n};\n\nvar _$pad_43 = function pad(num, size) {\n var s = '000000000' + num;\n return s.substr(s.length - size);\n};\n\n/* removed: var _$pad_43 = require('./pad.js'); */;\n\nvar __env_42 = typeof window === 'object' ? window : self;\nvar __globalCount_42 = 0;\n\nfor (var __prop_42 in __env_42) {\n if (Object.hasOwnProperty.call(__env_42, __prop_42)) __globalCount_42++;\n}\n\nvar __mimeTypesLength_42 = navigator.mimeTypes ? navigator.mimeTypes.length : 0;\nvar __clientId_42 = _$pad_43((__mimeTypesLength_42 + navigator.userAgent.length).toString(36) + __globalCount_42.toString(36), 4);\n\nvar _$fingerprint_42 = function fingerprint() {\n return __clientId_42;\n};\n\n/**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n/* removed: var _$fingerprint_42 = require('./lib/fingerprint.js'); */;\n\n/* removed: var _$pad_43 = require('./lib/pad.js'); */;\n\nvar __c_41 = 0,\n __blockSize_41 = 4,\n __base_41 = 36,\n __discreteValues_41 = Math.pow(__base_41, __blockSize_41);\n\nfunction __randomBlock_41() {\n return _$pad_43((Math.random() * __discreteValues_41 << 0).toString(__base_41), __blockSize_41);\n}\n\nfunction __safeCounter_41() {\n __c_41 = __c_41 < __discreteValues_41 ? __c_41 : 0;\n __c_41++; // this is not subliminal\n\n return __c_41 - 1;\n}\n\nfunction __cuid_41() {\n // Starting with a lowercase letter makes\n // it HTML element ID friendly.\n var letter = 'c',\n // hard-coded allows for sequential access\n // timestamp\n // warning: this exposes the exact date and time\n // that the uid was created.\n timestamp = new Date().getTime().toString(__base_41),\n // Prevent same-machine collisions.\n counter = _$pad_43(__safeCounter_41().toString(__base_41), __blockSize_41),\n // A few chars to generate distinct ids for different\n // clients (so different computers are far less\n // likely to generate the same id)\n print = _$fingerprint_42(),\n // Grab some more chars from Math.random()\n random = __randomBlock_41() + __randomBlock_41();\n return letter + timestamp + counter + print + random;\n}\n\n__cuid_41.fingerprint = _$fingerprint_42;\nvar _$cuid_41 = __cuid_41;\n\n/* removed: var _$cuid_41 = require('@bugsnag/cuid'); */;\n\n/* removed: var _$assign_11 = require('@bugsnag/core/lib/es-utils/assign'); */;\n\nvar BUGSNAG_ANONYMOUS_ID_KEY = 'bugsnag-anonymous-id';\n\nvar getDeviceId = function () {\n try {\n var storage = window.localStorage;\n var id = storage.getItem(BUGSNAG_ANONYMOUS_ID_KEY); // If we get an ID, make sure it looks like a valid cuid. The length can\n // fluctuate slightly, so some leeway is built in\n\n if (id && /^c[a-z0-9]{20,32}$/.test(id)) {\n return id;\n }\n\n id = _$cuid_41();\n storage.setItem(BUGSNAG_ANONYMOUS_ID_KEY, id);\n return id;\n } catch (err) {// If localStorage is not available (e.g. because it's disabled) then give up\n }\n};\n/*\n * Automatically detects browser device details\n */\n\n\nvar _$device_40 = function (nav, screen) {\n if (nav === void 0) {\n nav = navigator;\n }\n\n if (screen === void 0) {\n screen = window.screen;\n }\n\n return {\n load: function (client) {\n var device = {\n locale: nav.browserLanguage || nav.systemLanguage || nav.userLanguage || nav.language,\n userAgent: nav.userAgent\n };\n\n if (screen && screen.orientation && screen.orientation.type) {\n device.orientation = screen.orientation.type;\n } else {\n device.orientation = document.documentElement.clientWidth > document.documentElement.clientHeight ? 'landscape' : 'portrait';\n }\n\n if (client._config.generateAnonymousId) {\n device.id = getDeviceId();\n }\n\n client.addOnSession(function (session) {\n session.device = _$assign_11({}, session.device, device); // only set device id if collectUserIp is false\n\n if (!client._config.collectUserIp) setDefaultUserId(session);\n }); // add time just as the event is sent\n\n client.addOnError(function (event) {\n event.device = _$assign_11({}, event.device, device, {\n time: new Date()\n });\n if (!client._config.collectUserIp) setDefaultUserId(event);\n }, true);\n },\n configSchema: {\n generateAnonymousId: {\n validate: function (value) {\n return value === true || value === false;\n },\n defaultValue: function () {\n return true;\n },\n message: 'should be true|false'\n }\n }\n };\n};\n\nvar setDefaultUserId = function (eventOrSession) {\n // device id is also used to populate the user id field, if it's not already set\n var user = eventOrSession.getUser();\n\n if (!user || !user.id) {\n eventOrSession.setUser(eventOrSession.device.id);\n }\n};\n\n/* removed: var _$assign_11 = require('@bugsnag/core/lib/es-utils/assign'); */;\n/*\n * Sets the event request: { url } to be the current href\n */\n\n\nvar _$request_44 = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n load: function (client) {\n client.addOnError(function (event) {\n if (event.request && event.request.url) return;\n event.request = _$assign_11({}, event.request, {\n url: win.location.href\n });\n }, true);\n }\n };\n};\n\n/* removed: var _$includes_13 = require('@bugsnag/core/lib/es-utils/includes'); */;\n\nvar _$session_45 = {\n load: function (client) {\n client._sessionDelegate = sessionDelegate;\n }\n};\nvar sessionDelegate = {\n startSession: function (client, session) {\n var sessionClient = client;\n sessionClient._session = session;\n sessionClient._pausedSession = null; // exit early if the current releaseStage is not enabled\n\n if (sessionClient._config.enabledReleaseStages !== null && !_$includes_13(sessionClient._config.enabledReleaseStages, sessionClient._config.releaseStage)) {\n sessionClient._logger.warn('Session not sent due to releaseStage/enabledReleaseStages configuration');\n\n return sessionClient;\n }\n\n sessionClient._delivery.sendSession({\n notifier: sessionClient._notifier,\n device: session.device,\n app: session.app,\n sessions: [{\n id: session.id,\n startedAt: session.startedAt,\n user: session._user\n }]\n });\n\n return sessionClient;\n },\n resumeSession: function (client) {\n // Do nothing if there's already an active session\n if (client._session) {\n return client;\n } // If we have a paused session then make it the active session\n\n\n if (client._pausedSession) {\n client._session = client._pausedSession;\n client._pausedSession = null;\n return client;\n } // Otherwise start a new session\n\n\n return client.startSession();\n },\n pauseSession: function (client) {\n client._pausedSession = client._session;\n client._session = null;\n }\n};\n\n/* removed: var _$assign_11 = require('@bugsnag/core/lib/es-utils/assign'); */;\n/*\n * Prevent collection of user IPs\n */\n\n\nvar _$clientIp_46 = {\n load: function (client) {\n if (client._config.collectUserIp) return;\n client.addOnError(function (event) {\n // If user.id is explicitly undefined, it will be missing from the payload. It needs\n // removing so that the following line replaces it\n if (event._user && typeof event._user.id === 'undefined') delete event._user.id;\n event._user = _$assign_11({\n id: '[REDACTED]'\n }, event._user);\n event.request = _$assign_11({\n clientIp: '[REDACTED]'\n }, event.request);\n });\n },\n configSchema: {\n collectUserIp: {\n defaultValue: function () {\n return true;\n },\n message: 'should be true|false',\n validate: function (value) {\n return value === true || value === false;\n }\n }\n }\n};\n\nvar _$consoleBreadcrumbs_47 = {};\n/* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */;\n\n/* removed: var _$reduce_17 = require('@bugsnag/core/lib/es-utils/reduce'); */;\n\n/* removed: var _$filter_12 = require('@bugsnag/core/lib/es-utils/filter'); */;\n/*\n * Leaves breadcrumbs when console log methods are called\n */\n\n\n_$consoleBreadcrumbs_47.load = function (client) {\n var isDev = /^(local-)?dev(elopment)?$/.test(client._config.releaseStage);\n if (isDev || !client._isBreadcrumbTypeEnabled('log')) return;\n _$map_16(CONSOLE_LOG_METHODS, function (method) {\n var original = console[method];\n\n console[method] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n client.leaveBreadcrumb('Console output', _$reduce_17(args, function (accum, arg, i) {\n // do the best/simplest stringification of each argument\n var stringified = '[Unknown value]'; // this may fail if the input is:\n // - an object whose [[Prototype]] is null (no toString)\n // - an object with a broken toString or @@toPrimitive implementation\n\n try {\n stringified = String(arg);\n } catch (e) {} // if it stringifies to [object Object] attempt to JSON stringify\n\n\n if (stringified === '[object Object]') {\n // catch stringify errors and fallback to [object Object]\n try {\n stringified = JSON.stringify(arg);\n } catch (e) {}\n }\n\n accum[\"[\" + i + \"]\"] = stringified;\n return accum;\n }, {\n severity: method.indexOf('group') === 0 ? 'log' : method\n }), 'log');\n original.apply(console, args);\n };\n\n console[method]._restore = function () {\n console[method] = original;\n };\n });\n};\n\nif (\"production\" !== 'production') {\n _$consoleBreadcrumbs_47.destroy = function () {\n return CONSOLE_LOG_METHODS.forEach(function (method) {\n if (typeof console[method]._restore === 'function') console[method]._restore();\n });\n };\n}\n\nvar CONSOLE_LOG_METHODS = _$filter_12(['log', 'debug', 'info', 'warn', 'error'], function (method) {\n return typeof console !== 'undefined' && typeof console[method] === 'function';\n});\n\n/* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */;\n\n/* removed: var _$reduce_17 = require('@bugsnag/core/lib/es-utils/reduce'); */;\n\n/* removed: var _$filter_12 = require('@bugsnag/core/lib/es-utils/filter'); */;\n\nvar MAX_LINE_LENGTH = 200;\nvar MAX_SCRIPT_LENGTH = 500000;\n\nvar _$inlineScriptContent_48 = function (doc, win) {\n if (doc === void 0) {\n doc = document;\n }\n\n if (win === void 0) {\n win = window;\n }\n\n return {\n load: function (client) {\n if (!client._config.trackInlineScripts) return;\n var originalLocation = win.location.href;\n var html = ''; // in IE8-10 the 'interactive' state can fire too soon (before scripts have finished executing), so in those\n // we wait for the 'complete' state before assuming that synchronous scripts are no longer executing\n\n var isOldIe = !!doc.attachEvent;\n var DOMContentLoaded = isOldIe ? doc.readyState === 'complete' : doc.readyState !== 'loading';\n\n var getHtml = function () {\n return doc.documentElement.outerHTML;\n }; // get whatever HTML exists at this point in time\n\n\n html = getHtml();\n var prev = doc.onreadystatechange; // then update it when the DOM content has loaded\n\n doc.onreadystatechange = function () {\n // IE8 compatible alternative to document#DOMContentLoaded\n if (doc.readyState === 'interactive') {\n html = getHtml();\n DOMContentLoaded = true;\n }\n\n try {\n prev.apply(this, arguments);\n } catch (e) {}\n };\n\n var _lastScript = null;\n\n var updateLastScript = function (script) {\n _lastScript = script;\n };\n\n var getCurrentScript = function () {\n var script = doc.currentScript || _lastScript;\n\n if (!script && !DOMContentLoaded) {\n var scripts = doc.scripts || doc.getElementsByTagName('script');\n script = scripts[scripts.length - 1];\n }\n\n return script;\n };\n\n var addSurroundingCode = function (lineNumber) {\n // get whatever html has rendered at this point\n if (!DOMContentLoaded || !html) html = getHtml(); // simulate the raw html\n\n var htmlLines = [''].concat(html.split('\\n'));\n var zeroBasedLine = lineNumber - 1;\n var start = Math.max(zeroBasedLine - 3, 0);\n var end = Math.min(zeroBasedLine + 3, htmlLines.length);\n return _$reduce_17(htmlLines.slice(start, end), function (accum, line, i) {\n accum[start + 1 + i] = line.length <= MAX_LINE_LENGTH ? line : line.substr(0, MAX_LINE_LENGTH);\n return accum;\n }, {});\n };\n\n client.addOnError(function (event) {\n // remove any of our own frames that may be part the stack this\n // happens before the inline script check as it happens for all errors\n event.errors[0].stacktrace = _$filter_12(event.errors[0].stacktrace, function (f) {\n return !/__trace__$/.test(f.method);\n });\n var frame = event.errors[0].stacktrace[0]; // if frame.file exists and is not the original location of the page, this can't be an inline script\n\n if (frame && frame.file && frame.file.replace(/#.*$/, '') !== originalLocation.replace(/#.*$/, '')) return; // grab the last script known to have run\n\n var currentScript = getCurrentScript();\n\n if (currentScript) {\n var content = currentScript.innerHTML;\n event.addMetadata('script', 'content', content.length <= MAX_SCRIPT_LENGTH ? content : content.substr(0, MAX_SCRIPT_LENGTH)); // only attempt to grab some surrounding code if we have a line number\n\n if (frame && frame.lineNumber) {\n frame.code = addSurroundingCode(frame.lineNumber);\n }\n }\n }, true); // Proxy all the timer functions whose callback is their 0th argument.\n // Keep a reference to the original setTimeout because we need it later\n\n var _map = _$map_16(['setTimeout', 'setInterval', 'setImmediate', 'requestAnimationFrame'], function (fn) {\n return __proxy(win, fn, function (original) {\n return __traceOriginalScript(original, function (args) {\n return {\n get: function () {\n return args[0];\n },\n replace: function (fn) {\n args[0] = fn;\n }\n };\n });\n });\n }),\n _setTimeout = _map[0]; // Proxy all the host objects whose prototypes have an addEventListener function\n\n\n _$map_16(['EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode', 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase', 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow', 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList', 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'], function (o) {\n if (!win[o] || !win[o].prototype || !Object.prototype.hasOwnProperty.call(win[o].prototype, 'addEventListener')) return;\n\n __proxy(win[o].prototype, 'addEventListener', function (original) {\n return __traceOriginalScript(original, eventTargetCallbackAccessor);\n });\n\n __proxy(win[o].prototype, 'removeEventListener', function (original) {\n return __traceOriginalScript(original, eventTargetCallbackAccessor, true);\n });\n });\n\n function __traceOriginalScript(fn, callbackAccessor, alsoCallOriginal) {\n if (alsoCallOriginal === void 0) {\n alsoCallOriginal = false;\n }\n\n return function () {\n // this is required for removeEventListener to remove anything added with\n // addEventListener before the functions started being wrapped by Bugsnag\n var args = [].slice.call(arguments);\n\n try {\n var cba = callbackAccessor(args);\n var cb = cba.get();\n if (alsoCallOriginal) fn.apply(this, args);\n if (typeof cb !== 'function') return fn.apply(this, args);\n\n if (cb.__trace__) {\n cba.replace(cb.__trace__);\n } else {\n var script = getCurrentScript(); // this function mustn't be annonymous due to a bug in the stack\n // generation logic, meaning it gets tripped up\n // see: https://github.com/stacktracejs/stack-generator/issues/6\n\n cb.__trace__ = function __trace__() {\n // set the script that called this function\n updateLastScript(script); // immediately unset the currentScript synchronously below, however\n // if this cb throws an error the line after will not get run so schedule\n // an almost-immediate aysnc update too\n\n _setTimeout(function () {\n updateLastScript(null);\n }, 0);\n\n var ret = cb.apply(this, arguments);\n updateLastScript(null);\n return ret;\n };\n\n cb.__trace__.__trace__ = cb.__trace__;\n cba.replace(cb.__trace__);\n }\n } catch (e) {// swallow these errors on Selenium:\n // Permission denied to access property '__trace__'\n // WebDriverException: Message: Permission denied to access property \"handleEvent\"\n } // IE8 doesn't let you call .apply() on setTimeout/setInterval\n\n\n if (fn.apply) return fn.apply(this, args);\n\n switch (args.length) {\n case 1:\n return fn(args[0]);\n\n case 2:\n return fn(args[0], args[1]);\n\n default:\n return fn();\n }\n };\n }\n },\n configSchema: {\n trackInlineScripts: {\n validate: function (value) {\n return value === true || value === false;\n },\n defaultValue: function () {\n return true;\n },\n message: 'should be true|false'\n }\n }\n };\n};\n\nfunction __proxy(host, name, replacer) {\n var original = host[name];\n if (!original) return original;\n var replacement = replacer(original);\n host[name] = replacement;\n return original;\n}\n\nfunction eventTargetCallbackAccessor(args) {\n var isEventHandlerObj = !!args[1] && typeof args[1].handleEvent === 'function';\n return {\n get: function () {\n return isEventHandlerObj ? args[1].handleEvent : args[1];\n },\n replace: function (fn) {\n if (isEventHandlerObj) {\n args[1].handleEvent = fn;\n } else {\n args[1] = fn;\n }\n }\n };\n}\n\n/*\n * Leaves breadcrumbs when the user interacts with the DOM\n */\nvar _$interactionBreadcrumbs_49 = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n load: function (client) {\n if (!('addEventListener' in win)) return;\n if (!client._isBreadcrumbTypeEnabled('user')) return;\n win.addEventListener('click', function (event) {\n var targetText, targetSelector;\n\n try {\n targetText = getNodeText(event.target);\n targetSelector = getNodeSelector(event.target, win);\n } catch (e) {\n targetText = '[hidden]';\n targetSelector = '[hidden]';\n\n client._logger.error('Cross domain error when tracking click event. See docs: https://tinyurl.com/yy3rn63z');\n }\n\n client.leaveBreadcrumb('UI click', {\n targetText: targetText,\n targetSelector: targetSelector\n }, 'user');\n }, true);\n }\n };\n}; // extract text content from a element\n\n\nvar getNodeText = function (el) {\n var text = el.textContent || el.innerText || '';\n if (!text && (el.type === 'submit' || el.type === 'button')) text = el.value;\n text = text.replace(/^\\s+|\\s+$/g, ''); // trim whitespace\n\n return truncate(text, 140);\n}; // Create a label from tagname, id and css class of the element\n\n\nfunction getNodeSelector(el, win) {\n var parts = [el.tagName];\n if (el.id) parts.push('#' + el.id);\n if (el.className && el.className.length) parts.push(\".\" + el.className.split(' ').join('.')); // Can't get much more advanced with the current browser\n\n if (!win.document.querySelectorAll || !Array.prototype.indexOf) return parts.join('');\n\n try {\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join('');\n } catch (e) {\n // Sometimes the query selector can be invalid just return it as-is\n return parts.join('');\n } // try to get a more specific selector if this one matches more than one element\n\n\n if (el.parentNode.childNodes.length > 1) {\n var index = Array.prototype.indexOf.call(el.parentNode.childNodes, el) + 1;\n parts.push(\":nth-child(\" + index + \")\");\n }\n\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join(''); // try prepending the parent node selector\n\n if (el.parentNode) return getNodeSelector(el.parentNode, win) + \" > \" + parts.join('');\n return parts.join('');\n}\n\nfunction truncate(value, length) {\n var ommision = '(...)';\n if (value && value.length <= length) return value;\n return value.slice(0, length - ommision.length) + ommision;\n}\n\nvar _$navigationBreadcrumbs_50 = {};\n/*\n* Leaves breadcrumbs when navigation methods are called or events are emitted\n*/\n_$navigationBreadcrumbs_50 = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n var plugin = {\n load: function (client) {\n if (!('addEventListener' in win)) return;\n if (!client._isBreadcrumbTypeEnabled('navigation')) return; // returns a function that will drop a breadcrumb with a given name\n\n var drop = function (name) {\n return function () {\n return client.leaveBreadcrumb(name, {}, 'navigation');\n };\n }; // simple drops – just names, no meta\n\n\n win.addEventListener('pagehide', drop('Page hidden'), true);\n win.addEventListener('pageshow', drop('Page shown'), true);\n win.addEventListener('load', drop('Page loaded'), true);\n win.document.addEventListener('DOMContentLoaded', drop('DOMContentLoaded'), true); // some browsers like to emit popstate when the page loads, so only add the popstate listener after that\n\n win.addEventListener('load', function () {\n return win.addEventListener('popstate', drop('Navigated back'), true);\n }); // hashchange has some metadata that we care about\n\n win.addEventListener('hashchange', function (event) {\n var metadata = event.oldURL ? {\n from: relativeLocation(event.oldURL, win),\n to: relativeLocation(event.newURL, win),\n state: getCurrentState(win)\n } : {\n to: relativeLocation(win.location.href, win)\n };\n client.leaveBreadcrumb('Hash changed', metadata, 'navigation');\n }, true); // the only way to know about replaceState/pushState is to wrap them… >_<\n\n if (win.history.replaceState) wrapHistoryFn(client, win.history, 'replaceState', win);\n if (win.history.pushState) wrapHistoryFn(client, win.history, 'pushState', win);\n }\n };\n\n if (\"production\" !== 'production') {\n plugin.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n win.history.replaceState._restore();\n\n win.history.pushState._restore();\n };\n }\n\n return plugin;\n};\n\nif (\"production\" !== 'production') {\n _$navigationBreadcrumbs_50.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n win.history.replaceState._restore();\n\n win.history.pushState._restore();\n };\n} // takes a full url like http://foo.com:1234/pages/01.html?yes=no#section-2 and returns\n// just the path and hash parts, e.g. /pages/01.html?yes=no#section-2\n\n\nvar relativeLocation = function (url, win) {\n var a = win.document.createElement('A');\n a.href = url;\n return \"\" + a.pathname + a.search + a.hash;\n};\n\nvar stateChangeToMetadata = function (win, state, title, url) {\n var currentPath = relativeLocation(win.location.href, win);\n return {\n title: title,\n state: state,\n prevState: getCurrentState(win),\n to: url || currentPath,\n from: currentPath\n };\n};\n\nvar wrapHistoryFn = function (client, target, fn, win) {\n var orig = target[fn];\n\n target[fn] = function (state, title, url) {\n client.leaveBreadcrumb(\"History \" + fn, stateChangeToMetadata(win, state, title, url), 'navigation'); // if throttle plugin is in use, reset the event sent count\n\n if (typeof client.resetEventCount === 'function') client.resetEventCount(); // if the client is operating in auto session-mode, a new route should trigger a new session\n\n if (client._config.autoTrackSessions) client.startSession(); // Internet Explorer will convert `undefined` to a string when passed, causing an unintended redirect\n // to '/undefined'. therefore we only pass the url if it's not undefined.\n\n orig.apply(target, [state, title].concat(url !== undefined ? url : []));\n };\n\n if (\"production\" !== 'production') {\n target[fn]._restore = function () {\n target[fn] = orig;\n };\n }\n};\n\nvar getCurrentState = function (win) {\n try {\n return win.history.state;\n } catch (e) {}\n};\n\nvar BREADCRUMB_TYPE = 'request';\n\n/* removed: var _$includes_13 = require('@bugsnag/core/lib/es-utils/includes'); */;\n/*\n * Leaves breadcrumbs when network requests occur\n */\n\n\nvar _$networkBreadcrumbs_51 = function (_ignoredUrls, win) {\n if (_ignoredUrls === void 0) {\n _ignoredUrls = [];\n }\n\n if (win === void 0) {\n win = window;\n }\n\n var restoreFunctions = [];\n var plugin = {\n load: function (client) {\n if (!client._isBreadcrumbTypeEnabled('request')) return;\n var ignoredUrls = [client._config.endpoints.notify, client._config.endpoints.sessions].concat(_ignoredUrls);\n monkeyPatchXMLHttpRequest();\n monkeyPatchFetch(); // XMLHttpRequest monkey patch\n\n function monkeyPatchXMLHttpRequest() {\n if (!('addEventListener' in win.XMLHttpRequest.prototype)) return;\n var nativeOpen = win.XMLHttpRequest.prototype.open; // override native open()\n\n win.XMLHttpRequest.prototype.open = function open(method, url) {\n var _this = this;\n\n var requestSetupKey = false;\n\n var error = function () {\n return handleXHRError(method, url);\n };\n\n var load = function () {\n return handleXHRLoad(method, url, _this.status);\n }; // if we have already setup listeners, it means open() was called twice, we need to remove\n // the listeners and recreate them\n\n\n if (requestSetupKey) {\n this.removeEventListener('load', load);\n this.removeEventListener('error', error);\n } // attach load event listener\n\n\n this.addEventListener('load', load); // attach error event listener\n\n this.addEventListener('error', error);\n requestSetupKey = true;\n nativeOpen.apply(this, arguments);\n };\n\n if (\"production\" !== 'production') {\n restoreFunctions.push(function () {\n win.XMLHttpRequest.prototype.open = nativeOpen;\n });\n }\n }\n\n function handleXHRLoad(method, url, status) {\n if (url === undefined) {\n client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.');\n\n return;\n } // an XMLHttpRequest's URL can be an object as long as its 'toString'\n // returns a URL, e.g. a HTMLAnchorElement\n\n\n if (typeof url === 'string' && _$includes_13(ignoredUrls, url.replace(/\\?.*$/, ''))) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return;\n }\n\n var metadata = {\n status: status,\n request: method + \" \" + url\n };\n\n if (status >= 400) {\n // contacted server but got an error response\n client.leaveBreadcrumb('XMLHttpRequest failed', metadata, BREADCRUMB_TYPE);\n } else {\n client.leaveBreadcrumb('XMLHttpRequest succeeded', metadata, BREADCRUMB_TYPE);\n }\n }\n\n function handleXHRError(method, url) {\n if (url === undefined) {\n client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.');\n\n return;\n }\n\n if (typeof url === 'string' && _$includes_13(ignoredUrls, url.replace(/\\?.*$/, ''))) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return;\n } // failed to contact server\n\n\n client.leaveBreadcrumb('XMLHttpRequest error', {\n request: method + \" \" + url\n }, BREADCRUMB_TYPE);\n } // window.fetch monkey patch\n\n\n function monkeyPatchFetch() {\n // only patch it if it exists and if it is not a polyfill (patching a polyfilled\n // fetch() results in duplicate breadcrumbs for the same request because the\n // implementation uses XMLHttpRequest which is also patched)\n if (!('fetch' in win) || win.fetch.polyfill) return;\n var oldFetch = win.fetch;\n\n win.fetch = function fetch() {\n var _arguments = arguments;\n var urlOrRequest = arguments[0];\n var options = arguments[1];\n var method;\n var url = null;\n\n if (urlOrRequest && typeof urlOrRequest === 'object') {\n url = urlOrRequest.url;\n\n if (options && 'method' in options) {\n method = options.method;\n } else if (urlOrRequest && 'method' in urlOrRequest) {\n method = urlOrRequest.method;\n }\n } else {\n url = urlOrRequest;\n\n if (options && 'method' in options) {\n method = options.method;\n }\n }\n\n if (method === undefined) {\n method = 'GET';\n }\n\n return new Promise(function (resolve, reject) {\n // pass through to native fetch\n oldFetch.apply(void 0, _arguments).then(function (response) {\n handleFetchSuccess(response, method, url);\n resolve(response);\n })[\"catch\"](function (error) {\n handleFetchError(method, url);\n reject(error);\n });\n });\n };\n\n if (\"production\" !== 'production') {\n restoreFunctions.push(function () {\n win.fetch = oldFetch;\n });\n }\n }\n\n var handleFetchSuccess = function (response, method, url) {\n var metadata = {\n status: response.status,\n request: method + \" \" + url\n };\n\n if (response.status >= 400) {\n // when the request comes back with a 4xx or 5xx status it does not reject the fetch promise,\n client.leaveBreadcrumb('fetch() failed', metadata, BREADCRUMB_TYPE);\n } else {\n client.leaveBreadcrumb('fetch() succeeded', metadata, BREADCRUMB_TYPE);\n }\n };\n\n var handleFetchError = function (method, url) {\n client.leaveBreadcrumb('fetch() error', {\n request: method + \" \" + url\n }, BREADCRUMB_TYPE);\n };\n }\n };\n\n if (\"production\" !== 'production') {\n plugin.destroy = function () {\n restoreFunctions.forEach(function (fn) {\n return fn();\n });\n restoreFunctions = [];\n };\n }\n\n return plugin;\n};\n\n/* removed: var _$intRange_24 = require('@bugsnag/core/lib/validators/int-range'); */;\n/*\n * Throttles and dedupes events\n */\n\n\nvar _$throttle_52 = {\n load: function (client) {\n // track sent events for each init of the plugin\n var n = 0; // add onError hook\n\n client.addOnError(function (event) {\n // have max events been sent already?\n if (n >= client._config.maxEvents) {\n client._logger.warn(\"Cancelling event send due to maxEvents per session limit of \" + client._config.maxEvents + \" being reached\");\n\n return false;\n }\n\n n++;\n });\n\n client.resetEventCount = function () {\n n = 0;\n };\n },\n configSchema: {\n maxEvents: {\n defaultValue: function () {\n return 10;\n },\n message: 'should be a positive integer ≤100',\n validate: function (val) {\n return _$intRange_24(1, 100)(val);\n }\n }\n }\n};\n\nvar _$stripQueryString_53 = {};\n/*\n * Remove query strings (and fragments) from stacktraces\n */\n/* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */;\n\n/* removed: var _$reduce_17 = require('@bugsnag/core/lib/es-utils/reduce'); */;\n\n_$stripQueryString_53 = {\n load: function (client) {\n client.addOnError(function (event) {\n var allFrames = _$reduce_17(event.errors, function (accum, er) {\n return accum.concat(er.stacktrace);\n }, []);\n _$map_16(allFrames, function (frame) {\n frame.file = strip(frame.file);\n });\n });\n }\n};\n\nvar strip = _$stripQueryString_53._strip = function (str) {\n return typeof str === 'string' ? str.replace(/\\?.*$/, '').replace(/#.*$/, '') : str;\n};\n\n/*\n * Automatically notifies Bugsnag when window.onerror is called\n */\nvar _$onerror_54 = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n load: function (client) {\n if (!client._config.autoDetectErrors) return;\n if (!client._config.enabledErrorTypes.unhandledExceptions) return;\n\n function onerror(messageOrEvent, url, lineNo, charNo, error) {\n // Ignore errors with no info due to CORS settings\n if (lineNo === 0 && /Script error\\.?/.test(messageOrEvent)) {\n client._logger.warn('Ignoring cross-domain or eval script error. See docs: https://tinyurl.com/yy3rn63z');\n } else {\n // any error sent to window.onerror is unhandled and has severity=error\n var handledState = {\n severity: 'error',\n unhandled: true,\n severityReason: {\n type: 'unhandledException'\n }\n };\n var event; // window.onerror can be called in a number of ways. This big if-else is how we\n // figure out which arguments were supplied, and what kind of values it received.\n\n if (error) {\n // if the last parameter (error) was supplied, this is a modern browser's\n // way of saying \"this value was thrown and not caught\"\n event = client.Event.create(error, true, handledState, 'window onerror', 1);\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo);\n } else if ( // This complex case detects \"error\" events that are typically synthesised\n // by jquery's trigger method (although can be created in other ways). In\n // order to detect this:\n // - the first argument (message) must exist and be an object (most likely it's a jQuery event)\n // - the second argument (url) must either not exist or be something other than a string (if it\n // exists and is not a string, it'll be the extraParameters argument from jQuery's trigger()\n // function)\n // - the third, fourth and fifth arguments must not exist (lineNo, charNo and error)\n typeof messageOrEvent === 'object' && messageOrEvent !== null && (!url || typeof url !== 'string') && !lineNo && !charNo && !error) {\n // The jQuery event may have a \"type\" property, if so use it as part of the error message\n var name = messageOrEvent.type ? \"Event: \" + messageOrEvent.type : 'Error'; // attempt to find a message from one of the conventional properties, but\n // default to empty string (the event will fill it with a placeholder)\n\n var message = messageOrEvent.message || messageOrEvent.detail || '';\n event = client.Event.create({\n name: name,\n message: message\n }, true, handledState, 'window onerror', 1); // provide the original thing onerror received – not our error-like object we passed to _notify\n\n event.originalError = messageOrEvent; // include the raw input as metadata – it might contain more info than we extracted\n\n event.addMetadata('window onerror', {\n event: messageOrEvent,\n extraParameters: url\n });\n } else {\n // Lastly, if there was no \"error\" parameter this event was probably from an old\n // browser that doesn't support that. Instead we need to generate a stacktrace.\n event = client.Event.create(messageOrEvent, true, handledState, 'window onerror', 1);\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo);\n }\n\n client._notify(event);\n }\n\n if (typeof prevOnError === 'function') prevOnError.apply(this, arguments);\n }\n\n var prevOnError = win.onerror;\n win.onerror = onerror;\n }\n };\n}; // Sometimes the stacktrace has less information than was passed to window.onerror.\n// This function will augment the first stackframe with any useful info that was\n// received as arguments to the onerror callback.\n\n\nvar decorateStack = function (stack, url, lineNo, charNo) {\n if (!stack[0]) stack.push({});\n var culprit = stack[0];\n if (!culprit.file && typeof url === 'string') culprit.file = url;\n if (!culprit.lineNumber && isActualNumber(lineNo)) culprit.lineNumber = lineNo;\n\n if (!culprit.columnNumber) {\n if (isActualNumber(charNo)) {\n culprit.columnNumber = charNo;\n } else if (window.event && isActualNumber(window.event.errorCharacter)) {\n culprit.columnNumber = window.event.errorCharacter;\n }\n }\n};\n\nvar isActualNumber = function (n) {\n return typeof n === 'number' && String.call(n) !== 'NaN';\n};\n\n/* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */;\n\n/* removed: var _$iserror_20 = require('@bugsnag/core/lib/iserror'); */;\n\nvar _listener;\n/*\n * Automatically notifies Bugsnag when window.onunhandledrejection is called\n */\n\n\nvar _$unhandledRejection_55 = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n var plugin = {\n load: function (client) {\n if (!client._config.autoDetectErrors || !client._config.enabledErrorTypes.unhandledRejections) return;\n\n var listener = function (evt) {\n var error = evt.reason;\n var isBluebird = false; // accessing properties on evt.detail can throw errors (see #394)\n\n try {\n if (evt.detail && evt.detail.reason) {\n error = evt.detail.reason;\n isBluebird = true;\n }\n } catch (e) {}\n\n var event = client.Event.create(error, false, {\n severity: 'error',\n unhandled: true,\n severityReason: {\n type: 'unhandledPromiseRejection'\n }\n }, 'unhandledrejection handler', 1, client._logger);\n\n if (isBluebird) {\n _$map_16(event.errors[0].stacktrace, fixBluebirdStacktrace(error));\n }\n\n client._notify(event, function (event) {\n if (_$iserror_20(event.originalError) && !event.originalError.stack) {\n var _event$addMetadata;\n\n event.addMetadata('unhandledRejection handler', (_event$addMetadata = {}, _event$addMetadata[Object.prototype.toString.call(event.originalError)] = {\n name: event.originalError.name,\n message: event.originalError.message,\n code: event.originalError.code\n }, _event$addMetadata));\n }\n });\n };\n\n if ('addEventListener' in win) {\n win.addEventListener('unhandledrejection', listener);\n } else {\n win.onunhandledrejection = function (reason, promise) {\n listener({\n detail: {\n reason: reason,\n promise: promise\n }\n });\n };\n }\n\n _listener = listener;\n }\n };\n\n if (\"production\" !== 'production') {\n plugin.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n if (_listener) {\n if ('addEventListener' in win) {\n win.removeEventListener('unhandledrejection', _listener);\n } else {\n win.onunhandledrejection = null;\n }\n }\n\n _listener = null;\n };\n }\n\n return plugin;\n}; // The stack parser on bluebird stacks in FF get a suprious first frame:\n//\n// Error: derp\n// b@http://localhost:5000/bluebird.html:22:24\n// a@http://localhost:5000/bluebird.html:18:9\n// @http://localhost:5000/bluebird.html:14:9\n//\n// results in\n// […]\n// 0: Object { file: \"Error: derp\", method: undefined, lineNumber: undefined, … }\n// 1: Object { file: \"http://localhost:5000/bluebird.html\", method: \"b\", lineNumber: 22, … }\n// 2: Object { file: \"http://localhost:5000/bluebird.html\", method: \"a\", lineNumber: 18, … }\n// 3: Object { file: \"http://localhost:5000/bluebird.html\", lineNumber: 14, columnNumber: 9, … }\n//\n// so the following reduce/accumulator function removes such frames\n//\n// Bluebird pads method names with spaces so trim that too…\n// https://github.com/petkaantonov/bluebird/blob/b7f21399816d02f979fe434585334ce901dcaf44/src/debuggability.js#L568-L571\n\n\nvar fixBluebirdStacktrace = function (error) {\n return function (frame) {\n if (frame.file === error.toString()) return;\n\n if (frame.method) {\n frame.method = frame.method.replace(/^\\s+/, '');\n }\n };\n};\n\nvar _$notifier_2 = {};\nvar name = 'Bugsnag JavaScript';\nvar version = '7.16.7';\nvar url = 'https://github.com/bugsnag/bugsnag-js';\n\n/* removed: var _$Client_4 = require('@bugsnag/core/client'); */;\n\n/* removed: var _$Event_6 = require('@bugsnag/core/event'); */;\n\n/* removed: var _$Session_35 = require('@bugsnag/core/session'); */;\n\n/* removed: var _$Breadcrumb_3 = require('@bugsnag/core/breadcrumb'); */;\n\n/* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */;\n\n/* removed: var _$keys_15 = require('@bugsnag/core/lib/es-utils/keys'); */;\n\n/* removed: var _$assign_11 = require('@bugsnag/core/lib/es-utils/assign'); */; // extend the base config schema with some browser-specific options\n\n\nvar __schema_2 = _$assign_11({}, _$config_5.schema, _$config_1);\n\n/* removed: var _$onerror_54 = require('@bugsnag/plugin-window-onerror'); */;\n\n/* removed: var _$unhandledRejection_55 = require('@bugsnag/plugin-window-unhandled-rejection'); */;\n\n/* removed: var _$app_38 = require('@bugsnag/plugin-app-duration'); */;\n\n/* removed: var _$device_40 = require('@bugsnag/plugin-browser-device'); */;\n\n/* removed: var _$context_39 = require('@bugsnag/plugin-browser-context'); */;\n\n/* removed: var _$request_44 = require('@bugsnag/plugin-browser-request'); */;\n\n/* removed: var _$throttle_52 = require('@bugsnag/plugin-simple-throttle'); */;\n\n/* removed: var _$consoleBreadcrumbs_47 = require('@bugsnag/plugin-console-breadcrumbs'); */;\n\n/* removed: var _$networkBreadcrumbs_51 = require('@bugsnag/plugin-network-breadcrumbs'); */;\n\n/* removed: var _$navigationBreadcrumbs_50 = require('@bugsnag/plugin-navigation-breadcrumbs'); */;\n\n/* removed: var _$interactionBreadcrumbs_49 = require('@bugsnag/plugin-interaction-breadcrumbs'); */;\n\n/* removed: var _$inlineScriptContent_48 = require('@bugsnag/plugin-inline-script-content'); */;\n\n/* removed: var _$session_45 = require('@bugsnag/plugin-browser-session'); */;\n\n/* removed: var _$clientIp_46 = require('@bugsnag/plugin-client-ip'); */;\n\n/* removed: var _$stripQueryString_53 = require('@bugsnag/plugin-strip-query-string'); */; // delivery mechanisms\n\n\n/* removed: var _$delivery_36 = require('@bugsnag/delivery-x-domain-request'); */;\n\n/* removed: var _$delivery_37 = require('@bugsnag/delivery-xml-http-request'); */;\n\nvar Bugsnag = {\n _client: null,\n createClient: function (opts) {\n // handle very simple use case where user supplies just the api key as a string\n if (typeof opts === 'string') opts = {\n apiKey: opts\n };\n if (!opts) opts = {};\n var internalPlugins = [// add browser-specific plugins\n _$app_38, _$device_40(), _$context_39(), _$request_44(), _$throttle_52, _$session_45, _$clientIp_46, _$stripQueryString_53, _$onerror_54(), _$unhandledRejection_55(), _$navigationBreadcrumbs_50(), _$interactionBreadcrumbs_49(), _$networkBreadcrumbs_51(), _$consoleBreadcrumbs_47, // this one added last to avoid wrapping functionality before bugsnag uses it\n _$inlineScriptContent_48()]; // configure a client with user supplied options\n\n var bugsnag = new _$Client_4(opts, __schema_2, internalPlugins, {\n name: name,\n version: version,\n url: url\n }); // set delivery based on browser capability (IE 8+9 have an XDomainRequest object)\n\n bugsnag._setDelivery(window.XDomainRequest ? _$delivery_36 : _$delivery_37);\n\n bugsnag._logger.debug('Loaded!');\n\n bugsnag.leaveBreadcrumb('Bugsnag loaded', {}, 'state');\n return bugsnag._config.autoTrackSessions ? bugsnag.startSession() : bugsnag;\n },\n start: function (opts) {\n if (Bugsnag._client) {\n Bugsnag._client._logger.warn('Bugsnag.start() was called more than once. Ignoring.');\n\n return Bugsnag._client;\n }\n\n Bugsnag._client = Bugsnag.createClient(opts);\n return Bugsnag._client;\n },\n isStarted: function () {\n return Bugsnag._client != null;\n }\n};\n_$map_16(['resetEventCount'].concat(_$keys_15(_$Client_4.prototype)), function (m) {\n if (/^_/.test(m)) return;\n\n Bugsnag[m] = function () {\n if (!Bugsnag._client) return console.log(\"Bugsnag.\" + m + \"() was called before Bugsnag.start()\");\n Bugsnag._client._depth += 1;\n\n var ret = Bugsnag._client[m].apply(Bugsnag._client, arguments);\n\n Bugsnag._client._depth -= 1;\n return ret;\n };\n});\n_$notifier_2 = Bugsnag;\n_$notifier_2.Client = _$Client_4;\n_$notifier_2.Event = _$Event_6;\n_$notifier_2.Session = _$Session_35;\n_$notifier_2.Breadcrumb = _$Breadcrumb_3; // Export a \"default\" property for compatibility with ESM imports\n\n_$notifier_2[\"default\"] = Bugsnag;\n\nreturn _$notifier_2;\n\n});\n//# sourceMappingURL=bugsnag.js.map\n","module.exports = require('@bugsnag/browser')\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.BugsnagPluginReact = f()}})(function(){var define,module,exports;\nvar _$src_1 = {};\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n_$src_1 = /*#__PURE__*/function () {\n function BugsnagPluginReact() {\n // Fetch React from the window object, if it exists\n var globalReact = typeof window !== 'undefined' && window.React;\n this.name = 'react';\n this.lazy = arguments.length === 0 && !globalReact;\n\n if (!this.lazy) {\n this.React = (arguments.length <= 0 ? undefined : arguments[0]) || globalReact;\n if (!this.React) throw new Error('@bugsnag/plugin-react reference to `React` was undefined');\n }\n }\n\n var _proto = BugsnagPluginReact.prototype;\n\n _proto.load = function load(client) {\n if (!this.lazy) {\n var ErrorBoundary = createClass(this.React, client);\n\n ErrorBoundary.createErrorBoundary = function () {\n return ErrorBoundary;\n };\n\n return ErrorBoundary;\n }\n\n var BugsnagPluginReactLazyInitializer = function () {\n throw new Error(\"@bugsnag/plugin-react was used incorrectly. Valid usage is as follows:\\nPass React to the plugin constructor\\n\\n `Bugsnag.start({ plugins: [new BugsnagPluginReact(React)] })`\\nand then call `const ErrorBoundary = Bugsnag.getPlugin('react').createErrorBoundary()`\\n\\nOr if React is not available until after Bugsnag has started,\\nconstruct the plugin with no arguments\\n `Bugsnag.start({ plugins: [new BugsnagPluginReact()] })`,\\nthen pass in React when available to construct your error boundary\\n `const ErrorBoundary = Bugsnag.getPlugin('react').createErrorBoundary(React)`\");\n };\n\n BugsnagPluginReactLazyInitializer.createErrorBoundary = function (React) {\n if (!React) throw new Error('@bugsnag/plugin-react reference to `React` was undefined');\n return createClass(React, client);\n };\n\n return BugsnagPluginReactLazyInitializer;\n };\n\n return BugsnagPluginReact;\n}();\n\nvar formatComponentStack = function (str) {\n var lines = str.split(/\\s*\\n\\s*/g);\n var ret = '';\n\n for (var line = 0, len = lines.length; line < len; line++) {\n if (lines[line].length) ret += \"\" + (ret.length ? '\\n' : '') + lines[line];\n }\n\n return ret;\n};\n\nvar createClass = function (React, client) {\n return /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ErrorBoundary, _React$Component);\n\n function ErrorBoundary(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n error: null,\n info: null\n };\n _this.handleClearError = _this.handleClearError.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto2 = ErrorBoundary.prototype;\n\n _proto2.handleClearError = function handleClearError() {\n this.setState({\n error: null,\n info: null\n });\n };\n\n _proto2.componentDidCatch = function componentDidCatch(error, info) {\n var onError = this.props.onError;\n var handledState = {\n severity: 'error',\n unhandled: true,\n severityReason: {\n type: 'unhandledException'\n }\n };\n var event = client.Event.create(error, true, handledState, 1);\n if (info && info.componentStack) info.componentStack = formatComponentStack(info.componentStack);\n event.addMetadata('react', info);\n\n client._notify(event, onError);\n\n this.setState({\n error: error,\n info: info\n });\n };\n\n _proto2.render = function render() {\n var error = this.state.error;\n\n if (error) {\n var FallbackComponent = this.props.FallbackComponent;\n if (FallbackComponent) return React.createElement(FallbackComponent, _extends({}, this.state, {\n clearError: this.handleClearError\n }));\n return null;\n }\n\n return this.props.children;\n };\n\n return ErrorBoundary;\n }(React.Component);\n};\n\n_$src_1.formatComponentStack = formatComponentStack;\n_$src_1[\"default\"] = _$src_1;\n\nreturn _$src_1;\n\n});\n//# sourceMappingURL=bugsnag-react.js.map\n","//(c)2019, MIT Style License \r\n//it is recommended to directly link to this file because we update the detection code\r\n\"use strict\";\r\n\r\nvar $bu_= new function() {\r\n var s=this;\r\n this.version=\"3.3.40npm\";\r\n this.vsakt = {c:\"103\",f:\"102\",s:\"15.4\",e:\"103\",i:\"12\",ios:\"15.2\",samsung:\"17.0.7\",o:\"89\",e_a:\"100\",o_a:\"66.2\",y:\"22.7.0\",v:\"5.4\",uc:\"13.4.0\"};\r\n //severely insecure below(!) this version, insecure means remote code execution that is actively being exploited\r\n this.vsinsecure_below = {c:\"88.0.4324.150\",f:76,s:\"11.1.1\",e:16,i:11,ios:\"12.3\",samsung:12.0,o:62,o_a:52,y:\"20\",v:\"2.7\",uc:\"13.1\"};\r\n this.vsdefault = {c:-3,f:-3,s:-1,e:17,i:11,ios:10,samsung:9.9,o:-3,o_a:-3,y:20.4,v:2.6,uc:13.0,a:535};\r\n this.names={c:\"Chrome\",f:'Firefox',s:'Safari',e:\"Edge\",i:'Internet Explorer',ios:\"iOS\",samsung:\"Samsung Internet\",o:'Opera',o_a:'Opera', e_a:\"Edge\", y:\"Yandex Browser\",v:\"Vivaldi\",uc:\"UC Browser\",a:\"Android Browser\",x:\"Other\",silk:\"Silk\"};\r\n\r\n this.get_browser = function(ua) {\r\n var n,ua=(ua||navigator.userAgent).replace(\"_\",\".\"),r={n:\"x\",v:0,t:\"other browser\",age_years:undefined,no_device_update:false,available:s.vsakt};\r\n function ignore(reason,pattern){if (new RegExp(pattern,\"i\").test(ua)) return reason;return false}\r\n r.other=ignore(\"bot\",\"Pagespeed|pingdom|Preview|ktxn|dynatrace|Ruxit|PhantomJS|Headless|Lighthouse|bot|spider|archiver|transcoder|crawl|checker|monitoring|prerender|screenshot|python-|php|uptime|validator|fetcher|facebook|slurp|google|yahoo|node|mail.ru|github|cloudflare|addthis|thumb|proxy|feed|fetch|favicon|link|http|scrape|seo|page|search console|AOLBuild|Teoma|Expeditor\")||\r\n ignore(\"TV\",\"SMART-TV|SmartTV\") ||\r\n ignore(\"niche browser\",\"motorola edge|Comodo.Dragon|OculusBrowser|Falkon|Brave|Classic Browser|Dorado|LBBROWSER|Focus|waterfox|Firefox/56.2|Firefox/56.3|Whale|MIDP|k-meleon|sparrow|wii|Chromium|Puffin|Opera Mini|maxthon|maxton|dolfin|dolphin|seamonkey|opera mini|netfront|moblin|maemo|arora|kazehakase|epiphany|konqueror|rekonq|symbian|webos|PaleMoon|Basilisk|QupZilla|Otter|Midori|qutebrowser|slimjet\") ||\r\n ignore(\"mobile without upgrade path or landing page\",\"OPR/44.12.2246|cros|kindle|tizen|silk|blackberry|bb10|RIM|PlayBook|meego|nokia|ucweb|ZuneWP7|537.85.10\");\r\n// ignore(\"android(chrome) web view\",\"; wv\");\r\n r.embedded=/\"QtWebEngine|Teams|Electron/i.test(ua);\r\n r.mobile=(/iphone|ipod|ipad|android|mobile|phone|ios|iemobile/i.test(ua));\r\n r.discontinued=(/netscape|greenbrowser|camino|flot|fennec|galeon|coolnovo/i.test(ua));\r\n\r\n var pats=[\r\n [\"CriOS.VV\",\"c\",'ios'],\r\n [\"FxiOS.VV\",\"f\",'ios'],\r\n [\"Trident.*rv:VV\",\"i\",'i'],\r\n [\"Trident.VV\",\"i\",'i'],\r\n [\"UCBrowser.VV\",\"uc\",'c'],\r\n [\"MSIE.VV\",\"i\",'i'],\r\n [\"Edge.VV\",\"e\",'e'],\r\n [\"Edg.VV\",\"e\",'c'],\r\n [\"EdgA.VV\",\"e_a\",'c'],\r\n [\"Vivaldi.VV\",\"v\",'c'],\r\n [\"Android.*OPR.VV\",\"o_a\",'c'],\r\n [\"OPR.VV\",\"o\",'c'],\r\n [\"YaBrowser.VV\",\"y\",'c'],\r\n [\"SamsungBrowser.VV\",\"samsung\",'c'],\r\n [\"Silk.VV\",\"silk\",'c'],\r\n [\"Chrome.VV\",\"c\",'c'],\r\n [\"Firefox.VV\",\"f\",'f'],\r\n [\" OS.VV.*Safari\",\"ios\",'ios'],\r\n [\"Version.VV.*Safari\",\"s\",'s'],\r\n [\"Safari.VV\",\"s\",'s'],\r\n [\"Opera.*Version.VV\",\"o\"],\r\n [\"Opera.VV\",\"o\"]\r\n ];\r\n var VV=\"(\\\\d+\\\\.?\\\\d+\\\\.?\\\\d*\\\\.?\\\\d*)\";\r\n for (var i=0; i < pats.length; i++) {\r\n if (ua.match(new RegExp(pats[i][0].replace(\"VV\",VV),\"i\"))) {\r\n r.n=pats[i][1];\r\n r.engine=pats[i][2];\r\n break;\r\n } \r\n }\r\n r.fullv=RegExp.$1;\r\n r.v=parseFloat(r.fullv);\r\n\r\n // Special treatment of some systems\r\n //do not notify old systems since there is no up-to-date browser available\r\n if (/windows.nt.5|windows.nt.4|windows.nt.6.0|windows.95|windows.98|os x 10.2|os x 10.3|os x 10.4|os x 10.5/i.test(ua)) {\r\n r.no_device_update=true;\r\n r.available={}\r\n }\r\n //Safari on iOS 13 in Desktop mode\r\n if (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1) {\r\n r.n=\"ios\";\r\n r.engine='ios';\r\n r.fullv=r.v=13;\r\n r.no_device_update=true;//For now, never show a message, TODO!\r\n }\r\n //iOS\r\n if (/iphone|ipod|ipad|ios/i.test(ua)) {\r\n ua.match(new RegExp(\"OS.\"+VV,\"i\"));\r\n r.n=\"ios\";\r\n r.fullv=RegExp.$1;\r\n r.v=parseFloat(r.fullv);\r\n r.engine='ios';\r\n var av=s.available_ios(ua,r.v);\r\n /*\r\n var newmap={10:\"10.3.4\",11:\"12.4.3\",12:\"12.4.3\",13:s.vsakt[\"ios\"]};\r\n if (av in newmap)\r\n av=newmap[av];\r\n */\r\n if (av < 12 && Math.round(r.v)===11)// all devices with ios 11 support ios 12\r\n av=12\r\n r.available = {\"ios\": av};\r\n if (parseFloat(r.available.ios)<11)\r\n r.no_device_update=true;\r\n }\r\n //winxp/vista/2003\r\n if (/windows.nt.5.1|windows.nt.5.2|windows.nt.6.0/i.test(ua)) {\r\n r.available={\"c\":49.9,\"f\":52.9}\r\n r.no_device_update=true;\r\n }\r\n //old mac\r\n if (/os x 10.6/i.test(ua)) {\r\n r.available = {\"s\": \"5.1.10\", \"c\": 49.9, \"f\": 48}\r\n r.no_device_update=true;\r\n }\r\n\r\n if (/os x 10.7|os x 10.8/i.test(ua)) {\r\n r.available = {\"s\": \"6.2.8\", \"c\": 49.9, \"f\": 48}\r\n r.no_device_update=true;\r\n }\r\n if (/os x 10.9/i.test(ua))\r\n r.available.s=\"9.1.3\"\r\n\r\n if (/os x 10.10/i.test(ua))\r\n r.available.s=\"10.1.2\"\r\n\r\n //check for android stock browser\r\n if (ua.indexOf('Android')>-1 && r.n===\"s\") {\r\n var v=parseInt((/WebKit\\/([0-9]+)/i.exec(ua) || 0)[1],10) || 2000;\r\n if (v <= 534) {\r\n r.n=\"a\";\r\n r.fullv=r.v=v;\r\n r.is_insecure=true;\r\n }\r\n }\r\n\r\n r.t=s.names[r.n]+\" \"+r.v;\r\n r.is_supported=r.is_latest= !s.vsakt[r.n] ? undefined : s.less(r.fullv,s.vsakt[r.n])<=0;\r\n \r\n r.vmaj=Math.round(r.v);\r\n\r\n r.is_insecure= r.is_insecure|| !s.vsinsecure_below[r.n] ? undefined : s.less(r.fullv,s.vsinsecure_below[r.n])===1;\r\n \r\n if ((r.n===\"f\" && (r.vmaj===91)) || (r.n===\"i\" && r.vmaj===11)) {\r\n r.is_supported=true;\r\n r.is_insecure=false;\r\n if (r.n===\"f\")\r\n r.esr=true;\r\n }\r\n if (r.n===\"ios\" && r.v>10.3)\r\n r.is_supported=true;\r\n if (r.n===\"a\" || r.n===\"x\")\r\n r.t=s.names[r.n];\r\n if (r.n===\"e\") {\r\n r.t = s.names[r.n] + \" \" + r.vmaj;\r\n r.is_supported = s.less(r.fullv, \"18.15063\") != 1\r\n }\r\n if (r.n in [\"c\",\"f\",\"o\",\"e\"] && s.less(r.fullv,parseFloat(s.vsakt[r.n])-1)<=0)\r\n r.is_supported=true; //mark also the version before the current version as supported to make the transitions smoother\r\n\r\n var releases_per_year={'f':7,'c':8,'o':8,'i':1,'e':1,'s':1}//,'v':1}\r\n if (releases_per_year[r.n]) {\r\n r.age_years=Math.round(((s.vsakt[r.n]-r.v)/releases_per_year[r.n])*10)/10 || 0\r\n }\r\n var engines={e:\"Edge.VV\",c:\"Chrome.VV\",f:\"Firefox.VV\",s:\"Version.VV\",i:\"MSIE.VV\",\"ios\":\" OS.VV\"}\r\n if (r.engine) {\r\n ua.match(new RegExp(engines[r.engine].replace(\"VV\",VV),\"i\"))\r\n r.engine_version=parseFloat(RegExp.$1)\r\n } \r\n return r\r\n}\r\nthis.semver = function(vstr) {\r\n if (vstr instanceof Array)\r\n return vstr\r\n var x = (vstr+(\".0.0.0\")).split('.')\r\n return [parseInt(x[0]) || 0, parseInt(x[1]) || 0, parseInt(x[2]) || 0, parseInt(x[3]) || 0]\r\n}\r\nthis.less= function(v1,v2) {\r\n //semantic version comparison: returns 1 if v1v2\r\n v1=s.semver(v1)\r\n v2=s.semver(v2)\r\n for (var i=0; ;i++) {\r\n if (i>=v1.length) return i>=v2.length ? 0 : 1;\r\n if (i>=v2.length) return -1;\r\n var diff = v2[i]-v1[i]\r\n if (diff) return diff>0 ? 1 : -1;\r\n }\r\n}\r\nthis.available_ios=function(ua,v) {\r\n //https://support.apple.com/de-de/guide/iphone/iphe3fa5df43/ios\r\n var h = Math.max(window.screen.height, window.screen.width),pr = window.devicePixelRatio\r\n if (/ipad/i.test(ua)) {\r\n if (h == 1024 && pr == 2) // iPad 3 (iOS 9), 4, 5, Mini 2, Mini 3, Mini 4, Air, Air 2, Pro 9.7\r\n return 10//? only ipad 4 has ios 10, all other can have ios 11\r\n if (h == 1112)// iPad Pro 10.5\r\n return 15;\r\n if (h == 1366)//iPad Pro 12.9, Pro 12.9 (2nd Gen)\r\n return 15\r\n if (h == 1024 && v < 6)\r\n return 5 // iPad\r\n return 9 // iPad 2, iPad Mini\r\n }\r\n if (pr == 1)// 1/3G/3GS\r\n return 6//for 3GS\r\n if (pr == 3)\r\n return 15\r\n if (h == 812)// X\r\n return 15\r\n if ((h == 736 || h == 667))// && pr == 3)// 6+/6s+/7+ and 8+ or // 6+/6s+/7+ and 8+ in zoom mode + // 6/6s/7 and 8\r\n return 15//slightly wrong as latest version for iphone 6 is 12\r\n if (h == 568) // 5/5C/5s/SE or 6/6s/7 and 8 in zoom mode\r\n return 10\r\n if (h == 480) // i4/4s\r\n return 7\r\n return 6\r\n}\r\n/*\r\nthis.sub= function(v,minus) {\r\n //semantic version subtraction\r\n v=s.semver(v)\r\n minus=s.semver(minus)\r\n for (var i=0; ;i++) {\r\n if (i>=v.length||i>minus.length) break;\r\n v[i]-=v[minus];\r\n }\r\n return v.join('.')\r\n}\r\n*/\r\n}\r\n\r\nwindow.$bu_getBrowser=$bu_.get_browser;\r\n\r\nvar $buo = function(op,test) {\r\nvar n = window.navigator,b;\r\nop=window._buorgres=op||{};\r\nvar ll = op.l||(n.languages ? n.languages[0] : null) || n.language || n.browserLanguage || n.userLanguage||document.documentElement.getAttribute(\"lang\")||\"en\";\r\nop.llfull=ll.replace(\"_\",\"-\").toLowerCase().substr(0,5);\r\nop.ll=op.llfull.substr(0,2);\r\nop.domain=op.domain!==undefined?op.domain:(/file:/.test(location.href)?\"https:\":\"\")+\"//browser-update.org\";\r\nop.apiver=op.api||op.c||-1;\r\nop.jsv=$bu_.version;\r\n\r\nvar required_min=(op.apiver<2018&&{i:10,f:11,o:21,s:8,c:30})||{};\r\n\r\nvar vs=op.notify||op.vs||{};//legacy config: maximum version to notify\r\nvs.e=vs.e||vs.i;\r\nvs.i=vs.i||vs.e;\r\nvar required=op.required||{};//minimum browser versions needed\r\nrequired.e=required.e||required.i;\r\nif (!required.i) {\r\n required.i=required.e;\r\n $bu_.vsakt.i=$bu_.vsakt.e;\r\n}\r\n\r\nfor (b in $bu_.vsdefault) {\r\n if (vs[b]) {//legacy style config: browsers to notify\r\n if ($bu_.less(vs[b],0)>=0) // required <= 0\r\n required[b]= parseFloat($bu_.vsakt[b])+parseFloat(vs[b])+0.01\r\n else\r\n required[b] = parseFloat(vs[b]) + 0.01\r\n }\r\n if (!(b in required) || required[b]==null)\r\n required[b]=$bu_.vsdefault[b]\r\n if ($bu_.less(required[b],0)>=0) // case for required <= 0 --> relative to latest version\r\n required[b]=parseFloat($bu_.vsakt[b])+parseFloat(required[b]) // TODO: make it work for string version\r\n if (required_min[b] && $bu_.less(required[b],required_min[b])===1) // required < required_min\r\n required[b]=required_min[b]\r\n}\r\nrequired.ios=required.ios||required.s;\r\n\r\nif (required.i<79 && required.i>65)\r\n required.i=required.i-60\r\nif (required.e<79 && required.e>65)\r\n required.e=required.e-60\r\nop.required=required;\r\nop.reminder=op.reminder<0.1 ? 0 : op.reminder||(24*7);\r\nop.reminderClosed=op.reminderClosed<1 ? 0 : op.reminderClosed||(24*7);\r\nop.onshow = op.onshow||function(o){};\r\nop.onclick = op.onclick||function(o){};\r\nop.onclose = op.onclose||function(o){};\r\nop.pageurl = op.pageurl || location.hostname || \"x\";\r\nop.newwindow=(op.newwindow!==false);\r\n\r\nop.test=test||op.test||(location.hash===\"#test-bu\")||false;\r\nop.ignorecookie=op.ignorecookie||location.hash===\"#ignorecookie-bu\";\r\n\r\nop.reasons=[];\r\nop.hide_reasons=[];\r\nfunction check_show(op) {\r\n var bb=op.browser=$bu_.get_browser(op.override_ua);\r\n op.is_below_required = required[bb.n] && $bu_.less(bb.fullv,required[bb.n])===1; //bb.fullv0)\r\n return false\r\n if (op.reasons.length>0)\r\n return true\r\n return false\r\n }\r\n\r\nop.notified=check_show(op);\r\n\r\nop.already_shown=document.cookie.indexOf(\"browserupdateorg=pause\")>-1 && !op.ignorecookie;\r\n\r\nif (!op.test && (!op.notified || op.already_shown))\r\n return;\r\n\r\nop.setCookie=function(hours) { //sets a cookie that the user has already seen the notification, closed it or permanently wants to hide it. No information on the user is stored.\r\n document.cookie = 'browserupdateorg=pause; expires='+(new Date(new Date().getTime()+3600000*hours)).toGMTString()+'; path=/; SameSite=Lax'+(/https:/.test(location.href)?'; Secure':'')\r\n}\r\n\r\nif (op.already_shown && (op.ignorecookie || op.test))\r\n op.setCookie(-10)// remove old cookies if in test mode\r\n\r\nif (op.reminder>0)\r\n op.setCookie(op.reminder);\r\n\r\nif (op.nomessage) {\r\n op.onshow(op);\r\n return;\r\n}\r\n\r\n$buo_show();\r\n};\r\n\r\n\r\nif( typeof( module ) !== 'undefined' ) {\r\n module.exports = $buo;\r\n}\r\n\r\n\r\n\r\n\"use strict\";\r\nvar $buo_show = function () {\r\n var op = window._buorgres;\r\n var bb = $bu_getBrowser();\r\n var burl = op.burl || (\"http\" + (/MSIE/i.test(navigator.userAgent) ? \"\" : \"s\") + \"://browser-update.org/\");\r\n if (!op.url) {\r\n op.url = burl + ((op.l && (op.l + \"/\")) || \"\") + \"update-browser.html\" + (op.test ? \"?force_outdated=true\" : \"\") + \"#\" + op.jsv + \":\" + op.pageurl;\r\n }\r\n op.url_permanent_hide=op.url_permanent_hide || (burl + \"block-ignore-browser-update-warning.html\");\r\n /*\r\n if (Math.random()*1000<1 && !op.test && !op.betatest) {\r\n var i = new Image();\r\n var txt=op[\"text_\"+ll]||op.text||\"\";\r\n var extra=encodeURIComponent(\"frac=\"+frac+\"&txt=\"+txt+\"&apiver=\"+op.apiver);\r\n i.src=\"https://browser-update.org/cnt?what=noti&from=\"+bb.n+\"&fromv=\"+bb.v + \"&ref=\"+ escape(op.pageurl) + \"&jsv=\"+op.jsv+\"&tv=\"+op.style+\"&extra=\"+extra;\r\n }\r\n */\r\n function busprintf() {\r\n var args = arguments;\r\n var data = args[0];\r\n for (var k = 1; k < args.length; ++k) {\r\n data = data.replace(/%s/, args[k]);\r\n }\r\n return data;\r\n }\r\n\r\n\r\nvar t = {}, ta;\r\nt.en= {'msg': 'Your web browser ({brow_name}) is out of date.', 'msgmore': 'Update your browser for more security, speed and the best experience on this site.', 'bupdate': 'Update browser', 'bignore': 'Ignore','remind': 'You will be reminded in {days} days.','bnever': 'Never show again'}\r\nt.ar= {'msg': 'متصفح الإنترنت الخاص بك ({brow_name}) غير مُحدّث.','msgmore': 'قم بتحديث المتصفح الخاص بك لمزيد من الأمان والسرعة ولأفضل تجربة على هذا الموقع.','bupdate': 'تحديث المتصفح','bignore': 'تجاهل', 'remind': 'سيتم تذكيرك في غضون {days} أيام.', 'bnever': 'لا تظهر مرة أخرى'}\r\nt.bg= {'msg': 'Вашият уеб браузър ({brow_name}) е остарял.','msgmore': 'Актуализирайте браузъра си за повече сигурност, бързина и най-доброто изживяване на този сайт.','bupdate': 'Актуализиране на браузъра','bignore': 'игнорирай', 'remind': 'Ще ви бъде напомнено след {days} дни.', 'bnever': 'Никога повече да не се показва'}\r\nt.ca= {'msg': 'El teu navegador ({brow_name}) està desactualitzat.','msgmore': 'Actualitzeu el vostre navegador per obtenir més seguretat, velocitat i una millor experiència en aquest lloc.','bupdate': 'Actualitza el navegador','bignore': 'Ignorar', 'remind': 'T\\'ho recordarem d\\'aquí a {days} dies.', 'bnever': 'No ho tornis a mostrar'}\r\nt.cs= {'msg': 'Váš prohlížeč ({brow_name}) je zastaralý.','msgmore': 'Aktualizujte prohlížeč pro lepší zabezpečení, rychlost a nejlepší zážitek z tohoto webu.','bupdate': 'Aktualizovat prohlížeč','bignore': 'Ignorovat', 'remind': 'Znovu budete upozorněni za {days} dnů.', 'bnever': 'Již nezobrazovat'}\r\nt.cy= {'msg': 'Mae eich porwr gwe ({brow_name}) angen ei ddiweddaru.','msgmore': 'Diweddarwch eich porwr i gael mwy o ddiogelwch, cyflymder a\\'r profiad gorau ar y safle hwn.','bupdate': 'Diweddaru porwr','bignore': 'Anwybyddu', 'remind': 'Byddwn yn eich atgoffa mewn {days} diwrnod.', 'bnever': 'Peidiwch â dangos eto'}\r\nt.da= {'msg': 'Din web browser ({brow_name}) er forældet','msgmore': 'Opdater din browser for mere sikkerhed, hastighed og den bedste oplevelse på denne side.','bupdate': 'Opdater browser','bignore': 'Ignorer', 'remind': 'Du vil blive påmindet om {days} dage.', 'bnever': 'Vis aldrig igen'}\r\nt.de= {'msg': 'Ihr Webbrowser ({brow_name}) ist veraltet.','msgmore': 'Aktualisieren Sie Ihren Browser für mehr Sicherheit, Geschwindigkeit und den besten Komfort auf dieser Seite.','bupdate': 'Browser aktualisieren','bignore': 'Ignorieren', 'remind': 'Sie werden in {days} Tagen wieder erinnert.', 'bnever': 'Nie wieder anzeigen'}\r\nt.el= {'msg': 'Το πρόγραμμα περιήγησής σας ({brow_name}) είναι απαρχαιωμένο.','msgmore': 'Ενημερώστε το πρόγραμμα περιήγησής σας για περισσότερη ασφάλεια, ταχύτητα και την καλύτερη εμπειρία σ\\' αυτόν τον ιστότοπο.','bupdate': 'Ενημερώστε το πρόγραμμα περιήγησης','bignore': 'Αγνοήστε', 'remind': 'Θα σας το υπενθυμίσουμε σε {days} ημέρες.', 'bnever': 'Να μην εμφανιστεί ξανά'}\r\nt.es= {'msg': 'Su navegador web ({brow_name}) está desactualizado.','msgmore': 'Actualice su navegador para obtener más seguridad, velocidad y para disfrutar de la mejor experiencia en este sitio.','bupdate': 'Actualizar navegador','bignore': 'Ignorar', 'remind': 'Se le recordará en {days} días.', 'bnever': 'No mostrar de nuevo'}\r\nt.et= {'msg': 'Teie veebilehitseja ({brow_name}) on vananenud.','msgmore': 'Veebilehitseja uuendamisega kaasneb nii parem turvalisus, kiirus kui ka kasutusmugavus.','bupdate': 'Uuenda veebilehitsejat','bignore': 'Eira', 'remind': 'Uus meeldetuletus {days} päeva pärast.', 'bnever': 'Ära kunagi enam näita'}\r\nt.fa= {'msg': 'مرورگر شما ({brow_name}) قدیمی است.','msgmore': 'برای ایمنی، سرعت و تجربه بهتر مرورگر خود را به‌روز کنید.','bupdate': 'به‌روزرسانی مرورگر','bignore': 'نادیده گرفتن', 'remind': 'به شما تا {days} روز دیگر دوباره یاد‌آوری خواهد شد.', 'bnever': 'هرگز نمایش نده'}\r\nt.fi= {'msg': 'Selaimesi ({brow_name}) on vanhentunut.','msgmore': 'Päivitä selaimesi saadaksesi tietoturvapäivityksiä, nopeutta sekä parhaan käyttökokemuksen sivustolla.','bupdate': 'Päivitä selain','bignore': 'Ohita', 'remind': 'Saat uuden muistutuksen {days} päivän päästä.', 'bnever': 'Älä näytä uudestaan'}\r\nt.fr= {'msg': 'Votre navigateur Web ({brow_name}) n\\'est pas à jour.','msgmore': 'Mettez à jour votre navigateur pour plus de sécurité et de rapidité et une meilleure expérience sur ce site.','bupdate': 'Mettre à jour le navigateur','bignore': 'Ignorer', 'remind': 'Vous serez rappelé dans {days} jours.', 'bnever': 'Ne plus afficher'}\r\nt.gl= {'msg': 'Tá an líonléitheoir agat ({brow_name}) as dáta.','msgmore': 'Actualiza o teu navegador para obter máis seguridade, rapidez e mellor experiencia neste sitio.','bupdate': 'Actualizar navegador web','bignore': 'Ignorar', 'remind': 'Lembraralle en {days} días.', 'bnever': 'Non volver mostrar máis'}\r\nt.he= {'msg': 'דפדפן ({brow_name}) שלך אינו מעודכן.','msgmore': 'עדכן/י את הדפדפן שלך לשיפור האבטחה והמהירות וכדי ליהנות מהחוויה הטובה ביותר באתר זה.','bupdate': 'עדכן דפדפן','bignore': 'התעלם', 'remind': 'תקבל/י תזכורת בעוד {days} ימים.', 'bnever': 'אל תציג שוב'}\r\nt.hi= {'msg': 'आपका वेब ब्राउज़र ({brow_name}) पुराना है।','msgmore': 'इस साइट पर अधिक सुरक्षा, गति और सर्वोत्तम अनुभव करने के लिए अपने ब्राउज़र को अपडेट करें ।','bupdate': 'ब्राउज़र अपडेट करें','bignore': 'नजरअंदाज करें', 'remind': 'आपको {days} दिनों में याद दिलाया जाएगा।', 'bnever': 'फिर कभी मत दिखाना'}\r\nt.hu= {'msg': 'Az Ön webböngészője ({brow_name}) elavult.','msgmore': 'Frissítse böngészőjét a nagyobb biztonság, sebesség és élmény érdekében!','bupdate': 'Böngésző frissítése','bignore': 'Mellőzés', 'remind': 'Újra emlékeztetünk {days} napon belül.', 'bnever': 'Ne mutassa többet'}\r\nt.id= {'msg': 'Peramban web ({brow_name}) Anda sudah usang.','msgmore': 'Perbarui peramban Anda untuk pengalaman terbaik, lebih aman, dan cepat di situs ini.','bupdate': 'Perbarui peramban','bignore': 'Abaikan', 'remind': 'Anda akan diingatkan kembali dalam {days} hari.', 'bnever': 'Jangan pernah tampilkan lagi'}\r\nt.it= {'msg': 'Il tuo browser ({brow_name}) non è aggiornato.','msgmore': 'Aggiorna il browser per una maggiore sicurezza, velocità e la migliore esperienza su questo sito.','bupdate': 'Aggiorna browser','bignore': 'Ignora', 'remind': 'Riceverai un promemoria tra {days} giorni.', 'bnever': 'Non mostrare di nuovo'}\r\nt.ja= {'msg': 'お使いのブラウザ({brow_name})は最新版ではありません。','msgmore': 'セキュリティ、スピード、そしてこのサイトでの最良の体験のためにお使いのブラウザを更新してください。','bupdate': 'ブラウザを更新する','bignore': '無視する', 'remind': '{days} 日後にもう一度お知らせします。', 'bnever': '次回から表示しない'}\r\nt.ko= {'msg': '귀하의 웹 브라우저({brow_name})는 오래되었습니다.','msgmore': '이 사이트에서 보안, 속도와 최상의 경험을 얻으려면 브라우저를 업데이트하십시오.','bupdate': '브라우저 업데이트하기','bignore': '무시하기', 'remind': '{days}일 후에 알려 드립니다.', 'bnever': '다시 표시하지 않기'}\r\nt.lt= {'msg': 'Jūsų naršyklė ({brow_name}) yra pasenusi.','msgmore': 'Atsinaujinkite savo naršyklę norėdami gauti daugiau saugumo, greičio ir pačių geriausių patirčių šioje svetainėje.','bupdate': 'Atnaujinti naršyklę','bignore': 'Nepaisyti', 'remind': 'Jums bus priminta po {days} dienų.', 'bnever': 'Daugiau niekada nerodyti'}\r\nt.lv= {'msg': 'Jūsu pārlūkprogramma ({brow_name}) ir novecojusi.','msgmore': 'Atjaunojiet savu pārlūkprogrammu lielākai drošībai, ātrumam un labākai pieredzei ar šo vietni.','bupdate': 'Atjaunināt pārlūkprogrammu','bignore': 'Ignorēt', 'remind': 'Jums tiks parādīts atgādinājums pēc {days} dienām.', 'bnever': 'Vairs nerādīt'}\r\nt.ms= {'msg': 'Pelayar web anda ({brow_name}) sudah lapuk.','msgmore': 'Kemas kini pelayar anda untuk lebih keselamatan, kelajuan dan pengalaman terbaik di laman web ini.','bupdate': 'Kemas kini pelayar','bignore': 'Abaikan', 'remind': 'Anda akan diingatkan dalam {days} hari.', 'bnever': 'Jangan tunjukkan lagi'}\r\nt.nl= {'msg': 'Uw webbrowser ({brow_name}) is verouderd.','msgmore': 'Update uw browser voor meer veiligheid, snelheid en om deze site optimaal te kunnen gebruiken.','bupdate': 'Browser updaten','bignore': 'Negeren', 'remind': 'We zullen u er in {days} dagen aan herinneren.', 'bnever': 'Nooit meer tonen'}\r\nt.no=t.nn=t.nb= {'msg': 'Nettleseren din ({brow_name}) er utdatert.','msgmore': 'Oppdater nettleseren din for økt sikkerhet, hastighet og den beste opplevelsen på dette nettstedet.','bupdate': 'Oppdater nettleser','bignore': 'Ignorer', 'remind': 'Du vil få en påminnelse om {days} dager.', 'bnever': 'Aldri vis igjen'}\r\nt.pl= {'msg': 'Twoja przeglądarka ({brow_name}) jest nieaktualna.','msgmore': 'Zaktualizuj przeglądarkę, by korzystać z tej strony bezpieczniej, szybciej i po prostu sprawniej.','bupdate': 'Aktualizuj przeglądarkę','bignore': 'Ignoruj', 'remind': 'Przypomnimy o tym za {days} dni.', 'bnever': 'Nie pokazuj więcej'}\r\nt.pt= {'msg': 'Seu navegador da web ({brow_name}) está desatualizado.','msgmore': 'Atualize seu navegador para ter mais segurança e velocidade, além da melhor experiência neste site.','bupdate': 'Atualizar navegador','bignore': 'Ignorar', 'remind': 'Você será relembrado em {days} dias.', 'bnever': 'Não mostrar novamente'}\r\nt.ro= {'msg': 'Browserul tău ({brow_name}) nu este actualizat.','msgmore': 'Actualizează browserul pentru o mai mare siguranță, viteză și cea mai bună experiență pe acest site.','bupdate': 'Actualizează browser','bignore': 'Ignoră', 'remind': 'Ți se va reaminti peste {days} zile.', 'bnever': 'Nu mai arăta'}\r\nt.ru= {'msg': 'Ваш браузер ({brow_name}) устарел.','msgmore': 'Обновите ваш браузер для повышения уровня безопасности, скорости и комфорта использования этого сайта.','bupdate': 'Обновить браузер','bignore': 'Игнорировать', 'remind': 'Вы получите напоминание через {days} дней.', 'bnever': 'Больше не показывать '}\r\nt.sk= {'msg': 'Váš internetový prehliadač ({brow_name}) je zastaraný.','msgmore': 'Pre väčšiu bezpečnosť, rýchlosť a lepšiu skúsenosť s touto stránkou si aktualizujte svoj prehliadač.','bupdate': 'Aktualizovať prehliadač','bignore': 'Ignorovať', 'remind': 'Bude vám to pripomenuté o {days} dní.', 'bnever': 'Už nikdy viac neukazovať'}\r\nt.sl= {'msg': 'Vaš spletni brskalnik ({brow_name}) je zastarel.','msgmore': 'Posodobite svoj brskalnik za dodatno varnost, hitrost in najboljšo izkušnjo na tem spletnem mestu.','bupdate': 'Posodobi brskalnik','bignore': 'Prezri', 'remind': 'Opomnik boste prejeli čez toliko dni: {days}.', 'bnever': 'Ne prikaži več'}\r\nt.sq= {'msg': 'Shfletuesi juaj ({brow_name}) është i vjetruar.','msgmore': 'Përditësoni shfletuesin tuaj për më tepër siguri, shpejtësi dhe për më të mirin e funksionimeve në këtë sajt.','bupdate': 'Përditëso shfletuesin','bignore': 'Shpërfille', 'remind': 'Do t’ju rikujtohet pas {days} ditësh.', 'bnever': 'Mos e shfaq kurrë më'}\r\nt.sr= {'msg': 'Vaš pretraživač ({brow_name}) je zastareo.','msgmore': 'Ima poznate sigurnosne probleme i najverovatnije neće prikazati sve funkcionalnisti ovog i drugih sajtova.','bupdate': 'Nadogradi pretraživač','bignore': 'Ignorisi', 'remind': 'Zaboravićete za {days} dana.', 'bnever': 'Ne prikazuj opet'}\r\nt.sv= {'msg': 'Din webbläsare ({brow_name}) är föråldrad. ','msgmore': 'Uppdatera din webbläsare för mer säkerhet, hastighet och den bästa upplevelsen på den här sajten. ','bupdate': 'Uppdatera webbläsaren','bignore': 'Ignorera', 'remind': 'Du får en påminnelse om {days} dagar.', 'bnever': 'Visa aldrig igen'}\r\nt.th= {'msg': 'เว็บเบราว์เซอร์ของคุณ ({brow_name}) ล้าสมัยแล้ว','msgmore': 'อัปเดทเบราว์เซอร์เพื่อเพิ่มความปลอดภัย, ความเร็ว และประสบการณ์ที่ดีที่สุดบนเว็บไซต์นี้','bupdate': 'อัปเดทเบราว์เซอร์','bignore': 'ข้าม', 'remind': 'คุณจะได้รับการแจ้งเตือนใน {days} วัน', 'bnever': 'ไม่ต้องแสดงอีก'}\r\nt.tr= {'msg': 'Web tarayıcınız ({brow_name}) güncel değil.','msgmore': 'Daha fazla güvenlik ve hız ile bu sitede en iyi deneyim için tarayıcınızı güncelleyin.','bupdate': 'Tarayıcıyı güncelle','bignore': 'Yok say', 'remind': '{days} gün sonra bir hatırlatma alacaksınız.', 'bnever': 'Bir daha gösterme'}\r\nt.uk= {'msg': 'Ваш браузер ({brow_name}) застарілий.','msgmore': 'Оновіть свій браузер для більшої безпеки, швидкості та повноцінної роботи цього сайту.','bupdate': 'Оновити браузер','bignore': 'Пропустити', 'remind': 'Ви отримаєте нагадування через {days} днів.', 'bnever': 'Більше не показувати'}\r\nt.uz= {'msg': 'Sizning ({brow_name}) veb-brauzeringiz eskirgan','msgmore': 'Xavfsizlik, tezkorlik va ushbu sayt imkoniyatlaridan to`liq foydalanish uchun brauzeringizni yangilang.','bupdate': 'Brauzeringizni yangilang','bignore': 'E’tibor bermaslik', 'remind': 'Sizga {days} kundan so`ng eslatammiz.', 'bnever': 'Hech qachon qayta ko\\'rsatmang'}\r\nt.vi= {'msg': 'Trình duyệt web của bạn ({brow_name}) đã lỗi thời.','msgmore': 'Cập nhật trình duyệt của bạn để có thêm bảo mật, tốc độ và trải nghiệm tốt nhất trên trang web này.','bupdate': 'Cập nhật trình duyệt','bignore': 'Bỏ qua', 'remind': 'Bạn sẽ được nhắc nhở sau {days} ngày.', 'bnever': 'Không bao giờ hiển thị lại'}\r\nt.zh= {'msg': '您的网页浏览器({brow_name})已过期。','msgmore': '更新您的浏览器,以便在该网站上获得更安全、更快速和最好的体验。','bupdate': '更新浏览器','bignore': '忽略', 'remind': '会在{days}天后提醒您。', 'bnever': '不再显示'}\r\nt[\"zh-tw\"]= t[\"zh-hans-cn\"] ={'msg': '您的網路瀏覽器({brow_name})已過舊。','msgmore': '更新您的瀏覽器以獲得更佳的安全性、速度以及在此網站的最佳體驗。','bupdate': '更新瀏覽器','bignore': '忽略', 'remind': '您將在 {days} 天後收到提醒。', 'bnever': '不要再顯示'}\r\n\r\nvar custom_text = op[\"text_for_\" + bb.n + \"_in_\" + op.ll] || op[\"text_for_\" + bb.n] || op[\"text_\" + op.llfull] || op[\"text_in_\" + op.ll] || op[\"text_\" + op.ll] || op.text\r\nt = ta = t[op.llfull] || t[op.ll] || t.en;\r\nif (custom_text) {\r\n if (typeof custom_text === 'string')\r\n t=ta=custom_text;\r\n else {\r\n for (var i in custom_text) {\r\n ta[i] = custom_text[i]\r\n }\r\n }\r\n}\r\nif (ta.msg)\r\n t = '' + t.msg + ' ' + t.msgmore + ' ' + t.bupdate + ' ' + t.bignore + ''\r\n\r\nvar tar = \"\";\r\nif (op.newwindow)\r\n tar = ' target=\"_blank\" rel=\"noopener\"';\r\n\r\nvar div = op.div = document.createElement(\"div\");\r\ndiv.id = div.className= \"buorg\";\r\n\r\nvar style = '';\r\nvar style2 = '';\r\nif (ta.msg && (op.ll==\"ar\"||op.ll==\"he\"||op.ll==\"fa\"))\r\n style2+='';\r\nif (!ta.msg && t.indexOf && t.indexOf(\"%s\") !== -1) {//legacy style\r\n t = busprintf(t, bb.t, ' id=\"buorgul\" href=\"' + op.url + '\"' + tar);\r\n\r\n style += '';\r\n div.innerHTML = '
' + t + '
' + style;\r\n op.addmargin = true;\r\n}\r\nelse {\r\n if (op.style === \"bottom\") {\r\n style2 += '';\r\n }\r\n else if (op.style === \"corner\") {\r\n style2 += '';\r\n }\r\n else {\r\n op.addmargin = true;\r\n }\r\n t = t.replace(\"{brow_name}\", bb.t).replace(\"{up_but}\", ' id=\"buorgul\" href=\"' + op.url + '\"' + tar).replace(\"{ignore_but}\", ' id=\"buorgig\" role=\"button\" tabindex=\"0\"');\r\n div.innerHTML = '
' + t + '
' + style + style2;\r\n}\r\n\r\nop.text = t;\r\nif (op.container) {\r\n op.container.appendChild(div);\r\n op.addmargin = false;\r\n}\r\nelse\r\n document.body.insertBefore(div, document.body.firstChild);\r\n\r\nvar updatebutton=document.getElementById(\"buorgul\");\r\nif (updatebutton) {\r\n updatebutton.onclick = function (e) {\r\n div.onclick = null;\r\n op.onclick(op);\r\n if (op.noclose)\r\n return\r\n op.setCookie(op.reminderClosed);\r\n if (!op.noclose) {\r\n div.style.display = \"none\";\r\n if (op.addmargin && op.shift_page_down !== false)\r\n hm.style.marginTop = op.bodymt;\r\n }\r\n };\r\n}\r\nif (!custom_text) {//make whole bar clickable except if custom text is set\r\n div.style.cursor=\"pointer\";\r\n div.onclick = function () {\r\n if (op.newwindow)\r\n window.open(op.url, \"_blank\");\r\n else\r\n window.location.href = op.url;\r\n op.setCookie(op.reminderClosed);\r\n op.onclick(op);\r\n };\r\n}\r\n\r\nif (op.addmargin && op.shift_page_down !== false) {\r\n var hm = document.getElementsByTagName(\"html\")[0] || document.body;\r\n op.bodymt = hm.style.marginTop;\r\n hm.style.marginTop = (div.clientHeight) + \"px\";\r\n}\r\nvar ignorebutton = document.getElementById(\"buorga\") || document.getElementById(\"buorgig\");\r\nif (ignorebutton) {\r\n ignorebutton.onclick = function (e) {\r\n div.onclick = null;\r\n op.onclose(op);\r\n if (op.addmargin && op.shift_page_down !== false)\r\n hm.style.marginTop = op.bodymt;\r\n op.setCookie(op.reminderClosed);\r\n if (!op.no_permanent_hide && ta.bnever && ta.remind) {\r\n op.div.innerHTML = '
' + (op.reminderClosed > 24 ? ta.remind.replace(\"{days}\", Math.round(op.reminderClosed/24)):\"\") + ' ' + ta.bnever + '
' + style + style2;\r\n div.className = \"buorg buorg-fadeout\";\r\n document.getElementById(\"buorgpermanent\").onclick = function (e) {\r\n op.setCookie(24 * 365);\r\n op.div.style.display = \"none\";\r\n }\r\n op.div.style.opacity = 0;\r\n op.div.style.visibility = \"hidden\";\r\n return false;\r\n }\r\n op.div.style.display = \"none\";\r\n return false;\r\n }\r\n if (op.noclose || op.reminderClosed==0) {\r\n ignorebutton.parentNode.removeChild(ignorebutton)\r\n }\r\n}\r\n\r\n\r\nop.onshow(op);\r\n\r\nif (op.test && !op.dont_show_debuginfo) {\r\n var e = document.createElement(\"script\");\r\n e.src = op.domain + \"/update.test.js\";\r\n document.body.appendChild(e);\r\n}\r\n\r\n};\r\n\r\n\r\n"],"names":["module","exports","define","_$breadcrumbTypes_8","_$reduce_17","arr","fn","accum","val","i","len","length","_$filter_12","item","concat","_$includes_13","x","_$isArray_14","obj","Object","prototype","toString","call","_hasDontEnumBug","propertyIsEnumerable","_dontEnums","_$keys_15","prop","result","hasOwnProperty","push","_$intRange_24","min","max","Infinity","value","parseInt","_$listOfFunctions_25","f","_$stringWithLength_26","_$config_5","defaultErrorTypes","unhandledExceptions","unhandledRejections","schema","apiKey","defaultValue","message","validate","appVersion","undefined","appType","autoDetectErrors","enabledErrorTypes","allowPartialObject","providedKeys","defaultKeys","k","onError","onSession","onBreadcrumb","endpoints","notify","sessions","autoTrackSessions","enabledReleaseStages","releaseStage","maxBreadcrumbs","enabledBreadcrumbTypes","join","maybeType","context","user","key","metadata","logger","method","redactedKeys","s","test","plugins","p","load","featureFlags","feature","name","_$assign_11","target","arguments","source","_$map_16","_extends","assign","apply","this","_$config_1","window","location","host","console","debug","getPrefixedConsole","consoleLog","log","consoleMethod","bind","_$Breadcrumb_3","Breadcrumb","type","timestamp","Date","toJSON","metaData","_$stackframe_34","root","factory","amd","StackFrame","_isNumber","n","isNaN","parseFloat","isFinite","_capitalize","str","charAt","toUpperCase","substring","_getter","booleanProps","numericProps","stringProps","arrayProps","props","getArgs","args","setArgs","v","TypeError","getEvalOrigin","evalOrigin","setEvalOrigin","getFunctionName","getFileName","getLineNumber","getColumnNumber","Boolean","j","Number","String","_$errorStackParser_31","ErrorStackParser","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","parse","error","stacktrace","parseOpera","stack","match","parseV8OrIE","parseFFOrSafari","Error","extractLocation","urlLike","indexOf","parts","exec","replace","split","filter","line","map","sanitizedLine","tokens","slice","locationParts","pop","functionName","fileName","lineNumber","columnNumber","functionNameRegex","matches","e","parseOpera9","parseOpera11","parseOpera10","lineRE","lines","argsRaw","functionCall","shift","_$errorStackParser_10","_$safeJsonStringify_30","data","replacer","space","opts","redactedPaths","JSON","stringify","prepareObjForSerialization","MAX_DEPTH","MAX_EDGES","MIN_PRESERVED_DEPTH","REPLACEMENT_NODE","isError","o","throwsMessage","err","find","haystack","needle","isDescendent","paths","path","shouldRedact","patterns","toLowerCase","__isArray_30","safelyGetProp","seen","edges","visit","edgesExceeded","fResult","eResult","aResult","add","existingFeatures","variant","merge","newFeatures","toEventApi","flag","featureFlag","_$featureFlagDelegate_18","_$hasStack_19","__isError_32","_$iserror_20","__add_22","state","section","keyOrObj","maybeVal","_updates","updates","clear","_$metadataDelegate_22","get","_$stackGenerator_33","StackGenerator","backtrace","maxStackSize","curr","callee","Array","RegExp","$1","caller","Event","errorClass","errorMessage","handledState","originalError","defaultHandledState","groupingHash","_handledState","severity","unhandled","app","device","request","breadcrumbs","threads","_metadata","_features","_user","_session","errors","createBugsnagError","__type","_proto","addMetadata","getMetadata","clearMetadata","addFeatureFlag","addFeatureFlags","clearFeatureFlag","clearFeatureFlags","getUser","setUser","id","email","payloadVersion","exceptions","er","severityReason","session","formatStackframe","frame","file","normaliseFunctionName","code","inProject","ensureString","getCauseStack","cause","getStacktrace","errorFramesToSkip","backtraceFramesToSkip","create","maybeError","tolerateNonErrors","component","event","_normaliseError","normaliseError","internalFrames","makeSerialisable","_event$errors","causes","normalisedCauses","createAndLogInputError","reason","verb","warn","hasNecessaryFields","_$Event_6","_$asyncEvery_7","cb","index","next","_$callbackRunner_9","callbacks","onCallbackError","runMaybeAsyncCallback","ret","then","setTimeout","_$syncCallbackRunner_23","callbackArg","callbackType","ignore","cbs","_$pad_29","num","size","substr","env","self","globalCount","mimeTypesLength","navigator","mimeTypes","clientId","userAgent","_$fingerprint_28","c","blockSize","base","discreteValues","Math","pow","randomBlock","random","safeCounter","cuid","getTime","fingerprint","_$cuid_27","Session","startedAt","_handled","_unhandled","events","handled","_track","_$Session_35","noop","Client","configuration","internalPlugins","notifier","_this","_notifier","_config","_schema","_delivery","sendSession","sendEvent","_logger","info","_plugins","_breadcrumbs","_context","_cbs","sp","b","_configure","pl","_loadPlugin","_depth","getContext","setContext","plugin","configSchema","_reduce","config","generateConfigErrorMessage","getPlugin","_setDelivery","d","startSession","version","_sessionDelegate","addOnError","front","removeOnError","_addOnSessionPayload","addOnSession","removeOnSession","addOnBreadcrumb","removeOnBreadcrumb","pauseSession","resumeSession","leaveBreadcrumb","crumb","_isBreadcrumbTypeEnabled","types","postReportCallback","_notify","_this2","originalSeverity","shouldSend","unhandledOverridden","rawInput","_$Client_4","_$jsonPayload_21","EVENT_REDACTION_PATHS","payload","_$delivery_36","client","win","url","getApiUrl","req","XDomainRequest","onload","open","send","endpoint","isoDate","matchPageProtocol","protocol","encodeURIComponent","_matchPageProtocol","pageProtocol","_$delivery_37","XMLHttpRequest","onreadystatechange","readyState","DONE","setRequestHeader","toISOString","appStart","reset","_$app_38","now","duration","_$context_39","pathname","_$pad_43","__env_42","__globalCount_42","__prop_42","__mimeTypesLength_42","__clientId_42","_$fingerprint_42","__c_41","__blockSize_41","__base_41","__discreteValues_41","__randomBlock_41","__safeCounter_41","__cuid_41","_$cuid_41","BUGSNAG_ANONYMOUS_ID_KEY","getDeviceId","storage","localStorage","getItem","setItem","_$device_40","nav","screen","locale","browserLanguage","systemLanguage","userLanguage","language","orientation","document","documentElement","clientWidth","clientHeight","generateAnonymousId","collectUserIp","setDefaultUserId","time","eventOrSession","_$request_44","href","_$session_45","sessionDelegate","sessionClient","_pausedSession","_$clientIp_46","clientIp","_$consoleBreadcrumbs_47","CONSOLE_LOG_METHODS","original","_len","_key","arg","stringified","_restore","MAX_LINE_LENGTH","MAX_SCRIPT_LENGTH","_$inlineScriptContent_48","doc","trackInlineScripts","originalLocation","html","DOMContentLoaded","attachEvent","getHtml","outerHTML","prev","_lastScript","updateLastScript","script","getCurrentScript","currentScript","scripts","getElementsByTagName","addSurroundingCode","htmlLines","zeroBasedLine","start","end","content","innerHTML","_setTimeout","__proxy","__traceOriginalScript","eventTargetCallbackAccessor","callbackAccessor","alsoCallOriginal","cba","__trace__","replacement","isEventHandlerObj","handleEvent","_$interactionBreadcrumbs_49","addEventListener","targetText","targetSelector","getNodeText","getNodeSelector","el","text","textContent","innerText","truncate","tagName","className","querySelectorAll","parentNode","childNodes","ommision","_$navigationBreadcrumbs_50","drop","oldURL","from","relativeLocation","to","newURL","getCurrentState","history","replaceState","wrapHistoryFn","pushState","a","createElement","search","hash","stateChangeToMetadata","title","currentPath","prevState","orig","resetEventCount","BREADCRUMB_TYPE","_$networkBreadcrumbs_51","_ignoredUrls","ignoredUrls","monkeyPatchXMLHttpRequest","monkeyPatchFetch","handleFetchSuccess","response","status","handleFetchError","nativeOpen","requestSetupKey","handleXHRError","handleXHRLoad","removeEventListener","fetch","polyfill","oldFetch","_arguments","urlOrRequest","options","Promise","resolve","reject","_$throttle_52","maxEvents","_$stripQueryString_53","strip","allFrames","_strip","_$onerror_54","prevOnError","onerror","messageOrEvent","lineNo","charNo","decorateStack","detail","extraParameters","culprit","isActualNumber","errorCharacter","_$unhandledRejection_55","listener","evt","isBluebird","fixBluebirdStacktrace","_event$addMetadata","onunhandledrejection","promise","_$notifier_2","__schema_2","Bugsnag","_client","createClient","bugsnag","isStarted","m","_$src_1","_assertThisInitialized","ReferenceError","_inheritsLoose","subClass","superClass","constructor","_setPrototypeOf","setPrototypeOf","__proto__","BugsnagPluginReact","globalReact","React","lazy","ErrorBoundary","createClass","createErrorBoundary","BugsnagPluginReactLazyInitializer","formatComponentStack","_React$Component","handleClearError","_proto2","setState","componentDidCatch","componentStack","render","FallbackComponent","clearError","children","Component","$bu_","vsakt","ios","samsung","e_a","o_a","y","uc","vsinsecure_below","vsdefault","names","silk","get_browser","ua","r","t","age_years","no_device_update","available","pattern","other","embedded","mobile","discontinued","pats","VV","engine","fullv","platform","maxTouchPoints","av","available_ios","round","is_insecure","is_supported","is_latest","less","vmaj","esr","releases_per_year","engine_version","semver","vstr","v1","v2","diff","h","height","width","pr","devicePixelRatio","$bu_getBrowser","op","ll","_buorgres","l","languages","getAttribute","llfull","domain","apiver","api","jsv","required_min","vs","required","reminder","reminderClosed","onshow","onclick","onclose","pageurl","hostname","newwindow","ignorecookie","reasons","hide_reasons","notified","bb","browser","override_ua","is_below_required","notify_esr","insecure","unsecure","unsupported","check_show","already_shown","cookie","setCookie","hours","toGMTString","nomessage","$buo_show","burl","url_permanent_hide","ta","en","ar","bg","ca","cs","cy","da","de","es","et","fa","fi","fr","gl","he","hi","hu","it","ja","ko","lt","lv","ms","nl","no","nn","nb","pt","ro","ru","sk","sl","sq","sr","sv","th","tr","uk","uz","vi","zh","custom_text","msg","msgmore","bupdate","bignore","tar","div","style","style2","busprintf","addmargin","container","appendChild","body","insertBefore","firstChild","updatebutton","getElementById","noclose","display","shift_page_down","hm","marginTop","bodymt","cursor","ignorebutton","no_permanent_hide","bnever","remind","opacity","visibility","removeChild","dont_show_debuginfo","src"],"sourceRoot":""}