{"version":3,"file":"bundle.cjs","sources":["../../browser/lib/bundle.mjs","../src/agentDefinition.ts","../src/builder/BacktraceReactClientBuilder.ts","../src/converters/ReactStackTraceConverter.ts","../src/BacktraceClient.ts","../../../node_modules/tslib/tslib.es6.js","../../../node_modules/react/cjs/react.production.min.js","../../../node_modules/react/cjs/react.development.js","../../../node_modules/react/index.js","../src/ErrorBoundary.tsx"],"sourcesContent":["class BacktraceReportSubmissionResult {\n    message;\n    get result() {\n        return this._result;\n    }\n    status = 'Ok';\n    _result;\n    constructor(statusOrResponse, message) {\n        this.message = message;\n        if (this.isSubmissionResponse(statusOrResponse)) {\n            this.status = statusOrResponse;\n            return;\n        }\n        this._result = statusOrResponse;\n    }\n    static OnLimitReached(target = 'Server') {\n        return new BacktraceReportSubmissionResult('Limit reached', `${target} report limit reached`);\n    }\n    static SdkDisabled() {\n        return new BacktraceReportSubmissionResult('Disabled SDK');\n    }\n    static Unsupported(message) {\n        return new BacktraceReportSubmissionResult('Unsupported', message);\n    }\n    static ReportSkipped() {\n        return new BacktraceReportSubmissionResult('Report skipped');\n    }\n    static OnInternalServerError(message) {\n        return new BacktraceReportSubmissionResult('Server Error', message);\n    }\n    static OnInvalidToken() {\n        return new BacktraceReportSubmissionResult('Invalid token');\n    }\n    static OnUnknownError(message) {\n        return new BacktraceReportSubmissionResult('Unknown', message);\n    }\n    static OnNetworkingError(message) {\n        return new BacktraceReportSubmissionResult('Network Error', message);\n    }\n    static Ok(response) {\n        return new BacktraceReportSubmissionResult(response);\n    }\n    isSubmissionResponse(statusOrResponse) {\n        return typeof statusOrResponse === 'string';\n    }\n}\n\nfunction jsonEscaper() {\n    const ancestors = [];\n    const keys = [];\n    // in TypeScript add \"this: any\" param to avoid compliation errors - as follows\n    //    return function (this: any, field: any, value: any) {\n    return function (key, value) {\n        if (value === null) {\n            return value;\n        }\n        const valueType = typeof value;\n        if (valueType === 'bigint') {\n            return value.toString();\n        }\n        if (valueType !== 'object') {\n            return value;\n        }\n        // `this` is the object that value is contained in,\n        // i.e., its direct parent.\n        while (ancestors.length > 0 && ancestors[ancestors.length - 1] !== this) {\n            ancestors.pop();\n            keys.pop();\n        }\n        if (ancestors.includes(value)) {\n            return `[Circular].${keys.filter((k) => !!k).join('.')}.${key}`;\n        }\n        keys.push(key);\n        ancestors.push(value);\n        return value;\n    };\n}\n\nclass SubmissionUrlInformation {\n    static SUBMIT_PREFIX = 'submit.backtrace.io/';\n    /**\n     * Convert url/token from credentials to JSON submission URL\n     * @param url credentials URL\n     * @param token credentials token\n     * @returns JSON submissionURL\n     */\n    static toJsonReportSubmissionUrl(url, token) {\n        // if the token doesn't exist - use URL\n        if (!token) {\n            return url;\n        }\n        // if the url points to submit, we should always use it without any modifications\n        if (url.includes(this.SUBMIT_PREFIX)) {\n            return url;\n        }\n        // if the URL has token in the URL, the user probably added a token once again\n        // in this case, don't do anything\n        if (url.indexOf(token) !== -1) {\n            return url;\n        }\n        const result = new URL(`/post`, url);\n        result.searchParams.append('format', 'json');\n        result.searchParams.append('token', token);\n        return result.href;\n    }\n    /**\n     * Converts full submission JSON URL to PlCrashReporter submission URL\n     * @param submissionUrl Backtrace Submission URL\n     */\n    static toPlCrashReporterSubmissionUrl(submissionUrl) {\n        return this.changeSubmissionFormat(submissionUrl, 'plcrash');\n    }\n    /**\n     * Converts full submission JSON URL to minidump submission URL\n     * @param submissionUrl Backtrace Submission URL\n     */\n    static toMinidumpSubmissionUrl(submissionUrl) {\n        return this.changeSubmissionFormat(submissionUrl, 'minidump');\n    }\n    static toAttachmentSubmissionUrl(submissionUrl, rxid, attachmentName) {\n        const query = `object=${rxid}&attachment_name=${attachmentName}`;\n        if (submissionUrl.includes('?')) {\n            return (submissionUrl += `&` + query);\n        }\n        return (submissionUrl += '?' + query);\n    }\n    /**\n     * Find the universe based on the submission URL\n     * @param submissionUrl submission URL - full submission URL to Backtrace.\n     * @returns universe name\n     */\n    static findUniverse(submissionUrl) {\n        const submitIndex = submissionUrl.indexOf(this.SUBMIT_PREFIX);\n        if (submitIndex !== -1) {\n            // submit format URL\n            // submit.backtrace.io/universe/token/format\n            // we can expect the universe name just after the hostname\n            const universeStartIndex = submitIndex + this.SUBMIT_PREFIX.length;\n            const endOfUniverseName = submissionUrl.indexOf('/', universeStartIndex);\n            return submissionUrl.substring(universeStartIndex, endOfUniverseName);\n        }\n        // the universe name should be available in the hostname\n        // for example abc.sp.backtrace.io or zyx.in.backtrace.io or foo.backtrace.io\n        const domainIndex = submissionUrl.indexOf('.backtrace.io');\n        if (domainIndex === -1) {\n            return undefined;\n        }\n        const protocolSeparator = '://';\n        let protocolEndIndex = submissionUrl.indexOf(protocolSeparator);\n        if (protocolEndIndex === -1) {\n            protocolEndIndex = 0;\n        }\n        else {\n            protocolEndIndex += protocolSeparator.length;\n        }\n        const hostname = submissionUrl.substring(protocolEndIndex, domainIndex);\n        const endOfUniverseName = hostname.indexOf('.');\n        return endOfUniverseName === -1 ? hostname : hostname.substring(0, endOfUniverseName);\n    }\n    static findToken(submissionUrl) {\n        const submitIndex = submissionUrl.indexOf(this.SUBMIT_PREFIX);\n        if (submitIndex !== -1) {\n            const submissionUrlParts = submissionUrl.split('/');\n            // submit format URL\n            // submit.backtrace.io/universe/token/format\n            // by spliting the submission URL by `/` and dropping the last\n            // part of the URL, the last element on the list is the token.\n            return submissionUrlParts[submissionUrlParts.length - 2] ?? null;\n        }\n        const url = new URL(submissionUrl);\n        return url.searchParams.get('token');\n    }\n    static changeSubmissionFormat(submissionUrl, desiredFormat) {\n        const submitIndex = submissionUrl.indexOf(this.SUBMIT_PREFIX);\n        if (submitIndex !== -1) {\n            const queryParametersIndex = submissionUrl.indexOf('?');\n            const queryParameters = queryParametersIndex === -1 ? '' : submissionUrl.substring(queryParametersIndex);\n            const pathname = submissionUrl.substring(submitIndex + this.SUBMIT_PREFIX.length, queryParametersIndex === -1 ? undefined : queryParametersIndex);\n            const pathParts = pathname.split('/');\n            // path parts are prefixed with '/' character. Expected and valid submit format is:\n            // /universe/token/format\n            // splitting pathname should generate at least 4 elements ('', universe, token, format)\n            // if pathParts length is not equal to 4 then the invalid were passed.\n            const expectedMinimalPathParts = 3;\n            if (pathParts.length < expectedMinimalPathParts) {\n                return submissionUrl;\n            }\n            pathParts[2] = desiredFormat;\n            return (submissionUrl.substring(0, submitIndex + this.SUBMIT_PREFIX.length) +\n                pathParts.join('/') +\n                queryParameters);\n        }\n        else {\n            const url = new URL(submissionUrl);\n            url.searchParams.set('format', desiredFormat);\n            return url.href;\n        }\n    }\n}\n\nclass RequestBacktraceReportSubmission {\n    _requestHandler;\n    _submissionUrl;\n    constructor(options, _requestHandler) {\n        this._requestHandler = _requestHandler;\n        this._submissionUrl = SubmissionUrlInformation.toJsonReportSubmissionUrl(options.url, options.token);\n    }\n    send(data, attachments, abortSignal) {\n        try {\n            const json = JSON.stringify(data, jsonEscaper());\n            return this._requestHandler.postError(this._submissionUrl, json, attachments, abortSignal);\n        }\n        catch (error) {\n            // catch error generated during toJSON execution or unsupported objects to not cause the app crash.\n            return Promise.resolve(BacktraceReportSubmissionResult.OnUnknownError(error instanceof Error ? error.message : String(error)));\n        }\n    }\n    async sendAttachment(rxid, attachment, abortSignal) {\n        if (!this._requestHandler.postAttachment) {\n            return BacktraceReportSubmissionResult.Unsupported('postAttachment is not implemented');\n        }\n        return await this._requestHandler.postAttachment(SubmissionUrlInformation.toAttachmentSubmissionUrl(this._submissionUrl, rxid, attachment.name), attachment, abortSignal);\n    }\n}\n\nconst DEFAULT_TIMEOUT = 15_000;\n\nclass ConnectionError {\n    /**\n     * Verifies if an Error is a connection error\n     * @param err error\n     * @returns true if the error was caused by ETIMEDOUT or ECONNRESET or ECONNABORTED\n     */\n    static isConnectionError(err) {\n        const error = err;\n        return error.code === 'ETIMEDOUT' || error.code === 'ECONNRESET' || error.code === 'ECONNABORTED';\n    }\n}\n\nclass MetricsUrlInformation {\n    static generateSummedEventsUrl(hostname, submissionUrl, credentialsToken) {\n        const submissionInformation = this.findSubmissionInformation(submissionUrl, credentialsToken);\n        if (!submissionInformation) {\n            return undefined;\n        }\n        return this.generateEventsServiceUrl(hostname, 'summed-events', submissionInformation.universe, submissionInformation.token);\n    }\n    static generateUniqueEventsUrl(hostname, submissionUrl, credentialsToken) {\n        const submissionInformation = this.findSubmissionInformation(submissionUrl, credentialsToken);\n        if (!submissionInformation) {\n            return undefined;\n        }\n        return this.generateEventsServiceUrl(hostname, 'unique-events', submissionInformation.universe, submissionInformation.token);\n    }\n    static generateEventsServiceUrl(hostname, eventServiceName, universe, token) {\n        return new URL(`/api/${eventServiceName}/submit?universe=${universe}&token=${token}`, hostname).toString();\n    }\n    static findSubmissionInformation(submissionUrl, token) {\n        const universe = SubmissionUrlInformation.findUniverse(submissionUrl);\n        if (!universe) {\n            return undefined;\n        }\n        token = token ?? SubmissionUrlInformation.findToken(submissionUrl);\n        if (!token) {\n            return undefined;\n        }\n        return { universe, token };\n    }\n}\n\nclass BacktraceCoreApi {\n    _requestHandler;\n    _summedMetricsSubmissionUrl;\n    _uniqueMetricsSubmissionUrl;\n    _requestBacktraceReportSubmission;\n    constructor(options, _requestHandler) {\n        this._requestHandler = _requestHandler;\n        this._summedMetricsSubmissionUrl = MetricsUrlInformation.generateSummedEventsUrl(options.metrics?.url ?? 'https://events.backtrace.io', options.url, options.token);\n        this._uniqueMetricsSubmissionUrl = MetricsUrlInformation.generateUniqueEventsUrl(options.metrics?.url ?? 'https://events.backtrace.io', options.url, options.token);\n        this._requestBacktraceReportSubmission =\n            options.requestBacktraceReportSubmission ??\n                new RequestBacktraceReportSubmission({\n                    url: options.url,\n                }, this._requestHandler);\n    }\n    sendReport(data, attachments, abortSignal) {\n        return this._requestBacktraceReportSubmission.send(data, attachments, abortSignal);\n    }\n    sendAttachment(rxid, attachment, abortSignal) {\n        return this._requestBacktraceReportSubmission.sendAttachment(rxid, attachment, abortSignal);\n    }\n    sendUniqueMetrics(metrics, abortSignal) {\n        if (!this._uniqueMetricsSubmissionUrl) {\n            throw new Error('Unique metrics URL is not available.');\n        }\n        return this._requestHandler.post(this._uniqueMetricsSubmissionUrl, JSON.stringify(metrics), abortSignal);\n    }\n    sendSummedMetrics(metrics, abortSignal) {\n        if (!this._summedMetricsSubmissionUrl) {\n            throw new Error('Summed metrics URL is not available.');\n        }\n        return this._requestHandler.post(this._summedMetricsSubmissionUrl, JSON.stringify(metrics), abortSignal);\n    }\n}\n\nclass Events {\n    _callbacks = {};\n    on(event, callback) {\n        this.addCallback(event, { callback });\n        return this;\n    }\n    once(event, callback) {\n        this.addCallback(event, { callback, once: true });\n        return this;\n    }\n    off(event, callback) {\n        this.removeCallback(event, callback);\n        return this;\n    }\n    emit(event, ...args) {\n        const callbacks = this._callbacks[event];\n        if (!callbacks || !callbacks.length) {\n            return false;\n        }\n        for (const { callback, once } of [...callbacks]) {\n            try {\n                callback(...args);\n            }\n            catch {\n                // Do nothing\n            }\n            if (once) {\n                this.removeCallback(event, callback);\n            }\n        }\n        return true;\n    }\n    addCallback(event, callback) {\n        const list = this._callbacks[event];\n        if (list) {\n            list.push(callback);\n        }\n        else {\n            this._callbacks[event] = [callback];\n        }\n    }\n    removeCallback(event, callback) {\n        const list = this._callbacks[event];\n        if (!list) {\n            return;\n        }\n        const index = list.findIndex((el) => el.callback === callback);\n        if (index === -1) {\n            return;\n        }\n        list.splice(index, 1);\n        if (!list.length) {\n            delete this._callbacks[event];\n        }\n    }\n}\n\nclass TimeHelper {\n    static now() {\n        return Date.now();\n    }\n    static toTimestampInSec(timestampMs) {\n        return Math.floor(timestampMs / 1000);\n    }\n    static convertSecondsToMilliseconds(timeInSec) {\n        return timeInSec * 1000;\n    }\n}\n\nclass BacktraceReport {\n    data;\n    attributes;\n    attachments;\n    /**\n     * Report classifiers\n     */\n    classifiers = [];\n    /**\n     * Report annotations\n     */\n    annotations = {};\n    /**\n     * Report stack trace\n     */\n    stackTrace = {};\n    /**\n     * Report message\n     */\n    message;\n    /**\n     * Report inner errors\n     */\n    innerReport = [];\n    /**\n     * Report timestamp in ms\n     */\n    timestamp = TimeHelper.now();\n    /**\n     * Sets how many top frames should be skipped.\n     */\n    skipFrames = 0;\n    addStackTrace(name, stack, message = '') {\n        if (typeof stack === 'string') {\n            this.stackTrace[name] = {\n                stack,\n                message,\n            };\n        }\n        else {\n            this.stackTrace[name] = stack;\n        }\n        return this;\n    }\n    constructor(data, attributes = {}, attachments = [], options = {}) {\n        this.data = data;\n        this.attributes = attributes;\n        this.attachments = attachments;\n        this.skipFrames = options?.skipFrames ?? 0;\n        let errorType = 'Exception';\n        if (data instanceof Error) {\n            this.message = this.generateErrorMessage(data.message);\n            this.annotations['error'] = this.unwrapErrorToAnnotation(data);\n            this.classifiers = [data.name];\n            this.stackTrace['main'] = {\n                stack: data.stack ?? '',\n                message: this.message,\n            };\n            // Supported in ES2022\n            if (data.cause) {\n                this.innerReport.push(data.cause);\n            }\n        }\n        else {\n            this.message = this.generateErrorMessage(data);\n            this.stackTrace['main'] = {\n                stack: new Error().stack ?? '',\n                message: this.message,\n            };\n            this.classifiers = ['Message'];\n            errorType = 'Message';\n            this.skipFrames += 1;\n        }\n        if (!this.attributes['error.type']) {\n            this.attributes['error.type'] = errorType;\n        }\n        this.attributes['error.message'] = this.message;\n        if (options?.timestamp) {\n            this.timestamp = options.timestamp;\n        }\n        if (options?.classifiers) {\n            this.classifiers.unshift(...options.classifiers);\n        }\n    }\n    unwrapErrorToAnnotation(error, seen = new WeakSet()) {\n        seen.add(error);\n        return {\n            ...error,\n            message: this.generateErrorMessage(error.message),\n            name: error.name,\n            stack: error.stack,\n            cause: error.cause instanceof Error\n                ? seen.has(error.cause)\n                    ? `[Circular] ${error.cause.message}`\n                    : this.unwrapErrorToAnnotation(error.cause, seen)\n                : error.cause,\n        };\n    }\n    generateErrorMessage(data) {\n        return typeof data === 'object' ? JSON.stringify(data, jsonEscaper()) : (data?.toString() ?? '');\n    }\n}\n\nclass AttachmentManager {\n    attachmentEvents;\n    _attachmentProviders = [];\n    constructor() {\n        this.attachmentEvents = new Events();\n    }\n    /**\n     * Adds attachment to manager cache.\n     * @param attachments attachments or attachment returning functions\n     */\n    add(...attachments) {\n        this.addProviders(...attachments.map((a) => typeof a === 'function'\n            ? {\n                type: 'dynamic',\n                get: a,\n            }\n            : {\n                type: 'scoped',\n                get: () => a,\n            }));\n    }\n    /**\n     * Adds `BacktraceAttachmentProvider` to manager cache.\n     * @param attachmentProviders attachment providers\n     */\n    addProviders(...attachmentProviders) {\n        let anyScoped = false;\n        for (const provider of attachmentProviders) {\n            if (provider.type === 'dynamic') {\n                this._attachmentProviders.push(provider);\n            }\n            else {\n                const attachment = provider.get();\n                this._attachmentProviders.push({\n                    type: 'scoped',\n                    get: () => attachment,\n                });\n                anyScoped = true;\n            }\n        }\n        if (anyScoped) {\n            this.attachmentEvents.emit('scoped-attachments-updated', this.get('scoped'));\n        }\n    }\n    /**\n     * Returns scoped, dynamic, or all attachments.\n     * @param type optional type to filter attachments\n     * @returns array of `BacktraceAttachment`\n     */\n    get(type) {\n        const result = [];\n        for (const provider of this._attachmentProviders) {\n            if (type && provider.type !== type) {\n                continue;\n            }\n            const attachment = provider.get();\n            if (!attachment) {\n                continue;\n            }\n            if (Array.isArray(attachment)) {\n                result.push(...attachment);\n            }\n            else {\n                result.push(attachment);\n            }\n        }\n        return result;\n    }\n}\n\nclass ReportDataBuilder {\n    static build(attributes) {\n        const result = { annotations: {}, attributes: {} };\n        if (!attributes) {\n            return result;\n        }\n        for (const attributeKey in attributes) {\n            const attribute = attributes[attributeKey];\n            if (attribute == null) {\n                result.attributes[attributeKey] = attribute;\n                continue;\n            }\n            switch (typeof attribute) {\n                case 'object': {\n                    try {\n                        // try to convert known objects into attributes\n                        if (attribute instanceof Date) {\n                            result.attributes[attributeKey] = attribute.toISOString();\n                            break;\n                        }\n                        else if (attribute instanceof URL) {\n                            result.attributes[attributeKey] = attribute.toString();\n                            break;\n                        }\n                    }\n                    catch {\n                        // invalid attribute type - not able to serialize, skip it.\n                        break;\n                    }\n                    result.annotations[attributeKey] = attribute;\n                    break;\n                }\n                case 'bigint': {\n                    result.attributes[attributeKey] = attribute.toString();\n                    break;\n                }\n                default: {\n                    result.attributes[attributeKey] = attribute;\n                    break;\n                }\n            }\n        }\n        return result;\n    }\n}\n\nclass AttributeManager {\n    attributeEvents;\n    _attributeProviders = [];\n    constructor(providers) {\n        this.attributeEvents = new Events();\n        for (const provider of providers) {\n            this.addProvider(provider);\n        }\n    }\n    /**\n     * Adds attributes to manager cache\n     * @param attributes attributes object\n     */\n    add(attributes) {\n        if (typeof attributes === 'function') {\n            this.addProvider({ type: 'dynamic', get: attributes });\n        }\n        else {\n            this.addProvider({ type: 'scoped', get: () => attributes });\n        }\n    }\n    /**\n     * Adds attribute provider to the manager\n     * @param attributeProvider\n     * @returns\n     */\n    addProvider(attributeProvider) {\n        if (attributeProvider.type === 'dynamic') {\n            this._attributeProviders.push(attributeProvider);\n            return;\n        }\n        else {\n            const attributes = attributeProvider.get();\n            this._attributeProviders.push({\n                type: 'scoped',\n                get: () => attributes,\n            });\n            this.attributeEvents.emit('scoped-attributes-updated', this.get('scoped'));\n        }\n    }\n    /**\n     * Gets client attributes\n     * @returns Report attribute - client attributes and annotations\n     */\n    get(attributeType) {\n        const result = {\n            annotations: {},\n            attributes: {},\n        };\n        for (const attributeProvider of this._attributeProviders) {\n            if (attributeType && attributeProvider.type != attributeType) {\n                continue;\n            }\n            const providerResult = ReportDataBuilder.build(attributeProvider.get());\n            result.attributes = {\n                ...result.attributes,\n                ...providerResult.attributes,\n            };\n            result.annotations = {\n                ...result.annotations,\n                ...providerResult.annotations,\n            };\n        }\n        return result;\n    }\n}\n\nclass ClientAttributeProvider {\n    _sdkName;\n    _sdkVersion;\n    _sessionId;\n    constructor(_sdkName, _sdkVersion, _sessionId) {\n        this._sdkName = _sdkName;\n        this._sdkVersion = _sdkVersion;\n        this._sessionId = _sessionId;\n    }\n    get type() {\n        return 'scoped';\n    }\n    get() {\n        return {\n            'application.session': this._sessionId,\n            'backtrace.agent': this._sdkName,\n            'backtrace.version': this._sdkVersion,\n        };\n    }\n}\n\nclass UserAttributeProvider {\n    type;\n    _source;\n    constructor(source) {\n        this._source = typeof source === 'function' ? source : () => source;\n        this.type = typeof source === 'function' ? 'dynamic' : 'scoped';\n    }\n    get() {\n        return this._source();\n    }\n}\n\nfunction stringifiedSize(value) {\n    return JSON.stringify(value).length;\n}\nfunction toStringSize(value) {\n    return value.toString().length;\n}\nconst stringSize = (value) => stringifiedSize(value);\nconst numberSize = (toStringSize);\nconst bigintSize = (toStringSize);\nconst symbolSize = 0;\nconst functionSize = 0;\nconst booleanSize = (value) => (value ? 4 : 5);\nconst undefinedSize = 0;\nconst nullSize = 'null'.length;\nfunction arraySize(array, replacer) {\n    const bracketLength = 2;\n    const commaLength = array.length - 1;\n    let elementsLength = 0;\n    for (let i = 0; i < array.length; i++) {\n        const element = array[i];\n        switch (typeof element) {\n            case 'function':\n            case 'symbol':\n            case 'undefined':\n                elementsLength += nullSize;\n                break;\n            default:\n                elementsLength += _safeJsonSize(array, i.toString(), element, replacer);\n        }\n    }\n    return bracketLength + commaLength + elementsLength;\n}\nconst objectSize = (obj, replacer) => {\n    const entries = Object.entries(obj);\n    const bracketLength = 2;\n    let entryCount = 0;\n    let entriesLength = 0;\n    for (const [k, v] of entries) {\n        const valueSize = _safeJsonSize(obj, k, v, replacer);\n        if (valueSize === 0) {\n            continue;\n        }\n        entryCount++;\n        // +1 adds the comma size\n        entriesLength += keySize(k) + valueSize + 1;\n    }\n    // -1 removes previously added last comma size (there is no trailing comma)\n    const commaLength = Math.max(0, entryCount - 1);\n    return bracketLength + commaLength + entriesLength;\n};\nfunction keySize(key) {\n    const QUOTE_SIZE = 2;\n    if (key === null) {\n        return nullSize + QUOTE_SIZE;\n    }\n    else if (key === undefined) {\n        return '\"undefined\"'.length;\n    }\n    switch (typeof key) {\n        case 'string':\n            return stringSize(key);\n        case 'number':\n            return numberSize(key) + QUOTE_SIZE;\n        case 'boolean':\n            return booleanSize(key) + QUOTE_SIZE;\n        case 'symbol':\n            return symbolSize; // key not used in JSON\n        default:\n            return stringSize(key.toString());\n    }\n}\nfunction _safeJsonSize(parent, key, value, replacer) {\n    try {\n        return _jsonSize(parent, key, value, replacer);\n    }\n    catch (err) {\n        return 0;\n    }\n}\nfunction _jsonSize(parent, key, value, replacer) {\n    try {\n        if (value && typeof value === 'object' && 'toJSON' in value && typeof value.toJSON === 'function') {\n            value = value.toJSON();\n        }\n    }\n    catch (err) {\n        // handle proxy errors that will break other parts of the flow\n        if (err instanceof TypeError) {\n            return 0;\n        }\n        // continue in case of the error in the toJSON method or unsupported toJSON method\n    }\n    value = replacer ? replacer.call(parent, key, value) : value;\n    if (value === null) {\n        return nullSize;\n    }\n    else if (value === undefined) {\n        return undefinedSize;\n    }\n    if (Array.isArray(value)) {\n        return arraySize(value, replacer);\n    }\n    switch (typeof value) {\n        case 'bigint':\n            return bigintSize(value);\n        case 'boolean':\n            return booleanSize(value);\n        case 'function':\n            return functionSize;\n        case 'number':\n            return numberSize(value);\n        case 'object':\n            return objectSize(value, replacer);\n        case 'string':\n            return stringSize(value);\n        case 'symbol':\n            return symbolSize;\n        case 'undefined':\n            return undefinedSize;\n    }\n    return 0;\n}\n/**\n * Calculates size of the object as it would be serialized into JSON.\n *\n * _Should_ return the same value as `JSON.stringify(value, replacer).length`.\n * This may not be 100% accurate, but should work for our requirements.\n * @param value Value to compute length for.\n * @param replacer A function that transforms the results as in `JSON.stringify`.\n * @returns Final string length.\n */\nfunction jsonSize(value, replacer) {\n    return _safeJsonSize(undefined, '', value, replacer);\n}\n\nconst REMOVED_PLACEHOLDER = '<removed>';\nfunction limitObjectDepth(val, depth) {\n    if (typeof val !== 'object' || !val) {\n        return val;\n    }\n    if (!(depth < Infinity)) {\n        return val;\n    }\n    if (depth < 0) {\n        return REMOVED_PLACEHOLDER;\n    }\n    try {\n        if ('toJSON' in val && typeof val.toJSON === 'function') {\n            return limitObjectDepth(val.toJSON(), depth - 1);\n        }\n    }\n    catch (err) {\n        if (err instanceof TypeError) {\n            return REMOVED_PLACEHOLDER;\n        }\n        // broken toJSON — fall through to iterate own properties\n    }\n    const limitChild = (value) => limitObjectDepth(value, depth - 1);\n    const result = {};\n    for (const key in val) {\n        try {\n            const value = val[key];\n            if (Array.isArray(value)) {\n                result[key] = value.map(limitChild);\n            }\n            else {\n                result[key] = limitChild(value);\n            }\n        }\n        catch {\n            // catch revoked proxies and other broken objects\n            result[key] = REMOVED_PLACEHOLDER;\n        }\n    }\n    return result;\n}\n\nfunction textFormatter() {\n    const defaultFormatter = fallbackFormatter(jsonEscaper());\n    try {\n        // eslint-disable-next-line @typescript-eslint/no-var-requires\n        const util = require('util');\n        return util.format ?? defaultFormatter;\n    }\n    catch {\n        return defaultFormatter;\n    }\n}\nfunction fallbackFormatter(jsonEscapeFunction) {\n    return function fallbackFormatter(...params) {\n        let result = '';\n        for (const param of params) {\n            result += typeof param === 'object' ? JSON.stringify(param, jsonEscapeFunction) : param?.toString();\n        }\n        return result;\n    };\n}\n\nvar BreadcrumbLogLevel;\n(function (BreadcrumbLogLevel) {\n    BreadcrumbLogLevel[BreadcrumbLogLevel[\"Verbose\"] = 1] = \"Verbose\";\n    BreadcrumbLogLevel[BreadcrumbLogLevel[\"Debug\"] = 2] = \"Debug\";\n    BreadcrumbLogLevel[BreadcrumbLogLevel[\"Info\"] = 4] = \"Info\";\n    BreadcrumbLogLevel[BreadcrumbLogLevel[\"Warning\"] = 8] = \"Warning\";\n    BreadcrumbLogLevel[BreadcrumbLogLevel[\"Error\"] = 16] = \"Error\";\n})(BreadcrumbLogLevel || (BreadcrumbLogLevel = {}));\nconst defaultBreadcrumbsLogLevel = (1 << 5) - 1;\n\nvar BreadcrumbType;\n(function (BreadcrumbType) {\n    BreadcrumbType[BreadcrumbType[\"Manual\"] = 1] = \"Manual\";\n    BreadcrumbType[BreadcrumbType[\"Log\"] = 2] = \"Log\";\n    BreadcrumbType[BreadcrumbType[\"Navigation\"] = 4] = \"Navigation\";\n    BreadcrumbType[BreadcrumbType[\"Http\"] = 8] = \"Http\";\n    BreadcrumbType[BreadcrumbType[\"System\"] = 16] = \"System\";\n    BreadcrumbType[BreadcrumbType[\"User\"] = 32] = \"User\";\n    BreadcrumbType[BreadcrumbType[\"Configuration\"] = 64] = \"Configuration\";\n})(BreadcrumbType || (BreadcrumbType = {}));\nconst defaultBreadcurmbType = (1 << 7) - 1;\n\nclass ConsoleEventSubscriber {\n    /**\n     * All overriden console events\n     */\n    _events = {};\n    _formatter;\n    start(backtraceBreadcrumbs) {\n        if ((backtraceBreadcrumbs.breadcrumbsType & BreadcrumbType.Log) !== BreadcrumbType.Log) {\n            return;\n        }\n        this._formatter = textFormatter();\n        this.bindToConsoleMethod('log', BreadcrumbLogLevel.Info, backtraceBreadcrumbs);\n        this.bindToConsoleMethod('warn', BreadcrumbLogLevel.Warning, backtraceBreadcrumbs);\n        this.bindToConsoleMethod('error', BreadcrumbLogLevel.Error, backtraceBreadcrumbs);\n        this.bindToConsoleMethod('debug', BreadcrumbLogLevel.Debug, backtraceBreadcrumbs);\n        this.bindToConsoleMethod('trace', BreadcrumbLogLevel.Verbose, backtraceBreadcrumbs);\n    }\n    dispose() {\n        for (const key in this._events) {\n            const consoleMethod = this._events[key];\n            console[key] = consoleMethod;\n        }\n    }\n    bindToConsoleMethod(name, level, backtraceBreadcrumbs) {\n        const originalMethod = console[name];\n        console[name] = (...args) => {\n            originalMethod(...args);\n            const message = this._formatter(...args);\n            backtraceBreadcrumbs.addBreadcrumb(message, level, BreadcrumbType.Log);\n        };\n        this._events[name] = originalMethod;\n    }\n}\n\n/**\n * Constrains `value` to `min` and `max` values, wrapping not matching values around.\n * @param min minimum value to allow\n * @param max maximum value to allow\n * @returns function accepting `value`\n *\n * @example\n * const wrap = wrapped(10, 20);\n * console.log(wrap(15)); // 15\n * console.log(wrap(21)); // 10, wrapped around\n * console.log(wrap(8)); // 18, wrapped around\n */\nfunction wrapped(min, max) {\n    function wrapped(value) {\n        const range = max - min;\n        let newValue;\n        if (value < min) {\n            newValue = max - ((min - value) % range);\n            if (newValue === max) {\n                newValue = min;\n            }\n        }\n        else if (value >= max) {\n            newValue = min + ((value - max) % range);\n            if (newValue === max) {\n                newValue = min;\n            }\n        }\n        else {\n            newValue = value;\n        }\n        return newValue;\n    }\n    return wrapped;\n}\n/**\n * Constrains `value` to `min` and `max` values.\n * @param min minimum value to allow\n * @param max maximum value to allow\n * @returns function accepting `value`\n *\n * @example\n * const clamp = clamped(10, 20);\n * console.log(wrap(15)); // 15\n * console.log(wrap(21)); // 20\n * console.log(wrap(8)); // 10\n */\nfunction clamped(min, max) {\n    function clamped(value) {\n        return Math.max(min, Math.min(value, max));\n    }\n    return clamped;\n}\n\nclass OverwritingArray {\n    capacity;\n    _array;\n    _headConstraint;\n    _lengthConstraint;\n    _head = 0;\n    _length = 0;\n    get head() {\n        return this._head;\n    }\n    set head(value) {\n        this._head = this._headConstraint(value);\n    }\n    get length() {\n        return this._length;\n    }\n    set length(value) {\n        this._length = this._lengthConstraint(value);\n    }\n    get start() {\n        return this._headConstraint(this.head - this.length);\n    }\n    constructor(capacity, items) {\n        this.capacity = capacity;\n        this._array = new Array(capacity);\n        // Head must be always between 0 and capacity.\n        // If lower than 0, it needs to go from the end\n        // If larger than capacity, it needs to go from the start\n        // Wrapping solves this\n        this._headConstraint = wrapped(0, capacity);\n        // Length must be always no less than 0 and no larger than capacity\n        this._lengthConstraint = clamped(0, capacity);\n        if (items) {\n            this.push(...items);\n        }\n    }\n    add(item) {\n        return this.pushOne(item);\n    }\n    push(...items) {\n        for (const item of items) {\n            this.pushOne(item);\n        }\n        return this.length;\n    }\n    pop() {\n        this.head--;\n        const element = this._array[this.head];\n        this._array[this.head] = undefined;\n        this.length--;\n        return element;\n    }\n    shift() {\n        const element = this._array[this.start];\n        this._array[this.start] = undefined;\n        this.length--;\n        return element;\n    }\n    at(index) {\n        return this._array[this.index(index)];\n    }\n    *values() {\n        for (let i = 0; i < this.length; i++) {\n            const index = this.index(i);\n            yield this._array[index];\n        }\n    }\n    *keys() {\n        for (let i = 0; i < this.length; i++) {\n            yield i;\n        }\n    }\n    *entries() {\n        for (let i = 0; i < this.length; i++) {\n            const index = this.index(i);\n            yield [i, this._array[index]];\n        }\n    }\n    [Symbol.iterator]() {\n        return this.values();\n    }\n    pushOne(item) {\n        this._array[this.head] = item;\n        this.head++;\n        this.length++;\n    }\n    index(value) {\n        if (!this.length) {\n            return this._headConstraint(value);\n        }\n        const index = (value % this.length) + this.start;\n        return this._headConstraint(index);\n    }\n}\n\nclass InMemoryBreadcrumbsStorage {\n    _limits;\n    get lastBreadcrumbId() {\n        return this._lastBreadcrumbId;\n    }\n    /**\n     * Breadcrumb name\n     */\n    name = 'bt-breadcrumbs-0';\n    _lastBreadcrumbId = TimeHelper.toTimestampInSec(TimeHelper.now());\n    _breadcrumbs;\n    _breadcrumbSizes;\n    constructor(_limits) {\n        this._limits = _limits;\n        this._breadcrumbs = new OverwritingArray(_limits.maximumBreadcrumbs ?? 100);\n        this._breadcrumbSizes = new OverwritingArray(this._breadcrumbs.capacity);\n    }\n    getAttachments() {\n        return [this];\n    }\n    getAttachmentProviders() {\n        return [\n            {\n                get: () => this,\n                type: 'scoped',\n            },\n        ];\n    }\n    static factory({ limits }) {\n        return new InMemoryBreadcrumbsStorage(limits);\n    }\n    /**\n     * Returns breadcrumbs in the JSON format\n     * @returns Breadcrumbs JSON\n     */\n    get() {\n        return JSON.stringify([...this._breadcrumbs], jsonEscaper());\n    }\n    add(rawBreadcrumb) {\n        this._lastBreadcrumbId++;\n        const id = this._lastBreadcrumbId;\n        const breadcrumb = {\n            id,\n            message: rawBreadcrumb.message,\n            timestamp: TimeHelper.now(),\n            type: BreadcrumbType[rawBreadcrumb.type].toLowerCase(),\n            level: BreadcrumbLogLevel[rawBreadcrumb.level].toLowerCase(),\n        };\n        if (rawBreadcrumb.attributes) {\n            breadcrumb.attributes = rawBreadcrumb.attributes;\n        }\n        this._breadcrumbs.add(breadcrumb);\n        if (this._limits.maximumTotalBreadcrumbsSize) {\n            const size = jsonSize(breadcrumb, jsonEscaper());\n            this._breadcrumbSizes.add(size);\n            let totalSize = this.totalSize();\n            while (totalSize > this._limits.maximumTotalBreadcrumbsSize) {\n                this._breadcrumbs.shift();\n                const removedSize = this._breadcrumbSizes.shift() ?? 0;\n                // We subtract removedSize plus comma in JSON\n                totalSize -= removedSize + 1;\n            }\n        }\n        return id;\n    }\n    totalSize() {\n        let sum = 0;\n        for (const size of this._breadcrumbSizes) {\n            sum += size;\n        }\n        // Sum of:\n        // - all breadcrumbs\n        // - comma count\n        // - brackets\n        return sum + Math.max(0, this._breadcrumbSizes.length - 1) + 2;\n    }\n}\n\nconst BREADCRUMB_ATTRIBUTE_NAME = 'breadcrumbs.lastId';\n/**\n * @returns `undefined` if value is `false`, else `value` if defined, else `defaultValue`\n */\nconst defaultIfNotFalse = (value, defaultValue) => {\n    return value === false ? undefined : value !== undefined ? value : defaultValue;\n};\nclass BreadcrumbsManager {\n    /**\n     * Breadcrumbs type\n     */\n    breadcrumbsType;\n    /**\n     * Breadcrumbs Log level\n     */\n    logLevel;\n    /**\n     * Determines if the breadcrumb manager is enabled.\n     */\n    _enabled = false;\n    _limits;\n    _eventSubscribers = [new ConsoleEventSubscriber()];\n    _interceptor;\n    _storage;\n    constructor(configuration, options) {\n        this._limits = {\n            maximumBreadcrumbs: defaultIfNotFalse(configuration?.maximumBreadcrumbs, 100),\n            maximumAttributesDepth: defaultIfNotFalse(configuration?.maximumAttributesDepth, 2),\n            maximumBreadcrumbMessageLength: defaultIfNotFalse(configuration?.maximumBreadcrumbMessageLength, 255),\n            maximumBreadcrumbSize: defaultIfNotFalse(configuration?.maximumBreadcrumbSize, 64 * 1024),\n            maximumTotalBreadcrumbsSize: defaultIfNotFalse(configuration?.maximumTotalBreadcrumbsSize, 1024 * 1024),\n        };\n        this.breadcrumbsType = configuration?.eventType ?? defaultBreadcurmbType;\n        this.logLevel = configuration?.logLevel ?? defaultBreadcrumbsLogLevel;\n        this._storage = (options?.storage ?? InMemoryBreadcrumbsStorage.factory)({ limits: this._limits });\n        this._interceptor = configuration?.intercept;\n        if (options?.subscribers) {\n            this._eventSubscribers.push(...options.subscribers);\n        }\n    }\n    addEventSubscriber(subscriber) {\n        if (this._enabled) {\n            subscriber.start(this);\n        }\n        this._eventSubscribers.push(subscriber);\n    }\n    setStorage(storage) {\n        if (typeof storage === 'function') {\n            this._storage = storage({ limits: this._limits });\n        }\n        else {\n            this._storage = storage;\n        }\n    }\n    dispose() {\n        this._enabled = false;\n        for (const subscriber of this._eventSubscribers) {\n            subscriber.dispose();\n        }\n    }\n    bind({ client, attachmentManager }) {\n        if (this._storage.getAttachmentProviders) {\n            attachmentManager.addProviders(...this._storage.getAttachmentProviders());\n        }\n        else {\n            attachmentManager.add(...this._storage.getAttachments());\n        }\n        client.addAttribute(() => ({\n            [BREADCRUMB_ATTRIBUTE_NAME]: this._storage.lastBreadcrumbId,\n        }));\n        client.on('before-skip', (report) => this.logReport(report));\n    }\n    initialize() {\n        if (this._enabled) {\n            return;\n        }\n        for (const subscriber of this._eventSubscribers) {\n            subscriber.start(this);\n        }\n        this._enabled = true;\n    }\n    verbose(message, attributes) {\n        return this.log(message, BreadcrumbLogLevel.Verbose, attributes);\n    }\n    debug(message, attributes) {\n        return this.log(message, BreadcrumbLogLevel.Debug, attributes);\n    }\n    info(message, attributes) {\n        return this.log(message, BreadcrumbLogLevel.Info, attributes);\n    }\n    warn(message, attributes) {\n        return this.log(message, BreadcrumbLogLevel.Warning, attributes);\n    }\n    error(message, attributes) {\n        return this.log(message, BreadcrumbLogLevel.Error, attributes);\n    }\n    log(message, level, attributes) {\n        return this.addBreadcrumb(message, level, BreadcrumbType.Manual, attributes);\n    }\n    logReport(report) {\n        const level = report.data instanceof Error ? BreadcrumbLogLevel.Error : BreadcrumbLogLevel.Warning;\n        return this.addBreadcrumb(report.message, level, BreadcrumbType.System);\n    }\n    addBreadcrumb(message, level, type, attributes) {\n        if (!this._enabled) {\n            return false;\n        }\n        let rawBreadcrumb = {\n            message: this.prepareBreadcrumbMessage(message),\n            level,\n            type,\n            attributes,\n        };\n        if (this._interceptor) {\n            const interceptorBreadcrumb = this._interceptor(rawBreadcrumb);\n            if (!interceptorBreadcrumb) {\n                return false;\n            }\n            rawBreadcrumb = interceptorBreadcrumb;\n        }\n        if ((this.logLevel & rawBreadcrumb.level) !== level) {\n            return false;\n        }\n        if ((this.breadcrumbsType & rawBreadcrumb.type) !== type) {\n            return false;\n        }\n        if (this._limits.maximumBreadcrumbMessageLength !== undefined) {\n            rawBreadcrumb.message = rawBreadcrumb.message.substring(0, this._limits.maximumBreadcrumbMessageLength);\n        }\n        if (rawBreadcrumb.attributes) {\n            rawBreadcrumb = {\n                ...rawBreadcrumb,\n                attributes: this.prepareAttributes(rawBreadcrumb.attributes),\n            };\n        }\n        let limitedBreadcrumb;\n        if (this._limits.maximumAttributesDepth !== undefined && rawBreadcrumb.attributes) {\n            limitedBreadcrumb = {\n                ...rawBreadcrumb,\n                attributes: limitObjectDepth(rawBreadcrumb.attributes, this._limits.maximumAttributesDepth),\n            };\n        }\n        else {\n            limitedBreadcrumb = rawBreadcrumb;\n        }\n        if (this._limits.maximumBreadcrumbSize !== undefined) {\n            const breadcrumbSize = jsonSize(limitedBreadcrumb, jsonEscaper());\n            if (breadcrumbSize > this._limits.maximumBreadcrumbSize) {\n                // TODO: Trim the breadcrumb\n                return false;\n            }\n        }\n        const id = this._storage.add(limitedBreadcrumb);\n        return id !== undefined;\n    }\n    prepareAttributes(attributes) {\n        const result = {};\n        for (const key in attributes) {\n            const value = attributes[key];\n            switch (typeof value) {\n                case 'number':\n                case 'boolean':\n                case 'string':\n                case 'undefined':\n                    result[key] = value;\n                    break;\n                case 'bigint':\n                    result[key] = value.toString();\n                    break;\n                case 'object': {\n                    if (!value) {\n                        result[key] = value;\n                        break;\n                    }\n                    const unknownValue = value;\n                    try {\n                        if (unknownValue instanceof Date) {\n                            result[key] = unknownValue.toISOString();\n                        }\n                        else if (unknownValue instanceof URL) {\n                            result[key] = unknownValue.toString();\n                        }\n                    }\n                    catch {\n                        // revoked proxy or broken object — drop it\n                    }\n                    // drop all other objects\n                    break;\n                }\n            }\n        }\n        return result;\n    }\n    /**\n     * The expectation is, message should always be defined and passed as string.\n     * However, logger can pass as a message an object or any other unknown type.\n     * To be sure the code won't break, this method ensures the message is always a string\n     * no matter what the logger gives us.\n     * @param message breadcrumb message\n     */\n    prepareBreadcrumbMessage(message) {\n        if (message == null) {\n            return '';\n        }\n        const messageType = typeof message;\n        switch (messageType) {\n            case 'string': {\n                return message;\n            }\n            case 'object': {\n                return JSON.stringify(message, jsonEscaper());\n            }\n            default: {\n                return message.toString();\n            }\n        }\n    }\n}\n\nconst UNKNOWN_FRAME = 'unknown';\nconst ANONYMOUS_FUNCTION = 'anonymous';\n\nclass V8StackTraceConverter {\n    addressSeparator;\n    get engine() {\n        return 'v8';\n    }\n    constructor(addressSeparator = '') {\n        this.addressSeparator = addressSeparator;\n    }\n    convert(stackTrace, message) {\n        const result = [];\n        let stackFrames = stackTrace.split('\\n');\n        const errorHeader = message.split('\\n');\n        // remove error header from stack trace - if the error header exists\n        if (stackFrames[0].indexOf(errorHeader[0]) !== -1) {\n            stackFrames = stackFrames.slice(errorHeader.length);\n        }\n        else {\n            stackFrames = stackFrames.slice(1);\n        }\n        for (const stackFrame of stackFrames) {\n            const normalizedStackFrame = stackFrame.trim();\n            if (!normalizedStackFrame) {\n                continue;\n            }\n            const frame = this.parseFrame(normalizedStackFrame);\n            result.push(frame);\n        }\n        return result;\n    }\n    parseFrame(stackFrame) {\n        const frameSeparator = 'at ';\n        if (!stackFrame.startsWith(frameSeparator)) {\n            return {\n                funcName: stackFrame,\n                library: UNKNOWN_FRAME,\n            };\n        }\n        stackFrame = stackFrame.substring(stackFrame.indexOf(frameSeparator) + frameSeparator.length);\n        const asyncKeyword = 'async ';\n        const sourceCodeSeparator = ' (';\n        let sourceCodeStartIndex = stackFrame.indexOf(sourceCodeSeparator);\n        const anonymousFunction = sourceCodeStartIndex === -1;\n        if (anonymousFunction) {\n            if (stackFrame.startsWith(asyncKeyword)) {\n                stackFrame = stackFrame.substring(asyncKeyword.length);\n            }\n            return {\n                funcName: ANONYMOUS_FUNCTION,\n                ...this.parseSourceCodeInformation(stackFrame),\n            };\n        }\n        let sourceCodeInformation = stackFrame.substring(sourceCodeStartIndex + sourceCodeSeparator.length - 1, stackFrame.length);\n        const anonymousGenericSymbol = '(<anonymous>)';\n        if (sourceCodeInformation.startsWith(anonymousGenericSymbol)) {\n            sourceCodeStartIndex += anonymousGenericSymbol.length + 1;\n            sourceCodeInformation = sourceCodeInformation.substring(anonymousGenericSymbol.length);\n        }\n        if (sourceCodeInformation.startsWith(` ${frameSeparator}`)) {\n            sourceCodeInformation = sourceCodeInformation.substring(frameSeparator.length + 1);\n        }\n        else {\n            sourceCodeInformation = sourceCodeInformation.substring(1, sourceCodeInformation.length - 1);\n        }\n        let functionName = stackFrame.substring(0, sourceCodeStartIndex);\n        if (functionName.startsWith(asyncKeyword)) {\n            functionName = functionName.substring(asyncKeyword.length);\n        }\n        return {\n            funcName: functionName,\n            ...this.parseSourceCodeInformation(sourceCodeInformation),\n        };\n    }\n    parseSourceCodeInformation(sourceCodeInformation) {\n        if (sourceCodeInformation.startsWith('eval')) {\n            return this.extractEvalInformation(sourceCodeInformation);\n        }\n        if (this.addressSeparator && sourceCodeInformation.startsWith(this.addressSeparator)) {\n            sourceCodeInformation = sourceCodeInformation.substring(this.addressSeparator.length).trimStart();\n        }\n        const sourceCodeParts = sourceCodeInformation.split(':');\n        const column = parseInt(sourceCodeParts[sourceCodeParts.length - 1]);\n        const lineNumber = parseInt(sourceCodeParts[sourceCodeParts.length - 2]);\n        const library = sourceCodeParts.slice(0, sourceCodeParts.length - 2).join(':');\n        return {\n            library,\n            column: isNaN(column) ? undefined : column,\n            line: isNaN(lineNumber) ? undefined : lineNumber,\n        };\n    }\n    extractEvalInformation(evalSourceCodeInformation) {\n        const sourceCodeStartSeparatorChar = '(';\n        const sourceCodeEndSeparatorChar = ')';\n        const sourceCodeStart = evalSourceCodeInformation.indexOf(sourceCodeStartSeparatorChar);\n        const sourceCodeEnd = evalSourceCodeInformation.indexOf(sourceCodeEndSeparatorChar);\n        if (sourceCodeStart === -1 || sourceCodeEnd === -1 || sourceCodeStart > sourceCodeEnd) {\n            return {\n                library: UNKNOWN_FRAME,\n            };\n        }\n        const sourceCodeInformation = evalSourceCodeInformation.substring(sourceCodeStart + sourceCodeStartSeparatorChar.length, sourceCodeEnd);\n        return this.parseSourceCodeInformation(sourceCodeInformation);\n    }\n}\n\nclass IdGenerator {\n    static uuid() {\n        const bytes = [...new Array(16)].map(() => Math.floor(Math.random() * 256));\n        bytes[6] = (bytes[6] & 0x0f) | 0x40;\n        bytes[8] = (bytes[8] & 0x3f) | 0x80;\n        return (bytes\n            .slice(0, 4)\n            .map((n) => n.toString(16).padStart(2, '0'))\n            .join('') +\n            '-' +\n            bytes\n                .slice(4, 6)\n                .map((n) => n.toString(16).padStart(2, '0'))\n                .join('') +\n            '-' +\n            bytes\n                .slice(6, 8)\n                .map((n) => n.toString(16).padStart(2, '0'))\n                .join('') +\n            '-' +\n            bytes\n                .slice(8, 10)\n                .map((n) => n.toString(16).padStart(2, '0'))\n                .join('') +\n            '-' +\n            bytes\n                .slice(10, 16)\n                .map((n) => n.toString(16).padStart(2, '0'))\n                .join(''));\n    }\n}\n\nclass BacktraceDataBuilder {\n    _sdkOptions;\n    _stackTraceConverter;\n    _attributeManager;\n    _debugIdProvider;\n    MAIN_THREAD_NAME = 'main';\n    constructor(_sdkOptions, _stackTraceConverter, _attributeManager, _debugIdProvider) {\n        this._sdkOptions = _sdkOptions;\n        this._stackTraceConverter = _stackTraceConverter;\n        this._attributeManager = _attributeManager;\n        this._debugIdProvider = _debugIdProvider;\n    }\n    build(report) {\n        const { annotations, attributes } = this._attributeManager.get();\n        const reportData = ReportDataBuilder.build(report.attributes);\n        const { threads, detectedDebugIdentifier } = this.getThreads(report);\n        const result = {\n            uuid: IdGenerator.uuid(),\n            timestamp: TimeHelper.toTimestampInSec(report.timestamp),\n            agent: this._sdkOptions.agent,\n            agentVersion: this._sdkOptions.agentVersion,\n            lang: this._sdkOptions.langName,\n            langVersion: this._sdkOptions.langVersion,\n            classifiers: report.classifiers,\n            mainThread: this.MAIN_THREAD_NAME,\n            threads,\n            annotations: {\n                ...annotations,\n                ...reportData.annotations,\n                ...report.annotations,\n            },\n            attributes: {\n                ...attributes,\n                ...reportData.attributes,\n            },\n        };\n        if (detectedDebugIdentifier) {\n            result.symbolication = 'sourcemap';\n        }\n        return result;\n    }\n    getThreads(report) {\n        const threads = {};\n        let detectedDebugIdentifier = false;\n        for (const [name, traceInfo] of Object.entries(report.stackTrace)) {\n            let stackFrames;\n            if (Array.isArray(traceInfo)) {\n                stackFrames = traceInfo;\n            }\n            else {\n                const { message, stack } = traceInfo;\n                stackFrames = this._stackTraceConverter.convert(stack, message);\n            }\n            if (name === this.MAIN_THREAD_NAME && report.skipFrames > 0) {\n                stackFrames.splice(0, report.skipFrames);\n            }\n            for (const frame of stackFrames) {\n                const debugIdentifier = this._debugIdProvider.getDebugId(frame.library);\n                if (!debugIdentifier) {\n                    continue;\n                }\n                detectedDebugIdentifier = true;\n                frame.debug_identifier = debugIdentifier;\n            }\n            threads[name] = {\n                fault: name === this.MAIN_THREAD_NAME,\n                name,\n                stack: stackFrames,\n            };\n        }\n        return {\n            threads,\n            detectedDebugIdentifier,\n        };\n    }\n}\n\nclass AbortError extends Error {\n    constructor(message) {\n        super(message ?? 'Operation cancelled.');\n    }\n}\n\n// Required for polyfills to have the same name as the original implementations\nfunction getGlobal(key) {\n    return typeof window !== 'undefined'\n        ? window[key]\n        : typeof global !== 'undefined'\n            ? global[key]\n            : typeof self !== 'undefined'\n                ? self[key]\n                : undefined;\n}\nconst OriginalAbortController = getGlobal('AbortController');\n\n/**\n * Copied and repurposed from https://github.com/mo/abortcontroller-polyfill/blob/master/src/abortcontroller.js\n */\nclass Emitter {\n    _listeners = {};\n    _events = new Events();\n    addEventListener(type, listener, options) {\n        if (!(type in this._listeners)) {\n            this._listeners[type] = [];\n        }\n        const callback = (ev) => {\n            if (typeof listener === 'object') {\n                return listener.handleEvent.call(this, ev);\n            }\n            else {\n                return listener.call(this, ev);\n            }\n        };\n        const { once, signal } = (typeof options === 'object' ? options : {});\n        if (once) {\n            this._events.once(type, callback);\n        }\n        else {\n            this._events.on(type, callback);\n        }\n        if (signal) {\n            const removeFn = () => this.removeEventListener(type, listener);\n            signal.addEventListener(type, removeFn, { once: true });\n        }\n        this._listeners[type].push({ callback, listener, options });\n    }\n    removeEventListener(type, listener) {\n        if (!(type in this._listeners)) {\n            return;\n        }\n        const allListeners = this._listeners[type];\n        const listeners = allListeners.filter((l) => l.listener === listener);\n        for (const elem of listeners) {\n            this._events.off(type, elem.callback);\n            const index = allListeners.indexOf(elem);\n            allListeners.splice(index, 1);\n        }\n    }\n    dispatchEvent(event) {\n        this._events.emit(event.type, event);\n        return !event.defaultPrevented;\n    }\n}\n/**\n * Copied and repurposed from https://github.com/mo/abortcontroller-polyfill/blob/master/src/abortcontroller.js\n */\nclass AbortSignal extends Emitter {\n    aborted = false;\n    onabort = null;\n    reason;\n    constructor() {\n        super();\n        // Compared to assignment, Object.defineProperty makes properties non-enumerable by default and\n        // we want Object.keys(new AbortController().signal) to be [] for compat with the native impl\n        Object.defineProperty(this, 'aborted', { writable: true, configurable: true, enumerable: false });\n        Object.defineProperty(this, 'onabort', { writable: true, configurable: true, enumerable: false });\n        Object.defineProperty(this, 'reason', { writable: true, configurable: true, enumerable: false });\n    }\n    toString() {\n        return '[object AbortSignal]';\n    }\n    throwIfAborted() {\n        if (this.aborted) {\n            throw this.reason;\n        }\n    }\n    dispatchEvent(event) {\n        if (event.type === 'abort') {\n            this.aborted = true;\n            if (typeof this.onabort === 'function') {\n                this.onabort.call(this, event);\n            }\n        }\n        return super.dispatchEvent(event);\n    }\n    any(signals) {\n        return anySignal(...signals);\n    }\n}\n/**\n * Copied and repurposed from https://github.com/mo/abortcontroller-polyfill/blob/master/src/abortcontroller.js\n */\nlet AbortController$1 = class AbortController {\n    signal;\n    constructor() {\n        // Compared to assignment, Object.defineProperty makes properties non-enumerable by default and\n        // we want Object.keys(new AbortController()) to be [] for compat with the native impl\n        this.signal = new AbortSignal();\n        Object.defineProperty(this, 'signal', { configurable: true, enumerable: false });\n    }\n    abort(reason) {\n        let event;\n        try {\n            event = new Event('abort');\n        }\n        catch (e) {\n            if (typeof document !== 'undefined') {\n                const ie8Document = document;\n                if (!ie8Document.createEvent && ie8Document.createEventObject) {\n                    // For Internet Explorer 8:\n                    event = ie8Document.createEventObject();\n                    event.type = 'abort';\n                }\n                else {\n                    // For Internet Explorer 11:\n                    event = document.createEvent('Event');\n                    event.initEvent('abort', false, false);\n                }\n            }\n            else {\n                // Fallback where document isn't available:\n                event = {\n                    type: 'abort',\n                    bubbles: false,\n                    cancelable: false,\n                };\n            }\n        }\n        let signalReason = reason;\n        if (signalReason === undefined) {\n            if (typeof document === 'undefined') {\n                signalReason = new AbortError('This operation was aborted');\n            }\n            else {\n                try {\n                    signalReason = new DOMException('signal is aborted without reason');\n                }\n                catch (err) {\n                    // IE 11 does not support calling the DOMException constructor, use a\n                    // regular error object on it instead.\n                    signalReason = new AbortError('This operation was aborted');\n                }\n            }\n        }\n        this.signal.reason = signalReason;\n        this.signal.dispatchEvent(event);\n    }\n    toString() {\n        return '[object AbortController]';\n    }\n};\n/**\n * Copied and repurposed from https://github.com/mo/abortcontroller-polyfill/blob/master/src/abortcontroller.js\n */\nif (typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n    // These are necessary to make sure that we get correct output for:\n    // Object.prototype.toString.call(new AbortController())\n    AbortController$1.prototype[Symbol.toStringTag] = 'AbortController';\n    AbortSignal.prototype[Symbol.toStringTag] = 'AbortSignal';\n}\n/**\n * Creates a new abort controller.\n *\n * If the AbortController is not available, a polyfill is used.\n * @returns\n */\nfunction createAbortController() {\n    if (OriginalAbortController) {\n        return new OriginalAbortController();\n    }\n    else {\n        return new AbortController$1();\n    }\n}\nfunction anySignal(...signals) {\n    const controller = createAbortController();\n    function cleanup() {\n        // Cleanup\n        for (const signal of signals) {\n            if (signal) {\n                signal.removeEventListener('abort', onAbort);\n            }\n        }\n    }\n    function onAbort() {\n        controller.abort();\n        cleanup();\n    }\n    for (const signal of signals) {\n        if (!signal) {\n            continue;\n        }\n        if (signal.aborted) {\n            onAbort();\n            break;\n        }\n        signal.addEventListener('abort', onAbort);\n    }\n    controller.signal.dispose = cleanup;\n    return controller.signal;\n}\n\n/**\n * Due to the event loop, NodeJS application might not exit\n * due to some background work that the SDK delegates to setIntervals.\n * Thanks to this helper we can cancell interval in NodeJS process.\n * @param interval setInterval interval\n */\nfunction unrefInterval(interval) {\n    if (!interval || typeof interval === 'number') {\n        return;\n    }\n    interval.unref();\n}\n\nconst SESSION_MARKER_PREFIX = 'bt-session';\nconst isDefined = (t) => !!t;\nclass SessionFiles {\n    _fileSystem;\n    _directory;\n    sessionId;\n    _maxPreviousLockedSessions;\n    _lockable;\n    marker;\n    _events = new Events();\n    _escapedSessionId;\n    _locks = new Set();\n    _previousSession;\n    _cleared = false;\n    constructor(_fileSystem, _directory, sessionId, _maxPreviousLockedSessions = 1, _lockable = true) {\n        this._fileSystem = _fileSystem;\n        this._directory = _directory;\n        this.sessionId = sessionId;\n        this._maxPreviousLockedSessions = _maxPreviousLockedSessions;\n        this._lockable = _lockable;\n        this._escapedSessionId = this.escapeFileName(sessionId.id);\n        this.marker = this.getFileName(SESSION_MARKER_PREFIX);\n    }\n    initialize() {\n        return this.createSessionMarker();\n    }\n    getPreviousSession() {\n        if (this._previousSession) {\n            return this._previousSession;\n        }\n        const directoryFiles = this.readDirectoryFiles();\n        if (!directoryFiles.length) {\n            return undefined;\n        }\n        const sessionMarkers = directoryFiles\n            .filter((f) => f.startsWith(SESSION_MARKER_PREFIX))\n            .map((f) => this.getFileSession(f))\n            .filter(isDefined)\n            .sort((a, b) => b.sessionId.timestamp - a.sessionId.timestamp);\n        const currentSessionMarker = sessionMarkers.find((s) => this.sessionIdEquals(s.sessionId, this.sessionId));\n        const lastSessionMarker = currentSessionMarker\n            ? sessionMarkers.filter(({ sessionId }) => currentSessionMarker.sessionId.timestamp > sessionId.timestamp)[0]\n            : sessionMarkers[0];\n        if (!lastSessionMarker) {\n            return undefined;\n        }\n        return (this._previousSession = new SessionFiles(this._fileSystem, this._directory, lastSessionMarker.sessionId, this._maxPreviousLockedSessions - 1, this._maxPreviousLockedSessions > 0));\n    }\n    getSessionWithId(sessionId) {\n        // eslint-disable-next-line @typescript-eslint/no-this-alias\n        let session = this;\n        while (session && this.sessionIdEquals(session.sessionId, sessionId)) {\n            session = session.getPreviousSession();\n        }\n        return session;\n    }\n    getPreviousSessions(count = Infinity) {\n        const result = [];\n        let current = this.getPreviousSession();\n        while (current && count > 0) {\n            result.push(current);\n            count--;\n            current = current.getPreviousSession();\n        }\n        return result;\n    }\n    lockPreviousSessions(lockId) {\n        lockId = lockId ?? IdGenerator.uuid();\n        for (const session of this.getPreviousSessions(this._maxPreviousLockedSessions)) {\n            session.lock(lockId);\n        }\n        return lockId;\n    }\n    unlockPreviousSessions(lockId) {\n        for (const session of this.getPreviousSessions(this._maxPreviousLockedSessions)) {\n            session.unlock(lockId);\n        }\n    }\n    clearPreviousSessions() {\n        for (const session of this.getPreviousSessions()) {\n            session.clearSession();\n        }\n    }\n    getFileName(prefix) {\n        this.throwIfCleared();\n        return (this._directory +\n            '/' +\n            `${this.escapeFileName(prefix)}_${this._escapedSessionId}_${this.sessionId.timestamp}`);\n    }\n    getSessionFiles() {\n        this.throwIfCleared();\n        const files = this.readDirectoryFiles();\n        return files\n            .map((file) => this.getFileSession(file))\n            .filter(isDefined)\n            .filter(({ sessionId }) => this.sessionIdEquals(sessionId, this.sessionId))\n            .map(({ file }) => this._directory + '/' + file);\n    }\n    clearSession() {\n        if (this._locks.size > 0) {\n            this._events.once('unlocked', () => this.clearSession());\n            return;\n        }\n        if (this._cleared) {\n            return;\n        }\n        try {\n            const sessionFiles = this.getSessionFiles();\n            for (const file of sessionFiles) {\n                this._fileSystem.unlinkSync(file);\n            }\n        }\n        catch {\n            // Don't propagate errors\n        }\n        finally {\n            this._cleared = true;\n        }\n    }\n    lock(lockId) {\n        if (this._cleared || !this._lockable) {\n            return;\n        }\n        lockId = lockId ?? IdGenerator.uuid();\n        this._locks.add(lockId);\n        return lockId;\n    }\n    unlock(lockId) {\n        this._locks.delete(lockId);\n        if (this._locks.size === 0) {\n            this._events.emit('unlocked');\n        }\n    }\n    getFileSession(file) {\n        const [escapedSessionId, rawTimestamp] = this.splitByOneChar(file, '_').slice(-2);\n        const timestamp = parseInt(rawTimestamp);\n        if (isNaN(timestamp)) {\n            return undefined;\n        }\n        return {\n            file,\n            escapedSessionId,\n            sessionId: {\n                timestamp,\n                id: this.unescapeFileName(escapedSessionId),\n            },\n        };\n    }\n    readDirectoryFiles() {\n        try {\n            return this._fileSystem.readDirSync(this._directory);\n        }\n        catch {\n            return [];\n        }\n    }\n    createSessionMarker() {\n        this._fileSystem.writeFileSync(this.marker, '');\n    }\n    escapeFileName(name) {\n        return name.replace(/_/g, '__');\n    }\n    unescapeFileName(name) {\n        return name.replace(/__/g, '_');\n    }\n    splitByOneChar(str, char) {\n        const result = [];\n        let start = 0;\n        let index = str.indexOf(char);\n        while (index !== -1) {\n            if (str[index + 1] === char) {\n                index = str.indexOf(char, index + 2);\n            }\n            else {\n                result.push(str.substring(start, index));\n                start = index + 1;\n                index = str.indexOf(char, start);\n            }\n        }\n        result.push(str.substring(start));\n        return result;\n    }\n    throwIfCleared() {\n        if (this._cleared) {\n            throw new Error('This session files are cleared.');\n        }\n    }\n    sessionIdEquals(a, b) {\n        return a.id === b.id && a.timestamp === b.timestamp;\n    }\n    static isValidSessionId(value) {\n        return (typeof value === 'object' &&\n            !!value &&\n            'id' in value &&\n            'timestamp' in value &&\n            typeof value.id === 'string' &&\n            typeof value.timestamp === 'number');\n    }\n}\n\nclass BacktraceDatabaseContext {\n    bucketCount;\n    _records;\n    _recordBuckets = {};\n    constructor(bucketCount = 3) {\n        this.bucketCount = bucketCount;\n        this._records = [];\n        this._recordBuckets = {};\n    }\n    find(predicate) {\n        return this._records.find(predicate);\n    }\n    add(record) {\n        if (this._recordBuckets[record.id] !== undefined) {\n            this._recordBuckets[record.id] = 0;\n            return;\n        }\n        this._records.push(record);\n        this._recordBuckets[record.id] = 0;\n    }\n    get() {\n        return this._records.map((r) => ({ ...r }));\n    }\n    getBucket(index) {\n        const bucket = [];\n        for (const record of this._records) {\n            if (this._recordBuckets[record.id] === index) {\n                bucket.push(record);\n            }\n        }\n        return bucket;\n    }\n    count() {\n        return this._records.length;\n    }\n    countByType() {\n        return this._records.reduce((total, current) => {\n            total[current.type]++;\n            return total;\n        }, {});\n    }\n    remove(recordOrId) {\n        const id = typeof recordOrId === 'string' ? recordOrId : recordOrId.id;\n        const index = this._records.findIndex((r) => r.id === id);\n        if (index === -1) {\n            return;\n        }\n        this._records.splice(index, 1);\n        delete this._recordBuckets[id];\n    }\n    increaseBucket(bucketStart) {\n        for (const [id, bucket] of Object.entries(this._recordBuckets)) {\n            if (bucket < bucketStart) {\n                continue;\n            }\n            const newBucket = bucket + 1;\n            if (newBucket >= this.bucketCount) {\n                this.remove(id);\n            }\n            this._recordBuckets[id] = newBucket;\n        }\n    }\n    load(records) {\n        for (const record of records) {\n            this.add(record);\n        }\n    }\n    dropOverLimits(limits) {\n        const remaining = { ...limits };\n        const dropped = [];\n        for (let i = this._records.length - 1; i >= 0; i--) {\n            const record = this._records[i];\n            if (remaining[record.type] === 0) {\n                this.remove(record);\n                dropped.push(record);\n            }\n            else {\n                remaining[record.type]--;\n            }\n        }\n        return dropped;\n    }\n}\n\nclass BacktraceDatabase extends Events {\n    _options;\n    _storageProvider;\n    _requestHandler;\n    _sessionFiles;\n    /**\n     * Determines if the database is enabled.\n     */\n    get enabled() {\n        return this._enabled;\n    }\n    /**\n     * Abort controller to cancel asynchronous database operations when\n     * the database is being disabled by the user.\n     */\n    _abortController = createAbortController();\n    _databaseRecordContext;\n    _storageProviders = [];\n    _recordLimits;\n    _retryInterval;\n    _intervalId;\n    _enabled = false;\n    constructor(_options, _storageProvider, _requestHandler, _sessionFiles) {\n        super();\n        this._options = _options;\n        this._storageProvider = _storageProvider;\n        this._requestHandler = _requestHandler;\n        this._sessionFiles = _sessionFiles;\n        this._databaseRecordContext = new BacktraceDatabaseContext(this._options?.maximumRetries);\n        this._recordLimits = {\n            report: this._options?.maximumNumberOfRecords ?? 8,\n            attachment: this._options?.maximumNumberOfAttachmentRecords ?? 10,\n        };\n        this._retryInterval = this._options?.retryInterval ?? 60_000;\n    }\n    /**\n     * Starts database integration.\n     * @returns true if the database started successfully. Otherwise false.\n     */\n    initialize() {\n        if (this._enabled) {\n            return this._enabled;\n        }\n        if (this._options?.enable === false) {\n            return false;\n        }\n        const startResult = this._storageProvider.start();\n        if (!startResult) {\n            return false;\n        }\n        const lockId = this._sessionFiles?.lockPreviousSessions();\n        this.loadReports()\n            .then(() => {\n            this.setupDatabaseAutoSend();\n        })\n            .finally(() => lockId && this._sessionFiles?.unlockPreviousSessions(lockId));\n        this._enabled = true;\n        return true;\n    }\n    bind({ client }) {\n        if (this._enabled) {\n            return;\n        }\n        if (this._options?.enable === false) {\n            return;\n        }\n        client.on('before-send', (_, data, attachments) => {\n            const record = this.add(data, attachments);\n            if (!record || record.locked) {\n                return undefined;\n            }\n            record.locked = true;\n        });\n        client.on('after-send', (_, data, __, submissionResult) => {\n            const record = this._databaseRecordContext.find((record) => record.type === 'report' && record.data.uuid === data.uuid);\n            if (!record) {\n                return;\n            }\n            record.locked = false;\n            if (submissionResult.status === 'Ok') {\n                this.remove(record);\n                this._sessionFiles?.unlockPreviousSessions(record.id);\n            }\n        });\n    }\n    /**\n     * Adds backtrace data to the database\n     * @param backtraceData diagnostic data object\n     * @param attachments attachments\n     * @returns record if database is enabled. Otherwise undefined.\n     */\n    add(backtraceData, attachments) {\n        if (!this._enabled) {\n            return undefined;\n        }\n        const record = {\n            type: 'report',\n            data: backtraceData,\n            timestamp: TimeHelper.now(),\n            id: IdGenerator.uuid(),\n            locked: false,\n            attachments: attachments,\n            sessionId: this._sessionFiles?.sessionId,\n        };\n        this.prepareDatabase([record]);\n        const saveResult = this._storageProvider.add(record);\n        if (!saveResult) {\n            return undefined;\n        }\n        this._databaseRecordContext.add(record);\n        this.lockSessionWithRecord(record);\n        this.emit('added', record);\n        return record;\n    }\n    /**\n     * Adds Bactrace attachment to the database\n     * @param backtraceData diagnostic data object\n     * @param attachment the attachment to add\n     * @param sessionId session ID to use\n     * @returns record if database is enabled. Otherwise undefined.\n     */\n    addAttachment(rxid, attachment, sessionId) {\n        if (!this._enabled) {\n            return undefined;\n        }\n        const record = {\n            type: 'attachment',\n            timestamp: TimeHelper.now(),\n            id: IdGenerator.uuid(),\n            rxid,\n            locked: false,\n            attachment,\n            sessionId,\n        };\n        this.prepareDatabase([record]);\n        const saveResult = this._storageProvider.add(record);\n        if (!saveResult) {\n            return undefined;\n        }\n        this._databaseRecordContext.add(record);\n        this.lockSessionWithRecord(record);\n        this.emit('added', record);\n        return record;\n    }\n    /**\n     * Returns stored references to Backtrace records\n     * @returns available records in the database\n     */\n    get() {\n        return this._databaseRecordContext.get();\n    }\n    /**\n     * @returns Returns number of records stored in the Database\n     */\n    count() {\n        return this._databaseRecordContext.count();\n    }\n    /**\n     * @returns Returns number of records by type stored in the Database\n     */\n    countByType() {\n        return this._databaseRecordContext.countByType();\n    }\n    /**\n     * Disables database integration. After running the dispose method, you cannot\n     * execute any database operations.\n     */\n    dispose() {\n        this._enabled = false;\n        clearInterval(this._intervalId);\n        this._abortController.abort();\n    }\n    /**\n     * Removes the database record/records\n     * @param recordOrRecords database records\n     */\n    remove(recordOrRecords) {\n        if (!this._enabled) {\n            return;\n        }\n        const records = Array.isArray(recordOrRecords) ? recordOrRecords : [recordOrRecords];\n        for (const record of records) {\n            this._databaseRecordContext.remove(record);\n            this._storageProvider.delete(record);\n            this._sessionFiles?.unlockPreviousSessions(record.id);\n            this.emit('removed', record);\n        }\n    }\n    addStorageProvider(storageProvider) {\n        if (this._enabled) {\n            throw new Error('Cannot add storage provider after the database has been enabled.');\n        }\n        this._storageProviders.push(storageProvider);\n    }\n    /**\n     * Sends all records available in the database to Backtrace and removes them\n     * no matter if the submission process was successful or not.\n     * @param abortSignal optional abort signal to cancel sending requests\n     */\n    async flush(abortSignal) {\n        const start = TimeHelper.now();\n        await this.send(abortSignal);\n        const records = this.get().filter((n) => n.timestamp <= start);\n        for (const record of records) {\n            if (abortSignal?.aborted) {\n                return;\n            }\n            this.remove(record);\n        }\n    }\n    /**\n     * Sends all records available in the database to Backtrace.\n     * @param abortSignal optional abort signal to cancel sending requests\n     */\n    async send(abortSignal) {\n        for (let bucketIndex = 0; bucketIndex < this._databaseRecordContext.bucketCount; bucketIndex++) {\n            // make a copy of records to not update the array after each remove\n            const records = [...this._databaseRecordContext.getBucket(bucketIndex)];\n            const signal = anySignal(abortSignal, this._abortController.signal);\n            try {\n                for (const record of records) {\n                    if (!this.enabled) {\n                        return;\n                    }\n                    if (record.locked) {\n                        continue;\n                    }\n                    try {\n                        record.locked = true;\n                        this.emit('before-send', record);\n                        const result = record.type === 'report'\n                            ? await this._requestHandler.send(record.data, record.attachments, signal)\n                            : await this._requestHandler.sendAttachment(record.rxid, record.attachment, signal);\n                        this.emit('after-send', record, result);\n                        if (result.status === 'Ok' ||\n                            result.status === 'Unsupported' ||\n                            result.status === 'Report skipped') {\n                            this.remove(record);\n                            continue;\n                        }\n                        this._databaseRecordContext.increaseBucket(bucketIndex);\n                        return;\n                    }\n                    finally {\n                        record.locked = false;\n                    }\n                }\n            }\n            finally {\n                signal.dispose();\n            }\n        }\n    }\n    /**\n     * Prepare database to insert records\n     * @param forRecords records for which to update the database\n     */\n    prepareDatabase(forRecords) {\n        const dropLimits = { ...this._recordLimits };\n        for (const record of forRecords) {\n            dropLimits[record.type]--;\n        }\n        const dropped = this._databaseRecordContext.dropOverLimits(dropLimits);\n        this.remove(dropped);\n    }\n    async loadReports() {\n        const records = await this._storageProvider.get();\n        // limit only non-attachment records\n        const countByType = {\n            attachment: 0,\n            report: 0,\n        };\n        const recordsToAdd = [];\n        const recordsToRemove = [];\n        for (const record of records) {\n            if (countByType[record.type] >= this._recordLimits[record.type]) {\n                recordsToRemove.push(record);\n            }\n            else {\n                recordsToAdd.push(record);\n                countByType[record.type]++;\n            }\n        }\n        // delete old records before adding them to the database\n        if (recordsToRemove.length) {\n            this.remove(recordsToRemove);\n        }\n        this.prepareDatabase(recordsToAdd);\n        this._databaseRecordContext.load(recordsToAdd);\n        for (const record of recordsToAdd) {\n            this.lockSessionWithRecord(record);\n            this.emit('added', record);\n        }\n    }\n    async setupDatabaseAutoSend() {\n        if (!this._enabled) {\n            return;\n        }\n        if (this._options?.autoSend === false) {\n            return;\n        }\n        const sendDatabaseReports = async () => {\n            await this.send();\n        };\n        this._intervalId = setInterval(sendDatabaseReports, this._retryInterval);\n        unrefInterval(this._intervalId);\n        await this.send();\n    }\n    lockSessionWithRecord(record) {\n        if (!this._sessionFiles) {\n            return;\n        }\n        const sessionId = record.sessionId;\n        if (!SessionFiles.isValidSessionId(sessionId)) {\n            this._sessionFiles.lockPreviousSessions(record.id);\n            return;\n        }\n        const session = this._sessionFiles.getSessionWithId(sessionId);\n        session?.lock(record.id);\n    }\n}\n\nfunction isFileAttachment(attachment) {\n    return 'filePath' in attachment && typeof attachment.filePath === 'string';\n}\n\nclass AttachmentBacktraceDatabaseFileRecord {\n    type = 'attachment';\n    id;\n    rxid;\n    timestamp;\n    attachment;\n    sessionId;\n    locked;\n    constructor(record) {\n        this.attachment = record.attachment;\n        this.id = record.id;\n        this.timestamp = record.timestamp;\n        this.rxid = record.rxid;\n        this.sessionId = record.sessionId;\n        // make sure the database record stored in the database directory\n        // is never locked. By doing this, we want to be sure once we load\n        // the record once again, the record will be available for future usage\n        this.locked = false;\n    }\n    static fromRecord(record) {\n        return new AttachmentBacktraceDatabaseFileRecord(record);\n    }\n    static fromJson(json, fileSystem) {\n        try {\n            const record = typeof json === 'string' ? JSON.parse(json) : json;\n            if (!isFileAttachment(record.attachment)) {\n                return undefined;\n            }\n            if (!fileSystem.existsSync(record.attachment.filePath)) {\n                return undefined;\n            }\n            const attachment = fileSystem.createAttachment(record.attachment.filePath, record.attachment.name);\n            return new AttachmentBacktraceDatabaseFileRecord({\n                ...record,\n                attachment,\n            });\n        }\n        catch {\n            return undefined;\n        }\n    }\n}\n\nclass ReportBacktraceDatabaseFileRecord {\n    attachments;\n    type = 'report';\n    data;\n    id;\n    timestamp;\n    sessionId;\n    locked;\n    constructor(record, attachments) {\n        this.attachments = attachments;\n        this.data = record.data;\n        this.id = record.id;\n        this.timestamp = record.timestamp;\n        this.sessionId = record.sessionId;\n        // make sure the database record stored in the database directory\n        // is never locked. By doing this, we want to be sure once we load\n        // the record once again, the record will be available for future usage\n        this.locked = false;\n    }\n    static fromRecord(record) {\n        return new ReportBacktraceDatabaseFileRecord(record, record.attachments.filter(isFileAttachment));\n    }\n    static fromJson(json, fileSystem) {\n        try {\n            const record = typeof json === 'string' ? JSON.parse(json) : json;\n            const attachments = record.attachments\n                ? record.attachments\n                    .filter(isFileAttachment)\n                    .map((n) => fileSystem.createAttachment(n.filePath, n.name))\n                : [];\n            return new ReportBacktraceDatabaseFileRecord(record, attachments);\n        }\n        catch {\n            return undefined;\n        }\n    }\n}\n\nconst BacktraceDatabaseFileRecord = {\n    fromRecord(record) {\n        switch (record.type) {\n            case 'attachment':\n                return AttachmentBacktraceDatabaseFileRecord.fromRecord(record);\n            case 'report':\n                return ReportBacktraceDatabaseFileRecord.fromRecord(record);\n            default:\n                throw new Error('unknown record type');\n        }\n    },\n    fromJson(json, fileSystem) {\n        try {\n            const record = JSON.parse(json);\n            switch (record.type) {\n                case 'attachment':\n                    return AttachmentBacktraceDatabaseFileRecord.fromJson(record, fileSystem);\n                case 'report':\n                    return ReportBacktraceDatabaseFileRecord.fromJson(record, fileSystem);\n                default:\n                    return undefined;\n            }\n        }\n        catch {\n            return undefined;\n        }\n    },\n};\n\nclass BacktraceDatabaseFileStorageProvider {\n    _fileSystem;\n    _path;\n    _enabled = true;\n    RECORD_SUFFIX = '-record.json';\n    constructor(_fileSystem, _path) {\n        this._fileSystem = _fileSystem;\n        this._path = _path;\n    }\n    /**\n     * Create a provider if provided options are valid\n     * @param options database configuration\n     * @returns database file storage provider\n     */\n    static createIfValid(fileSystem, options) {\n        if (!options) {\n            return undefined;\n        }\n        if (!options.enable) {\n            return undefined;\n        }\n        if (options.enable && !options.path) {\n            throw new Error('Missing mandatory path to the database. Please define the database.path option in the configuration.');\n        }\n        return new BacktraceDatabaseFileStorageProvider(fileSystem, options.path);\n    }\n    start() {\n        // make sure by mistake we don't create anything or start any operation\n        if (this._enabled === false) {\n            return false;\n        }\n        return true;\n    }\n    delete(record) {\n        const recordPath = this.getRecordPath(record.id);\n        return this.unlinkRecord(recordPath);\n    }\n    add(record) {\n        const recordPath = this.getRecordPath(record.id);\n        try {\n            this._fileSystem.writeFileSync(recordPath, JSON.stringify(BacktraceDatabaseFileRecord.fromRecord(record), jsonEscaper()));\n            return true;\n        }\n        catch {\n            return false;\n        }\n    }\n    async get() {\n        const databaseFiles = await this._fileSystem.readDir(this._path);\n        const recordNames = databaseFiles\n            .filter((file) => file.endsWith(this.RECORD_SUFFIX))\n            .map((f) => this._path + '/' + f);\n        const records = [];\n        for (const recordName of recordNames) {\n            try {\n                const recordJson = await this._fileSystem.readFile(recordName);\n                const record = BacktraceDatabaseFileRecord.fromJson(recordJson, this._fileSystem);\n                if (!record) {\n                    await this._fileSystem.unlink(recordName);\n                    continue;\n                }\n                records.push(record);\n            }\n            catch {\n                await this._fileSystem.unlink(recordName);\n            }\n        }\n        return records;\n    }\n    unlinkRecord(recordPath) {\n        if (!this._fileSystem.existsSync(recordPath)) {\n            return false;\n        }\n        try {\n            this._fileSystem.unlinkSync(recordPath);\n            return true;\n        }\n        catch {\n            return false;\n        }\n    }\n    getRecordPath(id) {\n        return this._path + '/' + `${id}${this.RECORD_SUFFIX}`;\n    }\n}\n\nclass MetricsEvent {\n    metricGroupName;\n    metricGroupValue;\n    attributes;\n    id = IdGenerator.uuid();\n    constructor(metricGroupName, metricGroupValue, attributes = {}) {\n        this.metricGroupName = metricGroupName;\n        this.metricGroupValue = metricGroupValue;\n        this.attributes = attributes;\n    }\n    toJSON() {\n        return {\n            timestamp: TimeHelper.toTimestampInSec(TimeHelper.now()),\n            attributes: this.attributes,\n            [this.metricGroupName]: this.metricGroupValue,\n        };\n    }\n}\n\nclass SummedEvent extends MetricsEvent {\n    constructor(metricGroupName, attributes = {}) {\n        super('metric_group', metricGroupName, attributes);\n    }\n}\n\nclass UniqueEvent extends MetricsEvent {\n    constructor(attributes) {\n        super('unique', ['guid'], attributes);\n    }\n}\n\nclass BacktraceMetrics {\n    _options;\n    _sessionProvider;\n    _attributeManager;\n    _summedEventsSubmissionQueue;\n    _uniqueEventsSubmissionQueue;\n    /**\n     * Returns current session id.\n     */\n    get sessionId() {\n        return this._sessionProvider.sessionId;\n    }\n    /**\n     * Default metrics submission interval. The variable defines how often metrics will be sent to metrics system.\n     */\n    DEFAULT_UPDATE_INTERVAL = TimeHelper.convertSecondsToMilliseconds(30 * 60);\n    DEFAULT_SERVER_URL = 'https://events.backtrace.io';\n    metricsHost;\n    _updateInterval;\n    _updateIntervalId;\n    _abortController;\n    constructor(_options, _sessionProvider, _attributeManager, _summedEventsSubmissionQueue, _uniqueEventsSubmissionQueue) {\n        this._options = _options;\n        this._sessionProvider = _sessionProvider;\n        this._attributeManager = _attributeManager;\n        this._summedEventsSubmissionQueue = _summedEventsSubmissionQueue;\n        this._uniqueEventsSubmissionQueue = _uniqueEventsSubmissionQueue;\n        this.metricsHost = this._options.metricsSubmissionUrl ?? this.DEFAULT_SERVER_URL;\n        this._updateInterval = this._options.autoSendInterval ?? this.DEFAULT_UPDATE_INTERVAL;\n        this._abortController = createAbortController();\n    }\n    /**\n     * Starts metrics submission.\n     */\n    initialize() {\n        if (!this._sessionProvider.newSession) {\n            return;\n        }\n        this.addSummedEvent('Application Launches');\n        this.handleAbort(() => this.send(this._abortController.signal));\n        if (this._updateInterval === 0) {\n            return;\n        }\n        this._updateIntervalId = setInterval(() => {\n            this.handleAbort(() => this.send(this._abortController.signal));\n        }, this._updateInterval);\n        unrefInterval(this._updateIntervalId);\n    }\n    /**\n     * Returns total number of events in the submission queue.\n     */\n    count() {\n        return this._summedEventsSubmissionQueue?.total ?? 0 + this._uniqueEventsSubmissionQueue?.total ?? 0;\n    }\n    /**\n     * Add summed event to next Backtrace Metrics request.\n     * @param metricName Summed event name.\n     * @param eventAttributes event attributes.\n     */\n    addSummedEvent(metricName, eventAttributes = {}) {\n        if (!metricName) {\n            return false;\n        }\n        const attributes = this.convertAttributes({\n            ...this._attributeManager.get().attributes,\n            ...ReportDataBuilder.build(eventAttributes ?? {}).attributes,\n        });\n        this._summedEventsSubmissionQueue.add(new SummedEvent(metricName, attributes));\n        return true;\n    }\n    /**\n     * Sends event to the metrics system.\n     */\n    async send(abortSignal) {\n        if (!this._sessionProvider.shouldSend()) {\n            return false;\n        }\n        await Promise.all([this.sendUniqueEvent(abortSignal), this._summedEventsSubmissionQueue.send(abortSignal)]);\n        this._sessionProvider.afterMetricsSubmission();\n        return true;\n    }\n    /**\n     * Cleans up metrics interface.\n     */\n    dispose() {\n        this._abortController.abort();\n        if (this._updateIntervalId) {\n            clearInterval(this._updateIntervalId);\n        }\n        this._uniqueEventsSubmissionQueue.dispose && this._uniqueEventsSubmissionQueue.dispose();\n        this._summedEventsSubmissionQueue.dispose && this._summedEventsSubmissionQueue.dispose();\n    }\n    async sendUniqueEvent(abortSignal) {\n        // always add the same unique event before send.\n        const { attributes } = this._attributeManager.get();\n        this._uniqueEventsSubmissionQueue.add(new UniqueEvent(this.convertAttributes(attributes)));\n        await this._uniqueEventsSubmissionQueue.send(abortSignal);\n    }\n    /**\n     * Event aggregators expecting to retrieve attributes in a string format. They also\n     * don't expect to retrieve null/undefined as attribute values.\n     */\n    convertAttributes(attributes) {\n        return Object.keys(attributes)\n            .filter((n) => attributes[n] != null)\n            .reduce((acc, n) => {\n            acc[n] = attributes[n]?.toString();\n            return acc;\n        }, {});\n    }\n    async handleAbort(fn) {\n        try {\n            await fn();\n            return true;\n        }\n        catch (err) {\n            if (err instanceof AbortError) {\n                return false;\n            }\n            throw err;\n        }\n    }\n}\n\nclass Delay {\n    /**\n     * Promise set timeout wrapper.\n     * @param timeout timeout in ms\n     * @param signal abort signal\n     */\n    static wait(timeout, signal) {\n        return new Promise((resolve, reject) => {\n            // intervalId has to be defined here,\n            // as abortCallback can execute before setTimeout is executed\n            // eslint-disable-next-line prefer-const\n            let intervalId;\n            function abortCallback() {\n                clearTimeout(intervalId);\n                reject(new AbortError());\n            }\n            if (signal?.aborted) {\n                return abortCallback();\n            }\n            intervalId = setTimeout(() => {\n                signal?.removeEventListener('abort', abortCallback);\n                resolve();\n            }, timeout);\n            signal?.addEventListener('abort', abortCallback);\n        });\n    }\n}\n\nclass MetricsSubmissionQueue {\n    _submissionUrl;\n    _eventName;\n    _requestHandler;\n    _metricMetadata;\n    maximumEvents;\n    get total() {\n        return this._events.length;\n    }\n    get submissionUrl() {\n        return this._submissionUrl;\n    }\n    DELAY_BETWEEN_REQUESTS = TimeHelper.convertSecondsToMilliseconds(10);\n    _events = [];\n    _numberOfDroppedRequests = 0;\n    _abortController;\n    MAXIMUM_NUMBER_OF_ATTEMPTS = 3;\n    constructor(_submissionUrl, _eventName, _requestHandler, _metricMetadata, maximumEvents = 50) {\n        this._submissionUrl = _submissionUrl;\n        this._eventName = _eventName;\n        this._requestHandler = _requestHandler;\n        this._metricMetadata = _metricMetadata;\n        this.maximumEvents = maximumEvents;\n        this._abortController = createAbortController();\n    }\n    add(event) {\n        this._events.push(event);\n        if (this.reachedLimit()) {\n            this.send();\n        }\n    }\n    async send(abortSignal) {\n        const eventsToProcess = this._events.splice(0);\n        const signal = anySignal(abortSignal, this._abortController.signal);\n        try {\n            return await this.submit(eventsToProcess, signal);\n        }\n        finally {\n            signal.dispose();\n        }\n    }\n    dispose() {\n        this._abortController.abort();\n    }\n    async submit(events, abortSignal) {\n        for (let attempts = 0; attempts < this.MAXIMUM_NUMBER_OF_ATTEMPTS; attempts++) {\n            const response = await this._requestHandler.post(this._submissionUrl, JSON.stringify({\n                ...this._metricMetadata,\n                [this._eventName]: events,\n                metadata: {\n                    dropped_events: this._numberOfDroppedRequests,\n                },\n            }, jsonEscaper()), abortSignal);\n            if (response.status === 'Ok') {\n                this._numberOfDroppedRequests = 0;\n                return;\n            }\n            this._numberOfDroppedRequests++;\n            await Delay.wait(2 ** attempts * this.DELAY_BETWEEN_REQUESTS, abortSignal);\n        }\n        // if the code reached this line, it means, we couldn't send data to server\n        // we need to try to return events to the queue and try to send it once again later.\n        this.returnEventsIfPossible(events);\n    }\n    returnEventsIfPossible(events) {\n        if (this.maximumEvents < this._events.length + events.length) {\n            return;\n        }\n        // push events to the beginning of the queue\n        this._events.unshift(...events);\n    }\n    reachedLimit() {\n        return this.maximumEvents === this._events.length && this.maximumEvents !== 0;\n    }\n}\n\nclass MetricsBuilder {\n    _options;\n    _sessionProvider;\n    _attributeManager;\n    _requestHandler;\n    /**\n     * Default metrics submission interval. The variable defines how often metrics will be sent to metrics system\n     * By default 30 mins.\n     */\n    DEFAULT_UPDATE_INTERVAL = TimeHelper.convertSecondsToMilliseconds(30 * 60);\n    APPLICATION_VERSION_ATTRIBUTE = 'application.version';\n    APPLICATION_ATTRIBUTE = 'application';\n    constructor(_options, _sessionProvider, _attributeManager, _requestHandler) {\n        this._options = _options;\n        this._sessionProvider = _sessionProvider;\n        this._attributeManager = _attributeManager;\n        this._requestHandler = _requestHandler;\n    }\n    build(uniqueEventsSubmissionQueue, summedEventsSubmissionQueue) {\n        const metricsOptions = {\n            ...this.optionsWithDefaults(),\n            ...(this._options.metrics ?? {}),\n        };\n        if (!metricsOptions.enable) {\n            return undefined;\n        }\n        const applicationInfo = this.verifyAttributeSetup();\n        if (!applicationInfo) {\n            return undefined;\n        }\n        uniqueEventsSubmissionQueue =\n            uniqueEventsSubmissionQueue ??\n                this.createUniqueEventSubmissionQueue(metricsOptions.metricsSubmissionUrl, applicationInfo);\n        if (!uniqueEventsSubmissionQueue) {\n            return undefined;\n        }\n        summedEventsSubmissionQueue =\n            summedEventsSubmissionQueue ??\n                this.createSummedEventSubmissionQueue(metricsOptions.metricsSubmissionUrl, applicationInfo);\n        if (!summedEventsSubmissionQueue) {\n            return undefined;\n        }\n        return new BacktraceMetrics(metricsOptions, this._sessionProvider, this._attributeManager, summedEventsSubmissionQueue, uniqueEventsSubmissionQueue);\n    }\n    verifyAttributeSetup() {\n        const { attributes } = this._attributeManager.get();\n        const application = attributes[this.APPLICATION_ATTRIBUTE];\n        const applicationVersion = attributes[this.APPLICATION_VERSION_ATTRIBUTE];\n        if (!application || !applicationVersion) {\n            return undefined;\n        }\n        return { application, applicationVersion };\n    }\n    createUniqueEventSubmissionQueue(metricsHost, applicationInfo) {\n        const uniqueEventsSubmissionUrl = MetricsUrlInformation.generateUniqueEventsUrl(metricsHost, this._options.url, this._options.token);\n        if (!uniqueEventsSubmissionUrl) {\n            return undefined;\n        }\n        return new MetricsSubmissionQueue(uniqueEventsSubmissionUrl, 'unique_events', this._requestHandler, {\n            [this.APPLICATION_ATTRIBUTE]: applicationInfo.application,\n            appversion: applicationInfo.applicationVersion,\n        }, this._options?.metrics?.size);\n    }\n    createSummedEventSubmissionQueue(metricsHost, applicationInfo) {\n        const summedEventsSubmissionUrl = MetricsUrlInformation.generateSummedEventsUrl(metricsHost, this._options.url, this._options.token);\n        if (!summedEventsSubmissionUrl) {\n            return undefined;\n        }\n        return new MetricsSubmissionQueue(summedEventsSubmissionUrl, 'summed_events', this._requestHandler, {\n            [this.APPLICATION_ATTRIBUTE]: applicationInfo.application,\n            appversion: applicationInfo.applicationVersion,\n        }, this._options?.metrics?.size);\n    }\n    optionsWithDefaults() {\n        return {\n            enable: true,\n            autoSendInterval: this.DEFAULT_UPDATE_INTERVAL,\n            metricsSubmissionUrl: 'https://events.backtrace.io',\n            size: 50,\n        };\n    }\n}\n\nclass SingleSessionProvider {\n    newSession = true;\n    sessionId = IdGenerator.uuid();\n    _lastActive = 0;\n    get lastActive() {\n        return this._lastActive;\n    }\n    afterMetricsSubmission() {\n        this._lastActive = TimeHelper.now();\n    }\n    /**\n     * Allow to alway send metrics - in the single session there is no reason\n     * to skip sending metrics.\n     */\n    shouldSend() {\n        return true;\n    }\n}\n\nclass RateLimitWatcher {\n    /**\n     * Time the single report can stay in the queue in ms.\n     */\n    MAXIMUM_TIME_IN_QUEUE = 60 * 1000;\n    _reportPerMin;\n    _watcherEnable;\n    _reportQueue = [];\n    get enabled() {\n        return this._watcherEnable;\n    }\n    constructor(reportPerMin) {\n        if (reportPerMin == null) {\n            reportPerMin = 0;\n        }\n        if (reportPerMin < 0) {\n            throw new Error('ReportPerMinute argument must be greater or equal to zero');\n        }\n        this._reportPerMin = reportPerMin;\n        this._watcherEnable = reportPerMin > 0;\n    }\n    skipReport() {\n        const time = TimeHelper.now();\n        if (!this._watcherEnable) {\n            return false;\n        }\n        this.clear(time);\n        if (this._reportQueue.length >= this._reportPerMin) {\n            return true;\n        }\n        this._reportQueue.push(time);\n        return false;\n    }\n    clear(time) {\n        if (this._reportQueue.length === 0) {\n            return;\n        }\n        // we don't have anything to remove\n        if (time - this._reportQueue[0] < this.MAXIMUM_TIME_IN_QUEUE) {\n            return;\n        }\n        for (let queueIndex = this._reportQueue.length; queueIndex != 0; queueIndex--) {\n            if (time - this._reportQueue[queueIndex - 1] > this.MAXIMUM_TIME_IN_QUEUE) {\n                this._reportQueue = this._reportQueue.slice(queueIndex);\n                return;\n            }\n        }\n    }\n}\n\nclass BacktraceCoreClient extends Events {\n    /**\n     * Backtrace client instance\n     */\n    static _instance;\n    /**\n     * Determines if the client is enabled.\n     */\n    get enabled() {\n        return this._enabled;\n    }\n    /**\n     * Current session id\n     */\n    get sessionId() {\n        return this._sessionProvider.sessionId;\n    }\n    /**\n     * Backtrace SDK name\n     */\n    get agent() {\n        return this._sdkOptions.agent;\n    }\n    /**\n     * Backtrace SDK version\n     */\n    get agentVersion() {\n        return this._sdkOptions.agentVersion;\n    }\n    /**\n     * Available cached client attributes\n     */\n    get attributes() {\n        return this.attributeManager.get().attributes;\n    }\n    /**\n     * Available cached client annotatations\n     */\n    get annotations() {\n        return this.attributeManager.get().annotations;\n    }\n    get metrics() {\n        return this._modules.get(BacktraceMetrics);\n    }\n    get breadcrumbs() {\n        return this._modules.get(BreadcrumbsManager);\n    }\n    get database() {\n        return this._modules.get(BacktraceDatabase);\n    }\n    /**\n     * Client cached attachments\n     */\n    get attachments() {\n        return this.attachmentManager.get();\n    }\n    /**\n     * Modules used by the client\n     */\n    get modules() {\n        return this._modules;\n    }\n    get sessionFiles() {\n        return this._modules.get(SessionFiles);\n    }\n    options;\n    attributeManager;\n    attachmentManager;\n    fileSystem;\n    _modules = new Map();\n    _dataBuilder;\n    _reportSubmission;\n    _rateLimitWatcher;\n    _sessionProvider;\n    _sdkOptions;\n    _requestHandler;\n    _enabled = false;\n    constructor(setup) {\n        super();\n        this.options = setup.options;\n        this.fileSystem = setup.fileSystem;\n        this._sdkOptions = setup.sdkOptions;\n        this._sessionProvider = setup.sessionProvider ?? new SingleSessionProvider();\n        this._reportSubmission =\n            setup.reportSubmission ?? new RequestBacktraceReportSubmission(this.options, setup.requestHandler);\n        this._rateLimitWatcher = new RateLimitWatcher(this.options.rateLimit);\n        this._requestHandler = setup.requestHandler;\n        const attributeProviders = [\n            new ClientAttributeProvider(this.agent, this.agentVersion, this._sessionProvider.sessionId),\n        ];\n        if (setup.attributeProviders) {\n            attributeProviders.push(...setup.attributeProviders);\n        }\n        if (this.options.userAttributes) {\n            attributeProviders.push(new UserAttributeProvider(this.options.userAttributes));\n        }\n        this.attributeManager = new AttributeManager(attributeProviders);\n        this.attachmentManager = new AttachmentManager();\n        if (this.options.attachments) {\n            this.attachmentManager.add(...this.options.attachments);\n        }\n        const stackTraceConverter = setup.stackTraceConverter ?? new V8StackTraceConverter();\n        this._dataBuilder = new BacktraceDataBuilder(this._sdkOptions, stackTraceConverter, this.attributeManager, new DebugIdProvider(stackTraceConverter, setup.debugIdMapProvider));\n        if (this.options?.database?.enable === true && setup.fileSystem) {\n            const provider = BacktraceDatabaseFileStorageProvider.createIfValid(setup.fileSystem, this.options.database);\n            if (this.fileSystem) {\n                const sessionFiles = new SessionFiles(this.fileSystem, this.options.database.path, {\n                    id: this.sessionId,\n                    timestamp: Date.now(),\n                }, this.options.database.maximumOldSessions ?? 1);\n                this._modules.set(SessionFiles, sessionFiles);\n            }\n            if (provider) {\n                const database = new BacktraceDatabase(this.options.database, provider, this._reportSubmission, this.sessionFiles);\n                this._modules.set(BacktraceDatabase, database);\n            }\n        }\n        const metrics = new MetricsBuilder(this.options, this._sessionProvider, this.attributeManager, setup.requestHandler).build(setup.uniqueMetricsQueue, setup.summedMetricsQueue);\n        if (metrics) {\n            this._modules.set(BacktraceMetrics, metrics);\n        }\n        if (this.options.breadcrumbs?.enable !== false) {\n            const breadcrumbsManager = new BreadcrumbsManager(this.options?.breadcrumbs, setup.breadcrumbsSetup);\n            this._modules.set(BreadcrumbsManager, breadcrumbsManager);\n        }\n        if (setup.modules) {\n            for (const module of setup.modules) {\n                this.addModule(module);\n            }\n        }\n    }\n    initialize() {\n        this.validateAttributes();\n        if (this.fileSystem && this.options.database?.createDatabaseDirectory) {\n            if (!this.options.database.path) {\n                throw new Error('Missing mandatory path to the database. Please define the database.path option in the configuration.');\n            }\n            this.fileSystem.createDirSync(this.options.database?.path);\n        }\n        for (const module of this._modules.values()) {\n            if (module.bind) {\n                module.bind(this.getModuleBindData());\n            }\n            if (module.initialize) {\n                module.initialize();\n            }\n        }\n        this.sessionFiles?.clearPreviousSessions();\n        this._enabled = true;\n        BacktraceCoreClient._instance = this;\n    }\n    addAttribute(attributes) {\n        this.attributeManager.add(attributes);\n    }\n    addAttachment(...attachments) {\n        this.attachmentManager.add(...attachments);\n    }\n    // This function CANNOT be an async function due to possible async state machine stack frame inclusion, which breaks the skip stacks\n    send(data, reportAttributesOrAbortSignal, reportAttachments = [], abortSignal) {\n        if (!this._enabled) {\n            return Promise.resolve(BacktraceReportSubmissionResult.SdkDisabled());\n        }\n        if (this._rateLimitWatcher.skipReport()) {\n            return Promise.resolve(BacktraceReportSubmissionResult.OnLimitReached('Client'));\n        }\n        // If data is BacktraceReport, we know that the second argument should be only AbortSignal\n        const reportAttributes = !this.isReport(data)\n            ? reportAttributesOrAbortSignal\n            : undefined;\n        // If data is BacktraceReport, we know that the second argument should be only AbortSignal\n        abortSignal = !this.isReport(data) ? abortSignal : reportAttributesOrAbortSignal;\n        const report = this.isReport(data)\n            ? data\n            : new BacktraceReport(data, reportAttributes, [], {\n                skipFrames: this.skipFrameOnMessage(data),\n            });\n        this.emit('before-skip', report);\n        if (this.options.skipReport && this.options.skipReport(report)) {\n            return Promise.resolve(BacktraceReportSubmissionResult.ReportSkipped());\n        }\n        const backtraceData = this.generateSubmissionData(report);\n        if (!backtraceData) {\n            return Promise.resolve(BacktraceReportSubmissionResult.ReportSkipped());\n        }\n        const submissionAttachments = this.generateSubmissionAttachments(report, reportAttachments);\n        this.emit('before-send', report, backtraceData, submissionAttachments);\n        return this._reportSubmission\n            .send(backtraceData, submissionAttachments, abortSignal)\n            .then((submissionResult) => {\n            this.emit('after-send', report, backtraceData, submissionAttachments, submissionResult);\n            return submissionResult;\n        });\n    }\n    /**\n     * Disposes the client and all client callbacks\n     */\n    dispose() {\n        this._enabled = false;\n        for (const module of this._modules.values()) {\n            if (module.dispose) {\n                module.dispose();\n            }\n        }\n        BacktraceCoreClient.destroy();\n    }\n    addModule(typeOrModule, module) {\n        let type;\n        if (typeof typeOrModule === 'function') {\n            type = typeOrModule;\n        }\n        else {\n            module = typeOrModule;\n            type = Object.getPrototypeOf(module);\n        }\n        if (!module) {\n            throw new Error('Module implementation is required.');\n        }\n        this._modules.set(type, module);\n        if (this._enabled) {\n            module.bind && module.bind(this.getModuleBindData());\n            module.initialize && module.initialize();\n        }\n    }\n    generateSubmissionData(report) {\n        const backtraceData = this._dataBuilder.build(report);\n        if (!this.options.beforeSend) {\n            return backtraceData;\n        }\n        return this.options.beforeSend(backtraceData);\n    }\n    generateSubmissionAttachments(report, reportAttachments) {\n        return [...this.attachmentManager.get(), ...(report.attachments ?? []), ...(reportAttachments ?? [])];\n    }\n    skipFrameOnMessage(data) {\n        return typeof data === 'string' ? 1 : 0;\n    }\n    isReport(data) {\n        return data instanceof BacktraceReport;\n    }\n    getModuleBindData() {\n        return {\n            client: this,\n            options: this.options,\n            attributeManager: this.attributeManager,\n            attachmentManager: this.attachmentManager,\n            reportSubmission: this._reportSubmission,\n            requestHandler: this._requestHandler,\n            database: this.database,\n            sessionFiles: this.sessionFiles,\n            fileSystem: this.fileSystem,\n        };\n    }\n    static destroy() {\n        this._instance = undefined;\n    }\n    validateAttributes() {\n        function validateApplicationAndVersion(attributes) {\n            if (!attributes['application'] || !attributes['application.version']) {\n                return 'application and application.version attributes must be defined.';\n            }\n        }\n        // Validate scoped attributes first. If they return no errors, there is no point\n        // in checking all attributes, which resolving of may be slower.\n        const scoped = this.attributeManager.get('scoped');\n        const scopedError = validateApplicationAndVersion(scoped.attributes);\n        if (!scopedError) {\n            return;\n        }\n        const allAttributes = this.attributeManager.get();\n        const error = validateApplicationAndVersion(allAttributes.attributes);\n        if (!error) {\n            return;\n        }\n        throw new Error(error);\n    }\n}\n\nclass BacktraceCoreClientBuilder {\n    clientSetup;\n    constructor(clientSetup) {\n        this.clientSetup = clientSetup;\n    }\n    addAttributeProvider(provider) {\n        if (!this.clientSetup.attributeProviders) {\n            this.clientSetup.attributeProviders = [provider];\n        }\n        else {\n            this.clientSetup.attributeProviders.push(provider);\n        }\n        return this;\n    }\n    useBreadcrumbSubscriber(breadcrumbSubscriber) {\n        if (!this.clientSetup.breadcrumbsSetup) {\n            this.clientSetup.breadcrumbsSetup = {};\n        }\n        if (!this.clientSetup.breadcrumbsSetup.subscribers) {\n            this.clientSetup.breadcrumbsSetup.subscribers = [breadcrumbSubscriber];\n        }\n        else {\n            this.clientSetup.breadcrumbsSetup.subscribers.push(breadcrumbSubscriber);\n        }\n        return this;\n    }\n    useBreadcrumbsStorage(storage) {\n        if (!this.clientSetup.breadcrumbsSetup) {\n            this.clientSetup.breadcrumbsSetup = {};\n        }\n        if (typeof storage === 'function') {\n            this.clientSetup.breadcrumbsSetup.storage = storage;\n        }\n        else {\n            this.clientSetup.breadcrumbsSetup.storage = () => storage;\n        }\n        return this;\n    }\n    useSessionProvider(sessionProvider) {\n        this.clientSetup.sessionProvider = sessionProvider;\n        return this;\n    }\n    useRequestHandler(handler) {\n        this.clientSetup.requestHandler = handler;\n        return this;\n    }\n    useStackTraceConverter(stackTraceConverter) {\n        this.clientSetup.stackTraceConverter = stackTraceConverter;\n        return this;\n    }\n    useFileSystem(fileSystem) {\n        this.clientSetup.fileSystem = fileSystem;\n        return this;\n    }\n    useReportSubmission(reportSubmission) {\n        this.clientSetup.reportSubmission = reportSubmission;\n        return this;\n    }\n    useSummedMetricsQueue(queue) {\n        this.clientSetup.summedMetricsQueue = queue;\n        return this;\n    }\n    useUniqueMetricsQueue(queue) {\n        this.clientSetup.uniqueMetricsQueue = queue;\n        return this;\n    }\n    useModule(module) {\n        if (!this.clientSetup.modules) {\n            this.clientSetup.modules = [module];\n        }\n        else {\n            this.clientSetup.modules.push(module);\n        }\n        return this;\n    }\n}\n\nclass BacktraceStringAttachment {\n    name;\n    data;\n    constructor(name, data) {\n        this.name = name;\n        this.data = data;\n    }\n    get() {\n        return this.data;\n    }\n}\n\nclass BacktraceUint8ArrayAttachment {\n    name;\n    data;\n    constructor(name, data) {\n        this.name = name;\n        this.data = data;\n    }\n    get() {\n        return new Blob([this.data.buffer]);\n    }\n}\n\nconst SOURCE_DEBUG_ID_VARIABLE = '_btDebugIds';\nclass DebugIdProvider {\n    _stackTraceConverter;\n    _debugIdMapProvider;\n    _fileDebugIds;\n    constructor(_stackTraceConverter, _debugIdMapProvider) {\n        this._stackTraceConverter = _stackTraceConverter;\n        this._debugIdMapProvider = _debugIdMapProvider;\n        this._fileDebugIds = this.loadDebugIds();\n    }\n    getDebugId(file) {\n        const debugId = this._fileDebugIds[file];\n        if (debugId) {\n            return debugId;\n        }\n        // in case of dynamic require - lazy load dynamically debug ids\n        this._fileDebugIds = this.loadDebugIds();\n        return this._fileDebugIds[file];\n    }\n    loadDebugIds() {\n        const debugIdMap = this._debugIdMapProvider?.getDebugIdMap();\n        if (!debugIdMap) {\n            return {};\n        }\n        const message = new Error().message;\n        const result = {};\n        for (const [rawStack, debugId] of Object.entries(debugIdMap)) {\n            const frames = this._stackTraceConverter.convert(rawStack, message);\n            if (!frames.length) {\n                continue;\n            }\n            // The first frame will have the file's path\n            const frame = frames[0];\n            result[frame.library] = debugId;\n        }\n        return result;\n    }\n}\n\nclass VariableDebugIdMapProvider {\n    _variable;\n    constructor(_variable) {\n        this._variable = _variable;\n    }\n    getDebugIdMap() {\n        return this._variable[SOURCE_DEBUG_ID_VARIABLE] ?? {};\n    }\n}\n\nconst AGENT = {\n    langName: 'js',\n    langVersion: navigator.userAgent,\n    agent: '@backtrace/browser',\n    agentVersion: '0.6.2',\n};\n\n/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n    var e = new Error(message);\r\n    return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\n\nclass BacktraceBrowserRequestHandler {\n    constructor(options) {\n        var _a;\n        this.UPLOAD_FILE_NAME = 'upload_file';\n        this.JSON_HEADERS = {\n            'Content-type': 'application/json',\n            'Transfer-Encoding': 'chunked',\n        };\n        this.MULTIPART_HEADERS = {\n            'Transfer-Encoding': 'chunked',\n        };\n        this._timeout = (_a = options === null || options === void 0 ? void 0 : options.timeout) !== null && _a !== void 0 ? _a : DEFAULT_TIMEOUT;\n    }\n    postError(submissionUrl, dataJson, attachments, abortSignal) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const payload = attachments.length === 0 ? dataJson : this.createFormData(dataJson, attachments);\n            return this.post(submissionUrl, payload, abortSignal);\n        });\n    }\n    post(submissionUrl, payload, abortSignal) {\n        return __awaiter(this, void 0, void 0, function* () {\n            const controller = new AbortController();\n            const id = setTimeout(() => controller.abort(), this._timeout);\n            const signal = anySignal(abortSignal, controller.signal);\n            try {\n                const response = yield fetch(submissionUrl, {\n                    method: 'POST',\n                    body: payload,\n                    headers: typeof payload === 'string' ? this.JSON_HEADERS : this.MULTIPART_HEADERS,\n                    signal,\n                });\n                clearInterval(id);\n                switch (response.status) {\n                    case 200: {\n                        const result = yield response.json();\n                        return BacktraceReportSubmissionResult.Ok(result);\n                    }\n                    case 401:\n                    case 403: {\n                        return BacktraceReportSubmissionResult.OnInvalidToken();\n                    }\n                    case 429: {\n                        return BacktraceReportSubmissionResult.OnLimitReached();\n                    }\n                    default: {\n                        return BacktraceReportSubmissionResult.OnInternalServerError(response.statusText);\n                    }\n                }\n            }\n            catch (err) {\n                if (!(err instanceof Error)) {\n                    return BacktraceReportSubmissionResult.OnUnknownError(err);\n                }\n                if (err.name === 'AbortError') {\n                    return BacktraceReportSubmissionResult.OnNetworkingError('Timeout');\n                }\n                if (ConnectionError.isConnectionError(err)) {\n                    return BacktraceReportSubmissionResult.OnNetworkingError(err.message);\n                }\n                return BacktraceReportSubmissionResult.OnUnknownError(err.message);\n            }\n            finally {\n                // Check for backwards compatibility\n                if ('dispose' in signal && typeof signal.dispose === 'function') {\n                    signal.dispose();\n                }\n            }\n        });\n    }\n    createFormData(json, attachments) {\n        const formData = new FormData();\n        formData.append(this.UPLOAD_FILE_NAME, json);\n        if (!attachments || attachments.length === 0) {\n            return formData;\n        }\n        for (const attachment of attachments) {\n            const data = attachment.get();\n            if (!data) {\n                continue;\n            }\n            formData.append(`attachment_${attachment.name}`, data);\n        }\n        return formData;\n    }\n}\n\nclass BacktraceApi extends BacktraceCoreApi {\n    constructor(options) {\n        var _a;\n        super(options, (_a = options.requestHandler) !== null && _a !== void 0 ? _a : new BacktraceBrowserRequestHandler(options.requestHandlerOptions));\n    }\n}\n\nclass BacktraceBrowserSessionProvider {\n    get lastActive() {\n        return this._lastActive;\n    }\n    constructor() {\n        this.SESSION_LAST_ACTIVE = 'backtrace-last-active';\n        this.SESSION_GUID = 'backtrace-guid';\n        this.newSession = true;\n        this.sessionId = IdGenerator.uuid();\n        this._lastActive = 0;\n        if (!window.localStorage) {\n            return;\n        }\n        const lastActive = this.readLastActiveTimestamp();\n        if (!lastActive || TimeHelper.now() - lastActive > BacktraceBrowserSessionProvider.PERSISTENCE_INTERVAL) {\n            this.updateLastActiveTimestamp();\n            localStorage.setItem(this.SESSION_GUID, this.sessionId);\n            return;\n        }\n        this._lastActive = lastActive;\n        this.newSession = false;\n        this.sessionId = localStorage.getItem(this.SESSION_GUID);\n    }\n    afterMetricsSubmission() {\n        this.updateLastActiveTimestamp();\n    }\n    shouldSend() {\n        // if the document is hidden, we shouldn't send metrics, because the open document\n        // is the one who is being used by the user. This condition makes sure two or more web\n        // browser tabs of the same app won't report the same metrics or false positive metrics.\n        return document.hidden === false;\n    }\n    readLastActiveTimestamp() {\n        const lastActiveStringTimestamp = localStorage.getItem(this.SESSION_LAST_ACTIVE);\n        if (!lastActiveStringTimestamp) {\n            return undefined;\n        }\n        const lastActive = parseInt(lastActiveStringTimestamp, 10);\n        if (isNaN(lastActive)) {\n            return undefined;\n        }\n        return lastActive;\n    }\n    updateLastActiveTimestamp() {\n        this._lastActive = TimeHelper.now();\n        localStorage.setItem(this.SESSION_LAST_ACTIVE, this._lastActive.toString(10));\n    }\n}\n/**\n * Session persistence interval. If no event was send in the persistence interval\n * the session is treaten as an old session.\n */\nBacktraceBrowserSessionProvider.PERSISTENCE_INTERVAL = TimeHelper.convertSecondsToMilliseconds(30 * 60);\n\nclass ApplicationInformationAttributeProvider {\n    get type() {\n        return 'scoped';\n    }\n    constructor(options) {\n        this.APPLICATION_ATTRIBUTE = 'application';\n        this.APPLICATION_VERSION_ATTRIBUTE = 'application.version';\n        this._application = options.name;\n        this._applicationVersion = options.version;\n        if (!this._application || !this._applicationVersion) {\n            throw new Error('Missing application/application version information!');\n        }\n    }\n    get() {\n        return {\n            [this.APPLICATION_ATTRIBUTE]: this._application,\n            [this.APPLICATION_VERSION_ATTRIBUTE]: this._applicationVersion,\n        };\n    }\n}\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar uaParser = {exports: {}};\n\n(function (module, exports) {\n\t/////////////////////////////////////////////////////////////////////////////////\n\t/* UAParser.js v1.0.38\n\t   Copyright © 2012-2021 Faisal Salman <f@faisalman.com>\n\t   MIT License *//*\n\t   Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n\t   Supports browser & node.js environment. \n\t   Demo   : https://faisalman.github.io/ua-parser-js\n\t   Source : https://github.com/faisalman/ua-parser-js */\n\t/////////////////////////////////////////////////////////////////////////////////\n\n\t(function (window, undefined$1) {\n\n\t    //////////////\n\t    // Constants\n\t    /////////////\n\n\n\t    var LIBVERSION  = '1.0.38',\n\t        EMPTY       = '',\n\t        UNKNOWN     = '?',\n\t        FUNC_TYPE   = 'function',\n\t        UNDEF_TYPE  = 'undefined',\n\t        OBJ_TYPE    = 'object',\n\t        STR_TYPE    = 'string',\n\t        MAJOR       = 'major',\n\t        MODEL       = 'model',\n\t        NAME        = 'name',\n\t        TYPE        = 'type',\n\t        VENDOR      = 'vendor',\n\t        VERSION     = 'version',\n\t        ARCHITECTURE= 'architecture',\n\t        CONSOLE     = 'console',\n\t        MOBILE      = 'mobile',\n\t        TABLET      = 'tablet',\n\t        SMARTTV     = 'smarttv',\n\t        WEARABLE    = 'wearable',\n\t        EMBEDDED    = 'embedded',\n\t        UA_MAX_LENGTH = 500;\n\n\t    var AMAZON  = 'Amazon',\n\t        APPLE   = 'Apple',\n\t        ASUS    = 'ASUS',\n\t        BLACKBERRY = 'BlackBerry',\n\t        BROWSER = 'Browser',\n\t        CHROME  = 'Chrome',\n\t        EDGE    = 'Edge',\n\t        FIREFOX = 'Firefox',\n\t        GOOGLE  = 'Google',\n\t        HUAWEI  = 'Huawei',\n\t        LG      = 'LG',\n\t        MICROSOFT = 'Microsoft',\n\t        MOTOROLA  = 'Motorola',\n\t        OPERA   = 'Opera',\n\t        SAMSUNG = 'Samsung',\n\t        SHARP   = 'Sharp',\n\t        SONY    = 'Sony',\n\t        XIAOMI  = 'Xiaomi',\n\t        ZEBRA   = 'Zebra',\n\t        FACEBOOK    = 'Facebook',\n\t        CHROMIUM_OS = 'Chromium OS',\n\t        MAC_OS  = 'Mac OS';\n\n\t    ///////////\n\t    // Helper\n\t    //////////\n\n\t    var extend = function (regexes, extensions) {\n\t            var mergedRegexes = {};\n\t            for (var i in regexes) {\n\t                if (extensions[i] && extensions[i].length % 2 === 0) {\n\t                    mergedRegexes[i] = extensions[i].concat(regexes[i]);\n\t                } else {\n\t                    mergedRegexes[i] = regexes[i];\n\t                }\n\t            }\n\t            return mergedRegexes;\n\t        },\n\t        enumerize = function (arr) {\n\t            var enums = {};\n\t            for (var i=0; i<arr.length; i++) {\n\t                enums[arr[i].toUpperCase()] = arr[i];\n\t            }\n\t            return enums;\n\t        },\n\t        has = function (str1, str2) {\n\t            return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;\n\t        },\n\t        lowerize = function (str) {\n\t            return str.toLowerCase();\n\t        },\n\t        majorize = function (version) {\n\t            return typeof(version) === STR_TYPE ? version.replace(/[^\\d\\.]/g, EMPTY).split('.')[0] : undefined$1;\n\t        },\n\t        trim = function (str, len) {\n\t            if (typeof(str) === STR_TYPE) {\n\t                str = str.replace(/^\\s\\s*/, EMPTY);\n\t                return typeof(len) === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);\n\t            }\n\t    };\n\n\t    ///////////////\n\t    // Map helper\n\t    //////////////\n\n\t    var rgxMapper = function (ua, arrays) {\n\n\t            var i = 0, j, k, p, q, matches, match;\n\n\t            // loop through all regexes maps\n\t            while (i < arrays.length && !matches) {\n\n\t                var regex = arrays[i],       // even sequence (0,2,4,..)\n\t                    props = arrays[i + 1];   // odd sequence (1,3,5,..)\n\t                j = k = 0;\n\n\t                // try matching uastring with regexes\n\t                while (j < regex.length && !matches) {\n\n\t                    if (!regex[j]) { break; }\n\t                    matches = regex[j++].exec(ua);\n\n\t                    if (!!matches) {\n\t                        for (p = 0; p < props.length; p++) {\n\t                            match = matches[++k];\n\t                            q = props[p];\n\t                            // check if given property is actually array\n\t                            if (typeof q === OBJ_TYPE && q.length > 0) {\n\t                                if (q.length === 2) {\n\t                                    if (typeof q[1] == FUNC_TYPE) {\n\t                                        // assign modified match\n\t                                        this[q[0]] = q[1].call(this, match);\n\t                                    } else {\n\t                                        // assign given value, ignore regex match\n\t                                        this[q[0]] = q[1];\n\t                                    }\n\t                                } else if (q.length === 3) {\n\t                                    // check whether function or regex\n\t                                    if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n\t                                        // call function (usually string mapper)\n\t                                        this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined$1;\n\t                                    } else {\n\t                                        // sanitize match using given regex\n\t                                        this[q[0]] = match ? match.replace(q[1], q[2]) : undefined$1;\n\t                                    }\n\t                                } else if (q.length === 4) {\n\t                                        this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined$1;\n\t                                }\n\t                            } else {\n\t                                this[q] = match ? match : undefined$1;\n\t                            }\n\t                        }\n\t                    }\n\t                }\n\t                i += 2;\n\t            }\n\t        },\n\n\t        strMapper = function (str, map) {\n\n\t            for (var i in map) {\n\t                // check if current value is array\n\t                if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n\t                    for (var j = 0; j < map[i].length; j++) {\n\t                        if (has(map[i][j], str)) {\n\t                            return (i === UNKNOWN) ? undefined$1 : i;\n\t                        }\n\t                    }\n\t                } else if (has(map[i], str)) {\n\t                    return (i === UNKNOWN) ? undefined$1 : i;\n\t                }\n\t            }\n\t            return str;\n\t    };\n\n\t    ///////////////\n\t    // String map\n\t    //////////////\n\n\t    // Safari < 3.0\n\t    var oldSafariMap = {\n\t            '1.0'   : '/8',\n\t            '1.2'   : '/1',\n\t            '1.3'   : '/3',\n\t            '2.0'   : '/412',\n\t            '2.0.2' : '/416',\n\t            '2.0.3' : '/417',\n\t            '2.0.4' : '/419',\n\t            '?'     : '/'\n\t        },\n\t        windowsVersionMap = {\n\t            'ME'        : '4.90',\n\t            'NT 3.11'   : 'NT3.51',\n\t            'NT 4.0'    : 'NT4.0',\n\t            '2000'      : 'NT 5.0',\n\t            'XP'        : ['NT 5.1', 'NT 5.2'],\n\t            'Vista'     : 'NT 6.0',\n\t            '7'         : 'NT 6.1',\n\t            '8'         : 'NT 6.2',\n\t            '8.1'       : 'NT 6.3',\n\t            '10'        : ['NT 6.4', 'NT 10.0'],\n\t            'RT'        : 'ARM'\n\t    };\n\n\t    //////////////\n\t    // Regex map\n\t    /////////////\n\n\t    var regexes = {\n\n\t        browser : [[\n\n\t            /\\b(?:crmo|crios)\\/([\\w\\.]+)/i                                      // Chrome for Android/iOS\n\t            ], [VERSION, [NAME, 'Chrome']], [\n\t            /edg(?:e|ios|a)?\\/([\\w\\.]+)/i                                       // Microsoft Edge\n\t            ], [VERSION, [NAME, 'Edge']], [\n\n\t            // Presto based\n\t            /(opera mini)\\/([-\\w\\.]+)/i,                                        // Opera Mini\n\t            /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i,                 // Opera Mobi/Tablet\n\t            /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i                           // Opera\n\t            ], [NAME, VERSION], [\n\t            /opios[\\/ ]+([\\w\\.]+)/i                                             // Opera mini on iphone >= 8.0\n\t            ], [VERSION, [NAME, OPERA+' Mini']], [\n\t            /\\bop(?:rg)?x\\/([\\w\\.]+)/i                                          // Opera GX\n\t            ], [VERSION, [NAME, OPERA+' GX']], [\n\t            /\\bopr\\/([\\w\\.]+)/i                                                 // Opera Webkit\n\t            ], [VERSION, [NAME, OPERA]], [\n\n\t            // Mixed\n\t            /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i            // Baidu\n\t            ], [VERSION, [NAME, 'Baidu']], [\n\t            /(kindle)\\/([\\w\\.]+)/i,                                             // Kindle\n\t            /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i,      // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n\t            // Trident based\n\t            /(avant|iemobile|slim)\\s?(?:browser)?[\\/ ]?([\\w\\.]*)/i,             // Avant/IEMobile/SlimBrowser\n\t            /(?:ms|\\()(ie) ([\\w\\.]+)/i,                                         // Internet Explorer\n\n\t            // Webkit/KHTML based                                               // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n\t            /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\n\t                                                                                // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n\t            /(heytap|ovi)browser\\/([\\d\\.]+)/i,                                  // Heytap/Ovi\n\t            /(weibo)__([\\d\\.]+)/i                                               // Weibo\n\t            ], [NAME, VERSION], [\n\t            /\\bddg\\/([\\w\\.]+)/i                                                 // DuckDuckGo\n\t            ], [VERSION, [NAME, 'DuckDuckGo']], [\n\t            /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i                 // UCBrowser\n\t            ], [VERSION, [NAME, 'UC'+BROWSER]], [\n\t            /microm.+\\bqbcore\\/([\\w\\.]+)/i,                                     // WeChat Desktop for Windows Built-in Browser\n\t            /\\bqbcore\\/([\\w\\.]+).+microm/i,\n\t            /micromessenger\\/([\\w\\.]+)/i                                        // WeChat\n\t            ], [VERSION, [NAME, 'WeChat']], [\n\t            /konqueror\\/([\\w\\.]+)/i                                             // Konqueror\n\t            ], [VERSION, [NAME, 'Konqueror']], [\n\t            /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i                       // IE11\n\t            ], [VERSION, [NAME, 'IE']], [\n\t            /ya(?:search)?browser\\/([\\w\\.]+)/i                                  // Yandex\n\t            ], [VERSION, [NAME, 'Yandex']], [\n\t            /slbrowser\\/([\\w\\.]+)/i                                             // Smart Lenovo Browser\n\t            ], [VERSION, [NAME, 'Smart Lenovo '+BROWSER]], [\n\t            /(avast|avg)\\/([\\w\\.]+)/i                                           // Avast/AVG Secure Browser\n\t            ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\n\t            /\\bfocus\\/([\\w\\.]+)/i                                               // Firefox Focus\n\t            ], [VERSION, [NAME, FIREFOX+' Focus']], [\n\t            /\\bopt\\/([\\w\\.]+)/i                                                 // Opera Touch\n\t            ], [VERSION, [NAME, OPERA+' Touch']], [\n\t            /coc_coc\\w+\\/([\\w\\.]+)/i                                            // Coc Coc Browser\n\t            ], [VERSION, [NAME, 'Coc Coc']], [\n\t            /dolfin\\/([\\w\\.]+)/i                                                // Dolphin\n\t            ], [VERSION, [NAME, 'Dolphin']], [\n\t            /coast\\/([\\w\\.]+)/i                                                 // Opera Coast\n\t            ], [VERSION, [NAME, OPERA+' Coast']], [\n\t            /miuibrowser\\/([\\w\\.]+)/i                                           // MIUI Browser\n\t            ], [VERSION, [NAME, 'MIUI '+BROWSER]], [\n\t            /fxios\\/([-\\w\\.]+)/i                                                // Firefox for iOS\n\t            ], [VERSION, [NAME, FIREFOX]], [\n\t            /\\bqihu|(qi?ho?o?|360)browser/i                                     // 360\n\t            ], [[NAME, '360 ' + BROWSER]], [\n\t            /(oculus|sailfish|huawei|vivo)browser\\/([\\w\\.]+)/i\n\t            ], [[NAME, /(.+)/, '$1 ' + BROWSER], VERSION], [                    // Oculus/Sailfish/HuaweiBrowser/VivoBrowser\n\t            /samsungbrowser\\/([\\w\\.]+)/i                                        // Samsung Internet\n\t            ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n\t            /(comodo_dragon)\\/([\\w\\.]+)/i                                       // Comodo Dragon\n\t            ], [[NAME, /_/g, ' '], VERSION], [\n\t            /metasr[\\/ ]?([\\d\\.]+)/i                                            // Sogou Explorer\n\t            ], [VERSION, [NAME, 'Sogou Explorer']], [\n\t            /(sogou)mo\\w+\\/([\\d\\.]+)/i                                          // Sogou Mobile\n\t            ], [[NAME, 'Sogou Mobile'], VERSION], [\n\t            /(electron)\\/([\\w\\.]+) safari/i,                                    // Electron-based App\n\t            /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i,                   // Tesla\n\t            /m?(qqbrowser|2345Explorer)[\\/ ]?([\\w\\.]+)/i                        // QQBrowser/2345 Browser\n\t            ], [NAME, VERSION], [\n\t            /(lbbrowser)/i,                                                     // LieBao Browser\n\t            /\\[(linkedin)app\\]/i                                                // LinkedIn App for iOS & Android\n\t            ], [NAME], [\n\n\t            // WebView\n\t            /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i       // Facebook App for iOS & Android\n\t            ], [[NAME, FACEBOOK], VERSION], [\n\t            /(Klarna)\\/([\\w\\.]+)/i,                                             // Klarna Shopping Browser for iOS & Android\n\t            /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i,                             // Kakao App\n\t            /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i,                                  // Naver InApp\n\t            /safari (line)\\/([\\w\\.]+)/i,                                        // Line App for iOS\n\t            /\\b(line)\\/([\\w\\.]+)\\/iab/i,                                        // Line App for Android\n\t            /(alipay)client\\/([\\w\\.]+)/i,                                       // Alipay\n\t            /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i,                               // Twitter\n\t            /(chromium|instagram|snapchat)[\\/ ]([-\\w\\.]+)/i                     // Chromium/Instagram/Snapchat\n\t            ], [NAME, VERSION], [\n\t            /\\bgsa\\/([\\w\\.]+) .*safari\\//i                                      // Google Search Appliance on iOS\n\t            ], [VERSION, [NAME, 'GSA']], [\n\t            /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i                        // TikTok\n\t            ], [VERSION, [NAME, 'TikTok']], [\n\n\t            /headlesschrome(?:\\/([\\w\\.]+)| )/i                                  // Chrome Headless\n\t            ], [VERSION, [NAME, CHROME+' Headless']], [\n\n\t            / wv\\).+(chrome)\\/([\\w\\.]+)/i                                       // Chrome WebView\n\t            ], [[NAME, CHROME+' WebView'], VERSION], [\n\n\t            /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i           // Android Browser\n\t            ], [VERSION, [NAME, 'Android '+BROWSER]], [\n\n\t            /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i       // Chrome/OmniWeb/Arora/Tizen/Nokia\n\t            ], [NAME, VERSION], [\n\n\t            /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i                      // Mobile Safari\n\t            ], [VERSION, [NAME, 'Mobile Safari']], [\n\t            /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i                // Safari & Safari Mobile\n\t            ], [VERSION, NAME], [\n\t            /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i                      // Safari < 3.0\n\t            ], [NAME, [VERSION, strMapper, oldSafariMap]], [\n\n\t            /(webkit|khtml)\\/([\\w\\.]+)/i\n\t            ], [NAME, VERSION], [\n\n\t            // Gecko based\n\t            /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i                              // Netscape\n\t            ], [[NAME, 'Netscape'], VERSION], [\n\t            /mobile vr; rv:([\\w\\.]+)\\).+firefox/i                               // Firefox Reality\n\t            ], [VERSION, [NAME, FIREFOX+' Reality']], [\n\t            /ekiohf.+(flow)\\/([\\w\\.]+)/i,                                       // Flow\n\t            /(swiftfox)/i,                                                      // Swiftfox\n\t            /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\n\t                                                                                // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n\t            /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n\t                                                                                // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n\t            /(firefox)\\/([\\w\\.]+)/i,                                            // Other Firefox-based\n\t            /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i,                         // Mozilla\n\n\t            // Other\n\t            /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n\t                                                                                // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n\t            /(links) \\(([\\w\\.]+)/i,                                             // Links\n\t            /panasonic;(viera)/i                                                // Panasonic Viera\n\t            ], [NAME, VERSION], [\n\t            \n\t            /(cobalt)\\/([\\w\\.]+)/i                                              // Cobalt\n\t            ], [NAME, [VERSION, /master.|lts./, \"\"]]\n\t        ],\n\n\t        cpu : [[\n\n\t            /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i                     // AMD64 (x64)\n\t            ], [[ARCHITECTURE, 'amd64']], [\n\n\t            /(ia32(?=;))/i                                                      // IA32 (quicktime)\n\t            ], [[ARCHITECTURE, lowerize]], [\n\n\t            /((?:i[346]|x)86)[;\\)]/i                                            // IA32 (x86)\n\t            ], [[ARCHITECTURE, 'ia32']], [\n\n\t            /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i                                 // ARM64\n\t            ], [[ARCHITECTURE, 'arm64']], [\n\n\t            /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i                                   // ARMHF\n\t            ], [[ARCHITECTURE, 'armhf']], [\n\n\t            // PocketPC mistakenly identified as PowerPC\n\t            /windows (ce|mobile); ppc;/i\n\t            ], [[ARCHITECTURE, 'arm']], [\n\n\t            /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i                            // PowerPC\n\t            ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n\t            /(sun4\\w)[;\\)]/i                                                    // SPARC\n\t            ], [[ARCHITECTURE, 'sparc']], [\n\n\t            /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n\t                                                                                // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n\t            ], [[ARCHITECTURE, lowerize]]\n\t        ],\n\n\t        device : [[\n\n\t            //////////////////////////\n\t            // MOBILES & TABLETS\n\t            /////////////////////////\n\n\t            // Samsung\n\t            /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n\t            ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n\t            /\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n\t            /samsung[- ]([-\\w]+)/i,\n\t            /sec-(sgh\\w+)/i\n\t            ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n\t            // Apple\n\t            /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i                          // iPod/iPhone\n\t            ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n\t            /\\((ipad);[-\\w\\),; ]+apple/i,                                       // iPad\n\t            /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n\t            /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n\t            ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n\t            /(macintosh);/i\n\t            ], [MODEL, [VENDOR, APPLE]], [\n\n\t            // Sharp\n\t            /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n\t            ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n\t            // Huawei\n\t            /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n\t            ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n\t            /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\n\t            /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n\t            ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n\t            // Xiaomi\n\t            /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i,                  // Xiaomi POCO\n\t            /\\b; (\\w+) build\\/hm\\1/i,                                           // Xiaomi Hongmi 'numeric' models\n\t            /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i,                             // Xiaomi Hongmi\n\t            /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i,                   // Xiaomi Redmi\n\t            /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i,        // Xiaomi Redmi 'numeric' models\n\t            /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\n\t            ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n\t            /oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i,                     // Redmi Pad\n\t            /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i                        // Mi Pad tablets\n\t            ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n\t            // OPPO\n\t            /; (\\w+) bui.+ oppo/i,\n\t            /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n\t            ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\n\t            /\\b(opd2\\d{3}a?) bui/i\n\t            ], [MODEL, [VENDOR, 'OPPO'], [TYPE, TABLET]], [\n\n\t            // Vivo\n\t            /vivo (\\w+)(?: bui|\\))/i,\n\t            /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n\t            ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n\t            // Realme\n\t            /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n\t            ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n\t            // Motorola\n\t            /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n\t            /\\bmot(?:orola)?[- ](\\w*)/i,\n\t            /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n\t            ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n\t            /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n\t            ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n\t            // LG\n\t            /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n\t            ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n\t            /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n\t            /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n\t            /\\blg-?([\\d\\w]+) bui/i\n\t            ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n\t            // Lenovo\n\t            /(ideatab[-\\w ]+)/i,\n\t            /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n\t            ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\n\n\t            // Nokia\n\t            /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n\t            /nokia[-_ ]?([-\\w\\.]*)/i\n\t            ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\n\n\t            // Google\n\t            /(pixel c)\\b/i                                                      // Google Pixel C\n\t            ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n\t            /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i                         // Google Pixel\n\t            ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n\t            // Sony\n\t            /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n\t            ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n\t            /sony tablet [ps]/i,\n\t            /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n\t            ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n\t            // OnePlus\n\t            / (kb2005|in20[12]5|be20[12][59])\\b/i,\n\t            /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n\t            ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n\t            // Amazon\n\t            /(alexa)webm/i,\n\t            /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i,                             // Kindle Fire without Silk / Echo Show\n\t            /(kf[a-z]+)( bui|\\)).+silk\\//i                                      // Kindle Fire HD\n\t            ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n\t            /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i                     // Fire Phone\n\t            ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n\t            // BlackBerry\n\t            /(playbook);[-\\w\\),; ]+(rim)/i                                      // BlackBerry PlayBook\n\t            ], [MODEL, VENDOR, [TYPE, TABLET]], [\n\t            /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n\t            /\\(bb10; (\\w+)/i                                                    // BlackBerry 10\n\t            ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n\t            // Asus\n\t            /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n\t            ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n\t            / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n\t            ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n\t            // HTC\n\t            /(nexus 9)/i                                                        // HTC Nexus 9\n\t            ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n\t            /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i,                         // HTC\n\n\t            // ZTE\n\t            /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n\t            /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i         // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n\t            ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n\t            // Acer\n\t            /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n\t            ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n\t            // Meizu\n\t            /droid.+; (m[1-5] note) bui/i,\n\t            /\\bmz-([-\\w]{2,})/i\n\t            ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n\t                \n\t            // Ulefone\n\t            /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n\t            ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n\t            // MIXED\n\t            /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno)[-_ ]?([-\\w]*)/i,\n\t                                                                                // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n\t            /(hp) ([\\w ]+\\w)/i,                                                 // HP iPAQ\n\t            /(asus)-?(\\w+)/i,                                                   // Asus\n\t            /(microsoft); (lumia[\\w ]+)/i,                                      // Microsoft Lumia\n\t            /(lenovo)[-_ ]?([-\\w]+)/i,                                          // Lenovo\n\t            /(jolla)/i,                                                         // Jolla\n\t            /(oppo) ?([\\w ]+) bui/i                                             // OPPO\n\t            ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n\t            /(kobo)\\s(ereader|touch)/i,                                         // Kobo\n\t            /(archos) (gamepad2?)/i,                                            // Archos\n\t            /(hp).+(touchpad(?!.+tablet)|tablet)/i,                             // HP TouchPad\n\t            /(kindle)\\/([\\w\\.]+)/i,                                             // Kindle\n\t            /(nook)[\\w ]+build\\/(\\w+)/i,                                        // Nook\n\t            /(dell) (strea[kpr\\d ]*[\\dko])/i,                                   // Dell Streak\n\t            /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i,                                  // Le Pan Tablets\n\t            /(trinity)[- ]*(t\\d{3}) bui/i,                                      // Trinity Tablets\n\t            /(gigaset)[- ]+(q\\w{1,9}) bui/i,                                    // Gigaset Tablets\n\t            /(vodafone) ([\\w ]+)(?:\\)| bui)/i                                   // Vodafone\n\t            ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n\t            /(surface duo)/i                                                    // Surface Duo\n\t            ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n\t            /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i                                 // Fairphone\n\t            ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n\t            /(u304aa)/i                                                         // AT&T\n\t            ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\n\t            /\\bsie-(\\w*)/i                                                      // Siemens\n\t            ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n\t            /\\b(rct\\w+) b/i                                                     // RCA Tablets\n\t            ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n\t            /\\b(venue[\\d ]{2,7}) b/i                                            // Dell Venue Tablets\n\t            ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n\t            /\\b(q(?:mv|ta)\\w+) b/i                                              // Verizon Tablet\n\t            ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n\t            /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i                       // Barnes & Noble Tablet\n\t            ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\n\t            /\\b(tm\\d{3}\\w+) b/i\n\t            ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n\t            /\\b(k88) b/i                                                        // ZTE K Series Tablet\n\t            ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n\t            /\\b(nx\\d{3}j) b/i                                                   // ZTE Nubia\n\t            ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\n\t            /\\b(gen\\d{3}) b.+49h/i                                              // Swiss GEN Mobile\n\t            ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n\t            /\\b(zur\\d{3}) b/i                                                   // Swiss ZUR Tablet\n\t            ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n\t            /\\b((zeki)?tb.*\\b) b/i                                              // Zeki Tablets\n\t            ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n\t            /\\b([yr]\\d{2}) b/i,\n\t            /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i                                // Dragon Touch Tablet\n\t            ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n\t            /\\b(ns-?\\w{0,9}) b/i                                                // Insignia Tablets\n\t            ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n\t            /\\b((nxa|next)-?\\w{0,9}) b/i                                        // NextBook Tablets\n\t            ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n\t            /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i                  // Voice Xtreme Phones\n\t            ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\n\t            /\\b(lvtel\\-)?(v1[12]) b/i                                           // LvTel Phones\n\t            ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n\t            /\\b(ph-1) /i                                                        // Essential PH-1\n\t            ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\n\t            /\\b(v(100md|700na|7011|917g).*\\b) b/i                               // Envizen Tablets\n\t            ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n\t            /\\b(trio[-\\w\\. ]+) b/i                                              // MachSpeed Tablets\n\t            ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n\t            /\\btu_(1491) b/i                                                    // Rotor Tablets\n\t            ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n\t            /(shield[\\w ]+) b/i                                                 // Nvidia Shield Tablets\n\t            ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\n\t            /(sprint) (\\w+)/i                                                   // Sprint Phones\n\t            ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\t            /(kin\\.[onetw]{3})/i                                                // Microsoft Kin\n\t            ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n\t            /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i             // Zebra\n\t            ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n\t            /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n\t            ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n\t            ///////////////////\n\t            // SMARTTVS\n\t            ///////////////////\n\n\t            /smart-tv.+(samsung)/i                                              // Samsung\n\t            ], [VENDOR, [TYPE, SMARTTV]], [\n\t            /hbbtv.+maple;(\\d+)/i\n\t            ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n\t            /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i        // LG SmartTV\n\t            ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n\t            /(apple) ?tv/i                                                      // Apple TV\n\t            ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n\t            /crkey/i                                                            // Google Chromecast\n\t            ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n\t            /droid.+aft(\\w+)( bui|\\))/i                                         // Fire TV\n\t            ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n\t            /\\(dtv[\\);].+(aquos)/i,\n\t            /(aquos-tv[\\w ]+)\\)/i                                               // Sharp\n\t            ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n\t            /(bravia[\\w ]+)( bui|\\))/i                                              // Sony\n\t            ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n\t            /(mitv-\\w{5}) bui/i                                                 // Xiaomi\n\t            ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n\t            /Hbbtv.*(technisat) (.*);/i                                         // TechniSAT\n\t            ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n\t            /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i,                          // Roku\n\t            /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i         // HbbTV devices\n\t            ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n\t            /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i                   // SmartTV from Unidentified Vendors\n\t            ], [[TYPE, SMARTTV]], [\n\n\t            ///////////////////\n\t            // CONSOLES\n\t            ///////////////////\n\n\t            /(ouya)/i,                                                          // Ouya\n\t            /(nintendo) ([wids3utch]+)/i                                        // Nintendo\n\t            ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n\t            /droid.+; (shield) bui/i                                            // Nvidia\n\t            ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n\t            /(playstation [345portablevi]+)/i                                   // Playstation\n\t            ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n\t            /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i                                // Microsoft Xbox\n\t            ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n\t            ///////////////////\n\t            // WEARABLES\n\t            ///////////////////\n\n\t            /((pebble))app/i                                                    // Pebble\n\t            ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n\t            /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i                              // Apple Watch\n\t            ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n\t            /droid.+; (glass) \\d/i                                              // Google Glass\n\t            ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n\t            /droid.+; (wt63?0{2,3})\\)/i\n\t            ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n\t            /(quest( \\d| pro)?)/i                                               // Oculus Quest\n\t            ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n\n\t            ///////////////////\n\t            // EMBEDDED\n\t            ///////////////////\n\n\t            /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i                              // Tesla\n\t            ], [VENDOR, [TYPE, EMBEDDED]], [\n\t            /(aeobc)\\b/i                                                        // Echo Dot\n\t            ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n\n\t            ////////////////////\n\t            // MIXED (GENERIC)\n\t            ///////////////////\n\n\t            /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i    // Android Phones from Unidentified Vendors\n\t            ], [MODEL, [TYPE, MOBILE]], [\n\t            /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i       // Android Tablets from Unidentified Vendors\n\t            ], [MODEL, [TYPE, TABLET]], [\n\t            /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i                      // Unidentifiable Tablet\n\t            ], [[TYPE, TABLET]], [\n\t            /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i    // Unidentifiable Mobile\n\t            ], [[TYPE, MOBILE]], [\n\t            /(android[-\\w\\. ]{0,9});.+buil/i                                    // Generic Android Device\n\t            ], [MODEL, [VENDOR, 'Generic']]\n\t        ],\n\n\t        engine : [[\n\n\t            /windows.+ edge\\/([\\w\\.]+)/i                                       // EdgeHTML\n\t            ], [VERSION, [NAME, EDGE+'HTML']], [\n\n\t            /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i                         // Blink\n\t            ], [VERSION, [NAME, 'Blink']], [\n\n\t            /(presto)\\/([\\w\\.]+)/i,                                             // Presto\n\t            /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n\t            /ekioh(flow)\\/([\\w\\.]+)/i,                                          // Flow\n\t            /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i,                           // KHTML/Tasman/Links\n\t            /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i,                                      // iCab\n\t            /\\b(libweb)/i\n\t            ], [NAME, VERSION], [\n\n\t            /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i                                     // Gecko\n\t            ], [VERSION, NAME]\n\t        ],\n\n\t        os : [[\n\n\t            // Windows\n\t            /microsoft (windows) (vista|xp)/i                                   // Windows (iTunes)\n\t            ], [NAME, VERSION], [\n\t            /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i             // Windows Phone\n\t            ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n\t            /windows nt 6\\.2; (arm)/i,                                        // Windows RT\n\t            /windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,\n\t            /(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n\t            ], [[VERSION, strMapper, windowsVersionMap], [NAME, 'Windows']], [\n\n\t            // iOS/macOS\n\t            /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i,              // iOS\n\t            /(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,\n\t            /cfnetwork\\/.+darwin/i\n\t            ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n\t            /(mac os x) ?([\\w\\. ]*)/i,\n\t            /(macintosh|mac_powerpc\\b)(?!.+haiku)/i                             // Mac OS\n\t            ], [[NAME, MAC_OS], [VERSION, /_/g, '.']], [\n\n\t            // Mobile OSes\n\t            /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i                    // Android-x86/HarmonyOS\n\t            ], [VERSION, NAME], [                                               // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n\t            /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\n\t            /(blackberry)\\w*\\/([\\w\\.]*)/i,                                      // Blackberry\n\t            /(tizen|kaios)[\\/ ]([\\w\\.]+)/i,                                     // Tizen/KaiOS\n\t            /\\((series40);/i                                                    // Series 40\n\t            ], [NAME, VERSION], [\n\t            /\\(bb(10);/i                                                        // BlackBerry 10\n\t            ], [VERSION, [NAME, BLACKBERRY]], [\n\t            /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i         // Symbian\n\t            ], [VERSION, [NAME, 'Symbian']], [\n\t            /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n\t            ], [VERSION, [NAME, FIREFOX+' OS']], [\n\t            /web0s;.+rt(tv)/i,\n\t            /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i                              // WebOS\n\t            ], [VERSION, [NAME, 'webOS']], [\n\t            /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i                              // watchOS\n\t            ], [VERSION, [NAME, 'watchOS']], [\n\n\t            // Google Chromecast\n\t            /crkey\\/([\\d\\.]+)/i                                                 // Google Chromecast\n\t            ], [VERSION, [NAME, CHROME+'cast']], [\n\t            /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i                                  // Chromium OS\n\t            ], [[NAME, CHROMIUM_OS], VERSION],[\n\n\t            // Smart TVs\n\t            /panasonic;(viera)/i,                                               // Panasonic Viera\n\t            /(netrange)mmh/i,                                                   // Netrange\n\t            /(nettv)\\/(\\d+\\.[\\w\\.]+)/i,                                         // NetTV\n\n\t            // Console\n\t            /(nintendo|playstation) ([wids345portablevuch]+)/i,                 // Nintendo/Playstation\n\t            /(xbox); +xbox ([^\\);]+)/i,                                         // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n\t            // Other\n\t            /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i,                            // Joli/Palm\n\t            /(mint)[\\/\\(\\) ]?(\\w*)/i,                                           // Mint\n\t            /(mageia|vectorlinux)[; ]/i,                                        // Mageia/VectorLinux\n\t            /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n\t                                                                                // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n\t            /(hurd|linux) ?([\\w\\.]*)/i,                                         // Hurd/Linux\n\t            /(gnu) ?([\\w\\.]*)/i,                                                // GNU\n\t            /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n\t            /(haiku) (\\w+)/i                                                    // Haiku\n\t            ], [NAME, VERSION], [\n\t            /(sunos) ?([\\w\\.\\d]*)/i                                             // Solaris\n\t            ], [[NAME, 'Solaris'], VERSION], [\n\t            /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i,                              // Solaris\n\t            /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i,                                  // AIX\n\t            /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS\n\t            /(unix) ?([\\w\\.]*)/i                                                // UNIX\n\t            ], [NAME, VERSION]\n\t        ]\n\t    };\n\n\t    /////////////////\n\t    // Constructor\n\t    ////////////////\n\n\t    var UAParser = function (ua, extensions) {\n\n\t        if (typeof ua === OBJ_TYPE) {\n\t            extensions = ua;\n\t            ua = undefined$1;\n\t        }\n\n\t        if (!(this instanceof UAParser)) {\n\t            return new UAParser(ua, extensions).getResult();\n\t        }\n\n\t        var _navigator = (typeof window !== UNDEF_TYPE && window.navigator) ? window.navigator : undefined$1;\n\t        var _ua = ua || ((_navigator && _navigator.userAgent) ? _navigator.userAgent : EMPTY);\n\t        var _uach = (_navigator && _navigator.userAgentData) ? _navigator.userAgentData : undefined$1;\n\t        var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n\t        var _isSelfNav = _navigator && _navigator.userAgent == _ua;\n\n\t        this.getBrowser = function () {\n\t            var _browser = {};\n\t            _browser[NAME] = undefined$1;\n\t            _browser[VERSION] = undefined$1;\n\t            rgxMapper.call(_browser, _ua, _rgxmap.browser);\n\t            _browser[MAJOR] = majorize(_browser[VERSION]);\n\t            // Brave-specific detection\n\t            if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {\n\t                _browser[NAME] = 'Brave';\n\t            }\n\t            return _browser;\n\t        };\n\t        this.getCPU = function () {\n\t            var _cpu = {};\n\t            _cpu[ARCHITECTURE] = undefined$1;\n\t            rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n\t            return _cpu;\n\t        };\n\t        this.getDevice = function () {\n\t            var _device = {};\n\t            _device[VENDOR] = undefined$1;\n\t            _device[MODEL] = undefined$1;\n\t            _device[TYPE] = undefined$1;\n\t            rgxMapper.call(_device, _ua, _rgxmap.device);\n\t            if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {\n\t                _device[TYPE] = MOBILE;\n\t            }\n\t            // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n\t            if (_isSelfNav && _device[MODEL] == 'Macintosh' && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {\n\t                _device[MODEL] = 'iPad';\n\t                _device[TYPE] = TABLET;\n\t            }\n\t            return _device;\n\t        };\n\t        this.getEngine = function () {\n\t            var _engine = {};\n\t            _engine[NAME] = undefined$1;\n\t            _engine[VERSION] = undefined$1;\n\t            rgxMapper.call(_engine, _ua, _rgxmap.engine);\n\t            return _engine;\n\t        };\n\t        this.getOS = function () {\n\t            var _os = {};\n\t            _os[NAME] = undefined$1;\n\t            _os[VERSION] = undefined$1;\n\t            rgxMapper.call(_os, _ua, _rgxmap.os);\n\t            if (_isSelfNav && !_os[NAME] && _uach && _uach.platform && _uach.platform != 'Unknown') {\n\t                _os[NAME] = _uach.platform  \n\t                                    .replace(/chrome os/i, CHROMIUM_OS)\n\t                                    .replace(/macos/i, MAC_OS);           // backward compatibility\n\t            }\n\t            return _os;\n\t        };\n\t        this.getResult = function () {\n\t            return {\n\t                ua      : this.getUA(),\n\t                browser : this.getBrowser(),\n\t                engine  : this.getEngine(),\n\t                os      : this.getOS(),\n\t                device  : this.getDevice(),\n\t                cpu     : this.getCPU()\n\t            };\n\t        };\n\t        this.getUA = function () {\n\t            return _ua;\n\t        };\n\t        this.setUA = function (ua) {\n\t            _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\n\t            return this;\n\t        };\n\t        this.setUA(_ua);\n\t        return this;\n\t    };\n\n\t    UAParser.VERSION = LIBVERSION;\n\t    UAParser.BROWSER =  enumerize([NAME, VERSION, MAJOR]);\n\t    UAParser.CPU = enumerize([ARCHITECTURE]);\n\t    UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n\t    UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n\t    ///////////\n\t    // Export\n\t    //////////\n\n\t    // check js environment\n\t    {\n\t        // nodejs env\n\t        if (module.exports) {\n\t            exports = module.exports = UAParser;\n\t        }\n\t        exports.UAParser = UAParser;\n\t    }\n\n\t    // jQuery/Zepto specific (optional)\n\t    // Note:\n\t    //   In AMD env the global scope should be kept clean, but jQuery is an exception.\n\t    //   jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n\t    //   and we should catch that.\n\t    var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n\t    if ($ && !$.ua) {\n\t        var parser = new UAParser();\n\t        $.ua = parser.getResult();\n\t        $.ua.get = function () {\n\t            return parser.getUA();\n\t        };\n\t        $.ua.set = function (ua) {\n\t            parser.setUA(ua);\n\t            var result = parser.getResult();\n\t            for (var prop in result) {\n\t                $.ua[prop] = result[prop];\n\t            }\n\t        };\n\t    }\n\n\t})(typeof window === 'object' ? window : commonjsGlobal); \n} (uaParser, uaParser.exports));\n\nvar uaParserExports = uaParser.exports;\n\nclass UserAgentAttributeProvider {\n    get type() {\n        return 'scoped';\n    }\n    get() {\n        const parser = new uaParserExports();\n        const information = parser.getResult();\n        return {\n            'browser.name': information.browser.name,\n            'browser.version': information.browser.version,\n            'engine.name': information.engine.name,\n            'engine.version': information.engine.version,\n            'browser.platform': navigator.platform,\n            'cpu.arch': information.cpu.architecture,\n            'uname.sysname': information.os.name,\n            'uname.version': information.os.version,\n            'device.model': information.device.model,\n            'device.type': information.device.type,\n            'device.vendor': information.device.vendor,\n            mobile: information.device.type === 'mobile',\n            'user.agent.full': information.ua,\n        };\n    }\n}\n\nclass UserIdentifierAttributeProvider {\n    constructor() {\n        this.USER_IDENTIFIER = 'backtrace-guid';\n    }\n    get type() {\n        return 'scoped';\n    }\n    get() {\n        var _a;\n        return {\n            guid: (_a = this.generateUuidToLocalStorage()) !== null && _a !== void 0 ? _a : IdGenerator.uuid(),\n        };\n    }\n    generateUuidToLocalStorage() {\n        if (!window.localStorage) {\n            return undefined;\n        }\n        try {\n            let guid = window.localStorage.getItem(this.USER_IDENTIFIER);\n            if (!guid) {\n                guid = IdGenerator.uuid();\n                window.localStorage.setItem(this.USER_IDENTIFIER, guid);\n            }\n            return guid;\n        }\n        catch (_a) {\n            return undefined;\n        }\n    }\n}\n\nconst PAGE_START_TIME = TimeHelper.now();\nclass WebsiteAttributeProvider {\n    get type() {\n        return 'scoped';\n    }\n    get() {\n        return {\n            application: document.title || 'unknown', // application is required. Using unknown string if it is not found.\n            'process.age': Math.floor((new Date().getTime() - PAGE_START_TIME) / 1000),\n            hostname: window.location && window.location.hostname,\n            referrer: window.location && window.location.href,\n            'location.port': document.location.port,\n            'location.protocol': document.location.protocol,\n            'location.origin': window.location.origin,\n            'location.href': window.location.href || document.URL,\n            language: navigator.language,\n            'browser.platform': navigator.platform,\n            'cookies.enable': navigator.cookieEnabled,\n            'document.domain': document.domain,\n            'document.baseURI': document.baseURI,\n            'document.title': document.title,\n            'document.referrer': document.referrer,\n            'localstorage.enable': !!window.localStorage,\n        };\n    }\n}\n\nclass WindowAttributeProvider {\n    get type() {\n        return 'dynamic';\n    }\n    get() {\n        return {\n            'window.innerHeight': window.innerHeight,\n            'window.innerWidth': window.innerWidth,\n            'window.outerHeight': window.outerHeight,\n            'window.outerWidth': window.outerWidth,\n            'window.pageXOffset': window.pageXOffset,\n            'window.pageYOffset': window.pageYOffset,\n            'window.screenX': window.screenX,\n            'window.screenY': window.screenY,\n            'window.screenLeft': window.screenLeft,\n            'window.screenTop': window.screenTop,\n        };\n    }\n}\n\nclass DocumentEventSubscriber {\n    constructor() {\n        this._controller = new AbortController();\n    }\n    start(backtraceBreadcrumbs) {\n        const signal = this._controller.signal;\n        document.addEventListener('click', (mouseEvent) => {\n            const target = mouseEvent.target;\n            if (!target) {\n                return;\n            }\n            backtraceBreadcrumbs.addBreadcrumb(`Clicked ${target.id} ${target.tagName}`, BreadcrumbLogLevel.Info, BreadcrumbType.User, {\n                id: target.id,\n                class: target.className,\n                name: target.tagName,\n                text: target === null || target === void 0 ? void 0 : target.text,\n            });\n        }, {\n            signal,\n        });\n        document.addEventListener('dblclick', (mouseEvent) => {\n            const target = mouseEvent.target;\n            if (!target) {\n                return;\n            }\n            backtraceBreadcrumbs.addBreadcrumb(`Double clicked ${target.id} ${target.tagName}`, BreadcrumbLogLevel.Info, BreadcrumbType.User, {\n                id: target.id,\n                class: target.className,\n                name: target.tagName,\n                text: target === null || target === void 0 ? void 0 : target.text,\n            });\n        }, {\n            signal,\n        });\n        document.addEventListener('drag', (dragEvent) => {\n            const target = dragEvent.target;\n            if (!target) {\n                return;\n            }\n            backtraceBreadcrumbs.addBreadcrumb(`An element ${target.id} ${target.tagName} is being dragged`, BreadcrumbLogLevel.Debug, BreadcrumbType.User, {\n                id: target.id,\n                class: target.className,\n                name: target.tagName,\n            });\n        }, {\n            signal,\n        });\n        document.addEventListener('drop', (dragEvent) => {\n            const target = dragEvent.target;\n            if (!target) {\n                return;\n            }\n            backtraceBreadcrumbs.addBreadcrumb(`A dragged element is dropped on the target\t${target.id} ${target.tagName}`, BreadcrumbLogLevel.Debug, BreadcrumbType.User, {\n                id: target.id,\n                class: target.className,\n                name: target.tagName,\n            });\n        }, {\n            signal,\n        });\n        window.addEventListener('load', () => {\n            backtraceBreadcrumbs.addBreadcrumb(`The page has loaded`, BreadcrumbLogLevel.Info, BreadcrumbType.System);\n        });\n        window.addEventListener('unload', () => {\n            backtraceBreadcrumbs.addBreadcrumb(`The page started unloading`, BreadcrumbLogLevel.Info, BreadcrumbType.System);\n        });\n        window.addEventListener('pagehide', () => {\n            backtraceBreadcrumbs.addBreadcrumb('User navigates away from a webpage', BreadcrumbLogLevel.Info, BreadcrumbType.User);\n        });\n        window.addEventListener('pageshow', () => {\n            backtraceBreadcrumbs.addBreadcrumb('User navigates to a webpage', BreadcrumbLogLevel.Info, BreadcrumbType.User);\n        });\n        window.addEventListener('online', () => {\n            backtraceBreadcrumbs.addBreadcrumb(`The browser starts working online`, BreadcrumbLogLevel.Info, BreadcrumbType.System);\n        }, {\n            signal,\n        });\n        window.addEventListener('offline', () => {\n            backtraceBreadcrumbs.addBreadcrumb(`The browser starts working offline\t`, BreadcrumbLogLevel.Warning, BreadcrumbType.System);\n        }, {\n            signal,\n        });\n    }\n    dispose() {\n        this._controller.abort();\n    }\n}\n\nclass HistoryEventSubscriber {\n    constructor() {\n        this._abortController = new AbortController();\n    }\n    start(backtraceBreadcrumbs) {\n        if ((backtraceBreadcrumbs.breadcrumbsType & BreadcrumbType.Navigation) !== BreadcrumbType.Navigation) {\n            return;\n        }\n        window.addEventListener('popstate', (event) => {\n            backtraceBreadcrumbs.addBreadcrumb(`Navigating back to ${document.location}`, BreadcrumbLogLevel.Info, BreadcrumbType.Navigation, {\n                location: document.location.toString(),\n                state: event.state,\n            });\n        }, {\n            signal: this._abortController.signal,\n        });\n        const originalHistoryPushStateMethod = history.pushState;\n        history.pushState = (...args) => {\n            // eslint-disable-next-line @typescript-eslint/no-unused-vars\n            const [data, _, url] = args;\n            originalHistoryPushStateMethod.apply(history, args);\n            backtraceBreadcrumbs.addBreadcrumb(`Navigating to ${document.location}`, BreadcrumbLogLevel.Info, BreadcrumbType.Navigation, {\n                url: url === null || url === void 0 ? void 0 : url.toString(),\n                data,\n                location: document.location.toString(),\n            });\n        };\n        this._originalHistoryPushStateMethod = originalHistoryPushStateMethod;\n    }\n    dispose() {\n        this._abortController.abort();\n        if (this._originalHistoryPushStateMethod) {\n            history.pushState = this._originalHistoryPushStateMethod;\n        }\n    }\n}\n\nclass WebRequestEventSubscriber {\n    start(backtraceBreadcrumbs) {\n        if ((backtraceBreadcrumbs.breadcrumbsType & BreadcrumbType.Http) !== BreadcrumbType.Http) {\n            return;\n        }\n        const xmlHttpRequestOriginalOpenMethod = XMLHttpRequest.prototype.open;\n        XMLHttpRequest.prototype.open = function (method, url, async, username, password) {\n            const readyStateChangeCallback = this.onreadystatechange;\n            this.onreadystatechange = (event) => {\n                if (this.readyState === XMLHttpRequest.DONE) {\n                    backtraceBreadcrumbs.addBreadcrumb(`Sent an HTTP ${method} request to ${url}. Response status code: ${this.status}`, BreadcrumbLogLevel.Debug, BreadcrumbType.Http, {\n                        method,\n                        url: url.toString(),\n                        statusCode: this.status,\n                    });\n                }\n                readyStateChangeCallback === null || readyStateChangeCallback === void 0 ? void 0 : readyStateChangeCallback.apply(this, [event]);\n            };\n            xmlHttpRequestOriginalOpenMethod.call(this, method, url, async || true, username, password);\n        };\n        this._xmlHttpRequestOriginalOpenMethod = xmlHttpRequestOriginalOpenMethod;\n        const fetchOriginalMethod = window.fetch;\n        window.fetch = function (resource, config) {\n            return __awaiter(this, void 0, void 0, function* () {\n                var _a, _b;\n                const method = (_a = config === null || config === void 0 ? void 0 : config.method) !== null && _a !== void 0 ? _a : 'GET';\n                const attributes = {\n                    url: resource.toString(),\n                    method: method,\n                    referrer: config === null || config === void 0 ? void 0 : config.referrer,\n                };\n                try {\n                    const result = yield fetchOriginalMethod(resource, config);\n                    backtraceBreadcrumbs.addBreadcrumb(`Sent an HTTP ${method} request to ${resource}. Response status code: ${result.status}`, BreadcrumbLogLevel.Debug, BreadcrumbType.Http, Object.assign(Object.assign({}, attributes), { statusCode: result.status }));\n                    return result;\n                }\n                catch (e) {\n                    backtraceBreadcrumbs.addBreadcrumb(`HTTP ${method} failure on request to ${resource}. Reason: ${e instanceof Error ? e.message : ((_b = e === null || e === void 0 ? void 0 : e.toString()) !== null && _b !== void 0 ? _b : 'unknown')}`, BreadcrumbLogLevel.Warning, BreadcrumbType.Http, attributes);\n                    throw e;\n                }\n            });\n        };\n        this._fetchOriginalMethod = fetchOriginalMethod;\n    }\n    dispose() {\n        if (this._fetchOriginalMethod) {\n            window.fetch = this._fetchOriginalMethod;\n        }\n        if (this._xmlHttpRequestOriginalOpenMethod) {\n            XMLHttpRequest.prototype.open = this._xmlHttpRequestOriginalOpenMethod;\n        }\n    }\n}\n\nclass BacktraceClientBuilder extends BacktraceCoreClientBuilder {\n    constructor(clientSetup) {\n        super(clientSetup);\n        this.addAttributeProvider(new UserAgentAttributeProvider());\n        this.addAttributeProvider(new WebsiteAttributeProvider());\n        this.addAttributeProvider(new WindowAttributeProvider());\n        this.addAttributeProvider(new UserIdentifierAttributeProvider());\n        this.addAttributeProvider(new ApplicationInformationAttributeProvider(clientSetup.options));\n        this.useBreadcrumbSubscriber(new WebRequestEventSubscriber());\n        this.useBreadcrumbSubscriber(new DocumentEventSubscriber());\n        this.useBreadcrumbSubscriber(new HistoryEventSubscriber());\n    }\n    build() {\n        const instance = new BacktraceClient(this.clientSetup);\n        instance.initialize();\n        return instance;\n    }\n}\n\nfunction getEngine() {\n    if (!navigator.userAgent) {\n        return 'v8';\n    }\n    const normalizedUserAgent = navigator.userAgent.toLowerCase();\n    if (normalizedUserAgent.includes('firefox')) {\n        return 'SpiderMonkey';\n    }\n    if (normalizedUserAgent.includes('safari') && !normalizedUserAgent.includes('chrome')) {\n        return 'JavaScriptCore';\n    }\n    return 'v8';\n}\n\nclass JavaScriptCoreStackTraceConverter {\n    get engine() {\n        return 'JavaScriptCore';\n    }\n    convert(stackTrace) {\n        const result = [];\n        const stackFrames = stackTrace.split('\\n');\n        for (const stackFrame of stackFrames) {\n            const normalizedStackFrame = stackFrame.trim();\n            const frame = this.parseFrame(normalizedStackFrame);\n            result.push(frame);\n        }\n        return result;\n    }\n    parseFrame(stackFrame) {\n        const functionSeparatorIndex = this.generateSeparatorIndex(stackFrame);\n        let functionName = functionSeparatorIndex === -1 ? ANONYMOUS_FUNCTION : stackFrame.substring(0, functionSeparatorIndex);\n        if (!functionName) {\n            functionName = ANONYMOUS_FUNCTION;\n        }\n        const sourceCodeInformation = stackFrame.substring(functionSeparatorIndex + 1);\n        const sourceCodeParts = sourceCodeInformation.split(':');\n        if (sourceCodeParts.length === 1) {\n            return {\n                funcName: functionName,\n                library: sourceCodeInformation ? sourceCodeInformation : UNKNOWN_FRAME,\n            };\n        }\n        const column = parseInt(sourceCodeParts[sourceCodeParts.length - 1]);\n        const line = parseInt(sourceCodeParts[sourceCodeParts.length - 2]);\n        const library = sourceCodeParts.slice(0, sourceCodeParts.length - 2).join(':');\n        return {\n            funcName: functionName,\n            column: isNaN(column) ? undefined : column,\n            line: isNaN(line) ? undefined : line,\n            library: library,\n        };\n    }\n    generateSeparatorIndex(stackFrame) {\n        const functionSeparator = '@';\n        const functionSeparatorIndex = stackFrame.indexOf(functionSeparator);\n        if (functionSeparatorIndex === -1) {\n            return functionSeparatorIndex;\n        }\n        const isMoreSeparators = stackFrame.lastIndexOf(functionSeparator) !== functionSeparatorIndex;\n        if (!isMoreSeparators) {\n            return functionSeparatorIndex;\n        }\n        const possibleSeparators = ['@http', '@file'];\n        for (const possibleSeparator of possibleSeparators) {\n            const possibleSeparatorIndex = stackFrame.indexOf(possibleSeparator);\n            if (possibleSeparatorIndex !== -1) {\n                return possibleSeparatorIndex;\n            }\n        }\n        // we can't determinate the separator\n        return functionSeparatorIndex;\n    }\n}\n\nclass SpiderMonkeyStackTraceConverter {\n    constructor() {\n        this.ANONYMOUS_FUNCTIONS = ['()', '(null)', ''];\n    }\n    get engine() {\n        return 'SpiderMonkey';\n    }\n    convert(stackTrace) {\n        const result = [];\n        const stackFrames = stackTrace.split('\\n');\n        for (const stackFrame of stackFrames) {\n            const normalizedStackFrame = stackFrame.trim();\n            if (!normalizedStackFrame) {\n                continue;\n            }\n            const frame = this.parseFrame(normalizedStackFrame);\n            if (this.ANONYMOUS_FUNCTIONS.includes(frame.funcName)) {\n                frame.funcName = ANONYMOUS_FUNCTION;\n            }\n            result.push(frame);\n        }\n        return result;\n    }\n    parseFrame(stackFrame) {\n        const functionSeparatorIndex = this.generateSeparatorIndex(stackFrame);\n        //invalid frame\n        if (functionSeparatorIndex === -1) {\n            return {\n                funcName: stackFrame,\n                library: UNKNOWN_FRAME,\n            };\n        }\n        let functionName = stackFrame.substring(0, functionSeparatorIndex);\n        if (!functionName) {\n            functionName = ANONYMOUS_FUNCTION;\n        }\n        let sourceCodeInformation = stackFrame.substring(functionSeparatorIndex + 1);\n        if (sourceCodeInformation.indexOf('eval') !== -1) {\n            sourceCodeInformation = this.cleanUpEvalInformation(sourceCodeInformation);\n        }\n        const sourceCodeParts = sourceCodeInformation.split(':');\n        // check if the column information is available - if is not, we should use the legacy parser\n        const sourceCodeOrRowNumber = sourceCodeParts[sourceCodeParts.length - 2];\n        const possibleRowNumber = parseInt(sourceCodeOrRowNumber);\n        return isNaN(possibleRowNumber)\n            ? this.generateLegacyFirefoxFrame(functionName, sourceCodeParts)\n            : this.generateFirefoxFrame(functionName, sourceCodeParts);\n    }\n    generateSeparatorIndex(stackFrame) {\n        const functionSeparator = '@';\n        const functionSeparatorIndex = stackFrame.indexOf(functionSeparator);\n        if (functionSeparatorIndex === -1) {\n            return functionSeparatorIndex;\n        }\n        const isMoreSeparators = stackFrame.lastIndexOf(functionSeparator) !== functionSeparatorIndex;\n        if (!isMoreSeparators) {\n            return functionSeparatorIndex;\n        }\n        const possibleSeparators = ['@http', '@file'];\n        for (const possibleSeparator of possibleSeparators) {\n            const possibleSeparatorIndex = stackFrame.indexOf(possibleSeparator);\n            if (possibleSeparatorIndex !== -1) {\n                return possibleSeparatorIndex;\n            }\n        }\n        // we can't determinate the separator\n        return functionSeparatorIndex;\n    }\n    generateLegacyFirefoxFrame(functionName, sourceCodeParts) {\n        const lineNumberStart = sourceCodeParts.length - 1;\n        const lineNumber = parseInt(sourceCodeParts[lineNumberStart]);\n        const library = sourceCodeParts.slice(0, lineNumberStart).join(':');\n        return {\n            library: library,\n            funcName: functionName,\n            line: isNaN(lineNumber) ? undefined : lineNumber,\n        };\n    }\n    generateFirefoxFrame(functionName, sourceCodeParts) {\n        const lineNumberStart = sourceCodeParts.length - 2;\n        const lineNumber = parseInt(sourceCodeParts[lineNumberStart]);\n        const columnName = parseInt(sourceCodeParts[lineNumberStart + 1]);\n        const library = sourceCodeParts.slice(0, lineNumberStart).join(':');\n        return {\n            library: library,\n            funcName: functionName,\n            column: columnName,\n            line: lineNumber,\n        };\n    }\n    cleanUpEvalInformation(sourceCodeInformation) {\n        const evalSeparator = ' > eval';\n        const evalIndex = sourceCodeInformation.indexOf(evalSeparator);\n        if (evalIndex === -1) {\n            return sourceCodeInformation;\n        }\n        const lineSeparator = ' line ';\n        const lineSeparatorIndex = sourceCodeInformation.indexOf(lineSeparator);\n        if (lineSeparatorIndex === -1) {\n            return sourceCodeInformation.replace(evalSeparator, '');\n        }\n        const textToRemove = sourceCodeInformation.substring(lineSeparatorIndex, evalIndex + evalSeparator.length);\n        return sourceCodeInformation.replace(textToRemove, '');\n    }\n}\n\nfunction getStackTraceConverter() {\n    switch (getEngine()) {\n        case 'JavaScriptCore': {\n            return new JavaScriptCoreStackTraceConverter();\n        }\n        case 'SpiderMonkey': {\n            return new SpiderMonkeyStackTraceConverter();\n        }\n        default: {\n            return new V8StackTraceConverter();\n        }\n    }\n}\n\nconst PREFIX = 'backtrace__';\nclass BrowserFileSystem {\n    constructor(_storage = window.localStorage) {\n        this._storage = _storage;\n    }\n    readDir(dir) {\n        return __awaiter(this, void 0, void 0, function* () {\n            return this.readDirSync(dir);\n        });\n    }\n    readDirSync(dir) {\n        dir = this.resolvePath(this.ensureTrailingSlash(dir));\n        const result = [];\n        for (const key in this._storage) {\n            if (key.startsWith(dir)) {\n                result.push(key.substring(dir.length));\n            }\n        }\n        return result;\n    }\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    createDir(_dir) {\n        return __awaiter(this, void 0, void 0, function* () {\n            return;\n        });\n    }\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    createDirSync(_dir) {\n        return;\n    }\n    readFile(path) {\n        return __awaiter(this, void 0, void 0, function* () {\n            return this.readFileSync(path);\n        });\n    }\n    readFileSync(path) {\n        const result = this._storage.getItem(this.resolvePath(path));\n        if (!result) {\n            throw new Error('path does not exist');\n        }\n        return result;\n    }\n    writeFile(path, content) {\n        return __awaiter(this, void 0, void 0, function* () {\n            return this.writeFileSync(path, content);\n        });\n    }\n    writeFileSync(path, content) {\n        this._storage.setItem(this.resolvePath(path), content);\n    }\n    unlink(path) {\n        return __awaiter(this, void 0, void 0, function* () {\n            return this.unlinkSync(path);\n        });\n    }\n    unlinkSync(path) {\n        this._storage.removeItem(this.resolvePath(path));\n    }\n    exists(path) {\n        return __awaiter(this, void 0, void 0, function* () {\n            return this.existsSync(path);\n        });\n    }\n    existsSync(path) {\n        return this.resolvePath(path) in this._storage;\n    }\n    createAttachment(path, name) {\n        return new BacktraceStringAttachment(name !== null && name !== void 0 ? name : this.basename(path), this.readFileSync(path));\n    }\n    resolvePath(key) {\n        return PREFIX + this.ensureLeadingSlash(key);\n    }\n    basename(path) {\n        const lastSlashIndex = path.lastIndexOf('/');\n        return lastSlashIndex === -1 ? path : path.substring(lastSlashIndex + 1);\n    }\n    ensureLeadingSlash(path) {\n        if (path === '/') {\n            return '/';\n        }\n        while (path.startsWith('/')) {\n            path = path.substring(1);\n        }\n        return '/' + path;\n    }\n    ensureTrailingSlash(path) {\n        if (path === '/') {\n            return path;\n        }\n        while (path.endsWith('/')) {\n            path = path.substring(0, path.length - 1);\n        }\n        return path + '/';\n    }\n}\n\nclass BacktraceClient extends BacktraceCoreClient {\n    constructor(clientSetup) {\n        super(Object.assign({ sdkOptions: AGENT, stackTraceConverter: getStackTraceConverter(), requestHandler: new BacktraceBrowserRequestHandler(clientSetup.options), debugIdMapProvider: new VariableDebugIdMapProvider(window), sessionProvider: new BacktraceBrowserSessionProvider(), fileSystem: new BrowserFileSystem() }, clientSetup));\n        this._disposeController = new AbortController();\n        this.captureUnhandledErrors(clientSetup.options.captureUnhandledErrors, clientSetup.options.captureUnhandledPromiseRejections);\n    }\n    static builder(options) {\n        return new BacktraceClientBuilder({ options });\n    }\n    /**\n     * Initializes the client. If the client already exists, the available instance\n     * will be returned and all other options will be ignored.\n     * @param options client configuration\n     * @param build builder\n     * @returns backtrace client\n     */\n    static initialize(options, build) {\n        if (this.instance) {\n            return this.instance;\n        }\n        const builder = this.builder(options);\n        build && build(builder);\n        this._instance = builder.build();\n        return this._instance;\n    }\n    /**\n     * Returns created BacktraceClient instance if the instance exists.\n     * Otherwise undefined.\n     */\n    static get instance() {\n        return this._instance;\n    }\n    /**\n     * Disposes the client and all client callbacks\n     */\n    dispose() {\n        this._disposeController.abort();\n        super.dispose();\n        BacktraceClient._instance = undefined;\n    }\n    captureUnhandledErrors(captureUnhandledExceptions = true, captureUnhandledRejections = true) {\n        if (captureUnhandledExceptions) {\n            window.addEventListener('error', (errorEvent) => {\n                var _a;\n                this.send(new BacktraceReport((_a = errorEvent.error) !== null && _a !== void 0 ? _a : errorEvent.message, {\n                    'error.type': 'Unhandled exception',\n                }));\n            }, {\n                signal: this._disposeController.signal,\n            });\n        }\n        if (captureUnhandledRejections) {\n            window.addEventListener('unhandledrejection', (errorEvent) => {\n                this.send(new BacktraceReport(errorEvent.reason, {\n                    'error.type': 'Unhandled rejection',\n                }, [], {\n                    classifiers: ['UnhandledPromiseRejection'],\n                }));\n            }, {\n                signal: this._disposeController.signal,\n            });\n        }\n    }\n}\n\nfunction getBreadcrumbPayload(mode, action) {\n    switch (mode) {\n        case 'all':\n            return { action: JSON.stringify(action, jsonEscaper()) };\n        case 'omit-values':\n            return undefined;\n    }\n}\nfunction createBacktraceReduxMiddleware(client, interceptActionOrOptions = (action) => action) {\n    var _a, _b;\n    if (!client) {\n        throw new Error('Must pass a BacktraceClient to the BacktraceReduxMiddleware.');\n    }\n    const options = typeof interceptActionOrOptions === 'object'\n        ? interceptActionOrOptions\n        : {\n            interceptAction: interceptActionOrOptions,\n        };\n    const interceptAction = (_a = options.interceptAction) !== null && _a !== void 0 ? _a : ((action) => action);\n    const mode = (_b = options.mode) !== null && _b !== void 0 ? _b : 'omit-values';\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    const middleware = () => (next) => (action) => {\n        var _a, _b, _c, _d;\n        try {\n            const response = next(action);\n            if (mode === 'off') {\n                return response;\n            }\n            const interceptedAction = interceptAction(action);\n            // If the user returns undefined for an action, we skip the breadcrumb\n            if (!interceptedAction) {\n                return response;\n            }\n            const payload = getBreadcrumbPayload(mode, interceptedAction);\n            (_a = client.breadcrumbs) === null || _a === void 0 ? void 0 : _a.info(`REDUX Action: ${interceptedAction.type}`, payload);\n            return response;\n        }\n        catch (err) {\n            const message = err instanceof Error ? err.message : ((_b = err === null || err === void 0 ? void 0 : err.toString()) !== null && _b !== void 0 ? _b : 'unknown');\n            (_c = client.breadcrumbs) === null || _c === void 0 ? void 0 : _c.warn(`A problem occurred during action ${(_d = action === null || action === void 0 ? void 0 : action.type) !== null && _d !== void 0 ? _d : 'unknown'}. Reason: ${message}`);\n            throw err;\n        }\n    };\n    return middleware;\n}\n\nexport { AGENT, BacktraceApi, BacktraceBrowserRequestHandler, BacktraceClient, BacktraceClientBuilder, BacktraceReport, BacktraceStringAttachment, BacktraceUint8ArrayAttachment, BreadcrumbLogLevel, BreadcrumbType, BreadcrumbsManager, SingleSessionProvider, V8StackTraceConverter, createBacktraceReduxMiddleware, getStackTraceConverter };\n//# sourceMappingURL=bundle.mjs.map\n",null,null,null,null,"/******************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\r\n\r\nvar extendStatics = function(d, b) {\r\n    extendStatics = Object.setPrototypeOf ||\r\n        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n    if (typeof b !== \"function\" && b !== null)\r\n        throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n    extendStatics(d, b);\r\n    function __() { this.constructor = d; }\r\n    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\r\n    function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\r\n    var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\r\n    var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\r\n    var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\r\n    var _, done = false;\r\n    for (var i = decorators.length - 1; i >= 0; i--) {\r\n        var context = {};\r\n        for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\r\n        for (var p in contextIn.access) context.access[p] = contextIn.access[p];\r\n        context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\r\n        var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\r\n        if (kind === \"accessor\") {\r\n            if (result === void 0) continue;\r\n            if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\r\n            if (_ = accept(result.get)) descriptor.get = _;\r\n            if (_ = accept(result.set)) descriptor.set = _;\r\n            if (_ = accept(result.init)) initializers.unshift(_);\r\n        }\r\n        else if (_ = accept(result)) {\r\n            if (kind === \"field\") initializers.unshift(_);\r\n            else descriptor[key] = _;\r\n        }\r\n    }\r\n    if (target) Object.defineProperty(target, contextIn.name, descriptor);\r\n    done = true;\r\n};\r\n\r\nexport function __runInitializers(thisArg, initializers, value) {\r\n    var useValue = arguments.length > 2;\r\n    for (var i = 0; i < initializers.length; i++) {\r\n        value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\r\n    }\r\n    return useValue ? value : void 0;\r\n};\r\n\r\nexport function __propKey(x) {\r\n    return typeof x === \"symbol\" ? x : \"\".concat(x);\r\n};\r\n\r\nexport function __setFunctionName(f, name, prefix) {\r\n    if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\r\n    return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\r\n};\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\r\n    return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    var desc = Object.getOwnPropertyDescriptor(m, k);\r\n    if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\r\n        desc = { enumerable: true, get: function() { return m[k]; } };\r\n    }\r\n    Object.defineProperty(o, k2, desc);\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n    for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n    for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n        for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n            r[k] = a[j];\r\n    return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n        if (ar || !(i in from)) {\r\n            if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n            ar[i] = from[i];\r\n        }\r\n    }\r\n    return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\r\n    function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n    return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n    if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n    if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n    if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n    return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n\r\nexport function __classPrivateFieldIn(state, receiver) {\r\n    if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\r\n    return typeof state === \"function\" ? receiver === state : state.has(receiver);\r\n}\r\n\r\nexport function __addDisposableResource(env, value, async) {\r\n    if (value !== null && value !== void 0) {\r\n        if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\r\n        var dispose, inner;\r\n        if (async) {\r\n            if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\r\n            dispose = value[Symbol.asyncDispose];\r\n        }\r\n        if (dispose === void 0) {\r\n            if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\r\n            dispose = value[Symbol.dispose];\r\n            if (async) inner = dispose;\r\n        }\r\n        if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\r\n        if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\r\n        env.stack.push({ value: value, dispose: dispose, async: async });\r\n    }\r\n    else if (async) {\r\n        env.stack.push({ async: true });\r\n    }\r\n    return value;\r\n\r\n}\r\n\r\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\r\n    var e = new Error(message);\r\n    return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\r\n};\r\n\r\nexport function __disposeResources(env) {\r\n    function fail(e) {\r\n        env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\r\n        env.hasError = true;\r\n    }\r\n    var r, s = 0;\r\n    function next() {\r\n        while (r = env.stack.pop()) {\r\n            try {\r\n                if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\r\n                if (r.dispose) {\r\n                    var result = r.dispose.call(r.value);\r\n                    if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\r\n                }\r\n                else s |= 1;\r\n            }\r\n            catch (e) {\r\n                fail(e);\r\n            }\r\n        }\r\n        if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\r\n        if (env.hasError) throw env.error;\r\n    }\r\n    return next();\r\n}\r\n\r\nexport default {\r\n    __extends: __extends,\r\n    __assign: __assign,\r\n    __rest: __rest,\r\n    __decorate: __decorate,\r\n    __param: __param,\r\n    __metadata: __metadata,\r\n    __awaiter: __awaiter,\r\n    __generator: __generator,\r\n    __createBinding: __createBinding,\r\n    __exportStar: __exportStar,\r\n    __values: __values,\r\n    __read: __read,\r\n    __spread: __spread,\r\n    __spreadArrays: __spreadArrays,\r\n    __spreadArray: __spreadArray,\r\n    __await: __await,\r\n    __asyncGenerator: __asyncGenerator,\r\n    __asyncDelegator: __asyncDelegator,\r\n    __asyncValues: __asyncValues,\r\n    __makeTemplateObject: __makeTemplateObject,\r\n    __importStar: __importStar,\r\n    __importDefault: __importDefault,\r\n    __classPrivateFieldGet: __classPrivateFieldGet,\r\n    __classPrivateFieldSet: __classPrivateFieldSet,\r\n    __classPrivateFieldIn: __classPrivateFieldIn,\r\n    __addDisposableResource: __addDisposableResource,\r\n    __disposeResources: __disposeResources,\r\n};\r\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};exports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;\nexports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=function(){throw Error(\"act(...) is not supported in production builds of React.\");};\nexports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};exports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};\nexports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};exports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};\nexports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.2.0\";\n","/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n  (function() {\n\n          'use strict';\n\n/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart ===\n    'function'\n) {\n  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(new Error());\n}\n          var ReactVersion = '18.2.0';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n  if (maybeIterable === null || typeof maybeIterable !== 'object') {\n    return null;\n  }\n\n  var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n  if (typeof maybeIterator === 'function') {\n    return maybeIterator;\n  }\n\n  return null;\n}\n\n/**\n * Keeps track of the current dispatcher.\n */\nvar ReactCurrentDispatcher = {\n  /**\n   * @internal\n   * @type {ReactComponent}\n   */\n  current: null\n};\n\n/**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\nvar ReactCurrentBatchConfig = {\n  transition: null\n};\n\nvar ReactCurrentActQueue = {\n  current: null,\n  // Used to reproduce behavior of `batchedUpdates` in legacy mode.\n  isBatchingLegacy: false,\n  didScheduleLegacyUpdate: false\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n  /**\n   * @internal\n   * @type {ReactComponent}\n   */\n  current: null\n};\n\nvar ReactDebugCurrentFrame = {};\nvar currentExtraStackFrame = null;\nfunction setExtraStackFrame(stack) {\n  {\n    currentExtraStackFrame = stack;\n  }\n}\n\n{\n  ReactDebugCurrentFrame.setExtraStackFrame = function (stack) {\n    {\n      currentExtraStackFrame = stack;\n    }\n  }; // Stack implementation injected by the current renderer.\n\n\n  ReactDebugCurrentFrame.getCurrentStack = null;\n\n  ReactDebugCurrentFrame.getStackAddendum = function () {\n    var stack = ''; // Add an extra top frame while an element is being validated\n\n    if (currentExtraStackFrame) {\n      stack += currentExtraStackFrame;\n    } // Delegate to the injected renderer-specific implementation\n\n\n    var impl = ReactDebugCurrentFrame.getCurrentStack;\n\n    if (impl) {\n      stack += impl() || '';\n    }\n\n    return stack;\n  };\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar ReactSharedInternals = {\n  ReactCurrentDispatcher: ReactCurrentDispatcher,\n  ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n  ReactCurrentOwner: ReactCurrentOwner\n};\n\n{\n  ReactSharedInternals.ReactDebugCurrentFrame = ReactDebugCurrentFrame;\n  ReactSharedInternals.ReactCurrentActQueue = ReactCurrentActQueue;\n}\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n  {\n    {\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      printWarning('warn', format, args);\n    }\n  }\n}\nfunction error(format) {\n  {\n    {\n      for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n        args[_key2 - 1] = arguments[_key2];\n      }\n\n      printWarning('error', format, args);\n    }\n  }\n}\n\nfunction printWarning(level, format, args) {\n  // When changing this logic, you might want to also\n  // update consoleWithStackDev.www.js as well.\n  {\n    var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n    var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n    if (stack !== '') {\n      format += '%s';\n      args = args.concat([stack]);\n    } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n    var argsWithFormat = args.map(function (item) {\n      return String(item);\n    }); // Careful: RN currently depends on this prefix\n\n    argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n    // breaks IE9: https://github.com/facebook/react/issues/13610\n    // eslint-disable-next-line react-internal/no-production-logging\n\n    Function.prototype.apply.call(console[level], console, argsWithFormat);\n  }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n  {\n    var _constructor = publicInstance.constructor;\n    var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n    var warningKey = componentName + \".\" + callerName;\n\n    if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n      return;\n    }\n\n    error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n\n    didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n  }\n}\n/**\n * This is the abstract API for an update queue.\n */\n\n\nvar ReactNoopUpdateQueue = {\n  /**\n   * Checks whether or not this composite component is mounted.\n   * @param {ReactClass} publicInstance The instance we want to test.\n   * @return {boolean} True if mounted, false otherwise.\n   * @protected\n   * @final\n   */\n  isMounted: function (publicInstance) {\n    return false;\n  },\n\n  /**\n   * Forces an update. This should only be invoked when it is known with\n   * certainty that we are **not** in a DOM transaction.\n   *\n   * You may want to call this when you know that some deeper aspect of the\n   * component's state has changed but `setState` was not called.\n   *\n   * This will not invoke `shouldComponentUpdate`, but it will invoke\n   * `componentWillUpdate` and `componentDidUpdate`.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {?function} callback Called after component is updated.\n   * @param {?string} callerName name of the calling function in the public API.\n   * @internal\n   */\n  enqueueForceUpdate: function (publicInstance, callback, callerName) {\n    warnNoop(publicInstance, 'forceUpdate');\n  },\n\n  /**\n   * Replaces all of the state. Always use this or `setState` to mutate state.\n   * You should treat `this.state` as immutable.\n   *\n   * There is no guarantee that `this.state` will be immediately updated, so\n   * accessing `this.state` after calling this method may return the old value.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} completeState Next state.\n   * @param {?function} callback Called after component is updated.\n   * @param {?string} callerName name of the calling function in the public API.\n   * @internal\n   */\n  enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n    warnNoop(publicInstance, 'replaceState');\n  },\n\n  /**\n   * Sets a subset of the state. This only exists because _pendingState is\n   * internal. This provides a merging strategy that is not available to deep\n   * properties which is confusing. TODO: Expose pendingState or don't use it\n   * during the merge.\n   *\n   * @param {ReactClass} publicInstance The instance that should rerender.\n   * @param {object} partialState Next partial state to be merged with state.\n   * @param {?function} callback Called after component is updated.\n   * @param {?string} Name of the calling function in the public API.\n   * @internal\n   */\n  enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n    warnNoop(publicInstance, 'setState');\n  }\n};\n\nvar assign = Object.assign;\n\nvar emptyObject = {};\n\n{\n  Object.freeze(emptyObject);\n}\n/**\n * Base class helpers for the updating state of a component.\n */\n\n\nfunction Component(props, context, updater) {\n  this.props = props;\n  this.context = context; // If a component has string refs, we will assign a different object later.\n\n  this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n  // renderer.\n\n  this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together.  You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n *        produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n\nComponent.prototype.setState = function (partialState, callback) {\n  if (typeof partialState !== 'object' && typeof partialState !== 'function' && partialState != null) {\n    throw new Error('setState(...): takes an object of state variables to update or a ' + 'function which returns an object of state variables.');\n  }\n\n  this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n\n\nComponent.prototype.forceUpdate = function (callback) {\n  this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n\n\n{\n  var deprecatedAPIs = {\n    isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n    replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n  };\n\n  var defineDeprecationWarning = function (methodName, info) {\n    Object.defineProperty(Component.prototype, methodName, {\n      get: function () {\n        warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n\n        return undefined;\n      }\n    });\n  };\n\n  for (var fnName in deprecatedAPIs) {\n    if (deprecatedAPIs.hasOwnProperty(fnName)) {\n      defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n    }\n  }\n}\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n/**\n * Convenience component with default shallow equality check for sCU.\n */\n\nfunction PureComponent(props, context, updater) {\n  this.props = props;\n  this.context = context; // If a component has string refs, we will assign a different object later.\n\n  this.refs = emptyObject;\n  this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\nassign(pureComponentPrototype, Component.prototype);\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n  var refObject = {\n    current: null\n  };\n\n  {\n    Object.seal(refObject);\n  }\n\n  return refObject;\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n  return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n  {\n    // toStringTag is needed for namespaced types like Temporal.Instant\n    var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n    var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n    return type;\n  }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n  {\n    try {\n      testStringCoercion(value);\n      return false;\n    } catch (e) {\n      return true;\n    }\n  }\n}\n\nfunction testStringCoercion(value) {\n  // If you ended up here by following an exception call stack, here's what's\n  // happened: you supplied an object or symbol value to React (as a prop, key,\n  // DOM attribute, CSS property, string ref, etc.) and when React tried to\n  // coerce it to a string using `'' + value`, an exception was thrown.\n  //\n  // The most common types that will cause this exception are `Symbol` instances\n  // and Temporal objects like `Temporal.Instant`. But any object that has a\n  // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n  // exception. (Library authors do this to prevent users from using built-in\n  // numeric operators like `+` or comparison operators like `>=` because custom\n  // methods are needed to perform accurate arithmetic or comparison.)\n  //\n  // To fix the problem, coerce this object or symbol value to a string before\n  // passing it to React. The most reliable way is usually `String(value)`.\n  //\n  // To find which value is throwing, check the browser or debugger console.\n  // Before this exception was thrown, there should be `console.error` output\n  // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n  // problem and how that type was used: key, atrribute, input value prop, etc.\n  // In most cases, this console output also shows the component and its\n  // ancestor components where the exception happened.\n  //\n  // eslint-disable-next-line react-internal/safe-string-coercion\n  return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n  {\n    if (willCoercionThrow(value)) {\n      error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n      return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n    }\n  }\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n  var displayName = outerType.displayName;\n\n  if (displayName) {\n    return displayName;\n  }\n\n  var functionName = innerType.displayName || innerType.name || '';\n  return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n  return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n  if (type == null) {\n    // Host root, text node or just invalid type.\n    return null;\n  }\n\n  {\n    if (typeof type.tag === 'number') {\n      error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n    }\n  }\n\n  if (typeof type === 'function') {\n    return type.displayName || type.name || null;\n  }\n\n  if (typeof type === 'string') {\n    return type;\n  }\n\n  switch (type) {\n    case REACT_FRAGMENT_TYPE:\n      return 'Fragment';\n\n    case REACT_PORTAL_TYPE:\n      return 'Portal';\n\n    case REACT_PROFILER_TYPE:\n      return 'Profiler';\n\n    case REACT_STRICT_MODE_TYPE:\n      return 'StrictMode';\n\n    case REACT_SUSPENSE_TYPE:\n      return 'Suspense';\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return 'SuspenseList';\n\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_CONTEXT_TYPE:\n        var context = type;\n        return getContextName(context) + '.Consumer';\n\n      case REACT_PROVIDER_TYPE:\n        var provider = type;\n        return getContextName(provider._context) + '.Provider';\n\n      case REACT_FORWARD_REF_TYPE:\n        return getWrappedName(type, type.render, 'ForwardRef');\n\n      case REACT_MEMO_TYPE:\n        var outerName = type.displayName || null;\n\n        if (outerName !== null) {\n          return outerName;\n        }\n\n        return getComponentNameFromType(type.type) || 'Memo';\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            return getComponentNameFromType(init(payload));\n          } catch (x) {\n            return null;\n          }\n        }\n\n      // eslint-disable-next-line no-fallthrough\n    }\n  }\n\n  return null;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar RESERVED_PROPS = {\n  key: true,\n  ref: true,\n  __self: true,\n  __source: true\n};\nvar specialPropKeyWarningShown, specialPropRefWarningShown, didWarnAboutStringRefs;\n\n{\n  didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n  {\n    if (hasOwnProperty.call(config, 'ref')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n  {\n    if (hasOwnProperty.call(config, 'key')) {\n      var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n      if (getter && getter.isReactWarning) {\n        return false;\n      }\n    }\n  }\n\n  return config.key !== undefined;\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n  var warnAboutAccessingKey = function () {\n    {\n      if (!specialPropKeyWarningShown) {\n        specialPropKeyWarningShown = true;\n\n        error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n      }\n    }\n  };\n\n  warnAboutAccessingKey.isReactWarning = true;\n  Object.defineProperty(props, 'key', {\n    get: warnAboutAccessingKey,\n    configurable: true\n  });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n  var warnAboutAccessingRef = function () {\n    {\n      if (!specialPropRefWarningShown) {\n        specialPropRefWarningShown = true;\n\n        error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n      }\n    }\n  };\n\n  warnAboutAccessingRef.isReactWarning = true;\n  Object.defineProperty(props, 'ref', {\n    get: warnAboutAccessingRef,\n    configurable: true\n  });\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config) {\n  {\n    if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n      var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n      if (!didWarnAboutStringRefs[componentName]) {\n        error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', componentName, config.ref);\n\n        didWarnAboutStringRefs[componentName] = true;\n      }\n    }\n  }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n  var element = {\n    // This tag allows us to uniquely identify this as a React Element\n    $$typeof: REACT_ELEMENT_TYPE,\n    // Built-in properties that belong on the element\n    type: type,\n    key: key,\n    ref: ref,\n    props: props,\n    // Record the component responsible for creating this element.\n    _owner: owner\n  };\n\n  {\n    // The validation flag is currently mutative. We put it on\n    // an external backing store so that we can freeze the whole object.\n    // This can be replaced with a WeakMap once they are implemented in\n    // commonly used development environments.\n    element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n    // the validation flag non-enumerable (where possible, which should\n    // include every environment we run tests in), so the test framework\n    // ignores it.\n\n    Object.defineProperty(element._store, 'validated', {\n      configurable: false,\n      enumerable: false,\n      writable: true,\n      value: false\n    }); // self and source are DEV only properties.\n\n    Object.defineProperty(element, '_self', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: self\n    }); // Two elements created in two different places should be considered\n    // equal for testing purposes and therefore we hide it from enumeration.\n\n    Object.defineProperty(element, '_source', {\n      configurable: false,\n      enumerable: false,\n      writable: false,\n      value: source\n    });\n\n    if (Object.freeze) {\n      Object.freeze(element.props);\n      Object.freeze(element);\n    }\n  }\n\n  return element;\n};\n/**\n * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\n\nfunction createElement(type, config, children) {\n  var propName; // Reserved names are extracted\n\n  var props = {};\n  var key = null;\n  var ref = null;\n  var self = null;\n  var source = null;\n\n  if (config != null) {\n    if (hasValidRef(config)) {\n      ref = config.ref;\n\n      {\n        warnIfStringRefCannotBeAutoConverted(config);\n      }\n    }\n\n    if (hasValidKey(config)) {\n      {\n        checkKeyStringCoercion(config.key);\n      }\n\n      key = '' + config.key;\n    }\n\n    self = config.__self === undefined ? null : config.__self;\n    source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n    for (propName in config) {\n      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        props[propName] = config[propName];\n      }\n    }\n  } // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n\n\n  var childrenLength = arguments.length - 2;\n\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n\n    {\n      if (Object.freeze) {\n        Object.freeze(childArray);\n      }\n    }\n\n    props.children = childArray;\n  } // Resolve default props\n\n\n  if (type && type.defaultProps) {\n    var defaultProps = type.defaultProps;\n\n    for (propName in defaultProps) {\n      if (props[propName] === undefined) {\n        props[propName] = defaultProps[propName];\n      }\n    }\n  }\n\n  {\n    if (key || ref) {\n      var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n      if (key) {\n        defineKeyPropWarningGetter(props, displayName);\n      }\n\n      if (ref) {\n        defineRefPropWarningGetter(props, displayName);\n      }\n    }\n  }\n\n  return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n  var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n  return newElement;\n}\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\n\nfunction cloneElement(element, config, children) {\n  if (element === null || element === undefined) {\n    throw new Error(\"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\");\n  }\n\n  var propName; // Original props are copied\n\n  var props = assign({}, element.props); // Reserved names are extracted\n\n  var key = element.key;\n  var ref = element.ref; // Self is preserved since the owner is preserved.\n\n  var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n  // transpiler, and the original source is probably a better indicator of the\n  // true owner.\n\n  var source = element._source; // Owner will be preserved, unless ref is overridden\n\n  var owner = element._owner;\n\n  if (config != null) {\n    if (hasValidRef(config)) {\n      // Silently steal the ref from the parent.\n      ref = config.ref;\n      owner = ReactCurrentOwner.current;\n    }\n\n    if (hasValidKey(config)) {\n      {\n        checkKeyStringCoercion(config.key);\n      }\n\n      key = '' + config.key;\n    } // Remaining properties override existing props\n\n\n    var defaultProps;\n\n    if (element.type && element.type.defaultProps) {\n      defaultProps = element.type.defaultProps;\n    }\n\n    for (propName in config) {\n      if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n        if (config[propName] === undefined && defaultProps !== undefined) {\n          // Resolve default props\n          props[propName] = defaultProps[propName];\n        } else {\n          props[propName] = config[propName];\n        }\n      }\n    }\n  } // Children can be more than one argument, and those are transferred onto\n  // the newly allocated props object.\n\n\n  var childrenLength = arguments.length - 2;\n\n  if (childrenLength === 1) {\n    props.children = children;\n  } else if (childrenLength > 1) {\n    var childArray = Array(childrenLength);\n\n    for (var i = 0; i < childrenLength; i++) {\n      childArray[i] = arguments[i + 2];\n    }\n\n    props.children = childArray;\n  }\n\n  return ReactElement(element.type, key, ref, self, source, owner, props);\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\nfunction isValidElement(object) {\n  return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n  var escapeRegex = /[=:]/g;\n  var escaperLookup = {\n    '=': '=0',\n    ':': '=2'\n  };\n  var escapedString = key.replace(escapeRegex, function (match) {\n    return escaperLookup[match];\n  });\n  return '$' + escapedString;\n}\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\n\nvar didWarnAboutMaps = false;\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction escapeUserProvidedKey(text) {\n  return text.replace(userProvidedKeyEscapeRegex, '$&/');\n}\n/**\n * Generate a key string that identifies a element within a set.\n *\n * @param {*} element A element that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\n\n\nfunction getElementKey(element, index) {\n  // Do some typechecking here since we call this blindly. We want to ensure\n  // that we don't block potential future ES APIs.\n  if (typeof element === 'object' && element !== null && element.key != null) {\n    // Explicit key\n    {\n      checkKeyStringCoercion(element.key);\n    }\n\n    return escape('' + element.key);\n  } // Implicit key determined by the index in the set\n\n\n  return index.toString(36);\n}\n\nfunction mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n  var type = typeof children;\n\n  if (type === 'undefined' || type === 'boolean') {\n    // All of the above are perceived as null.\n    children = null;\n  }\n\n  var invokeCallback = false;\n\n  if (children === null) {\n    invokeCallback = true;\n  } else {\n    switch (type) {\n      case 'string':\n      case 'number':\n        invokeCallback = true;\n        break;\n\n      case 'object':\n        switch (children.$$typeof) {\n          case REACT_ELEMENT_TYPE:\n          case REACT_PORTAL_TYPE:\n            invokeCallback = true;\n        }\n\n    }\n  }\n\n  if (invokeCallback) {\n    var _child = children;\n    var mappedChild = callback(_child); // If it's the only child, treat the name as if it was wrapped in an array\n    // so that it's consistent if the number of children grows:\n\n    var childKey = nameSoFar === '' ? SEPARATOR + getElementKey(_child, 0) : nameSoFar;\n\n    if (isArray(mappedChild)) {\n      var escapedChildKey = '';\n\n      if (childKey != null) {\n        escapedChildKey = escapeUserProvidedKey(childKey) + '/';\n      }\n\n      mapIntoArray(mappedChild, array, escapedChildKey, '', function (c) {\n        return c;\n      });\n    } else if (mappedChild != null) {\n      if (isValidElement(mappedChild)) {\n        {\n          // The `if` statement here prevents auto-disabling of the safe\n          // coercion ESLint rule, so we must manually disable it below.\n          // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n          if (mappedChild.key && (!_child || _child.key !== mappedChild.key)) {\n            checkKeyStringCoercion(mappedChild.key);\n          }\n        }\n\n        mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as\n        // traverseAllChildren used to do for objects as children\n        escapedPrefix + ( // $FlowFixMe Flow incorrectly thinks React.Portal doesn't have a key\n        mappedChild.key && (!_child || _child.key !== mappedChild.key) ? // $FlowFixMe Flow incorrectly thinks existing element's key can be a number\n        // eslint-disable-next-line react-internal/safe-string-coercion\n        escapeUserProvidedKey('' + mappedChild.key) + '/' : '') + childKey);\n      }\n\n      array.push(mappedChild);\n    }\n\n    return 1;\n  }\n\n  var child;\n  var nextName;\n  var subtreeCount = 0; // Count of children found in the current subtree.\n\n  var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n  if (isArray(children)) {\n    for (var i = 0; i < children.length; i++) {\n      child = children[i];\n      nextName = nextNamePrefix + getElementKey(child, i);\n      subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n    }\n  } else {\n    var iteratorFn = getIteratorFn(children);\n\n    if (typeof iteratorFn === 'function') {\n      var iterableChildren = children;\n\n      {\n        // Warn about using Maps as children\n        if (iteratorFn === iterableChildren.entries) {\n          if (!didWarnAboutMaps) {\n            warn('Using Maps as children is not supported. ' + 'Use an array of keyed ReactElements instead.');\n          }\n\n          didWarnAboutMaps = true;\n        }\n      }\n\n      var iterator = iteratorFn.call(iterableChildren);\n      var step;\n      var ii = 0;\n\n      while (!(step = iterator.next()).done) {\n        child = step.value;\n        nextName = nextNamePrefix + getElementKey(child, ii++);\n        subtreeCount += mapIntoArray(child, array, escapedPrefix, nextName, callback);\n      }\n    } else if (type === 'object') {\n      // eslint-disable-next-line react-internal/safe-string-coercion\n      var childrenString = String(children);\n      throw new Error(\"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \"). \" + 'If you meant to render a collection of children, use an array ' + 'instead.');\n    }\n  }\n\n  return subtreeCount;\n}\n\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\nfunction mapChildren(children, func, context) {\n  if (children == null) {\n    return children;\n  }\n\n  var result = [];\n  var count = 0;\n  mapIntoArray(children, result, '', '', function (child) {\n    return func.call(context, child, count++);\n  });\n  return result;\n}\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\n\n\nfunction countChildren(children) {\n  var n = 0;\n  mapChildren(children, function () {\n    n++; // Don't return anything\n  });\n  return n;\n}\n\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n  mapChildren(children, function () {\n    forEachFunc.apply(this, arguments); // Don't return anything.\n  }, forEachContext);\n}\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\n\n\nfunction toArray(children) {\n  return mapChildren(children, function (child) {\n    return child;\n  }) || [];\n}\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\n\n\nfunction onlyChild(children) {\n  if (!isValidElement(children)) {\n    throw new Error('React.Children.only expected to receive a single React element child.');\n  }\n\n  return children;\n}\n\nfunction createContext(defaultValue) {\n  // TODO: Second argument used to be an optional `calculateChangedBits`\n  // function. Warn to reserve for future use?\n  var context = {\n    $$typeof: REACT_CONTEXT_TYPE,\n    // As a workaround to support multiple concurrent renderers, we categorize\n    // some renderers as primary and others as secondary. We only expect\n    // there to be two concurrent renderers at most: React Native (primary) and\n    // Fabric (secondary); React DOM (primary) and React ART (secondary).\n    // Secondary renderers store their context values on separate fields.\n    _currentValue: defaultValue,\n    _currentValue2: defaultValue,\n    // Used to track how many concurrent renderers this context currently\n    // supports within in a single renderer. Such as parallel server rendering.\n    _threadCount: 0,\n    // These are circular\n    Provider: null,\n    Consumer: null,\n    // Add these to use same hidden class in VM as ServerContext\n    _defaultValue: null,\n    _globalName: null\n  };\n  context.Provider = {\n    $$typeof: REACT_PROVIDER_TYPE,\n    _context: context\n  };\n  var hasWarnedAboutUsingNestedContextConsumers = false;\n  var hasWarnedAboutUsingConsumerProvider = false;\n  var hasWarnedAboutDisplayNameOnConsumer = false;\n\n  {\n    // A separate object, but proxies back to the original context object for\n    // backwards compatibility. It has a different $$typeof, so we can properly\n    // warn for the incorrect usage of Context as a Consumer.\n    var Consumer = {\n      $$typeof: REACT_CONTEXT_TYPE,\n      _context: context\n    }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n    Object.defineProperties(Consumer, {\n      Provider: {\n        get: function () {\n          if (!hasWarnedAboutUsingConsumerProvider) {\n            hasWarnedAboutUsingConsumerProvider = true;\n\n            error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n          }\n\n          return context.Provider;\n        },\n        set: function (_Provider) {\n          context.Provider = _Provider;\n        }\n      },\n      _currentValue: {\n        get: function () {\n          return context._currentValue;\n        },\n        set: function (_currentValue) {\n          context._currentValue = _currentValue;\n        }\n      },\n      _currentValue2: {\n        get: function () {\n          return context._currentValue2;\n        },\n        set: function (_currentValue2) {\n          context._currentValue2 = _currentValue2;\n        }\n      },\n      _threadCount: {\n        get: function () {\n          return context._threadCount;\n        },\n        set: function (_threadCount) {\n          context._threadCount = _threadCount;\n        }\n      },\n      Consumer: {\n        get: function () {\n          if (!hasWarnedAboutUsingNestedContextConsumers) {\n            hasWarnedAboutUsingNestedContextConsumers = true;\n\n            error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n          }\n\n          return context.Consumer;\n        }\n      },\n      displayName: {\n        get: function () {\n          return context.displayName;\n        },\n        set: function (displayName) {\n          if (!hasWarnedAboutDisplayNameOnConsumer) {\n            warn('Setting `displayName` on Context.Consumer has no effect. ' + \"You should set it directly on the context with Context.displayName = '%s'.\", displayName);\n\n            hasWarnedAboutDisplayNameOnConsumer = true;\n          }\n        }\n      }\n    }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n    context.Consumer = Consumer;\n  }\n\n  {\n    context._currentRenderer = null;\n    context._currentRenderer2 = null;\n  }\n\n  return context;\n}\n\nvar Uninitialized = -1;\nvar Pending = 0;\nvar Resolved = 1;\nvar Rejected = 2;\n\nfunction lazyInitializer(payload) {\n  if (payload._status === Uninitialized) {\n    var ctor = payload._result;\n    var thenable = ctor(); // Transition to the next state.\n    // This might throw either because it's missing or throws. If so, we treat it\n    // as still uninitialized and try again next time. Which is the same as what\n    // happens if the ctor or any wrappers processing the ctor throws. This might\n    // end up fixing it if the resolution was a concurrency bug.\n\n    thenable.then(function (moduleObject) {\n      if (payload._status === Pending || payload._status === Uninitialized) {\n        // Transition to the next state.\n        var resolved = payload;\n        resolved._status = Resolved;\n        resolved._result = moduleObject;\n      }\n    }, function (error) {\n      if (payload._status === Pending || payload._status === Uninitialized) {\n        // Transition to the next state.\n        var rejected = payload;\n        rejected._status = Rejected;\n        rejected._result = error;\n      }\n    });\n\n    if (payload._status === Uninitialized) {\n      // In case, we're still uninitialized, then we're waiting for the thenable\n      // to resolve. Set it as pending in the meantime.\n      var pending = payload;\n      pending._status = Pending;\n      pending._result = thenable;\n    }\n  }\n\n  if (payload._status === Resolved) {\n    var moduleObject = payload._result;\n\n    {\n      if (moduleObject === undefined) {\n        error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n  ' + // Break up imports to avoid accidentally parsing them as dependencies.\n        'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\\n\\n\" + 'Did you accidentally put curly braces around the import?', moduleObject);\n      }\n    }\n\n    {\n      if (!('default' in moduleObject)) {\n        error('lazy: Expected the result of a dynamic imp' + 'ort() call. ' + 'Instead received: %s\\n\\nYour code should look like: \\n  ' + // Break up imports to avoid accidentally parsing them as dependencies.\n        'const MyComponent = lazy(() => imp' + \"ort('./MyComponent'))\", moduleObject);\n      }\n    }\n\n    return moduleObject.default;\n  } else {\n    throw payload._result;\n  }\n}\n\nfunction lazy(ctor) {\n  var payload = {\n    // We use these fields to store the result.\n    _status: Uninitialized,\n    _result: ctor\n  };\n  var lazyType = {\n    $$typeof: REACT_LAZY_TYPE,\n    _payload: payload,\n    _init: lazyInitializer\n  };\n\n  {\n    // In production, this would just set it on the object.\n    var defaultProps;\n    var propTypes; // $FlowFixMe\n\n    Object.defineProperties(lazyType, {\n      defaultProps: {\n        configurable: true,\n        get: function () {\n          return defaultProps;\n        },\n        set: function (newDefaultProps) {\n          error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n          defaultProps = newDefaultProps; // Match production behavior more closely:\n          // $FlowFixMe\n\n          Object.defineProperty(lazyType, 'defaultProps', {\n            enumerable: true\n          });\n        }\n      },\n      propTypes: {\n        configurable: true,\n        get: function () {\n          return propTypes;\n        },\n        set: function (newPropTypes) {\n          error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n          propTypes = newPropTypes; // Match production behavior more closely:\n          // $FlowFixMe\n\n          Object.defineProperty(lazyType, 'propTypes', {\n            enumerable: true\n          });\n        }\n      }\n    });\n  }\n\n  return lazyType;\n}\n\nfunction forwardRef(render) {\n  {\n    if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n      error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n    } else if (typeof render !== 'function') {\n      error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n    } else {\n      if (render.length !== 0 && render.length !== 2) {\n        error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n      }\n    }\n\n    if (render != null) {\n      if (render.defaultProps != null || render.propTypes != null) {\n        error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n      }\n    }\n  }\n\n  var elementType = {\n    $$typeof: REACT_FORWARD_REF_TYPE,\n    render: render\n  };\n\n  {\n    var ownName;\n    Object.defineProperty(elementType, 'displayName', {\n      enumerable: false,\n      configurable: true,\n      get: function () {\n        return ownName;\n      },\n      set: function (name) {\n        ownName = name; // The inner component shouldn't inherit this display name in most cases,\n        // because the component may be used elsewhere.\n        // But it's nice for anonymous functions to inherit the name,\n        // so that our component-stack generation logic will display their frames.\n        // An anonymous function generally suggests a pattern like:\n        //   React.forwardRef((props, ref) => {...});\n        // This kind of inner function is not used elsewhere so the side effect is okay.\n\n        if (!render.name && !render.displayName) {\n          render.displayName = name;\n        }\n      }\n    });\n  }\n\n  return elementType;\n}\n\nvar REACT_MODULE_REFERENCE;\n\n{\n  REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n  if (typeof type === 'string' || typeof type === 'function') {\n    return true;\n  } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n  if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing  || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden  || type === REACT_OFFSCREEN_TYPE || enableScopeAPI  || enableCacheElement  || enableTransitionTracing ) {\n    return true;\n  }\n\n  if (typeof type === 'object' && type !== null) {\n    if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n    // types supported by any Flight configuration anywhere since\n    // we don't know which Flight build this will end up being used\n    // with.\n    type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n      return true;\n    }\n  }\n\n  return false;\n}\n\nfunction memo(type, compare) {\n  {\n    if (!isValidElementType(type)) {\n      error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n    }\n  }\n\n  var elementType = {\n    $$typeof: REACT_MEMO_TYPE,\n    type: type,\n    compare: compare === undefined ? null : compare\n  };\n\n  {\n    var ownName;\n    Object.defineProperty(elementType, 'displayName', {\n      enumerable: false,\n      configurable: true,\n      get: function () {\n        return ownName;\n      },\n      set: function (name) {\n        ownName = name; // The inner component shouldn't inherit this display name in most cases,\n        // because the component may be used elsewhere.\n        // But it's nice for anonymous functions to inherit the name,\n        // so that our component-stack generation logic will display their frames.\n        // An anonymous function generally suggests a pattern like:\n        //   React.memo((props) => {...});\n        // This kind of inner function is not used elsewhere so the side effect is okay.\n\n        if (!type.name && !type.displayName) {\n          type.displayName = name;\n        }\n      }\n    });\n  }\n\n  return elementType;\n}\n\nfunction resolveDispatcher() {\n  var dispatcher = ReactCurrentDispatcher.current;\n\n  {\n    if (dispatcher === null) {\n      error('Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for' + ' one of the following reasons:\\n' + '1. You might have mismatching versions of React and the renderer (such as React DOM)\\n' + '2. You might be breaking the Rules of Hooks\\n' + '3. You might have more than one copy of React in the same app\\n' + 'See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem.');\n    }\n  } // Will result in a null access error if accessed outside render phase. We\n  // intentionally don't throw our own error because this is in a hot path.\n  // Also helps ensure this is inlined.\n\n\n  return dispatcher;\n}\nfunction useContext(Context) {\n  var dispatcher = resolveDispatcher();\n\n  {\n    // TODO: add a more generic warning for invalid values.\n    if (Context._context !== undefined) {\n      var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n      // and nobody should be using this in existing code.\n\n      if (realContext.Consumer === Context) {\n        error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n      } else if (realContext.Provider === Context) {\n        error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n      }\n    }\n  }\n\n  return dispatcher.useContext(Context);\n}\nfunction useState(initialState) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useState(initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useReducer(reducer, initialArg, init);\n}\nfunction useRef(initialValue) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useRef(initialValue);\n}\nfunction useEffect(create, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useEffect(create, deps);\n}\nfunction useInsertionEffect(create, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useInsertionEffect(create, deps);\n}\nfunction useLayoutEffect(create, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useLayoutEffect(create, deps);\n}\nfunction useCallback(callback, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useCallback(callback, deps);\n}\nfunction useMemo(create, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useMemo(create, deps);\n}\nfunction useImperativeHandle(ref, create, deps) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useImperativeHandle(ref, create, deps);\n}\nfunction useDebugValue(value, formatterFn) {\n  {\n    var dispatcher = resolveDispatcher();\n    return dispatcher.useDebugValue(value, formatterFn);\n  }\n}\nfunction useTransition() {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useTransition();\n}\nfunction useDeferredValue(value) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useDeferredValue(value);\n}\nfunction useId() {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useId();\n}\nfunction useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) {\n  var dispatcher = resolveDispatcher();\n  return dispatcher.useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n  {\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      prevLog = console.log;\n      prevInfo = console.info;\n      prevWarn = console.warn;\n      prevError = console.error;\n      prevGroup = console.group;\n      prevGroupCollapsed = console.groupCollapsed;\n      prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n      var props = {\n        configurable: true,\n        enumerable: true,\n        value: disabledLog,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        info: props,\n        log: props,\n        warn: props,\n        error: props,\n        group: props,\n        groupCollapsed: props,\n        groupEnd: props\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    disabledDepth++;\n  }\n}\nfunction reenableLogs() {\n  {\n    disabledDepth--;\n\n    if (disabledDepth === 0) {\n      /* eslint-disable react-internal/no-production-logging */\n      var props = {\n        configurable: true,\n        enumerable: true,\n        writable: true\n      }; // $FlowFixMe Flow thinks console is immutable.\n\n      Object.defineProperties(console, {\n        log: assign({}, props, {\n          value: prevLog\n        }),\n        info: assign({}, props, {\n          value: prevInfo\n        }),\n        warn: assign({}, props, {\n          value: prevWarn\n        }),\n        error: assign({}, props, {\n          value: prevError\n        }),\n        group: assign({}, props, {\n          value: prevGroup\n        }),\n        groupCollapsed: assign({}, props, {\n          value: prevGroupCollapsed\n        }),\n        groupEnd: assign({}, props, {\n          value: prevGroupEnd\n        })\n      });\n      /* eslint-enable react-internal/no-production-logging */\n    }\n\n    if (disabledDepth < 0) {\n      error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n    }\n  }\n}\n\nvar ReactCurrentDispatcher$1 = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n  {\n    if (prefix === undefined) {\n      // Extract the VM specific prefix used by each line.\n      try {\n        throw Error();\n      } catch (x) {\n        var match = x.stack.trim().match(/\\n( *(at )?)/);\n        prefix = match && match[1] || '';\n      }\n    } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n    return '\\n' + prefix + name;\n  }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n  var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n  componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n  // If something asked for a stack inside a fake render, it should get ignored.\n  if ( !fn || reentry) {\n    return '';\n  }\n\n  {\n    var frame = componentFrameCache.get(fn);\n\n    if (frame !== undefined) {\n      return frame;\n    }\n  }\n\n  var control;\n  reentry = true;\n  var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n  Error.prepareStackTrace = undefined;\n  var previousDispatcher;\n\n  {\n    previousDispatcher = ReactCurrentDispatcher$1.current; // Set the dispatcher in DEV because this might be call in the render function\n    // for warnings.\n\n    ReactCurrentDispatcher$1.current = null;\n    disableLogs();\n  }\n\n  try {\n    // This should throw.\n    if (construct) {\n      // Something should be setting the props in the constructor.\n      var Fake = function () {\n        throw Error();\n      }; // $FlowFixMe\n\n\n      Object.defineProperty(Fake.prototype, 'props', {\n        set: function () {\n          // We use a throwing setter instead of frozen or non-writable props\n          // because that won't throw in a non-strict mode function.\n          throw Error();\n        }\n      });\n\n      if (typeof Reflect === 'object' && Reflect.construct) {\n        // We construct a different control for this case to include any extra\n        // frames added by the construct call.\n        try {\n          Reflect.construct(Fake, []);\n        } catch (x) {\n          control = x;\n        }\n\n        Reflect.construct(fn, [], Fake);\n      } else {\n        try {\n          Fake.call();\n        } catch (x) {\n          control = x;\n        }\n\n        fn.call(Fake.prototype);\n      }\n    } else {\n      try {\n        throw Error();\n      } catch (x) {\n        control = x;\n      }\n\n      fn();\n    }\n  } catch (sample) {\n    // This is inlined manually because closure doesn't do it for us.\n    if (sample && control && typeof sample.stack === 'string') {\n      // This extracts the first frame from the sample that isn't also in the control.\n      // Skipping one frame that we assume is the frame that calls the two.\n      var sampleLines = sample.stack.split('\\n');\n      var controlLines = control.stack.split('\\n');\n      var s = sampleLines.length - 1;\n      var c = controlLines.length - 1;\n\n      while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n        // We expect at least one stack frame to be shared.\n        // Typically this will be the root most one. However, stack frames may be\n        // cut off due to maximum stack limits. In this case, one maybe cut off\n        // earlier than the other. We assume that the sample is longer or the same\n        // and there for cut off earlier. So we should find the root most frame in\n        // the sample somewhere in the control.\n        c--;\n      }\n\n      for (; s >= 1 && c >= 0; s--, c--) {\n        // Next we find the first one that isn't the same which should be the\n        // frame that called our sample function and the control.\n        if (sampleLines[s] !== controlLines[c]) {\n          // In V8, the first line is describing the message but other VMs don't.\n          // If we're about to return the first line, and the control is also on the same\n          // line, that's a pretty good indicator that our sample threw at same line as\n          // the control. I.e. before we entered the sample frame. So we ignore this result.\n          // This can happen if you passed a class to function component, or non-function.\n          if (s !== 1 || c !== 1) {\n            do {\n              s--;\n              c--; // We may still have similar intermediate frames from the construct call.\n              // The next one that isn't the same should be our match though.\n\n              if (c < 0 || sampleLines[s] !== controlLines[c]) {\n                // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n                var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n                // but we have a user-provided \"displayName\"\n                // splice it in to make the stack more readable.\n\n\n                if (fn.displayName && _frame.includes('<anonymous>')) {\n                  _frame = _frame.replace('<anonymous>', fn.displayName);\n                }\n\n                {\n                  if (typeof fn === 'function') {\n                    componentFrameCache.set(fn, _frame);\n                  }\n                } // Return the line we found.\n\n\n                return _frame;\n              }\n            } while (s >= 1 && c >= 0);\n          }\n\n          break;\n        }\n      }\n    }\n  } finally {\n    reentry = false;\n\n    {\n      ReactCurrentDispatcher$1.current = previousDispatcher;\n      reenableLogs();\n    }\n\n    Error.prepareStackTrace = previousPrepareStackTrace;\n  } // Fallback to just using the name if we couldn't make it throw.\n\n\n  var name = fn ? fn.displayName || fn.name : '';\n  var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n  {\n    if (typeof fn === 'function') {\n      componentFrameCache.set(fn, syntheticFrame);\n    }\n  }\n\n  return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n  {\n    return describeNativeComponentFrame(fn, false);\n  }\n}\n\nfunction shouldConstruct(Component) {\n  var prototype = Component.prototype;\n  return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n  if (type == null) {\n    return '';\n  }\n\n  if (typeof type === 'function') {\n    {\n      return describeNativeComponentFrame(type, shouldConstruct(type));\n    }\n  }\n\n  if (typeof type === 'string') {\n    return describeBuiltInComponentFrame(type);\n  }\n\n  switch (type) {\n    case REACT_SUSPENSE_TYPE:\n      return describeBuiltInComponentFrame('Suspense');\n\n    case REACT_SUSPENSE_LIST_TYPE:\n      return describeBuiltInComponentFrame('SuspenseList');\n  }\n\n  if (typeof type === 'object') {\n    switch (type.$$typeof) {\n      case REACT_FORWARD_REF_TYPE:\n        return describeFunctionComponentFrame(type.render);\n\n      case REACT_MEMO_TYPE:\n        // Memo may contain any component type so we recursively resolve it.\n        return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n      case REACT_LAZY_TYPE:\n        {\n          var lazyComponent = type;\n          var payload = lazyComponent._payload;\n          var init = lazyComponent._init;\n\n          try {\n            // Lazy may contain any component type so we recursively resolve it.\n            return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n          } catch (x) {}\n        }\n    }\n  }\n\n  return '';\n}\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n  {\n    if (element) {\n      var owner = element._owner;\n      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n      ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n    } else {\n      ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n    }\n  }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n  {\n    // $FlowFixMe This is okay but Flow doesn't know it.\n    var has = Function.call.bind(hasOwnProperty);\n\n    for (var typeSpecName in typeSpecs) {\n      if (has(typeSpecs, typeSpecName)) {\n        var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n        // fail the render phase where it didn't fail before. So we log it.\n        // After these have been cleaned up, we'll let them throw.\n\n        try {\n          // This is intentionally an invariant that gets caught. It's the same\n          // behavior as without this statement except with a better message.\n          if (typeof typeSpecs[typeSpecName] !== 'function') {\n            // eslint-disable-next-line react-internal/prod-error-codes\n            var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n            err.name = 'Invariant Violation';\n            throw err;\n          }\n\n          error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n        } catch (ex) {\n          error$1 = ex;\n        }\n\n        if (error$1 && !(error$1 instanceof Error)) {\n          setCurrentlyValidatingElement(element);\n\n          error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n          setCurrentlyValidatingElement(null);\n        }\n\n        if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n          // Only monitor this failure once because there tends to be a lot of the\n          // same error.\n          loggedTypeFailures[error$1.message] = true;\n          setCurrentlyValidatingElement(element);\n\n          error('Failed %s type: %s', location, error$1.message);\n\n          setCurrentlyValidatingElement(null);\n        }\n      }\n    }\n  }\n}\n\nfunction setCurrentlyValidatingElement$1(element) {\n  {\n    if (element) {\n      var owner = element._owner;\n      var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n      setExtraStackFrame(stack);\n    } else {\n      setExtraStackFrame(null);\n    }\n  }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n  propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n  if (ReactCurrentOwner.current) {\n    var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n    if (name) {\n      return '\\n\\nCheck the render method of `' + name + '`.';\n    }\n  }\n\n  return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n  if (source !== undefined) {\n    var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n    var lineNumber = source.lineNumber;\n    return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n  }\n\n  return '';\n}\n\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n  if (elementProps !== null && elementProps !== undefined) {\n    return getSourceInfoErrorAddendum(elementProps.__source);\n  }\n\n  return '';\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n  var info = getDeclarationErrorAddendum();\n\n  if (!info) {\n    var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n    if (parentName) {\n      info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n    }\n  }\n\n  return info;\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n  if (!element._store || element._store.validated || element.key != null) {\n    return;\n  }\n\n  element._store.validated = true;\n  var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n  if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n    return;\n  }\n\n  ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n  // property, it may be the creator of the child that's responsible for\n  // assigning it a key.\n\n  var childOwner = '';\n\n  if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n    // Give the component that originally created this child.\n    childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n  }\n\n  {\n    setCurrentlyValidatingElement$1(element);\n\n    error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n    setCurrentlyValidatingElement$1(null);\n  }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n  if (typeof node !== 'object') {\n    return;\n  }\n\n  if (isArray(node)) {\n    for (var i = 0; i < node.length; i++) {\n      var child = node[i];\n\n      if (isValidElement(child)) {\n        validateExplicitKey(child, parentType);\n      }\n    }\n  } else if (isValidElement(node)) {\n    // This element was passed in a valid location.\n    if (node._store) {\n      node._store.validated = true;\n    }\n  } else if (node) {\n    var iteratorFn = getIteratorFn(node);\n\n    if (typeof iteratorFn === 'function') {\n      // Entry iterators used to provide implicit keys,\n      // but now we print a separate warning for them later.\n      if (iteratorFn !== node.entries) {\n        var iterator = iteratorFn.call(node);\n        var step;\n\n        while (!(step = iterator.next()).done) {\n          if (isValidElement(step.value)) {\n            validateExplicitKey(step.value, parentType);\n          }\n        }\n      }\n    }\n  }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n  {\n    var type = element.type;\n\n    if (type === null || type === undefined || typeof type === 'string') {\n      return;\n    }\n\n    var propTypes;\n\n    if (typeof type === 'function') {\n      propTypes = type.propTypes;\n    } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n    // Inner props are checked in the reconciler.\n    type.$$typeof === REACT_MEMO_TYPE)) {\n      propTypes = type.propTypes;\n    } else {\n      return;\n    }\n\n    if (propTypes) {\n      // Intentionally inside to avoid triggering lazy initializers:\n      var name = getComponentNameFromType(type);\n      checkPropTypes(propTypes, element.props, 'prop', name, element);\n    } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n      propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n      var _name = getComponentNameFromType(type);\n\n      error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n    }\n\n    if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n      error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n    }\n  }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n  {\n    var keys = Object.keys(fragment.props);\n\n    for (var i = 0; i < keys.length; i++) {\n      var key = keys[i];\n\n      if (key !== 'children' && key !== 'key') {\n        setCurrentlyValidatingElement$1(fragment);\n\n        error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n        setCurrentlyValidatingElement$1(null);\n        break;\n      }\n    }\n\n    if (fragment.ref !== null) {\n      setCurrentlyValidatingElement$1(fragment);\n\n      error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n      setCurrentlyValidatingElement$1(null);\n    }\n  }\n}\nfunction createElementWithValidation(type, props, children) {\n  var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n  // succeed and there will likely be errors in render.\n\n  if (!validType) {\n    var info = '';\n\n    if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n      info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n    }\n\n    var sourceInfo = getSourceInfoErrorAddendumForProps(props);\n\n    if (sourceInfo) {\n      info += sourceInfo;\n    } else {\n      info += getDeclarationErrorAddendum();\n    }\n\n    var typeString;\n\n    if (type === null) {\n      typeString = 'null';\n    } else if (isArray(type)) {\n      typeString = 'array';\n    } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n      typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n      info = ' Did you accidentally export a JSX literal instead of a component?';\n    } else {\n      typeString = typeof type;\n    }\n\n    {\n      error('React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n    }\n  }\n\n  var element = createElement.apply(this, arguments); // The result can be nullish if a mock or a custom function is used.\n  // TODO: Drop this when these are no longer allowed as the type argument.\n\n  if (element == null) {\n    return element;\n  } // Skip key warning if the type isn't valid since our key validation logic\n  // doesn't expect a non-string/function type and can throw confusing errors.\n  // We don't want exception behavior to differ between dev and prod.\n  // (Rendering will throw with a helpful message and as soon as the type is\n  // fixed, the key warnings will appear.)\n\n\n  if (validType) {\n    for (var i = 2; i < arguments.length; i++) {\n      validateChildKeys(arguments[i], type);\n    }\n  }\n\n  if (type === REACT_FRAGMENT_TYPE) {\n    validateFragmentProps(element);\n  } else {\n    validatePropTypes(element);\n  }\n\n  return element;\n}\nvar didWarnAboutDeprecatedCreateFactory = false;\nfunction createFactoryWithValidation(type) {\n  var validatedFactory = createElementWithValidation.bind(null, type);\n  validatedFactory.type = type;\n\n  {\n    if (!didWarnAboutDeprecatedCreateFactory) {\n      didWarnAboutDeprecatedCreateFactory = true;\n\n      warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n    } // Legacy hook: remove it\n\n\n    Object.defineProperty(validatedFactory, 'type', {\n      enumerable: false,\n      get: function () {\n        warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n\n        Object.defineProperty(this, 'type', {\n          value: type\n        });\n        return type;\n      }\n    });\n  }\n\n  return validatedFactory;\n}\nfunction cloneElementWithValidation(element, props, children) {\n  var newElement = cloneElement.apply(this, arguments);\n\n  for (var i = 2; i < arguments.length; i++) {\n    validateChildKeys(arguments[i], newElement.type);\n  }\n\n  validatePropTypes(newElement);\n  return newElement;\n}\n\nfunction startTransition(scope, options) {\n  var prevTransition = ReactCurrentBatchConfig.transition;\n  ReactCurrentBatchConfig.transition = {};\n  var currentTransition = ReactCurrentBatchConfig.transition;\n\n  {\n    ReactCurrentBatchConfig.transition._updatedFibers = new Set();\n  }\n\n  try {\n    scope();\n  } finally {\n    ReactCurrentBatchConfig.transition = prevTransition;\n\n    {\n      if (prevTransition === null && currentTransition._updatedFibers) {\n        var updatedFibersCount = currentTransition._updatedFibers.size;\n\n        if (updatedFibersCount > 10) {\n          warn('Detected a large number of updates inside startTransition. ' + 'If this is due to a subscription please re-write it to use React provided hooks. ' + 'Otherwise concurrent mode guarantees are off the table.');\n        }\n\n        currentTransition._updatedFibers.clear();\n      }\n    }\n  }\n}\n\nvar didWarnAboutMessageChannel = false;\nvar enqueueTaskImpl = null;\nfunction enqueueTask(task) {\n  if (enqueueTaskImpl === null) {\n    try {\n      // read require off the module object to get around the bundlers.\n      // we don't want them to detect a require and bundle a Node polyfill.\n      var requireString = ('require' + Math.random()).slice(0, 7);\n      var nodeRequire = module && module[requireString]; // assuming we're in node, let's try to get node's\n      // version of setImmediate, bypassing fake timers if any.\n\n      enqueueTaskImpl = nodeRequire.call(module, 'timers').setImmediate;\n    } catch (_err) {\n      // we're in a browser\n      // we can't use regular timers because they may still be faked\n      // so we try MessageChannel+postMessage instead\n      enqueueTaskImpl = function (callback) {\n        {\n          if (didWarnAboutMessageChannel === false) {\n            didWarnAboutMessageChannel = true;\n\n            if (typeof MessageChannel === 'undefined') {\n              error('This browser does not have a MessageChannel implementation, ' + 'so enqueuing tasks via await act(async () => ...) will fail. ' + 'Please file an issue at https://github.com/facebook/react/issues ' + 'if you encounter this warning.');\n            }\n          }\n        }\n\n        var channel = new MessageChannel();\n        channel.port1.onmessage = callback;\n        channel.port2.postMessage(undefined);\n      };\n    }\n  }\n\n  return enqueueTaskImpl(task);\n}\n\nvar actScopeDepth = 0;\nvar didWarnNoAwaitAct = false;\nfunction act(callback) {\n  {\n    // `act` calls can be nested, so we track the depth. This represents the\n    // number of `act` scopes on the stack.\n    var prevActScopeDepth = actScopeDepth;\n    actScopeDepth++;\n\n    if (ReactCurrentActQueue.current === null) {\n      // This is the outermost `act` scope. Initialize the queue. The reconciler\n      // will detect the queue and use it instead of Scheduler.\n      ReactCurrentActQueue.current = [];\n    }\n\n    var prevIsBatchingLegacy = ReactCurrentActQueue.isBatchingLegacy;\n    var result;\n\n    try {\n      // Used to reproduce behavior of `batchedUpdates` in legacy mode. Only\n      // set to `true` while the given callback is executed, not for updates\n      // triggered during an async event, because this is how the legacy\n      // implementation of `act` behaved.\n      ReactCurrentActQueue.isBatchingLegacy = true;\n      result = callback(); // Replicate behavior of original `act` implementation in legacy mode,\n      // which flushed updates immediately after the scope function exits, even\n      // if it's an async function.\n\n      if (!prevIsBatchingLegacy && ReactCurrentActQueue.didScheduleLegacyUpdate) {\n        var queue = ReactCurrentActQueue.current;\n\n        if (queue !== null) {\n          ReactCurrentActQueue.didScheduleLegacyUpdate = false;\n          flushActQueue(queue);\n        }\n      }\n    } catch (error) {\n      popActScope(prevActScopeDepth);\n      throw error;\n    } finally {\n      ReactCurrentActQueue.isBatchingLegacy = prevIsBatchingLegacy;\n    }\n\n    if (result !== null && typeof result === 'object' && typeof result.then === 'function') {\n      var thenableResult = result; // The callback is an async function (i.e. returned a promise). Wait\n      // for it to resolve before exiting the current scope.\n\n      var wasAwaited = false;\n      var thenable = {\n        then: function (resolve, reject) {\n          wasAwaited = true;\n          thenableResult.then(function (returnValue) {\n            popActScope(prevActScopeDepth);\n\n            if (actScopeDepth === 0) {\n              // We've exited the outermost act scope. Recursively flush the\n              // queue until there's no remaining work.\n              recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n            } else {\n              resolve(returnValue);\n            }\n          }, function (error) {\n            // The callback threw an error.\n            popActScope(prevActScopeDepth);\n            reject(error);\n          });\n        }\n      };\n\n      {\n        if (!didWarnNoAwaitAct && typeof Promise !== 'undefined') {\n          // eslint-disable-next-line no-undef\n          Promise.resolve().then(function () {}).then(function () {\n            if (!wasAwaited) {\n              didWarnNoAwaitAct = true;\n\n              error('You called act(async () => ...) without await. ' + 'This could lead to unexpected testing behaviour, ' + 'interleaving multiple act calls and mixing their ' + 'scopes. ' + 'You should - await act(async () => ...);');\n            }\n          });\n        }\n      }\n\n      return thenable;\n    } else {\n      var returnValue = result; // The callback is not an async function. Exit the current scope\n      // immediately, without awaiting.\n\n      popActScope(prevActScopeDepth);\n\n      if (actScopeDepth === 0) {\n        // Exiting the outermost act scope. Flush the queue.\n        var _queue = ReactCurrentActQueue.current;\n\n        if (_queue !== null) {\n          flushActQueue(_queue);\n          ReactCurrentActQueue.current = null;\n        } // Return a thenable. If the user awaits it, we'll flush again in\n        // case additional work was scheduled by a microtask.\n\n\n        var _thenable = {\n          then: function (resolve, reject) {\n            // Confirm we haven't re-entered another `act` scope, in case\n            // the user does something weird like await the thenable\n            // multiple times.\n            if (ReactCurrentActQueue.current === null) {\n              // Recursively flush the queue until there's no remaining work.\n              ReactCurrentActQueue.current = [];\n              recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n            } else {\n              resolve(returnValue);\n            }\n          }\n        };\n        return _thenable;\n      } else {\n        // Since we're inside a nested `act` scope, the returned thenable\n        // immediately resolves. The outer scope will flush the queue.\n        var _thenable2 = {\n          then: function (resolve, reject) {\n            resolve(returnValue);\n          }\n        };\n        return _thenable2;\n      }\n    }\n  }\n}\n\nfunction popActScope(prevActScopeDepth) {\n  {\n    if (prevActScopeDepth !== actScopeDepth - 1) {\n      error('You seem to have overlapping act() calls, this is not supported. ' + 'Be sure to await previous act() calls before making a new one. ');\n    }\n\n    actScopeDepth = prevActScopeDepth;\n  }\n}\n\nfunction recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n  {\n    var queue = ReactCurrentActQueue.current;\n\n    if (queue !== null) {\n      try {\n        flushActQueue(queue);\n        enqueueTask(function () {\n          if (queue.length === 0) {\n            // No additional work was scheduled. Finish.\n            ReactCurrentActQueue.current = null;\n            resolve(returnValue);\n          } else {\n            // Keep flushing work until there's none left.\n            recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n          }\n        });\n      } catch (error) {\n        reject(error);\n      }\n    } else {\n      resolve(returnValue);\n    }\n  }\n}\n\nvar isFlushing = false;\n\nfunction flushActQueue(queue) {\n  {\n    if (!isFlushing) {\n      // Prevent re-entrance.\n      isFlushing = true;\n      var i = 0;\n\n      try {\n        for (; i < queue.length; i++) {\n          var callback = queue[i];\n\n          do {\n            callback = callback(true);\n          } while (callback !== null);\n        }\n\n        queue.length = 0;\n      } catch (error) {\n        // If something throws, leave the remaining callbacks on the queue.\n        queue = queue.slice(i + 1);\n        throw error;\n      } finally {\n        isFlushing = false;\n      }\n    }\n  }\n}\n\nvar createElement$1 =  createElementWithValidation ;\nvar cloneElement$1 =  cloneElementWithValidation ;\nvar createFactory =  createFactoryWithValidation ;\nvar Children = {\n  map: mapChildren,\n  forEach: forEachChildren,\n  count: countChildren,\n  toArray: toArray,\n  only: onlyChild\n};\n\nexports.Children = Children;\nexports.Component = Component;\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.Profiler = REACT_PROFILER_TYPE;\nexports.PureComponent = PureComponent;\nexports.StrictMode = REACT_STRICT_MODE_TYPE;\nexports.Suspense = REACT_SUSPENSE_TYPE;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\nexports.cloneElement = cloneElement$1;\nexports.createContext = createContext;\nexports.createElement = createElement$1;\nexports.createFactory = createFactory;\nexports.createRef = createRef;\nexports.forwardRef = forwardRef;\nexports.isValidElement = isValidElement;\nexports.lazy = lazy;\nexports.memo = memo;\nexports.startTransition = startTransition;\nexports.unstable_act = act;\nexports.useCallback = useCallback;\nexports.useContext = useContext;\nexports.useDebugValue = useDebugValue;\nexports.useDeferredValue = useDeferredValue;\nexports.useEffect = useEffect;\nexports.useId = useId;\nexports.useImperativeHandle = useImperativeHandle;\nexports.useInsertionEffect = useInsertionEffect;\nexports.useLayoutEffect = useLayoutEffect;\nexports.useMemo = useMemo;\nexports.useReducer = useReducer;\nexports.useRef = useRef;\nexports.useState = useState;\nexports.useSyncExternalStore = useSyncExternalStore;\nexports.useTransition = useTransition;\nexports.version = ReactVersion;\n          /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\nif (\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' &&\n  typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop ===\n    'function'\n) {\n  __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(new Error());\n}\n        \n  })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n  module.exports = require('./cjs/react.production.min.js');\n} else {\n  module.exports = require('./cjs/react.development.js');\n}\n",null],"names":["BreadcrumbLogLevel","BreadcrumbType","AGENT","__awaiter","BacktraceClient","BrowserClient","reactModule","require$$0","require$$1","Component","isValidElement"],"mappings":"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","x_google_ignoreList":[5,6,7,8]}