{"version":3,"file":"bundle.min.js","sources":["../../../core/build/esm/debug-build.js","../../../core/build/esm/utils/worldwide.js","../../../core/build/esm/utils/version.js","../../../core/build/esm/carrier.js","../../../core/build/esm/utils/debug-logger.js","../../../core/build/esm/utils/stacktrace.js","../../../core/build/esm/instrument/handlers.js","../../../core/build/esm/instrument/globalError.js","../../../core/build/esm/instrument/globalUnhandledRejection.js","../../../core/build/esm/utils/is.js","../../../core/build/esm/utils/object.js","../../../core/build/esm/utils/randomSafeContext.js","../../../core/build/esm/utils/normalizationHints.js","../../../core/build/esm/utils/normalize.js","../../../core/build/esm/utils/misc.js","../../../core/build/esm/utils/string.js","../../../core/build/esm/utils/time.js","../../../core/build/esm/session.js","../../../core/build/esm/utils/merge.js","../../../core/build/esm/utils/propagationContext.js","../../../core/build/esm/scope.js","../../../core/build/esm/tracing/constants.js","../../../core/build/esm/utils/chain-and-copy-promiselike.js","../../../core/build/esm/asyncContext/stackStrategy.js","../../../core/build/esm/defaultScopes.js","../../../core/build/esm/asyncContext/index.js","../../../core/build/esm/attributes.js","../../../core/build/esm/currentScopes.js","../../../../node_modules/@sentry/conventions/dist/attributes.mjs","../../../core/build/esm/semanticAttributes.js","../../../core/build/esm/types/spanStatus.js","../../../core/build/esm/utils/weakRef.js","../../../core/build/esm/tracing/utils.js","../../../core/build/esm/utils/baggage.js","../../../core/build/esm/utils/dsn.js","../../../core/build/esm/utils/parseSampleRate.js","../../../core/build/esm/utils/tracing.js","../../../core/build/esm/utils/spanOnScope.js","../../../core/build/esm/utils/spanUtils.js","../../../core/build/esm/tracing/spanstatus.js","../../../core/build/esm/utils/hasSpansEnabled.js","../../../core/build/esm/utils/should-ignore-span.js","../../../core/build/esm/integration.js","../../../core/build/esm/constants.js","../../../core/build/esm/tracing/sentryNonRecordingSpan.js","../../../core/build/esm/tracing/dynamicSamplingContext.js","../../../core/build/esm/utils/scopeData.js","../../../core/build/esm/utils/safeCallback.js","../../../core/build/esm/tracing/spans/beforeSendSpan.js","../../../core/build/esm/tracing/spans/spanJsonToStreamedSpan.js","../../../core/build/esm/tracing/spans/captureSpan.js","../../../core/build/esm/utils/timer.js","../../../core/build/esm/utils/envelope.js","../../../core/build/esm/utils/isBrowser.js","../../../core/build/esm/utils/errorSpanAttribution.js","../../../core/build/esm/tracing/trace.js","../../../core/build/esm/envelope.js","../../../core/build/esm/utils/syncpromise.js","../../../core/build/esm/eventProcessors.js","../../../core/build/esm/utils/debug-ids.js","../../../core/build/esm/utils/prepareEvent.js","../../../core/build/esm/exports.js","../../../core/build/esm/api.js","../../../core/build/esm/logs/envelope.js","../../../core/build/esm/logs/internal.js","../../../core/build/esm/metrics/envelope.js","../../../core/build/esm/metrics/internal.js","../../../core/build/esm/tracing/spans/extractGenAiSpans.js","../../../core/build/esm/tracing/spans/hasSpanStreamingEnabled.js","../../../core/build/esm/tracing/spans/envelope.js","../../../core/build/esm/utils/promisebuffer.js","../../../core/build/esm/utils/ratelimit.js","../../../core/build/esm/transports/base.js","../../../core/build/esm/utils/data-collection/resolveDataCollectionOptions.js","../../../core/build/esm/client.js","../../../core/build/esm/utils/warnAboutIgnoredTransactionOptions.js","../../../core/build/esm/utils/transactionEvent.js","../../../core/build/esm/utils/clientreport.js","../../../core/build/esm/sdk.js","../../../core/build/esm/utils/data-collection/filtering-snippets.js","../../../core/build/esm/utils/data-collection/filterKeyValueData.js","../../../core/build/esm/utils/data-collection/filterUrlQuery.js","../../../core/build/esm/utils/data-collection/filterQueryParams.js","../../../core/build/esm/utils/data-collection/filterCollectedUrl.js","../../../core/build/esm/utils/url.js","../../../core/build/esm/utils/ipAddress.js","../../../core/build/esm/breadcrumbs.js","../../../core/build/esm/integrations/functiontostring.js","../../../core/build/esm/integrations/eventFilters.js","../../../core/build/esm/utils/eventUtils.js","../../../core/build/esm/utils/aggregate-errors.js","../../../core/build/esm/utils/eventbuilder.js","../../../core/build/esm/instrument/console.js","../../../core/build/esm/utils/severity.js","../../../core/build/esm/integrations/dedupe.js","../../../core/build/esm/integrations/console.js","../../../core/build/esm/integrations/conversationId.js","../../../core/build/esm/utils/supports.js","../../../core/build/esm/instrument/fetch.js","../../../core/build/esm/utils/breadcrumb-log-level.js","../../../integration-shims/build/esm/common.js","../../../integration-shims/build/esm/Feedback.js","../../../integration-shims/build/esm/Replay.js","../../../integration-shims/build/esm/BrowserTracing.js","../../../integration-shims/build/esm/ElementTiming.js","../../../integration-shims/build/esm/logs.js","../../../integration-shims/build/esm/metrics.js","../../../integration-shims/build/esm/SpanStreaming.js","../../../integration-shims/build/esm/FetchStreamPerformance.js","../../../browser-utils/build/esm/types.js","../../../browser-utils/build/esm/htmlTreeAsString.js","../../../browser-utils/build/esm/web-vitals/utils.js","../../../browser-utils/build/esm/getLocationHref.js","../../../browser-utils/build/esm/instrumentation/dom.js","../../../browser-utils/build/esm/instrumentation/history.js","../../../browser-utils/build/esm/getNativeImplementation.js","../../../browser-utils/build/esm/instrumentation/xhr.js","../../src/helpers.ts","../../src/eventbuilder.ts","../../src/client.ts","../../../core/build/esm/utils/sdkMetadata.js","../../../core/build/esm/utils/env.js","../../src/transports/fetch.ts","../../src/profiling/index.ts","../../src/stack-parsers.ts","../../src/integrations/breadcrumbs.ts","../../../browser-utils/build/esm/component-name.js","../../src/integrations/browserapierrors.ts","../../src/integrations/browsersession.ts","../../src/integrations/culturecontext.ts","../../src/integrations/globalhandlers.ts","../../src/integrations/httpcontext.ts","../../src/integrations/linkederrors.ts","../../src/normalizeStringifyValue.ts","../../../browser-utils/build/esm/is.js","../../src/utils/detectBrowserExtension.ts","../../src/sdk.ts","../../src/utils/lazyLoadIntegration.ts","../../../core/build/esm/feedback.js","../../src/userfeedback.ts","../../../core/build/esm/utils/traceData.js","../../../core/build/esm/utils/parameterize.js","../../src/report-dialog.ts"],"sourcesContent":["const DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);\n\nexport { DEBUG_BUILD };\n//# sourceMappingURL=debug-build.js.map\n","const GLOBAL_OBJ = globalThis;\n\nexport { GLOBAL_OBJ };\n//# sourceMappingURL=worldwide.js.map\n","const SDK_VERSION = \"11.1.0\" ;\n\nexport { SDK_VERSION };\n//# sourceMappingURL=version.js.map\n","import { SDK_VERSION } from './utils/version.js';\nimport { GLOBAL_OBJ } from './utils/worldwide.js';\n\nfunction getMainCarrier() {\n  getSentryCarrier(GLOBAL_OBJ);\n  return GLOBAL_OBJ;\n}\nfunction getSentryCarrier(carrier) {\n  const __SENTRY__ = carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n  __SENTRY__.version = __SENTRY__.version || SDK_VERSION;\n  return __SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {};\n}\nfunction getGlobalSingleton(name, creator, obj = GLOBAL_OBJ) {\n  const __SENTRY__ = obj.__SENTRY__ = obj.__SENTRY__ || {};\n  const carrier = __SENTRY__[SDK_VERSION] = __SENTRY__[SDK_VERSION] || {};\n  return carrier[name] || (carrier[name] = creator());\n}\n\nexport { getGlobalSingleton, getMainCarrier, getSentryCarrier };\n//# sourceMappingURL=carrier.js.map\n","import { getGlobalSingleton } from '../carrier.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst CONSOLE_LEVELS = [\n  \"debug\",\n  \"info\",\n  \"warn\",\n  \"error\",\n  \"log\",\n  \"assert\",\n  \"trace\"\n];\nconst PREFIX = \"Sentry Logger \";\nconst originalConsoleMethods = {};\nfunction consoleSandbox(callback) {\n  if (!(\"console\" in GLOBAL_OBJ)) {\n    return callback();\n  }\n  const console = GLOBAL_OBJ.console;\n  const wrappedFuncs = {};\n  const wrappedLevels = Object.keys(originalConsoleMethods);\n  wrappedLevels.forEach((level) => {\n    const originalConsoleMethod = originalConsoleMethods[level];\n    wrappedFuncs[level] = console[level];\n    console[level] = originalConsoleMethod;\n  });\n  try {\n    return callback();\n  } finally {\n    wrappedLevels.forEach((level) => {\n      console[level] = wrappedFuncs[level];\n    });\n  }\n}\nfunction enable() {\n  _getLoggerSettings().enabled = true;\n}\nfunction disable() {\n  _getLoggerSettings().enabled = false;\n}\nfunction isEnabled() {\n  return _getLoggerSettings().enabled;\n}\nfunction log(...args) {\n  _maybeLog(\"log\", ...args);\n}\nfunction warn(...args) {\n  _maybeLog(\"warn\", ...args);\n}\nfunction error(...args) {\n  _maybeLog(\"error\", ...args);\n}\nfunction _maybeLog(level, ...args) {\n  if (!DEBUG_BUILD) {\n    return;\n  }\n  if (isEnabled()) {\n    consoleSandbox(() => {\n      GLOBAL_OBJ.console[level](`${PREFIX}[${level}]:`, ...args);\n    });\n  }\n}\nfunction _getLoggerSettings() {\n  if (!DEBUG_BUILD) {\n    return { enabled: false };\n  }\n  return getGlobalSingleton(\"loggerSettings\", () => ({ enabled: false }));\n}\nconst debug = {\n  /** Enable logging. */\n  enable,\n  /** Disable logging. */\n  disable,\n  /** Check if logging is enabled. */\n  isEnabled,\n  /** Log a message. */\n  log,\n  /** Log a warning. */\n  warn,\n  /** Log an error. */\n  error\n};\n\nexport { CONSOLE_LEVELS, consoleSandbox, debug, originalConsoleMethods };\n//# sourceMappingURL=debug-logger.js.map\n","const STACKTRACE_FRAME_LIMIT = 50;\nconst UNKNOWN_FUNCTION = \"?\";\nconst WEBPACK_ERROR_REGEXP = /\\(error: (.*)\\)/;\nconst STRIP_FRAME_REGEXP = /captureMessage|captureException/;\nfunction createStackParser(...parsers) {\n  const sortedParsers = parsers.sort((a, b) => a[0] - b[0]).map((p) => p[1]);\n  return (stack, skipFirstLines = 0, framesToPop = 0) => {\n    const frames = [];\n    const lines = stack.split(\"\\n\");\n    for (let i = skipFirstLines; i < lines.length; i++) {\n      let line = lines[i];\n      if (line.length > 1024) {\n        line = line.slice(0, 1024);\n      }\n      const cleanedLine = WEBPACK_ERROR_REGEXP.test(line) ? line.replace(WEBPACK_ERROR_REGEXP, \"$1\") : line;\n      if (cleanedLine.includes(\"Error: \")) {\n        continue;\n      }\n      for (const parser of sortedParsers) {\n        const frame = parser(cleanedLine);\n        if (frame) {\n          frames.push(frame);\n          break;\n        }\n      }\n      if (frames.length >= STACKTRACE_FRAME_LIMIT + framesToPop) {\n        break;\n      }\n    }\n    return stripSentryFramesAndReverse(frames.slice(framesToPop));\n  };\n}\nfunction stackParserFromStackParserOptions(stackParser) {\n  if (Array.isArray(stackParser)) {\n    return createStackParser(...stackParser);\n  }\n  return stackParser;\n}\nfunction stripSentryFramesAndReverse(stack) {\n  if (!stack.length) {\n    return [];\n  }\n  const localStack = Array.from(stack);\n  if (/sentryWrapped/.test(getLastStackFrame(localStack).function || \"\")) {\n    localStack.pop();\n  }\n  localStack.reverse();\n  if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || \"\")) {\n    localStack.pop();\n    if (STRIP_FRAME_REGEXP.test(getLastStackFrame(localStack).function || \"\")) {\n      localStack.pop();\n    }\n  }\n  return localStack.slice(0, STACKTRACE_FRAME_LIMIT).map((frame) => ({\n    ...frame,\n    filename: frame.filename || getLastStackFrame(localStack).filename,\n    function: frame.function || UNKNOWN_FUNCTION\n  }));\n}\nfunction getLastStackFrame(arr) {\n  return arr[arr.length - 1] || {};\n}\nconst defaultFunctionName = \"<anonymous>\";\nfunction getFunctionName(fn) {\n  try {\n    if (!fn || typeof fn !== \"function\") {\n      return defaultFunctionName;\n    }\n    return fn.name || defaultFunctionName;\n  } catch {\n    return defaultFunctionName;\n  }\n}\nfunction getFramesFromEvent(event) {\n  const exception = event.exception;\n  if (exception) {\n    const frames = [];\n    try {\n      exception.values.forEach((value) => {\n        if (value.stacktrace.frames) {\n          frames.push(...value.stacktrace.frames);\n        }\n      });\n      return frames;\n    } catch {\n      return void 0;\n    }\n  }\n  return void 0;\n}\nfunction normalizeStackTracePath(path) {\n  let filename = path?.startsWith(\"file://\") ? path.slice(7) : path;\n  if (filename?.match(/\\/[A-Z]:/)) {\n    filename = filename.slice(1);\n  }\n  return filename;\n}\n\nexport { UNKNOWN_FUNCTION, createStackParser, getFramesFromEvent, getFunctionName, normalizeStackTracePath, stackParserFromStackParserOptions, stripSentryFramesAndReverse };\n//# sourceMappingURL=stacktrace.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getFunctionName } from '../utils/stacktrace.js';\n\nconst handlers = {};\nconst instrumented = {};\nfunction addHandler(type, handler) {\n  handlers[type] = handlers[type] || [];\n  handlers[type].push(handler);\n  return () => {\n    const typeHandlers = handlers[type];\n    if (typeHandlers) {\n      const index = typeHandlers.indexOf(handler);\n      if (index !== -1) {\n        typeHandlers.splice(index, 1);\n      }\n    }\n  };\n}\nfunction resetInstrumentationHandlers() {\n  Object.keys(handlers).forEach((key) => {\n    handlers[key] = void 0;\n  });\n}\nfunction maybeInstrument(type, instrumentFn) {\n  if (!instrumented[type]) {\n    instrumented[type] = true;\n    try {\n      instrumentFn();\n    } catch (e) {\n      DEBUG_BUILD && debug.error(`Error while instrumenting ${type}`, e);\n    }\n  }\n}\nfunction triggerHandlers(type, data) {\n  const typeHandlers = type && handlers[type];\n  if (!typeHandlers) {\n    return;\n  }\n  for (const handler of typeHandlers) {\n    try {\n      handler(data);\n    } catch (e) {\n      DEBUG_BUILD && debug.error(\n        `Error while triggering instrumentation handler.\nType: ${type}\nName: ${getFunctionName(handler)}\nError:`,\n        e\n      );\n    }\n  }\n}\n\nexport { addHandler, maybeInstrument, resetInstrumentationHandlers, triggerHandlers };\n//# sourceMappingURL=handlers.js.map\n","import { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnErrorHandler = null;\nfunction addGlobalErrorInstrumentationHandler(handler) {\n  const type = \"error\";\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentError);\n}\nfunction instrumentError() {\n  _oldOnErrorHandler = GLOBAL_OBJ.onerror;\n  GLOBAL_OBJ.onerror = function(msg, url, line, column, error) {\n    const handlerData = {\n      column,\n      error,\n      line,\n      msg,\n      url\n    };\n    triggerHandlers(\"error\", handlerData);\n    if (_oldOnErrorHandler) {\n      return _oldOnErrorHandler.apply(this, arguments);\n    }\n    return false;\n  };\n  GLOBAL_OBJ.onerror.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalErrorInstrumentationHandler };\n//# sourceMappingURL=globalError.js.map\n","import { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nlet _oldOnUnhandledRejectionHandler = null;\nfunction addGlobalUnhandledRejectionInstrumentationHandler(handler) {\n  const type = \"unhandledrejection\";\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentUnhandledRejection);\n}\nfunction instrumentUnhandledRejection() {\n  _oldOnUnhandledRejectionHandler = GLOBAL_OBJ.onunhandledrejection;\n  GLOBAL_OBJ.onunhandledrejection = function(e) {\n    const handlerData = e;\n    triggerHandlers(\"unhandledrejection\", handlerData);\n    if (_oldOnUnhandledRejectionHandler) {\n      return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n    }\n    return true;\n  };\n  GLOBAL_OBJ.onunhandledrejection.__SENTRY_INSTRUMENTED__ = true;\n}\n\nexport { addGlobalUnhandledRejectionInstrumentationHandler };\n//# sourceMappingURL=globalUnhandledRejection.js.map\n","const objectToString = Object.prototype.toString;\nfunction isError(wat) {\n  switch (objectToString.call(wat)) {\n    case \"[object Error]\":\n    case \"[object Exception]\":\n    case \"[object DOMException]\":\n    case \"[object WebAssembly.Exception]\":\n      return true;\n    default:\n      return isInstanceOf(wat, Error);\n  }\n}\nfunction isBuiltin(wat, className) {\n  return objectToString.call(wat) === `[object ${className}]`;\n}\nfunction isErrorEvent(wat) {\n  return isBuiltin(wat, \"ErrorEvent\");\n}\nfunction isDOMError(wat) {\n  return isBuiltin(wat, \"DOMError\");\n}\nfunction isDOMException(wat) {\n  return isBuiltin(wat, \"DOMException\");\n}\nfunction isString(wat) {\n  return isBuiltin(wat, \"String\");\n}\nfunction isParameterizedString(wat) {\n  return typeof wat === \"object\" && wat !== null && \"__sentry_template_string__\" in wat && \"__sentry_template_values__\" in wat;\n}\nfunction isPrimitive(wat) {\n  return wat === null || isParameterizedString(wat) || typeof wat !== \"object\" && typeof wat !== \"function\";\n}\nfunction isPlainObject(wat) {\n  return isBuiltin(wat, \"Object\");\n}\nfunction isObjectLike(wat) {\n  return typeof wat === \"object\" && wat !== null;\n}\nfunction isEvent(wat) {\n  return typeof Event !== \"undefined\" && isInstanceOf(wat, Event);\n}\nfunction isElement(wat) {\n  return typeof Element !== \"undefined\" && isInstanceOf(wat, Element);\n}\nfunction isRegExp(wat) {\n  return isBuiltin(wat, \"RegExp\");\n}\nfunction isThenable(wat) {\n  return Boolean(wat?.then && typeof wat.then === \"function\");\n}\nfunction isSyntheticEvent(wat) {\n  return isPlainObject(wat) && \"nativeEvent\" in wat && \"preventDefault\" in wat && \"stopPropagation\" in wat;\n}\nfunction isInstanceOf(wat, base) {\n  try {\n    return wat instanceof base;\n  } catch {\n    return false;\n  }\n}\nfunction isVueViewModel(wat) {\n  return !!(typeof wat === \"object\" && wat !== null && (wat.__isVue || wat._isVue || wat.__v_isVNode));\n}\nfunction isRequest(request) {\n  return typeof Request !== \"undefined\" && isInstanceOf(request, Request);\n}\n\nexport { isDOMError, isDOMException, isElement, isError, isErrorEvent, isEvent, isInstanceOf, isObjectLike, isParameterizedString, isPlainObject, isPrimitive, isRegExp, isRequest, isString, isSyntheticEvent, isThenable, isVueViewModel };\n//# sourceMappingURL=is.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isError, isEvent, isPrimitive, isObjectLike } from './is.js';\n\nfunction fill(source, name, replacementFactory) {\n  if (!(name in source)) {\n    return;\n  }\n  const original = source[name];\n  if (typeof original !== \"function\") {\n    return;\n  }\n  const wrapped = replacementFactory(original);\n  if (typeof wrapped === \"function\") {\n    markFunctionWrapped(wrapped, original);\n  }\n  try {\n    source[name] = wrapped;\n  } catch {\n    DEBUG_BUILD && debug.log(`Failed to replace method \"${name}\" in object`, source);\n  }\n}\nfunction addNonEnumerableProperty(obj, name, value) {\n  try {\n    Object.defineProperty(obj, name, {\n      // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n      value,\n      writable: true,\n      configurable: true\n    });\n  } catch {\n    DEBUG_BUILD && debug.log(`Failed to add non-enumerable property \"${String(name)}\" to object`, obj);\n  }\n}\nfunction markFunctionWrapped(wrapped, original) {\n  try {\n    const proto = original.prototype || {};\n    wrapped.prototype = original.prototype = proto;\n    addNonEnumerableProperty(wrapped, \"__sentry_original__\", original);\n  } catch {\n  }\n}\nfunction wrapMethod(obj, field, wrapped, enumerable = true) {\n  const original = obj[field];\n  if (typeof original !== \"function\") {\n    throw new Error(`Cannot wrap method: ${field} is not a function`);\n  }\n  if (getOriginalFunction(original)) {\n    throw new Error(`Attempting to wrap method ${field} multiple times`);\n  }\n  markFunctionWrapped(wrapped, original);\n  Object.defineProperty(obj, field, {\n    writable: true,\n    configurable: true,\n    enumerable,\n    value: wrapped\n  });\n}\nfunction getOriginalFunction(func) {\n  return func.__sentry_original__;\n}\nfunction convertToPlainObject(value) {\n  if (isError(value)) {\n    return {\n      message: value.message,\n      name: value.name,\n      stack: value.stack,\n      ...getOwnProperties(value)\n    };\n  }\n  if (isEvent(value)) {\n    const { type, target, currentTarget, detail } = value;\n    return {\n      type,\n      target,\n      currentTarget,\n      ...detail ? { detail } : {},\n      ...getOwnProperties(value)\n    };\n  }\n  return value;\n}\nfunction getOwnProperties(obj) {\n  if (isObjectLike(obj)) {\n    return Object.fromEntries(Object.entries(obj));\n  }\n  return {};\n}\nfunction extractExceptionKeysForMessage(exception) {\n  const keys = Object.keys(convertToPlainObject(exception));\n  keys.sort();\n  return !keys[0] ? \"[object has no keys]\" : keys.join(\", \");\n}\nfunction dropUndefinedKeys(inputValue) {\n  const memoizationMap = /* @__PURE__ */ new Map();\n  return _dropUndefinedKeys(inputValue, memoizationMap);\n}\nfunction _dropUndefinedKeys(inputValue, memoizationMap) {\n  if (inputValue === null || typeof inputValue !== \"object\") {\n    return inputValue;\n  }\n  const memoVal = memoizationMap.get(inputValue);\n  if (memoVal !== void 0) {\n    return memoVal;\n  }\n  if (Array.isArray(inputValue)) {\n    const returnValue = [];\n    memoizationMap.set(inputValue, returnValue);\n    inputValue.forEach((value) => {\n      returnValue.push(_dropUndefinedKeys(value, memoizationMap));\n    });\n    return returnValue;\n  }\n  if (isPojo(inputValue)) {\n    const returnValue = {};\n    memoizationMap.set(inputValue, returnValue);\n    const keys = Object.keys(inputValue);\n    keys.forEach((key) => {\n      const val = inputValue[key];\n      if (val !== void 0) {\n        returnValue[key] = _dropUndefinedKeys(val, memoizationMap);\n      }\n    });\n    return returnValue;\n  }\n  return inputValue;\n}\nfunction isPojo(input) {\n  const constructor = input.constructor;\n  return constructor === Object || constructor === void 0;\n}\nfunction objectify(wat) {\n  let objectified;\n  switch (true) {\n    // this will catch both undefined and null\n    case wat == void 0:\n      objectified = new String(wat);\n      break;\n    // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n    // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n    // an object in order to wrap it.\n    case (typeof wat === \"symbol\" || typeof wat === \"bigint\"):\n      objectified = Object(wat);\n      break;\n    // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n    case isPrimitive(wat):\n      objectified = new wat.constructor(wat);\n      break;\n    // by process of elimination, at this point we know that `wat` must already be an object\n    default:\n      objectified = wat;\n      break;\n  }\n  return objectified;\n}\n\nexport { addNonEnumerableProperty, convertToPlainObject, dropUndefinedKeys, extractExceptionKeysForMessage, fill, getOriginalFunction, markFunctionWrapped, objectify, wrapMethod };\n//# sourceMappingURL=object.js.map\n","import { GLOBAL_OBJ } from './worldwide.js';\n\nlet RESOLVED_RUNNER;\nfunction withRandomSafeContext(cb) {\n  if (RESOLVED_RUNNER !== void 0) {\n    return RESOLVED_RUNNER ? RESOLVED_RUNNER(cb) : cb();\n  }\n  const sym = /* @__PURE__ */ Symbol.for(\"__SENTRY_SAFE_RANDOM_ID_WRAPPER__\");\n  const globalWithSymbol = GLOBAL_OBJ;\n  if (sym in globalWithSymbol && typeof globalWithSymbol[sym] === \"function\") {\n    RESOLVED_RUNNER = globalWithSymbol[sym];\n    return RESOLVED_RUNNER(cb);\n  }\n  RESOLVED_RUNNER = null;\n  return cb();\n}\nfunction safeMathRandom() {\n  return withRandomSafeContext(() => Math.random());\n}\nfunction safeDateNow() {\n  return withRandomSafeContext(() => Date.now());\n}\n\nexport { safeDateNow, safeMathRandom, withRandomSafeContext };\n//# sourceMappingURL=randomSafeContext.js.map\n","import { addNonEnumerableProperty } from './object.js';\n\nconst SENTRY_SKIP_NORMALIZATION = /* @__PURE__ */ Symbol.for(\"sentry.skipNormalization\");\nconst SENTRY_OVERRIDE_NORMALIZATION_DEPTH = /* @__PURE__ */ Symbol.for(\"sentry.overrideNormalizationDepth\");\nfunction setSkipNormalizationHint(obj) {\n  addNonEnumerableProperty(obj, SENTRY_SKIP_NORMALIZATION, true);\n}\nfunction setNormalizationDepthOverrideHint(obj, depth) {\n  addNonEnumerableProperty(obj, SENTRY_OVERRIDE_NORMALIZATION_DEPTH, depth);\n}\nfunction hasSkipNormalizationHint(value) {\n  return Boolean(value[SENTRY_SKIP_NORMALIZATION]);\n}\nfunction getNormalizationDepthOverrideHint(value) {\n  const v = value[SENTRY_OVERRIDE_NORMALIZATION_DEPTH];\n  return typeof v === \"number\" ? v : void 0;\n}\n\nexport { getNormalizationDepthOverrideHint, hasSkipNormalizationHint, setNormalizationDepthOverrideHint, setSkipNormalizationHint };\n//# sourceMappingURL=normalizationHints.js.map\n","import { hasSkipNormalizationHint, getNormalizationDepthOverrideHint } from './normalizationHints.js';\nimport { convertToPlainObject } from './object.js';\nimport { getFunctionName } from './stacktrace.js';\n\nlet stringifier;\nfunction setNormalizeStringifier(newStringifier) {\n  stringifier = newStringifier;\n}\nfunction normalize(input, depth = 100, maxProperties = Infinity) {\n  try {\n    return visit(\"\", input, depth, maxProperties);\n  } catch (err) {\n    return { ERROR: `**non-serializable** (${err})` };\n  }\n}\nfunction normalizeToSize(object, depth = 3, maxSize = 100 * 1024) {\n  const normalized = normalize(object, depth);\n  if (jsonSize(normalized) > maxSize) {\n    return normalizeToSize(object, depth - 1, maxSize);\n  }\n  return normalized;\n}\nfunction visit(key, value, depth = Infinity, maxProperties = Infinity, memo = memoBuilder()) {\n  const [memoize, unmemoize] = memo;\n  if (value == null || // this matches null and undefined -> eqeq not eqeqeq\n  [\"boolean\", \"string\"].includes(typeof value) || typeof value === \"number\" && Number.isFinite(value)) {\n    return value;\n  }\n  const stringified = stringifyValue(key, value);\n  if (!stringified.startsWith(\"[object \")) {\n    return stringified;\n  }\n  if (hasSkipNormalizationHint(value)) {\n    return value;\n  }\n  const overrideDepth = getNormalizationDepthOverrideHint(value);\n  const remainingDepth = overrideDepth !== void 0 ? overrideDepth : depth;\n  if (remainingDepth === 0) {\n    return stringified.replace(\"object \", \"\");\n  }\n  if (memoize(value)) {\n    return \"[Circular ~]\";\n  }\n  const valueWithToJSON = value;\n  if (valueWithToJSON && typeof valueWithToJSON.toJSON === \"function\") {\n    try {\n      const jsonValue = valueWithToJSON.toJSON();\n      return visit(\"\", jsonValue, remainingDepth - 1, maxProperties, memo);\n    } catch {\n    }\n  }\n  const normalized = Array.isArray(value) ? [] : {};\n  let numAdded = 0;\n  const visitable = convertToPlainObject(value);\n  for (const visitKey in visitable) {\n    if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n      continue;\n    }\n    if (numAdded >= maxProperties) {\n      normalized[visitKey] = \"[MaxProperties ~]\";\n      break;\n    }\n    const visitValue = visitable[visitKey];\n    normalized[visitKey] = visit(visitKey, visitValue, remainingDepth - 1, maxProperties, memo);\n    numAdded++;\n  }\n  unmemoize(value);\n  return normalized;\n}\nfunction stringifyValue(key, value) {\n  try {\n    if (stringifier) {\n      const stringified = stringifier(value);\n      if (stringified) {\n        return stringified;\n      }\n    }\n    if (typeof global !== \"undefined\" && value === global) {\n      return \"[Global]\";\n    }\n    if (typeof value === \"number\" && !Number.isFinite(value)) {\n      return `[${value}]`;\n    }\n    if (typeof value === \"function\") {\n      return `[Function: ${getFunctionName(value)}]`;\n    }\n    if (typeof value === \"symbol\") {\n      return `[${String(value)}]`;\n    }\n    if (typeof value === \"bigint\") {\n      return `[BigInt: ${String(value)}]`;\n    }\n    const objName = getConstructorName(value);\n    return `[object ${objName}]`;\n  } catch (err) {\n    return `**non-serializable** (${err})`;\n  }\n}\nfunction getConstructorName(value) {\n  const prototype = Object.getPrototypeOf(value);\n  return prototype?.constructor ? prototype.constructor.name : \"null prototype\";\n}\nfunction utf8Length(value) {\n  return ~-encodeURI(value).split(/%..|./).length;\n}\nfunction jsonSize(value) {\n  return utf8Length(JSON.stringify(value));\n}\nfunction normalizeUrlToBase(url, basePath) {\n  const escapedBase = basePath.replace(/\\\\/g, \"/\").replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\");\n  let newUrl = url;\n  try {\n    newUrl = decodeURI(url);\n  } catch {\n  }\n  return newUrl.replace(/\\\\/g, \"/\").replace(/webpack:\\/?/g, \"\").replace(new RegExp(`(file://)?/*${escapedBase}/*`, \"ig\"), \"app:///\");\n}\nfunction memoBuilder() {\n  const inner = /* @__PURE__ */ new WeakSet();\n  function memoize(obj) {\n    if (inner.has(obj)) {\n      return true;\n    }\n    inner.add(obj);\n    return false;\n  }\n  function unmemoize(obj) {\n    inner.delete(obj);\n  }\n  return [memoize, unmemoize];\n}\n\nexport { normalize, normalizeToSize, normalizeUrlToBase, setNormalizeStringifier, stringifyValue };\n//# sourceMappingURL=normalize.js.map\n","import { addNonEnumerableProperty } from './object.js';\nimport { withRandomSafeContext, safeMathRandom } from './randomSafeContext.js';\nimport { snipLine } from './string.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nfunction getCrypto() {\n  const gbl = GLOBAL_OBJ;\n  return gbl.crypto || gbl.msCrypto;\n}\nlet emptyUuid;\nfunction getRandomByte() {\n  return safeMathRandom() * 16;\n}\nfunction uuid4(crypto = getCrypto()) {\n  try {\n    if (crypto?.randomUUID) {\n      return withRandomSafeContext(() => crypto.randomUUID()).replace(/-/g, \"\");\n    }\n  } catch {\n  }\n  if (!emptyUuid) {\n    emptyUuid = \"10000000100040008000\" + 1e11;\n  }\n  return emptyUuid.replace(\n    /[018]/g,\n    (c) => (\n      // eslint-disable-next-line no-bitwise\n      (c ^ (getRandomByte() & 15) >> c / 4).toString(16)\n    )\n  );\n}\nfunction getFirstException(event) {\n  return event.exception?.values?.[0];\n}\nfunction getEventDescription(event) {\n  const { message, event_id: eventId } = event;\n  if (message) {\n    return message;\n  }\n  const firstException = getFirstException(event);\n  if (firstException) {\n    if (firstException.type && firstException.value) {\n      return `${firstException.type}: ${firstException.value}`;\n    }\n    return firstException.type || firstException.value || eventId || \"<unknown>\";\n  }\n  return eventId || \"<unknown>\";\n}\nfunction addExceptionTypeValue(event, value, type) {\n  const exception = event.exception = event.exception || {};\n  const values = exception.values = exception.values || [];\n  const firstException = values[0] = values[0] || {};\n  if (!firstException.value) {\n    firstException.value = value || \"\";\n  }\n  if (!firstException.type) {\n    firstException.type = type || \"Error\";\n  }\n}\nfunction addExceptionMechanism(event, newMechanism) {\n  const firstException = getFirstException(event);\n  if (!firstException) {\n    return;\n  }\n  applyExceptionMechanism(firstException, newMechanism);\n}\nfunction addExceptionMechanismToCapturedException(event, newMechanism) {\n  const exceptions = event.exception?.values;\n  const capturedException = exceptions?.find((exception) => exception.mechanism?.exception_id === 0) ?? exceptions?.[0];\n  if (!capturedException) {\n    return;\n  }\n  applyExceptionMechanism(capturedException, newMechanism);\n}\nfunction applyExceptionMechanism(exception, newMechanism) {\n  const defaultMechanism = { type: \"generic\", handled: true };\n  const currentMechanism = exception.mechanism;\n  exception.mechanism = { ...defaultMechanism, ...currentMechanism, ...newMechanism };\n  if (newMechanism && \"data\" in newMechanism) {\n    exception.mechanism.data = { ...currentMechanism?.data, ...newMechanism.data };\n  }\n}\nconst SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\nfunction _parseInt(input) {\n  return parseInt(input || \"\", 10);\n}\nfunction parseSemver(input) {\n  const match = input.match(SEMVER_REGEXP) || [];\n  const major = _parseInt(match[1]);\n  const minor = _parseInt(match[2]);\n  const patch = _parseInt(match[3]);\n  return {\n    buildmetadata: match[5],\n    major: isNaN(major) ? void 0 : major,\n    minor: isNaN(minor) ? void 0 : minor,\n    patch: isNaN(patch) ? void 0 : patch,\n    prerelease: match[4]\n  };\n}\nfunction addContextToFrame(lines, frame, linesOfContext = 5) {\n  if (frame.lineno === void 0) {\n    return;\n  }\n  const maxLines = lines.length;\n  const sourceLine = Math.max(Math.min(maxLines - 1, frame.lineno - 1), 0);\n  frame.pre_context = lines.slice(Math.max(0, sourceLine - linesOfContext), sourceLine).map((line) => snipLine(line, 0));\n  const lineIndex = Math.min(maxLines - 1, sourceLine);\n  frame.context_line = snipLine(lines[lineIndex], frame.colno || 0);\n  frame.post_context = lines.slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext).map((line) => snipLine(line, 0));\n}\nfunction checkOrSetAlreadyCaught(exception) {\n  if (isAlreadyCaptured(exception)) {\n    return true;\n  }\n  try {\n    addNonEnumerableProperty(exception, \"__sentry_captured__\", true);\n  } catch {\n  }\n  return false;\n}\nfunction isAlreadyCaptured(exception) {\n  try {\n    return exception.__sentry_captured__;\n  } catch {\n  }\n}\n\nexport { addContextToFrame, addExceptionMechanism, addExceptionMechanismToCapturedException, addExceptionTypeValue, checkOrSetAlreadyCaught, getEventDescription, isAlreadyCaptured, parseSemver, uuid4 };\n//# sourceMappingURL=misc.js.map\n","import { isString, isRegExp, isPrimitive } from './is.js';\nimport { stringifyValue } from './normalize.js';\n\nfunction stringify(value, fallback = \"[unserializable]\") {\n  if (typeof value === \"string\") {\n    return value;\n  }\n  try {\n    return JSON.stringify(value);\n  } catch {\n    return typeof fallback === \"function\" ? fallback(value) : fallback;\n  }\n}\nfunction truncate(str, max = 0) {\n  if (typeof str !== \"string\" || max === 0) {\n    return str;\n  }\n  return str.length <= max ? str : `${str.slice(0, max)}...`;\n}\nfunction snipLine(line, colno) {\n  let newLine = line;\n  const lineLength = newLine.length;\n  if (lineLength <= 150) {\n    return newLine;\n  }\n  if (colno > lineLength) {\n    colno = lineLength;\n  }\n  let start = Math.max(colno - 60, 0);\n  if (start < 5) {\n    start = 0;\n  }\n  let end = Math.min(start + 140, lineLength);\n  if (end > lineLength - 5) {\n    end = lineLength;\n  }\n  if (end === lineLength) {\n    start = Math.max(end - 140, 0);\n  }\n  newLine = newLine.slice(start, end);\n  if (start > 0) {\n    newLine = `'{snip} ${newLine}`;\n  }\n  if (end < lineLength) {\n    newLine += \" {snip}\";\n  }\n  return newLine;\n}\nfunction safeJoin(input, delimiter) {\n  if (!Array.isArray(input)) {\n    return \"\";\n  }\n  const output = [];\n  for (let i = 0; i < input.length; i++) {\n    const value = input[i];\n    if (isPrimitive(value)) {\n      output.push(String(value));\n    } else if (value instanceof Error) {\n      output.push(value.message ? `${value.name}: ${value.message}` : value.name);\n    } else {\n      output.push(stringifyValue(void 0, value));\n    }\n  }\n  return output.join(delimiter);\n}\nfunction isMatchingPattern(value, pattern, requireExactStringMatch = false) {\n  if (!isString(value)) {\n    return false;\n  }\n  if (isRegExp(pattern)) {\n    return pattern.test(value);\n  }\n  if (isString(pattern)) {\n    return requireExactStringMatch ? value === pattern : value.includes(pattern);\n  }\n  if (typeof pattern === \"function\") {\n    return pattern(value);\n  }\n  return false;\n}\nfunction stringMatchesSomePattern(testString, patterns = [], requireExactStringMatch = false) {\n  for (const pattern of patterns) {\n    if (isMatchingPattern(testString, pattern, requireExactStringMatch)) {\n      return true;\n    }\n  }\n  return false;\n}\n\nexport { isMatchingPattern, safeJoin, snipLine, stringMatchesSomePattern, stringify, truncate };\n//# sourceMappingURL=string.js.map\n","import { safeDateNow, withRandomSafeContext } from './randomSafeContext.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst ONE_SECOND_IN_MS = 1e3;\nfunction dateTimestampInSeconds() {\n  return safeDateNow() / ONE_SECOND_IN_MS;\n}\nfunction createUnixTimestampInSecondsFunc() {\n  const { performance } = GLOBAL_OBJ;\n  if (!performance?.now || !performance.timeOrigin) {\n    return dateTimestampInSeconds;\n  }\n  const timeOrigin = performance.timeOrigin;\n  return () => {\n    return (timeOrigin + withRandomSafeContext(() => performance.now())) / ONE_SECOND_IN_MS;\n  };\n}\nlet _cachedTimestampInSeconds;\nfunction timestampInSeconds() {\n  const func = _cachedTimestampInSeconds ?? (_cachedTimestampInSeconds = createUnixTimestampInSecondsFunc());\n  return func();\n}\nlet cachedTimeOrigin = null;\nfunction getBrowserTimeOrigin() {\n  const { performance } = GLOBAL_OBJ;\n  if (!performance?.now) {\n    return void 0;\n  }\n  const threshold = 3e5;\n  const performanceNow = withRandomSafeContext(() => performance.now());\n  const dateNow = safeDateNow();\n  const timeOrigin = performance.timeOrigin;\n  if (typeof timeOrigin === \"number\") {\n    const timeOriginDelta = Math.abs(timeOrigin + performanceNow - dateNow);\n    if (timeOriginDelta < threshold) {\n      return timeOrigin;\n    }\n  }\n  return dateNow - performanceNow;\n}\nfunction browserPerformanceTimeOrigin() {\n  if (cachedTimeOrigin === null) {\n    cachedTimeOrigin = getBrowserTimeOrigin();\n  }\n  return cachedTimeOrigin;\n}\n\nexport { browserPerformanceTimeOrigin, dateTimestampInSeconds, timestampInSeconds };\n//# sourceMappingURL=time.js.map\n","import { uuid4 } from './utils/misc.js';\nimport { timestampInSeconds } from './utils/time.js';\n\nfunction makeSession(context) {\n  const startingTime = timestampInSeconds();\n  const session = {\n    sid: uuid4(),\n    init: true,\n    timestamp: startingTime,\n    started: startingTime,\n    duration: 0,\n    status: \"ok\",\n    errors: 0,\n    ignoreDuration: false,\n    toJSON: () => sessionToJSON(session)\n  };\n  if (context) {\n    updateSession(session, context);\n  }\n  return session;\n}\nfunction updateSession(session, context = {}) {\n  if (context.user) {\n    if (!session.ipAddress && context.user.ip_address) {\n      session.ipAddress = context.user.ip_address;\n    }\n    if (!session.did && !context.did) {\n      session.did = context.user.id || context.user.email || context.user.username;\n    }\n  }\n  session.timestamp = context.timestamp || timestampInSeconds();\n  if (context.abnormal_mechanism) {\n    session.abnormal_mechanism = context.abnormal_mechanism;\n  }\n  if (context.ignoreDuration) {\n    session.ignoreDuration = context.ignoreDuration;\n  }\n  if (context.sid) {\n    session.sid = context.sid.length === 32 ? context.sid : uuid4();\n  }\n  if (context.init !== void 0) {\n    session.init = context.init;\n  }\n  if (!session.did && context.did) {\n    session.did = `${context.did}`;\n  }\n  if (typeof context.started === \"number\") {\n    session.started = context.started;\n  }\n  if (session.ignoreDuration) {\n    session.duration = void 0;\n  } else if (typeof context.duration === \"number\") {\n    session.duration = context.duration;\n  } else {\n    const duration = session.timestamp - session.started;\n    session.duration = duration >= 0 ? duration : 0;\n  }\n  if (context.release) {\n    session.release = context.release;\n  }\n  if (context.environment) {\n    session.environment = context.environment;\n  }\n  if (!session.ipAddress && context.ipAddress) {\n    session.ipAddress = context.ipAddress;\n  }\n  if (!session.userAgent && context.userAgent) {\n    session.userAgent = context.userAgent;\n  }\n  if (typeof context.errors === \"number\") {\n    session.errors = context.errors;\n  }\n  if (context.status) {\n    session.status = context.status;\n  }\n}\nfunction closeSession(session, status) {\n  let context = {};\n  if (status) {\n    context = { status };\n  } else if (session.status === \"ok\") {\n    context = { status: \"exited\" };\n  }\n  updateSession(session, context);\n}\nfunction sessionToJSON(session) {\n  return {\n    sid: `${session.sid}`,\n    init: session.init,\n    // Make sure that sec is converted to ms for date constructor\n    started: new Date(session.started * 1e3).toISOString(),\n    timestamp: new Date(session.timestamp * 1e3).toISOString(),\n    status: session.status,\n    errors: session.errors,\n    did: typeof session.did === \"number\" || typeof session.did === \"string\" ? `${session.did}` : void 0,\n    duration: session.duration,\n    abnormal_mechanism: session.abnormal_mechanism,\n    attrs: {\n      release: session.release,\n      environment: session.environment,\n      ip_address: session.ipAddress,\n      user_agent: session.userAgent\n    }\n  };\n}\n\nexport { closeSession, makeSession, updateSession };\n//# sourceMappingURL=session.js.map\n","function merge(initialObj, mergeObj, levels = 2) {\n  if (!mergeObj || typeof mergeObj !== \"object\" || levels <= 0) {\n    return mergeObj;\n  }\n  if (initialObj && Object.keys(mergeObj).length === 0) {\n    return initialObj;\n  }\n  const output = { ...initialObj };\n  for (const key in mergeObj) {\n    if (Object.prototype.hasOwnProperty.call(mergeObj, key)) {\n      output[key] = merge(output[key], mergeObj[key], levels - 1);\n    }\n  }\n  return output;\n}\n\nexport { merge };\n//# sourceMappingURL=merge.js.map\n","import { uuid4 } from './misc.js';\n\nfunction generateTraceId() {\n  return uuid4();\n}\nfunction generateSpanId() {\n  return uuid4().substring(16);\n}\n\nexport { generateSpanId, generateTraceId };\n//# sourceMappingURL=propagationContext.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { updateSession } from './session.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isPlainObject } from './utils/is.js';\nimport { addNonEnumerableProperty } from './utils/object.js';\nimport { merge } from './utils/merge.js';\nimport { uuid4 } from './utils/misc.js';\nimport { generateTraceId } from './utils/propagationContext.js';\nimport { safeMathRandom } from './utils/randomSafeContext.js';\nimport { truncate } from './utils/string.js';\nimport { dateTimestampInSeconds } from './utils/time.js';\n\nconst DEFAULT_MAX_BREADCRUMBS = 100;\nclass Scope {\n  // NOTE: Any field which gets added here should get added not only to the constructor but also to the `clone` method.\n  constructor() {\n    this._notifyingListeners = false;\n    this._scopeListeners = [];\n    this._eventProcessors = [];\n    this._breadcrumbs = [];\n    this._attachments = [];\n    this._user = {};\n    this._tags = {};\n    this._attributes = {};\n    this._extra = {};\n    this._contexts = {};\n    this._sdkProcessingMetadata = {};\n    addNonEnumerableProperty(this, \"refs\", {});\n    this._propagationContext = {\n      traceId: generateTraceId(),\n      sampleRand: safeMathRandom()\n    };\n  }\n  /**\n   * Clone all data from this scope into a new scope.\n   */\n  clone() {\n    const newScope = new Scope();\n    newScope._breadcrumbs = [...this._breadcrumbs];\n    newScope._tags = { ...this._tags };\n    newScope._attributes = { ...this._attributes };\n    newScope._extra = { ...this._extra };\n    newScope._contexts = { ...this._contexts };\n    if (this._contexts.flags) {\n      newScope._contexts.flags = {\n        values: [...this._contexts.flags.values]\n      };\n    }\n    newScope._user = this._user;\n    newScope._level = this._level;\n    newScope._session = this._session;\n    newScope._transactionName = this._transactionName;\n    newScope._fingerprint = this._fingerprint;\n    newScope._eventProcessors = [...this._eventProcessors];\n    newScope._attachments = [...this._attachments];\n    newScope._sdkProcessingMetadata = { ...this._sdkProcessingMetadata };\n    newScope._propagationContext = { ...this._propagationContext };\n    newScope._client = this._client;\n    newScope._lastEventId = this._lastEventId;\n    newScope._conversationId = this._conversationId;\n    newScope.refs = { ...this.refs };\n    return newScope;\n  }\n  /**\n   * Update the client assigned to this scope.\n   * Note that not every scope will have a client assigned - isolation scopes & the global scope will generally not have a client,\n   * as well as manually created scopes.\n   */\n  setClient(client) {\n    this._client = client;\n  }\n  /**\n   * Set the ID of the last captured error event.\n   * This is generally only captured on the isolation scope.\n   */\n  setLastEventId(lastEventId) {\n    this._lastEventId = lastEventId;\n  }\n  /**\n   * Get the client assigned to this scope.\n   */\n  getClient() {\n    return this._client;\n  }\n  /**\n   * Get the ID of the last captured error event.\n   * This is generally only available on the isolation scope.\n   */\n  lastEventId() {\n    return this._lastEventId;\n  }\n  /**\n   * @inheritDoc\n   */\n  addScopeListener(callback) {\n    this._scopeListeners.push(callback);\n  }\n  /**\n   * Add an event processor that will be called before an event is sent.\n   */\n  addEventProcessor(callback) {\n    this._eventProcessors.push(callback);\n    return this;\n  }\n  /**\n   * Set the user for this scope.\n   * Set to `null` to unset the user.\n   */\n  setUser(user) {\n    this._user = user || {\n      email: void 0,\n      id: void 0,\n      ip_address: void 0,\n      username: void 0\n    };\n    if (this._session) {\n      updateSession(this._session, { user });\n    }\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Get the user from this scope.\n   */\n  getUser() {\n    return this._user;\n  }\n  /**\n   * Set the conversation ID for this scope.\n   * Set to `null` to unset the conversation ID.\n   */\n  setConversationId(conversationId) {\n    this._conversationId = conversationId || void 0;\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Set an object that will be merged into existing tags on the scope,\n   * and will be sent as tags data with the event.\n   */\n  setTags(tags) {\n    this._tags = {\n      ...this._tags,\n      ...tags\n    };\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Set a single tag that will be sent as tags data with the event.\n   */\n  setTag(key, value) {\n    return this.setTags({ [key]: value });\n  }\n  /**\n   * Sets attributes onto the scope.\n   *\n   * These attributes are applied to logs, metrics and streamed spans.\n   *\n   * Supported attribute value types are `string`, `number`, `boolean`, `string[]`, `number[]` and `boolean[]`.\n   *\n   * @param newAttributes - The attributes to set on the scope, as key-value pairs.\n   *\n   * @example\n   * ```typescript\n   * scope.setAttributes({\n   *   is_admin: true,\n   *   payment_selection: 'credit_card',\n   *   render_duration: 150,\n   * });\n   * ```\n   */\n  setAttributes(newAttributes) {\n    this._attributes = {\n      ...this._attributes,\n      ...newAttributes\n    };\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Sets an attribute onto the scope.\n   *\n   * These attributes are applied to logs, metrics and streamed spans.\n   *\n   * Supported attribute value types are `string`, `number`, `boolean`, `string[]`, `number[]` and `boolean[]`.\n   *\n   * @param key - The attribute key.\n   * @param value - The attribute value.\n   *\n   * @example\n   * ```typescript\n   * scope.setAttribute('is_admin', true);\n   * scope.setAttribute('render_duration', 150);\n   * ```\n   */\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  setAttribute(key, value) {\n    return this.setAttributes({ [key]: value });\n  }\n  /**\n   * Removes the attribute with the given key from the scope.\n   *\n   * @param key - The attribute key.\n   *\n   * @example\n   * ```typescript\n   * scope.removeAttribute('is_admin');\n   * ```\n   */\n  removeAttribute(key) {\n    if (key in this._attributes) {\n      delete this._attributes[key];\n      this._notifyScopeListeners();\n    }\n    return this;\n  }\n  /**\n   * Set an object that will be merged into existing extra on the scope,\n   * and will be sent as extra data with the event.\n   */\n  setExtras(extras) {\n    this._extra = {\n      ...this._extra,\n      ...extras\n    };\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Set a single key:value extra entry that will be sent as extra data with the event.\n   */\n  setExtra(key, extra) {\n    this._extra = { ...this._extra, [key]: extra };\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Sets the fingerprint on the scope to send with the events.\n   * @param {string[]} fingerprint Fingerprint to group events in Sentry.\n   */\n  setFingerprint(fingerprint) {\n    this._fingerprint = fingerprint;\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Sets the level on the scope for future events.\n   */\n  setLevel(level) {\n    this._level = level;\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Sets the transaction name on the scope so that the name of e.g. taken server route or\n   * the page location is attached to future events.\n   *\n   * IMPORTANT: Calling this function does NOT change the name of the currently active\n   * root span. If you want to change the name of the active root span, use\n   * `Sentry.updateSpanName(rootSpan, 'new name')` instead.\n   *\n   * By default, the SDK updates the scope's transaction name automatically on sensible\n   * occasions, such as a page navigation or when handling a new request on the server.\n   */\n  setTransactionName(name) {\n    this._transactionName = name;\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Sets context data with the given name.\n   * Data passed as context will be normalized. You can also pass `null` to unset the context.\n   * Note that context data will not be merged - calling `setContext` will overwrite an existing context with the same key.\n   */\n  setContext(key, context) {\n    if (context === null) {\n      delete this._contexts[key];\n    } else {\n      this._contexts[key] = context;\n    }\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Set the session for the scope.\n   */\n  setSession(session) {\n    if (!session) {\n      delete this._session;\n    } else {\n      this._session = session;\n    }\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Get the session from the scope.\n   */\n  getSession() {\n    return this._session;\n  }\n  /**\n   * Updates the scope with provided data. Can work in three variations:\n   * - plain object containing updatable attributes\n   * - Scope instance that'll extract the attributes from\n   * - callback function that'll receive the current scope as an argument and allow for modifications\n   */\n  update(captureContext) {\n    if (!captureContext) {\n      return this;\n    }\n    const scopeToMerge = typeof captureContext === \"function\" ? captureContext(this) : captureContext;\n    const scopeInstance = scopeToMerge instanceof Scope ? scopeToMerge.getScopeData() : isPlainObject(scopeToMerge) ? captureContext : void 0;\n    const {\n      tags,\n      attributes,\n      extra,\n      user,\n      contexts,\n      level,\n      fingerprint = [],\n      propagationContext,\n      conversationId\n    } = scopeInstance || {};\n    this._tags = { ...this._tags, ...tags };\n    this._attributes = { ...this._attributes, ...attributes };\n    this._extra = { ...this._extra, ...extra };\n    this._contexts = { ...this._contexts, ...contexts };\n    if (user && Object.keys(user).length) {\n      this._user = user;\n    }\n    if (level) {\n      this._level = level;\n    }\n    if (fingerprint.length) {\n      this._fingerprint = fingerprint;\n    }\n    if (propagationContext) {\n      this._propagationContext = propagationContext;\n    }\n    if (conversationId) {\n      this._conversationId = conversationId;\n    }\n    return this;\n  }\n  /**\n   * Adds a breadcrumb to the scope.\n   * By default, the last 100 breadcrumbs are kept.\n   */\n  addBreadcrumb(breadcrumb, maxBreadcrumbs) {\n    const maxCrumbs = typeof maxBreadcrumbs === \"number\" ? maxBreadcrumbs : DEFAULT_MAX_BREADCRUMBS;\n    if (maxCrumbs <= 0) {\n      return this;\n    }\n    const mergedBreadcrumb = {\n      timestamp: dateTimestampInSeconds(),\n      ...breadcrumb,\n      // Breadcrumb messages can theoretically be infinitely large and they're held in memory so we truncate them not to leak (too much) memory\n      message: breadcrumb.message ? truncate(breadcrumb.message, 2048) : breadcrumb.message\n    };\n    this._breadcrumbs.push(mergedBreadcrumb);\n    if (this._breadcrumbs.length > maxCrumbs) {\n      this._breadcrumbs = this._breadcrumbs.slice(-maxCrumbs);\n    }\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Get the last breadcrumb of the scope.\n   */\n  getLastBreadcrumb() {\n    return this._breadcrumbs[this._breadcrumbs.length - 1];\n  }\n  /**\n   * Clear all breadcrumbs from the scope.\n   */\n  clearBreadcrumbs() {\n    this._breadcrumbs = [];\n    this._notifyScopeListeners();\n    return this;\n  }\n  /**\n   * Add an attachment to the scope.\n   */\n  addAttachment(attachment) {\n    this._attachments.push(attachment);\n    return this;\n  }\n  /**\n   * Clear all attachments from the scope.\n   */\n  clearAttachments() {\n    this._attachments = [];\n    return this;\n  }\n  /**\n   * Get the data of this scope, which should be applied to an event during processing.\n   */\n  getScopeData() {\n    return {\n      breadcrumbs: this._breadcrumbs,\n      attachments: this._attachments,\n      contexts: this._contexts,\n      tags: this._tags,\n      attributes: this._attributes,\n      extra: this._extra,\n      user: this._user,\n      level: this._level,\n      fingerprint: this._fingerprint || [],\n      eventProcessors: this._eventProcessors,\n      propagationContext: this._propagationContext,\n      sdkProcessingMetadata: this._sdkProcessingMetadata,\n      transactionName: this._transactionName,\n      conversationId: this._conversationId\n    };\n  }\n  /**\n   * Add data which will be accessible during event processing but won't get sent to Sentry.\n   */\n  setSDKProcessingMetadata(newData) {\n    this._sdkProcessingMetadata = merge(this._sdkProcessingMetadata, newData, 2);\n    return this;\n  }\n  /**\n   * Add propagation context to the scope, used for distributed tracing\n   */\n  setPropagationContext(context) {\n    this._propagationContext = context;\n    return this;\n  }\n  /**\n   * Get propagation context from the scope, used for distributed tracing\n   */\n  getPropagationContext() {\n    return this._propagationContext;\n  }\n  /**\n   * Capture an exception for this scope.\n   *\n   * @returns {string} The id of the captured Sentry event.\n   */\n  captureException(exception, hint) {\n    const eventId = hint?.event_id || uuid4();\n    if (!this._client) {\n      DEBUG_BUILD && debug.warn(\"No client configured on scope - will not capture exception!\");\n      return eventId;\n    }\n    const syntheticException = new Error(\"Sentry syntheticException\");\n    this._client.captureException(\n      exception,\n      {\n        originalException: exception,\n        syntheticException,\n        ...hint,\n        event_id: eventId\n      },\n      this\n    );\n    return eventId;\n  }\n  /**\n   * Capture a message for this scope.\n   *\n   * @returns {string} The id of the captured message.\n   */\n  captureMessage(message, level, hint) {\n    const eventId = hint?.event_id || uuid4();\n    if (!this._client) {\n      DEBUG_BUILD && debug.warn(\"No client configured on scope - will not capture message!\");\n      return eventId;\n    }\n    const syntheticException = hint?.syntheticException ?? new Error(message);\n    this._client.captureMessage(\n      message,\n      level,\n      {\n        originalException: message,\n        syntheticException,\n        ...hint,\n        event_id: eventId\n      },\n      this\n    );\n    return eventId;\n  }\n  /**\n   * Capture a Sentry event for this scope.\n   *\n   * @returns {string} The id of the captured event.\n   */\n  captureEvent(event, hint) {\n    const eventId = event.event_id || hint?.event_id || uuid4();\n    if (!this._client) {\n      DEBUG_BUILD && debug.warn(\"No client configured on scope - will not capture event!\");\n      return eventId;\n    }\n    this._client.captureEvent(event, { ...hint, event_id: eventId }, this);\n    return eventId;\n  }\n  /**\n   * This will be called on every set call.\n   */\n  _notifyScopeListeners() {\n    if (!this._notifyingListeners) {\n      this._notifyingListeners = true;\n      this._scopeListeners.forEach((callback) => {\n        callback(this);\n      });\n      this._notifyingListeners = false;\n    }\n  }\n}\n\nexport { Scope };\n//# sourceMappingURL=scope.js.map\n","const SUPPRESS_TRACING_KEY = \"__SENTRY_SUPPRESS_TRACING__\";\n\nexport { SUPPRESS_TRACING_KEY };\n//# sourceMappingURL=constants.js.map\n","const isActualPromise = (p) => p instanceof Promise && !p[kChainedCopy];\nconst kChainedCopy = /* @__PURE__ */ Symbol(\"chained PromiseLike\");\nconst chainAndCopyPromiseLike = (original, onSuccess, onError) => {\n  const chained = original.then(\n    (value) => {\n      onSuccess(value);\n      return value;\n    },\n    (err) => {\n      onError(err);\n      throw err;\n    }\n  );\n  return isActualPromise(chained) && isActualPromise(original) ? chained : copyProps(original, chained);\n};\nconst copyProps = (original, chained) => {\n  if (!chained) return original;\n  let mutated = false;\n  for (const key in original) {\n    if (key in chained) continue;\n    mutated = true;\n    const value = original[key];\n    if (typeof value === \"function\") {\n      Object.defineProperty(chained, key, {\n        value: (...args) => value.apply(original, args),\n        enumerable: true,\n        configurable: true,\n        writable: true\n      });\n    } else {\n      chained[key] = value;\n    }\n  }\n  if (mutated) Object.assign(chained, { [kChainedCopy]: true });\n  return chained;\n};\n\nexport { chainAndCopyPromiseLike };\n//# sourceMappingURL=chain-and-copy-promiselike.js.map\n","import { getDefaultCurrentScope, getDefaultIsolationScope } from '../defaultScopes.js';\nimport { Scope } from '../scope.js';\nimport { SUPPRESS_TRACING_KEY } from '../tracing/constants.js';\nimport { chainAndCopyPromiseLike } from '../utils/chain-and-copy-promiselike.js';\nimport { isThenable } from '../utils/is.js';\nimport { getMainCarrier, getSentryCarrier } from '../carrier.js';\n\nclass AsyncContextStack {\n  constructor(scope, isolationScope) {\n    let assignedScope;\n    if (!scope) {\n      assignedScope = new Scope();\n    } else {\n      assignedScope = scope;\n    }\n    let assignedIsolationScope;\n    if (!isolationScope) {\n      assignedIsolationScope = new Scope();\n    } else {\n      assignedIsolationScope = isolationScope;\n    }\n    this._stack = [{ scope: assignedScope }];\n    this._isolationScope = assignedIsolationScope;\n  }\n  /**\n   * Fork a scope for the stack.\n   */\n  withScope(callback) {\n    const scope = this._pushScope();\n    let maybePromiseResult;\n    try {\n      maybePromiseResult = callback(scope);\n    } catch (e) {\n      this._popScope();\n      throw e;\n    }\n    if (isThenable(maybePromiseResult)) {\n      return chainAndCopyPromiseLike(\n        maybePromiseResult,\n        () => this._popScope(),\n        () => this._popScope()\n      );\n    }\n    this._popScope();\n    return maybePromiseResult;\n  }\n  /**\n   * Get the client of the stack.\n   */\n  getClient() {\n    return this.getStackTop().client;\n  }\n  /**\n   * Returns the scope of the top stack.\n   */\n  getScope() {\n    return this.getStackTop().scope;\n  }\n  /**\n   * Get the isolation scope for the stack.\n   */\n  getIsolationScope() {\n    return this._isolationScope;\n  }\n  /**\n   * Returns the topmost scope layer in the order domain > local > process.\n   */\n  getStackTop() {\n    return this._stack[this._stack.length - 1];\n  }\n  /**\n   * Push a scope to the stack.\n   */\n  _pushScope() {\n    const scope = this.getScope().clone();\n    this._stack.push({\n      client: this.getClient(),\n      scope\n    });\n    return scope;\n  }\n  /**\n   * Pop a scope from the stack.\n   */\n  _popScope() {\n    if (this._stack.length <= 1) return false;\n    return !!this._stack.pop();\n  }\n}\nfunction getAsyncContextStack() {\n  const registry = getMainCarrier();\n  const sentry = getSentryCarrier(registry);\n  return sentry.stack = sentry.stack || new AsyncContextStack(getDefaultCurrentScope(), getDefaultIsolationScope());\n}\nfunction withScope(callback) {\n  return getAsyncContextStack().withScope(callback);\n}\nfunction withSetScope(scope, callback) {\n  const stack = getAsyncContextStack();\n  return stack.withScope(() => {\n    stack.getStackTop().scope = scope;\n    return callback(scope);\n  });\n}\nfunction withIsolationScope(callback) {\n  return getAsyncContextStack().withScope(() => {\n    return callback(getAsyncContextStack().getIsolationScope());\n  });\n}\nfunction getStackAsyncContextStrategy() {\n  return {\n    suppressTracing: suppressTracingInStack,\n    withIsolationScope,\n    withScope,\n    withSetScope,\n    withSetIsolationScope: (_isolationScope, callback) => {\n      return withIsolationScope(callback);\n    },\n    getCurrentScope: () => getAsyncContextStack().getScope(),\n    getIsolationScope: () => getAsyncContextStack().getIsolationScope()\n  };\n}\nfunction suppressTracingInStack(callback) {\n  return withScope((scope) => {\n    scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: true });\n    const res = callback();\n    scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: void 0 });\n    return res;\n  });\n}\n\nexport { AsyncContextStack, getStackAsyncContextStrategy };\n//# sourceMappingURL=stackStrategy.js.map\n","import { getGlobalSingleton } from './carrier.js';\nimport { Scope } from './scope.js';\n\nfunction getDefaultCurrentScope() {\n  return getGlobalSingleton(\"defaultCurrentScope\", () => new Scope());\n}\nfunction getDefaultIsolationScope() {\n  return getGlobalSingleton(\"defaultIsolationScope\", () => new Scope());\n}\n\nexport { getDefaultCurrentScope, getDefaultIsolationScope };\n//# sourceMappingURL=defaultScopes.js.map\n","import { getSentryCarrier, getMainCarrier } from '../carrier.js';\nimport { getStackAsyncContextStrategy } from './stackStrategy.js';\n\nfunction setAsyncContextStrategy(strategy) {\n  const registry = getMainCarrier();\n  const sentry = getSentryCarrier(registry);\n  sentry.acs = strategy;\n}\nfunction getAsyncContextStrategy(carrier) {\n  const sentry = getSentryCarrier(carrier);\n  if (sentry.acs) {\n    return sentry.acs;\n  }\n  return getStackAsyncContextStrategy();\n}\n\nexport { getAsyncContextStrategy, setAsyncContextStrategy };\n//# sourceMappingURL=index.js.map\n","import { isPrimitive } from './utils/is.js';\n\nfunction isAttributeObject(maybeObj) {\n  return typeof maybeObj === \"object\" && maybeObj != null && !Array.isArray(maybeObj) && Object.keys(maybeObj).includes(\"value\");\n}\nfunction attributeValueToTypedAttributeValue(rawValue, useFallback) {\n  const { value, unit } = isAttributeObject(rawValue) ? rawValue : { value: rawValue, unit: void 0 };\n  const attributeValue = getTypedAttributeValue(value);\n  const checkedUnit = unit && typeof unit === \"string\" ? { unit } : {};\n  if (attributeValue) {\n    return { ...attributeValue, ...checkedUnit };\n  }\n  if (!useFallback || useFallback === \"skip-undefined\" && value === void 0) {\n    return;\n  }\n  let stringValue = \"\";\n  try {\n    stringValue = JSON.stringify(value) ?? \"\";\n  } catch {\n  }\n  return {\n    value: stringValue,\n    type: \"string\",\n    ...checkedUnit\n  };\n}\nfunction serializeAttributes(attributes, fallback = false) {\n  const serializedAttributes = {};\n  for (const [key, value] of Object.entries(attributes ?? {})) {\n    const typedValue = attributeValueToTypedAttributeValue(value, fallback);\n    if (typedValue) {\n      serializedAttributes[key] = typedValue;\n    }\n  }\n  return serializedAttributes;\n}\nfunction estimateTypedAttributesSizeInBytes(attributes) {\n  if (!attributes) {\n    return 0;\n  }\n  let weight = 0;\n  for (const [key, attr] of Object.entries(attributes)) {\n    weight += key.length * 2;\n    weight += attr.type.length * 2;\n    weight += (attr.unit?.length ?? 0) * 2;\n    const val = attr.value;\n    if (Array.isArray(val)) {\n      weight += estimatePrimitiveSizeInBytes(val[0]) * val.length;\n    } else if (isPrimitive(val)) {\n      weight += estimatePrimitiveSizeInBytes(val);\n    } else {\n      weight += 100;\n    }\n  }\n  return weight;\n}\nfunction estimatePrimitiveSizeInBytes(value) {\n  if (typeof value === \"string\") {\n    return value.length * 2;\n  } else if (typeof value === \"boolean\") {\n    return 4;\n  } else if (typeof value === \"number\") {\n    return 8;\n  }\n  return 0;\n}\nfunction getTypedAttributeValue(value) {\n  if (Array.isArray(value)) {\n    return { value, type: \"array\" };\n  }\n  const primitiveType = typeof value === \"string\" ? \"string\" : typeof value === \"boolean\" ? \"boolean\" : typeof value === \"number\" && !Number.isNaN(value) ? Number.isInteger(value) ? \"integer\" : \"double\" : null;\n  if (primitiveType) {\n    return { value, type: primitiveType };\n  }\n}\n\nexport { attributeValueToTypedAttributeValue, estimateTypedAttributesSizeInBytes, isAttributeObject, serializeAttributes };\n//# sourceMappingURL=attributes.js.map\n","import { getAsyncContextStrategy } from './asyncContext/index.js';\nimport { getMainCarrier, getSentryCarrier, getGlobalSingleton } from './carrier.js';\nimport { Scope } from './scope.js';\nimport { generateSpanId } from './utils/propagationContext.js';\n\nfunction registerExternalPropagationContext(fn) {\n  getSentryCarrier(getMainCarrier()).externalPropagationContextProvider = fn;\n}\nfunction getExternalPropagationContext() {\n  return getSentryCarrier(getMainCarrier()).externalPropagationContextProvider?.();\n}\nfunction hasExternalPropagationContext() {\n  return getSentryCarrier(getMainCarrier()).externalPropagationContextProvider !== void 0;\n}\nfunction getCurrentScope() {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  return acs.getCurrentScope();\n}\nfunction getIsolationScope() {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  return acs.getIsolationScope();\n}\nfunction getGlobalScope() {\n  return getGlobalSingleton(\"globalScope\", () => new Scope());\n}\nfunction withScope(...rest) {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (rest.length === 2) {\n    const [scope, callback] = rest;\n    if (!scope) {\n      return acs.withScope(callback);\n    }\n    return acs.withSetScope(scope, callback);\n  }\n  return acs.withScope(rest[0]);\n}\nfunction withIsolationScope(...rest) {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (rest.length === 2) {\n    const [isolationScope, callback] = rest;\n    if (!isolationScope) {\n      return acs.withIsolationScope(callback);\n    }\n    return acs.withSetIsolationScope(isolationScope, callback);\n  }\n  return acs.withIsolationScope(rest[0]);\n}\nfunction getClient() {\n  return getCurrentScope().getClient();\n}\nfunction getTraceContextFromScope(scope) {\n  const externalContext = getExternalPropagationContext();\n  if (externalContext) {\n    return { trace_id: externalContext.traceId, span_id: externalContext.spanId };\n  }\n  const propagationContext = scope.getPropagationContext();\n  const { traceId, parentSpanId, propagationSpanId } = propagationContext;\n  const traceContext = {\n    trace_id: traceId,\n    span_id: propagationSpanId || generateSpanId()\n  };\n  if (parentSpanId) {\n    traceContext.parent_span_id = parentSpanId;\n  }\n  return traceContext;\n}\n\nexport { getClient, getCurrentScope, getExternalPropagationContext, getGlobalScope, getIsolationScope, getTraceContextFromScope, hasExternalPropagationContext, registerExternalPropagationContext, withIsolationScope, withScope };\n//# sourceMappingURL=currentScopes.js.map\n","const e=\"address\",t=\"ai.citations\",i=\"ai.completion_tokens.used\",a=\"ai.documents\",s=\"ai.finish_reason\",r=\"ai.frequency_penalty\",n=\"ai.function_call\",o=\"ai.generation_id\",l=\"ai.input_messages\",p=\"ai.is_search_required\",c=\"ai.metadata\",u=\"ai.model.id\",d=\"ai.model_id\",g=\"ai.model.provider\",b=\"ai.pipeline.name\",m=\"ai.preamble\",y=\"ai.presence_penalty\",_=\"ai.prompt\",h=\"ai.prompt.messages\",f=\"ai.prompt_tokens.used\",v=\"ai.prompt.tools\",k=\"ai.raw_prompting\",T=\"ai.responses\",S=\"ai.response_format\",E=\"ai.response.id\",O=\"ai.response.model\",I=\"ai.response.object\",A=\"ai.response.text\",w=\"ai.response.timestamp\",x=\"ai.response.toolCalls\",R=\"ai.schema\",N=\"ai.search_queries\",C=\"ai.search_results\",P=\"ai.seed\",D=\"ai.streaming\",q=\"ai.tags\",L=\"ai.temperature\",M=\"ai.texts\",U=\"ai.toolCall.args\",G=\"ai.toolCall.result\",z=\"ai.tools\",Y=\"ai.tool_calls\",V=\"ai.top_k\",B=\"ai.top_p\",F=\"ai.total_cost\",W=\"ai.total_tokens.used\",H=\"ai.usage.tokens\",K=\"ai.values\",j=\"ai.warnings\",Q=\"angular.version\",X=\"app.app_build\",J=\"app.app_identifier\",Z=\"app.app_name\",$=\"app.app_start_time\",ee=\"app.app_version\",te=\"app.build\",ie=\"app.identifier\",ae=\"app.in_foreground\",se=\"app.name\",re=\"app_start_cold\",ne=\"app.start_time\",oe=\"app_start_type\",le=\"app_start_warm\",pe=\"app.version\",ce=\"app.vitals.frames.delay.value\",ue=\"app.vitals.frames.frozen.count\",de=\"app.vitals.frames.frozen.rate\",ge=\"app.vitals.frames.slow.count\",be=\"app.vitals.frames.slow.rate\",me=\"app.vitals.frames.total.count\",ye=\"app.vitals.stall.duration\",_e=\"app.vitals.stall.percentage\",he=\"app.vitals.start.cold.value\",fe=\"app.vitals.start.prewarmed\",ve=\"app.vitals.start.reason\",ke=\"app.vitals.start.screen\",Te=\"app.vitals.start.type\",Se=\"app.vitals.start.warm.value\",Ee=\"app.vitals.ttfd.value\",Oe=\"app.vitals.ttid.value\",Ie=\"art.gc.blocking_count\",Ae=\"art.gc.blocking_time\",we=\"art.gc.pre_oome_count\",xe=\"art.gc.total_count\",Re=\"art.gc.total_time\",Ne=\"art.gc.waiting_time\",Ce=\"art.memory.free\",Pe=\"art.memory.free_until_gc\",De=\"art.memory.free_until_oome\",qe=\"art.memory.max\",Le=\"art.memory.total\",Me=\"aws.cloudwatch.logs.log_group\",Ue=\"aws.cloudwatch.logs.log_stream\",Ge=\"aws.cloudwatch.logs.url\",ze=\"aws.dynamodb.attribute_definitions\",Ye=\"aws.dynamodb.consistent_read\",Ve=\"aws.dynamodb.consumed_capacity\",Be=\"aws.dynamodb.count\",Fe=\"aws.dynamodb.exclusive_start_table\",We=\"aws.dynamodb.global_secondary_indexes\",He=\"aws.dynamodb.global_secondary_index_updates\",Ke=\"aws.dynamodb.index_name\",je=\"aws.dynamodb.item_collection_metrics\",Qe=\"aws.dynamodb.limit\",Xe=\"aws.dynamodb.local_secondary_indexes\",Je=\"aws.dynamodb.projection\",Ze=\"aws.dynamodb.provisioned_read_capacity\",$e=\"aws.dynamodb.provisioned_write_capacity\",et=\"aws.dynamodb.scanned_count\",tt=\"aws.dynamodb.scan_forward\",it=\"aws.dynamodb.segment\",at=\"aws.dynamodb.select\",st=\"aws.dynamodb.table_count\",rt=\"aws.dynamodb.table_names\",nt=\"aws.dynamodb.total_segments\",ot=\"aws.extended_request_id\",lt=\"aws.kinesis.stream_name\",pt=\"aws.kinesis.stream.name\",ct=\"aws.lambda.aws_request_id\",ut=\"aws.lambda.execution_duration_in_millis\",dt=\"aws.lambda.function_name\",gt=\"aws.lambda.function_version\",bt=\"aws.lambda.invoked_arn\",mt=\"aws.lambda.invoked_function_arn\",yt=\"aws.lambda.remaining_time_in_millis\",_t=\"aws.log.group.names\",ht=\"aws.log.stream.names\",ft=\"aws.operation_name\",vt=\"aws_region\",kt=\"aws.request.extended_id\",Tt=\"aws.request_id\",St=\"aws.request.id\",Et=\"aws.request.url\",Ot=\"aws.s3.bucket\",It=\"aws.secretsmanager.secret.arn\",At=\"aws.sns.topic.arn\",wt=\"aws.step_functions.activity.arn\",xt=\"aws.step_functions.state_machine.arn\",Rt=\"blocked_main_thread\",Nt=\"browser.bfcache.frame\",Ct=\"browser.bfcache.not_restored_reason_count\",Pt=\"browser.bfcache.outcome\",Dt=\"browser.bfcache.reason\",qt=\"browser.name\",Lt=\"browser.navigation.id\",Mt=\"browser.navigation.type\",Ut=\"browser.paint.type\",Gt=\"browser.performance.navigation.activation_start\",zt=\"browser.performance.time_origin\",Yt=\"browser.report.type\",Vt=\"browser.script.invoker\",Bt=\"browser.script.invoker_type\",Ft=\"browser.script.source_char_position\",Wt=\"browser.version\",Ht=\"browser.web_vital.cls.report_event\",Kt=\"browser.web_vital.cls.source.<key>\",jt=\"browser.web_vital.cls.source\",Qt=\"browser.web_vital.cls.value\",Xt=\"browser.web_vital.fcp.value\",Jt=\"browser.web_vital.fp.value\",Zt=\"browser.web_vital.inp.interaction_type\",$t=\"browser.web_vital.inp.target\",ei=\"browser.web_vital.inp.value\",ti=\"browser.web_vital.lcp.element\",ii=\"browser.web_vital.lcp.id\",ai=\"browser.web_vital.lcp.load_time\",si=\"browser.web_vital.lcp.render_time\",ri=\"browser.web_vital.lcp.report_event\",ni=\"browser.web_vital.lcp.size\",oi=\"browser.web_vital.lcp.url\",li=\"browser.web_vital.lcp.value\",pi=\"browser.web_vital.ttfb.request_time\",ci=\"browser.web_vital.ttfb.value\",ui=\"cache.hit\",di=\"cache.item_age\",gi=\"cache.item_size\",bi=\"cache.key\",mi=\"cache.operation\",yi=\"cache.tags\",_i=\"cache.ttl\",hi=\"cache.write\",fi=\"channel\",vi=\"client.address\",ki=\"client.port\",Ti=\"cloudflare.d1.duration\",Si=\"cloudflare.d1.query_type\",Ei=\"cloudflare.d1.rows_read\",Oi=\"cloudflare.d1.rows_written\",Ii=\"cloudflare.durable_object.query.bindings\",Ai=\"cloudflare.durable_object.response.rows_read\",wi=\"cloudflare.durable_object.response.rows_written\",xi=\"cloudflare.r2.bucket\",Ri=\"cloudflare.r2.operation\",Ni=\"cloudflare.r2.request.delimiter\",Ci=\"cloudflare.r2.request.key\",Pi=\"cloudflare.r2.request.part_number\",Di=\"cloudflare.r2.request.prefix\",qi=\"cloudflare.workflow.attempt\",Li=\"cloudflare.workflow.retries.backoff\",Mi=\"cloudflare.workflow.retries.delay\",Ui=\"cloudflare.workflow.retries.limit\",Gi=\"cloudflare.workflow.timeout\",zi=\"cloud.account.id\",Yi=\"cloud.availability_zone\",Vi=\"cloud.platform\",Bi=\"cloud.provider\",Fi=\"cloud.region\",Wi=\"cloud.resource_id\",Hi=\"cls\",Ki=\"cls.source.<key>\",ji=\"cls.source\",Qi=\"code\",Xi=\"code.filepath\",Ji=\"code.file.path\",Zi=\"code.function\",$i=\"code.function.name\",ea=\"code.lineno\",ta=\"code.line.number\",ia=\"code.namespace\",aa=\"connectionType\",sa=\"connection.rtt\",ra=\"culture.calendar\",na=\"culture.display_name\",oa=\"culture.is_24_hour_format\",la=\"culture.locale\",pa=\"culture.timezone\",ca=\"db.collection.name\",ua=\"db.connection_string\",da=\"db.driver.name\",ga=\"db.mongodb.collection\",ba=\"db.name\",ma=\"db.namespace\",ya=\"db.operation\",_a=\"db.operation.batch.size\",ha=\"db.operation.name\",fa=\"db.params\",va=\"db.query.parameter.<key>\",ka=\"db.query.parameter\",Ta=\"db.query.summary\",Sa=\"db.query.text\",Ea=\"db.redis.connection\",Oa=\"db.redis.key\",Ia=\"db.redis.parameters\",Aa=\"db.response.status_code\",wa=\"db.sql.bindings\",xa=\"db.statement\",Ra=\"db.stored_procedure.name\",Na=\"db.system\",Ca=\"db.system.name\",Pa=\"db.user\",Da=\"deviceMemory\",qa=\"device.archs\",La=\"device.battery_level\",Ma=\"device.battery_temperature\",Ua=\"device.boot_time\",Ga=\"device.brand\",za=\"device.charging\",Ya=\"device.chipset\",Va=\"device.class\",Ba=\"device.connection_type\",Fa=\"device.cpu_description\",Wa=\"device.external_free_storage\",Ha=\"device.external_storage_size\",Ka=\"device.family\",ja=\"device.free_memory\",Qa=\"device.free_storage\",Xa=\"device.id\",Ja=\"device.locale\",Za=\"device.low_memory\",$a=\"device.low_power_mode\",es=\"device.manufacturer\",ts=\"device.memory.estimated_capacity\",is=\"device.memory_size\",as=\"device.model\",ss=\"device.model_id\",rs=\"device.name\",ns=\"device.online\",os=\"device.orientation\",ls=\"device.processor_count\",ps=\"device.processor_frequency\",cs=\"device.screen_density\",us=\"device.screen_dpi\",ds=\"device.screen_height_pixels\",gs=\"device.screen_width_pixels\",bs=\"device.simulator\",ms=\"device.storage_size\",ys=\"device.thermal_state\",_s=\"device.timezone\",hs=\"device.usable_memory\",fs=\"dist\",vs=\"django.function_name\",ks=\"django.middleware_name\",Ts=\"effectiveConnectionType\",Ss=\"environment\",Es=\"error.type\",Os=\"event.id\",Is=\"event.name\",As=\"exception.escaped\",ws=\"exception.message\",xs=\"exception.stacktrace\",Rs=\"exception.type\",Ns=\"faas.coldstart\",Cs=\"faas.cron\",Ps=\"faas.duration_in_ms\",Ds=\"faas.entry_point\",qs=\"faas.execution\",Ls=\"faas.id\",Ms=\"faas.identity\",Us=\"faas.invocation_id\",Gs=\"faas.invoked_name\",zs=\"faas.invoked_provider\",Ys=\"faas.invoked_region\",Vs=\"faas.name\",Bs=\"faas.time\",Fs=\"faas.trigger\",Ws=\"faas.version\",Hs=\"fcp\",Ks=\"file.path\",js=\"file.size\",Qs=\"flag.evaluation.<key>\",Xs=\"flag.evaluation\",Js=\"fp\",Zs=\"frames.delay\",$s=\"frames.frozen\",er=\"frames_frozen_rate\",tr=\"frames.slow\",ir=\"frames_slow_rate\",ar=\"frames.total\",sr=\"fs_error\",rr=\"gcp.function.context.event_id\",nr=\"gcp.function.context.event_type\",or=\"gcp.function.context.id\",lr=\"gcp.function.context.resource\",pr=\"gcp.function.context.source\",cr=\"gcp.function.context.specversion\",ur=\"gcp.function.context.time\",dr=\"gcp.function.context.timestamp\",gr=\"gcp.function.context.type\",br=\"gcp.project.id\",mr=\"gcp_region\",yr=\"gen_ai.agent.name\",_r=\"gen_ai.context.utilization\",hr=\"gen_ai.context.window_size\",fr=\"gen_ai.conversation.id\",vr=\"gen_ai.cost.cache_creation.input_tokens\",kr=\"gen_ai.cost.cache_read.input_tokens\",Tr=\"gen_ai.cost.input_tokens\",Sr=\"gen_ai.cost.output_tokens\",Er=\"gen_ai.cost.reasoning.output_tokens\",Or=\"gen_ai.cost.total_tokens\",Ir=\"gen_ai.embeddings.input\",Ar=\"gen_ai.function_id\",wr=\"gen_ai.input.messages\",xr=\"gen_ai.operation.name\",Rr=\"gen_ai.operation.type\",Nr=\"gen_ai.output.messages\",Cr=\"gen_ai.pipeline.name\",Pr=\"gen_ai.prompt\",Dr=\"gen_ai.prompt.name\",qr=\"gen_ai.provider.name\",Lr=\"gen_ai.request.available_tools\",Mr=\"gen_ai.request.frequency_penalty\",Ur=\"gen_ai.request.max_tokens\",Gr=\"gen_ai.request.messages\",zr=\"gen_ai.request.model\",Yr=\"gen_ai.request.presence_penalty\",Vr=\"gen_ai.request.reasoning.level\",Br=\"gen_ai.request.schema\",Fr=\"gen_ai.request.seed\",Wr=\"gen_ai.request.stop_sequences\",Hr=\"gen_ai.request.temperature\",Kr=\"gen_ai.request.top_k\",jr=\"gen_ai.request.top_p\",Qr=\"gen_ai.response.finish_reason\",Xr=\"gen_ai.response.finish_reasons\",Jr=\"gen_ai.response.id\",Zr=\"gen_ai.response.model\",$r=\"gen_ai.response.object\",en=\"gen_ai.response.streaming\",tn=\"gen_ai.response.text\",an=\"gen_ai.response.time_to_first_chunk\",sn=\"gen_ai.response.time_to_first_token\",rn=\"gen_ai.response.tokens_per_second\",nn=\"gen_ai.response.tool_calls\",on=\"gen_ai.system\",ln=\"gen_ai.system_instructions\",pn=\"gen_ai.system.message\",cn=\"gen_ai.tool.call.arguments\",un=\"gen_ai.tool.call.result\",dn=\"gen_ai.tool.definitions\",gn=\"gen_ai.tool.description\",bn=\"gen_ai.tool.input\",mn=\"gen_ai.tool.message\",yn=\"gen_ai.tool.name\",_n=\"gen_ai.tool.output\",hn=\"gen_ai.tool.type\",fn=\"gen_ai.usage.cache_creation.input_tokens\",vn=\"gen_ai.usage.cache_creation_input_tokens\",kn=\"gen_ai.usage.cache_read.input_tokens\",Tn=\"gen_ai.usage.cache_read_input_tokens\",Sn=\"gen_ai.usage.completion_tokens\",En=\"gen_ai.usage.input_tokens\",On=\"gen_ai.usage.input_tokens.cached\",In=\"gen_ai.usage.input_tokens.cache_write\",An=\"gen_ai.usage.output_tokens\",wn=\"gen_ai.usage.output_tokens.reasoning\",xn=\"gen_ai.usage.prompt_tokens\",Rn=\"gen_ai.usage.reasoning.output_tokens\",Nn=\"gen_ai.usage.total_tokens\",Cn=\"graphql.document\",Pn=\"graphql.operation.name\",Dn=\"graphql.operation.type\",qn=\"graphql.processing.type\",Ln=\"graphql.source\",Mn=\"grpc.error.bad_request.field_violations\",Un=\"grpc.error.debug_info.detail\",Gn=\"grpc.error.debug_info.stack_entries\",zn=\"grpc.error.error_info.domain\",Yn=\"grpc.error.error_info.metadata.<key>\",Vn=\"grpc.error.error_info.metadata\",Bn=\"grpc.error.error_info.reason\",Fn=\"grpc.error.precondition_failure.violations\",Wn=\"grpc.error.quota_failure.violations\",Hn=\"grpc.error.resource_info.description\",Kn=\"grpc.error.resource_info.owner\",jn=\"grpc.error.resource_info.resource_name\",Qn=\"grpc.error.resource_info.resource_type\",Xn=\"grpc.error.retry_info.retry_delay_ms\",Jn=\"hardwareConcurrency\",Zn=\"http.client_ip\",$n=\"http.decoded_response_content_length\",eo=\"http.flavor\",to=\"http.fragment\",io=\"http.host\",ao=\"http.method\",so=\"http.query\",ro=\"http.request.body.data\",no=\"http.request.body.decoded_size\",oo=\"http.request.body.size\",lo=\"http.request.connection_end\",po=\"http.request.connect_start\",co=\"http.request_content_length\",uo=\"http.request_content_length_uncompressed\",go=\"http.request.domain_lookup_end\",bo=\"http.request.domain_lookup_start\",mo=\"http.request.fetch_start\",yo=\"http.request.header.<key>\",_o=\"http.request.header\",ho=\"http.request.method\",fo=\"http.request_method\",vo=\"http.request.redirect_end\",ko=\"http.request.redirect_start\",To=\"http.request.request_start\",So=\"http.request.resend_count\",Eo=\"http.request.response_end\",Oo=\"http.request.response_start\",Io=\"http.request.same_origin\",Ao=\"http.request.secure_connection_start\",wo=\"http.request.time_to_first_byte\",xo=\"http.request.worker_start\",Ro=\"http.response.body.decoded_size\",No=\"http.response.body.size\",Co=\"http.response_content_length\",Po=\"http.response_content_length_uncompressed\",Do=\"http.response.header.content-length\",qo=\"http.response.header.<key>\",Lo=\"http.response.header\",Mo=\"http.response.size\",Uo=\"http.response.status_code\",Go=\"http.response.status_text\",zo=\"http.response_transfer_size\",Yo=\"http.route\",Vo=\"http.scheme\",Bo=\"http.server_name\",Fo=\"http.server.request.time_in_queue\",Wo=\"http.status_code\",Ho=\"http.status_text\",Ko=\"http.target\",jo=\"http.url\",Qo=\"http.user_agent\",Xo=\"id\",Jo=\"inp\",Zo=\"jsonrpc.protocol.version\",$o=\"jsonrpc.request.id\",el=\"jvm.gc.action\",tl=\"jvm.gc.name\",il=\"jvm.memory.pool.name\",al=\"jvm.memory.type\",sl=\"jvm.thread.daemon\",rl=\"jvm.thread.state\",nl=\"koa.name\",ol=\"koa.type\",ll=\"langchain.chain.name\",pl=\"lcp\",cl=\"lcp.element\",ul=\"lcp.id\",dl=\"lcp.loadTime\",gl=\"lcp.renderTime\",bl=\"lcp.size\",ml=\"lcp.url\",yl=\"litestar.middleware_name\",_l=\"logger.name\",hl=\"mcp.cancelled.reason\",fl=\"mcp.cancelled.request_id\",vl=\"mcp.client.name\",kl=\"mcp.client.title\",Tl=\"mcp.client.version\",Sl=\"mcp.lifecycle.phase\",El=\"mcp.logging.data_type\",Ol=\"mcp.logging.level\",Il=\"mcp.logging.logger\",Al=\"mcp.logging.message\",wl=\"mcp.method.name\",xl=\"mcp.progress.current\",Rl=\"mcp.progress.message\",Nl=\"mcp.progress.percentage\",Cl=\"mcp.progress.token\",Pl=\"mcp.progress.total\",Dl=\"mcp.prompt.name\",ql=\"mcp.prompt.result.description\",Ll=\"mcp.prompt.result.message_content\",Ml=\"mcp.prompt.result.message_count\",Ul=\"mcp.prompt.result.message_role\",Gl=\"mcp.protocol.ready\",zl=\"mcp.protocol.version\",Yl=\"mcp.request.argument.<key>\",Vl=\"mcp.request.argument\",Bl=\"mcp.request.argument.name\",Fl=\"mcp.request.argument.uri\",Wl=\"mcp.request.id\",Hl=\"mcp.resource.protocol\",Kl=\"mcp.resource.uri\",jl=\"mcp.server.name\",Ql=\"mcp.server.title\",Xl=\"mcp.server.version\",Jl=\"mcp.session.id\",Zl=\"mcp.tool.name\",$l=\"mcp.tool.result.content\",ep=\"mcp.tool.result.content_count\",tp=\"mcp.tool.result.is_error\",ip=\"mcp.transport\",ap=\"mdc.<key>\",sp=\"mdc\",rp=\"messaging.batch.message_count\",np=\"messaging.conversation_id\",op=\"messaging.destination\",lp=\"messaging.destination.connection\",pp=\"messaging.destination_kind\",cp=\"messaging.destination.name\",up=\"messaging.destination.partition.id\",dp=\"messaging.kafka.message.key\",gp=\"messaging.kafka.message.tombstone\",bp=\"messaging.kafka.offset\",mp=\"messaging.message.body.size\",yp=\"messaging.message.conversation_id\",_p=\"messaging.message.envelope.size\",hp=\"messaging.message.id\",fp=\"messaging.message_id\",vp=\"messaging.message.receive.latency\",kp=\"messaging.message.retry.count\",Tp=\"messaging.operation\",Sp=\"messaging.operation.name\",Ep=\"messaging.operation.type\",Op=\"messaging.protocol\",Ip=\"messaging.protocol_version\",Ap=\"messaging.rabbitmq.destination.routing_key\",wp=\"messaging.rabbitmq.routing_key\",xp=\"messaging.system\",Rp=\"messaging.url\",Np=\"method\",Cp=\"middleware.name\",Pp=\"navigation.origin\",Dp=\"navigation.route.id\",qp=\"navigation.type\",Lp=\"nel.elapsed_time\",Mp=\"nel.phase\",Up=\"nel.referrer\",Gp=\"nel.sampling_function\",zp=\"nel.type\",Yp=\"network.connection.effective_type\",Vp=\"network.connection.rtt\",Bp=\"network.connection.type\",Fp=\"network.local.address\",Wp=\"network.local.port\",Hp=\"network.peer.address\",Kp=\"network.peer.port\",jp=\"network.protocol.name\",Qp=\"network.protocol.version\",Xp=\"network.transport\",Jp=\"network.type\",Zp=\"net.host.ip\",$p=\"net.host.name\",ec=\"net.host.port\",tc=\"net.peer.ip\",ic=\"net.peer.name\",ac=\"net.peer.port\",sc=\"net.protocol.name\",rc=\"net.protocol.version\",nc=\"net.sock.family\",oc=\"net.sock.host.addr\",lc=\"net.sock.host.port\",pc=\"net.sock.peer.addr\",cc=\"net.sock.peer.name\",uc=\"net.sock.peer.port\",dc=\"net.transport\",gc=\"os.build\",bc=\"os.build_id\",mc=\"os.description\",yc=\"os.kernel_version\",_c=\"os.name\",hc=\"os.raw_description\",fc=\"os.rooted\",vc=\"os.theme\",kc=\"os.type\",Tc=\"os.version\",Sc=\"otel.kind\",Ec=\"otel.scope.name\",Oc=\"otel.scope.version\",Ic=\"otel.status_code\",Ac=\"otel.status_description\",wc=\"params.<key>\",xc=\"params\",Rc=\"performance.activationStart\",Nc=\"performance.timeOrigin\",Cc=\"port\",Pc=\"previous_route\",Dc=\"process.command_args\",qc=\"process.executable.name\",Lc=\"process.pid\",Mc=\"process.runtime.description\",Uc=\"process.runtime.engine.name\",Gc=\"process.runtime.engine.version\",zc=\"process.runtime.name\",Yc=\"process.runtime.version\",Vc=\"profile_id\",Bc=\"query\",Fc=\"query.<key>\",Wc=\"query\",Hc=\"react_native.architecture\",Kc=\"react_native.module.call.count\",jc=\"react_native.module.call.distinct_count\",Qc=\"react_native.module.duration.max\",Xc=\"react_native.module.duration.total\",Jc=\"react_native.module.error.count\",Zc=\"react_native.module.kind\",$c=\"react_native.module.method\",eu=\"react_native.module.name\",tu=\"react_native.module.top.duration\",iu=\"react_native.module.top.name\",au=\"react.version\",su=\"redis.command\",ru=\"redis.key\",nu=\"release\",ou=\"remix.action_form_data.<key>\",lu=\"remix.action_form_data\",pu=\"replayId\",cu=\"replay_id\",uu=\"resource.deployment.environment\",du=\"resource.deployment.environment.name\",gu=\"resource.render_blocking_status\",bu=\"route\",mu=\"router.navigation.origin\",yu=\"router.navigation.route.id\",_u=\"router.navigation.type\",hu=\"rpc.grpc.status_code\",fu=\"rpc.method\",vu=\"rpc.response.status_code\",ku=\"rpc.service\",Tu=\"rpc.system\",Su=\"rpc.system.name\",Eu=\"runtime.build\",Ou=\"runtime.name\",Iu=\"runtime.raw_description\",Au=\"runtime.version\",wu=\"score.<key>\",xu=\"score\",Ru=\"score.ratio.<key>\",Nu=\"score.ratio\",Cu=\"score.total\",Pu=\"score.weight.<key>\",Du=\"score.weight\",qu=\"sentry.action\",Lu=\"sentry.browser.name\",Mu=\"sentry.browser.version\",Uu=\"sentry.cancellation_reason\",Gu=\"sentry.category\",zu=\"sentry.client_sample_rate\",Yu=\"sentry.description\",Vu=\"sentry.dist\",Bu=\"sentry.domain\",Fu=\"sentry.dsc.environment\",Wu=\"sentry.dsc.project_id\",Hu=\"sentry.dsc.public_key\",Ku=\"sentry.dsc.release\",ju=\"sentry.dsc.sampled\",Qu=\"sentry.dsc.sample_rate\",Xu=\"sentry.dsc.trace_id\",Ju=\"sentry.dsc.transaction\",Zu=\"sentry.environment\",$u=\"sentry.event.serialized_breadcrumbs\",ed=\"sentry.event.serialized_contexts\",td=\"sentry.event.serialized_extra\",id=\"sentry.event.serialized_meta\",ad=\"sentry.exclusive_time\",sd=\"sentry.frames.frozen\",rd=\"sentry.frames.slow\",nd=\"sentry.frames.total\",od=\"sentry.graphql.operation\",ld=\"sentry.group\",pd=\"sentry.http.prefetch\",cd=\"sentry.idle_span_finish_reason\",ud=\"sentry.is_localhost\",dd=\"sentry.is_remote\",gd=\"sentry.kind\",bd=\"sentry.main_thread\",md=\"sentry.message.parameter.<key>\",yd=\"sentry.message.template\",_d=\"sentry.metric.source\",hd=\"sentry.mobile\",fd=\"sentry.module.<key>\",vd=\"sentry.module\",kd=\"sentry.nextjs.ssr.function.route\",Td=\"sentry.nextjs.ssr.function.type\",Sd=\"sentry.normalized_db_query\",Ed=\"sentry.normalized_db_query.hash\",Od=\"sentry.normalized_description\",Id=\"sentry.observed_timestamp_nanos\",Ad=\"sentry.op\",wd=\"sentry.origin\",xd=\"sentry.pageload.span_id\",Rd=\"sentry.platform\",Nd=\"sentry.profiler_id\",Cd=\"sentry.profile_id\",Pd=\"sentry.relay.ingress\",Dd=\"sentry.relay.pipeline\",qd=\"sentry.release\",Ld=\"sentry.replay_id\",Md=\"sentry.replay_is_buffering\",Ud=\"sentry.report_event\",Gd=\"sentry.sdk.integrations\",zd=\"sentry.sdk.name\",Yd=\"sentry.sdk.version\",Vd=\"sentry.segment.id\",Bd=\"sentry.segment_id\",Fd=\"sentry.segment.name\",Wd=\"sentry.segment.name.source\",Hd=\"sentry.server_sample_rate\",Kd=\"sentry.source\",jd=\"sentry.span.source\",Qd=\"sentry.status\",Xd=\"sentry.status_code\",Jd=\"sentry.status.message\",Zd=\"sentry.sveltekit.navigation.from\",$d=\"sentry.sveltekit.navigation.to\",eg=\"sentry.sveltekit.navigation.type\",tg=\"sentry.thread.id\",ig=\"sentry.timestamp.sequence\",ag=\"sentry.trace_lifecycle\",sg=\"sentry.trace.parent_span_id\",rg=\"sentry.trace.status\",ng=\"sentry.transaction\",og=\"sentry.user.email\",lg=\"sentry.user.geo.city\",pg=\"sentry.user.geo.country_code\",cg=\"sentry.user.geo.region\",ug=\"sentry.user.geo.subdivision\",dg=\"sentry.user.id\",gg=\"sentry.user.ip\",bg=\"sentry.user.username\",mg=\"server.address\",yg=\"server_name\",_g=\"server.port\",hg=\"service.name\",fg=\"service.version\",vg=\"session.id\",kg=\"stall_percentage\",Tg=\"stall_total_time\",Sg=\"starlette.middleware_name\",Eg=\"starlite.middleware_name\",Og=\"state.type\",Ig=\"subprocess.pid\",Ag=\"sveltekit.load.environment\",wg=\"sveltekit.load.node_id\",xg=\"sveltekit.load.node_type\",Rg=\"sveltekit.tracing.original_name\",Ng=\"thread.id\",Cg=\"thread.name\",Pg=\"timber.tag\",Dg=\"time_to_full_display\",qg=\"time_to_initial_display\",Lg=\"transaction\",Mg=\"trpc.procedure_path\",Ug=\"trpc.procedure_type\",Gg=\"ttfb\",zg=\"ttfb.requestTime\",Yg=\"turbo_modules.total_call_count\",Vg=\"turbo_modules.total_duration_ms\",Bg=\"turbo_modules.total_error_count\",Fg=\"turbo_modules.unique_methods\",Wg=\"turbo_module.arch\",Hg=\"turbo_module.method\",Kg=\"turbo_module.name\",jg=\"turbo_module.top_module\",Qg=\"turbo_module.top_module_duration_ms\",Xg=\"turbo_module.total_call_count\",Jg=\"turbo_module.total_duration_ms\",Zg=\"turbo_module.total_error_count\",$g=\"turbo_module.unique_methods\",eb=\"type\",tb=\"ui.component_name\",ib=\"ui.contributes_to_ttfd\",ab=\"ui.contributes_to_ttid\",sb=\"ui.element.height\",rb=\"ui.element.id\",nb=\"ui.element.identifier\",ob=\"ui.element.load_time\",lb=\"ui.element.paint_type\",pb=\"ui.element.render_time\",cb=\"ui.element.type\",ub=\"ui.element.url\",db=\"ui.element.width\",gb=\"url\",bb=\"url.domain\",mb=\"url.fragment\",yb=\"url.full\",_b=\"url.path\",hb=\"url.path.parameter.<key>\",fb=\"url.path.parameter\",vb=\"url.path.params.<key>\",kb=\"url.path.params\",Tb=\"url.port\",Sb=\"url.query\",Eb=\"url.same_origin\",Ob=\"url.scheme\",Ib=\"url.template\",Ab=\"user_agent.original\",wb=\"user.email\",xb=\"user.full_name\",Rb=\"user.geo.city\",Nb=\"user.geo.country_code\",Cb=\"user.geo.region\",Pb=\"user.geo.subdivision\",Db=\"user.hash\",qb=\"user.id\",Lb=\"user.ip_address\",Mb=\"user.name\",Ub=\"user.roles\",Gb=\"vercel.branch\",zb=\"vercel.build_id\",Yb=\"vercel.deployment_id\",Vb=\"vercel.destination\",Bb=\"vercel.edge_type\",Fb=\"vercel.entrypoint\",Wb=\"vercel.execution_region\",Hb=\"vercel.id\",Kb=\"vercel.ja3_digest\",jb=\"vercel.ja4_digest\",Qb=\"vercel.log_type\",Xb=\"vercel.path\",Jb=\"vercel.project_id\",Zb=\"vercel.project_name\",$b=\"vercel.proxy.cache_id\",em=\"vercel.proxy.client_ip\",tm=\"vercel.proxy.host\",im=\"vercel.proxy.lambda_region\",am=\"vercel.proxy.method\",sm=\"vercel.proxy.path\",rm=\"vercel.proxy.path_type\",nm=\"vercel.proxy.path_type_variant\",om=\"vercel.proxy.referer\",lm=\"vercel.proxy.region\",pm=\"vercel.proxy.response_byte_size\",cm=\"vercel.proxy.scheme\",um=\"vercel.proxy.status_code\",dm=\"vercel.proxy.timestamp\",gm=\"vercel.proxy.user_agent\",bm=\"vercel.proxy.vercel_cache\",mm=\"vercel.proxy.vercel_id\",ym=\"vercel.proxy.waf_action\",_m=\"vercel.proxy.waf_rule_id\",hm=\"vercel.request_id\",fm=\"vercel.source\",vm=\"vercel.status_code\",km={address:\"string\",\"ai.citations\":\"string[]\",\"ai.completion_tokens.used\":\"integer\",\"ai.documents\":\"string[]\",\"ai.finish_reason\":\"string\",\"ai.frequency_penalty\":\"double\",\"ai.function_call\":\"string\",\"ai.generation_id\":\"string\",\"ai.input_messages\":\"string\",\"ai.is_search_required\":\"boolean\",\"ai.metadata\":\"string\",\"ai.model.id\":\"string\",\"ai.model_id\":\"string\",\"ai.model.provider\":\"string\",\"ai.pipeline.name\":\"string\",\"ai.preamble\":\"string\",\"ai.presence_penalty\":\"double\",\"ai.prompt\":\"string\",\"ai.prompt.messages\":\"string\",\"ai.prompt_tokens.used\":\"integer\",\"ai.prompt.tools\":\"string[]\",\"ai.raw_prompting\":\"boolean\",\"ai.responses\":\"string[]\",\"ai.response_format\":\"string\",\"ai.response.id\":\"string\",\"ai.response.model\":\"string\",\"ai.response.object\":\"string\",\"ai.response.text\":\"string\",\"ai.response.timestamp\":\"string\",\"ai.response.toolCalls\":\"string\",\"ai.schema\":\"string\",\"ai.search_queries\":\"string[]\",\"ai.search_results\":\"string[]\",\"ai.seed\":\"string\",\"ai.streaming\":\"boolean\",\"ai.tags\":\"string\",\"ai.temperature\":\"double\",\"ai.texts\":\"string[]\",\"ai.toolCall.args\":\"string\",\"ai.toolCall.result\":\"string\",\"ai.tools\":\"string[]\",\"ai.tool_calls\":\"string[]\",\"ai.top_k\":\"integer\",\"ai.top_p\":\"double\",\"ai.total_cost\":\"double\",\"ai.total_tokens.used\":\"integer\",\"ai.usage.tokens\":\"integer\",\"ai.values\":\"string\",\"ai.warnings\":\"string[]\",\"angular.version\":\"string\",\"app.app_build\":\"string\",\"app.app_identifier\":\"string\",\"app.app_name\":\"string\",\"app.app_start_time\":\"string\",\"app.app_version\":\"string\",\"app.build\":\"string\",\"app.identifier\":\"string\",\"app.in_foreground\":\"boolean\",\"app.name\":\"string\",app_start_cold:\"double\",\"app.start_time\":\"string\",app_start_type:\"string\",app_start_warm:\"double\",\"app.version\":\"string\",\"app.vitals.frames.delay.value\":\"integer\",\"app.vitals.frames.frozen.count\":\"integer\",\"app.vitals.frames.frozen.rate\":\"double\",\"app.vitals.frames.slow.count\":\"integer\",\"app.vitals.frames.slow.rate\":\"double\",\"app.vitals.frames.total.count\":\"integer\",\"app.vitals.stall.duration\":\"double\",\"app.vitals.stall.percentage\":\"double\",\"app.vitals.start.cold.value\":\"double\",\"app.vitals.start.prewarmed\":\"boolean\",\"app.vitals.start.reason\":\"string\",\"app.vitals.start.screen\":\"string\",\"app.vitals.start.type\":\"string\",\"app.vitals.start.warm.value\":\"double\",\"app.vitals.ttfd.value\":\"double\",\"app.vitals.ttid.value\":\"double\",\"art.gc.blocking_count\":\"integer\",\"art.gc.blocking_time\":\"double\",\"art.gc.pre_oome_count\":\"integer\",\"art.gc.total_count\":\"integer\",\"art.gc.total_time\":\"double\",\"art.gc.waiting_time\":\"double\",\"art.memory.free\":\"integer\",\"art.memory.free_until_gc\":\"integer\",\"art.memory.free_until_oome\":\"integer\",\"art.memory.max\":\"integer\",\"art.memory.total\":\"integer\",\"aws.cloudwatch.logs.log_group\":\"string\",\"aws.cloudwatch.logs.log_stream\":\"string\",\"aws.cloudwatch.logs.url\":\"string\",\"aws.dynamodb.attribute_definitions\":\"string[]\",\"aws.dynamodb.consistent_read\":\"boolean\",\"aws.dynamodb.consumed_capacity\":\"string[]\",\"aws.dynamodb.count\":\"integer\",\"aws.dynamodb.exclusive_start_table\":\"string\",\"aws.dynamodb.global_secondary_indexes\":\"string[]\",\"aws.dynamodb.global_secondary_index_updates\":\"string[]\",\"aws.dynamodb.index_name\":\"string\",\"aws.dynamodb.item_collection_metrics\":\"string\",\"aws.dynamodb.limit\":\"integer\",\"aws.dynamodb.local_secondary_indexes\":\"string[]\",\"aws.dynamodb.projection\":\"string\",\"aws.dynamodb.provisioned_read_capacity\":\"double\",\"aws.dynamodb.provisioned_write_capacity\":\"double\",\"aws.dynamodb.scanned_count\":\"integer\",\"aws.dynamodb.scan_forward\":\"boolean\",\"aws.dynamodb.segment\":\"integer\",\"aws.dynamodb.select\":\"string\",\"aws.dynamodb.table_count\":\"integer\",\"aws.dynamodb.table_names\":\"string[]\",\"aws.dynamodb.total_segments\":\"integer\",\"aws.extended_request_id\":\"string\",\"aws.kinesis.stream_name\":\"string\",\"aws.kinesis.stream.name\":\"string\",\"aws.lambda.aws_request_id\":\"string\",\"aws.lambda.execution_duration_in_millis\":\"double\",\"aws.lambda.function_name\":\"string\",\"aws.lambda.function_version\":\"string\",\"aws.lambda.invoked_arn\":\"string\",\"aws.lambda.invoked_function_arn\":\"string\",\"aws.lambda.remaining_time_in_millis\":\"double\",\"aws.log.group.names\":\"string[]\",\"aws.log.stream.names\":\"string[]\",\"aws.operation_name\":\"string\",aws_region:\"string\",\"aws.request.extended_id\":\"string\",\"aws.request_id\":\"string\",\"aws.request.id\":\"string\",\"aws.request.url\":\"string\",\"aws.s3.bucket\":\"string\",\"aws.secretsmanager.secret.arn\":\"string\",\"aws.sns.topic.arn\":\"string\",\"aws.step_functions.activity.arn\":\"string\",\"aws.step_functions.state_machine.arn\":\"string\",blocked_main_thread:\"boolean\",\"browser.bfcache.frame\":\"string\",\"browser.bfcache.not_restored_reason_count\":\"integer\",\"browser.bfcache.outcome\":\"string\",\"browser.bfcache.reason\":\"string\",\"browser.name\":\"string\",\"browser.navigation.id\":\"integer\",\"browser.navigation.type\":\"string\",\"browser.paint.type\":\"string\",\"browser.performance.navigation.activation_start\":\"double\",\"browser.performance.time_origin\":\"double\",\"browser.report.type\":\"string\",\"browser.script.invoker\":\"string\",\"browser.script.invoker_type\":\"string\",\"browser.script.source_char_position\":\"integer\",\"browser.version\":\"string\",\"browser.web_vital.cls.report_event\":\"string\",\"browser.web_vital.cls.source.<key>\":\"string\",\"browser.web_vital.cls.value\":\"double\",\"browser.web_vital.fcp.value\":\"double\",\"browser.web_vital.fp.value\":\"double\",\"browser.web_vital.inp.interaction_type\":\"string\",\"browser.web_vital.inp.target\":\"string\",\"browser.web_vital.inp.value\":\"double\",\"browser.web_vital.lcp.element\":\"string\",\"browser.web_vital.lcp.id\":\"string\",\"browser.web_vital.lcp.load_time\":\"integer\",\"browser.web_vital.lcp.render_time\":\"integer\",\"browser.web_vital.lcp.report_event\":\"string\",\"browser.web_vital.lcp.size\":\"integer\",\"browser.web_vital.lcp.url\":\"string\",\"browser.web_vital.lcp.value\":\"double\",\"browser.web_vital.ttfb.request_time\":\"double\",\"browser.web_vital.ttfb.value\":\"double\",\"cache.hit\":\"boolean\",\"cache.item_age\":\"integer\",\"cache.item_size\":\"integer\",\"cache.key\":\"string[]\",\"cache.operation\":\"string\",\"cache.tags\":\"string[]\",\"cache.ttl\":\"integer\",\"cache.write\":\"boolean\",channel:\"string\",\"client.address\":\"string\",\"client.port\":\"integer\",\"cloudflare.d1.duration\":\"integer\",\"cloudflare.d1.query_type\":\"string\",\"cloudflare.d1.rows_read\":\"integer\",\"cloudflare.d1.rows_written\":\"integer\",\"cloudflare.durable_object.query.bindings\":\"integer\",\"cloudflare.durable_object.response.rows_read\":\"integer\",\"cloudflare.durable_object.response.rows_written\":\"integer\",\"cloudflare.r2.bucket\":\"string\",\"cloudflare.r2.operation\":\"string\",\"cloudflare.r2.request.delimiter\":\"string\",\"cloudflare.r2.request.key\":\"string\",\"cloudflare.r2.request.part_number\":\"integer\",\"cloudflare.r2.request.prefix\":\"string\",\"cloudflare.workflow.attempt\":\"integer\",\"cloudflare.workflow.retries.backoff\":\"string\",\"cloudflare.workflow.retries.delay\":\"string\",\"cloudflare.workflow.retries.limit\":\"integer\",\"cloudflare.workflow.timeout\":\"string\",\"cloud.account.id\":\"string\",\"cloud.availability_zone\":\"string\",\"cloud.platform\":\"string\",\"cloud.provider\":\"string\",\"cloud.region\":\"string\",\"cloud.resource_id\":\"string\",cls:\"double\",\"cls.source.<key>\":\"string\",code:\"string\",\"code.filepath\":\"string\",\"code.file.path\":\"string\",\"code.function\":\"string\",\"code.function.name\":\"string\",\"code.lineno\":\"integer\",\"code.line.number\":\"integer\",\"code.namespace\":\"string\",connectionType:\"string\",\"connection.rtt\":\"integer\",\"culture.calendar\":\"string\",\"culture.display_name\":\"string\",\"culture.is_24_hour_format\":\"boolean\",\"culture.locale\":\"string\",\"culture.timezone\":\"string\",\"db.collection.name\":\"string\",\"db.connection_string\":\"string\",\"db.driver.name\":\"string\",\"db.mongodb.collection\":\"string\",\"db.name\":\"string\",\"db.namespace\":\"string\",\"db.operation\":\"string\",\"db.operation.batch.size\":\"integer\",\"db.operation.name\":\"string\",\"db.params\":\"string\",\"db.query.parameter.<key>\":\"string\",\"db.query.summary\":\"string\",\"db.query.text\":\"string\",\"db.redis.connection\":\"string\",\"db.redis.key\":\"string\",\"db.redis.parameters\":\"string[]\",\"db.response.status_code\":\"string\",\"db.sql.bindings\":\"string[]\",\"db.statement\":\"string\",\"db.stored_procedure.name\":\"string\",\"db.system\":\"string\",\"db.system.name\":\"string\",\"db.user\":\"string\",deviceMemory:\"string\",\"device.archs\":\"string[]\",\"device.battery_level\":\"double\",\"device.battery_temperature\":\"double\",\"device.boot_time\":\"string\",\"device.brand\":\"string\",\"device.charging\":\"boolean\",\"device.chipset\":\"string\",\"device.class\":\"string\",\"device.connection_type\":\"string\",\"device.cpu_description\":\"string\",\"device.external_free_storage\":\"integer\",\"device.external_storage_size\":\"integer\",\"device.family\":\"string\",\"device.free_memory\":\"integer\",\"device.free_storage\":\"integer\",\"device.id\":\"string\",\"device.locale\":\"string\",\"device.low_memory\":\"boolean\",\"device.low_power_mode\":\"boolean\",\"device.manufacturer\":\"string\",\"device.memory.estimated_capacity\":\"integer\",\"device.memory_size\":\"integer\",\"device.model\":\"string\",\"device.model_id\":\"string\",\"device.name\":\"string\",\"device.online\":\"boolean\",\"device.orientation\":\"string\",\"device.processor_count\":\"integer\",\"device.processor_frequency\":\"double\",\"device.screen_density\":\"double\",\"device.screen_dpi\":\"integer\",\"device.screen_height_pixels\":\"integer\",\"device.screen_width_pixels\":\"integer\",\"device.simulator\":\"boolean\",\"device.storage_size\":\"integer\",\"device.thermal_state\":\"string\",\"device.timezone\":\"string\",\"device.usable_memory\":\"integer\",dist:\"string\",\"django.function_name\":\"string\",\"django.middleware_name\":\"string\",effectiveConnectionType:\"string\",environment:\"string\",\"error.type\":\"string\",\"event.id\":\"integer\",\"event.name\":\"string\",\"exception.escaped\":\"boolean\",\"exception.message\":\"string\",\"exception.stacktrace\":\"string\",\"exception.type\":\"string\",\"faas.coldstart\":\"boolean\",\"faas.cron\":\"string\",\"faas.duration_in_ms\":\"integer\",\"faas.entry_point\":\"string\",\"faas.execution\":\"string\",\"faas.id\":\"string\",\"faas.identity\":\"string\",\"faas.invocation_id\":\"string\",\"faas.invoked_name\":\"string\",\"faas.invoked_provider\":\"string\",\"faas.invoked_region\":\"string\",\"faas.name\":\"string\",\"faas.time\":\"string\",\"faas.trigger\":\"string\",\"faas.version\":\"string\",fcp:\"double\",\"file.path\":\"string\",\"file.size\":\"integer\",\"flag.evaluation.<key>\":\"boolean\",fp:\"double\",\"frames.delay\":\"integer\",\"frames.frozen\":\"integer\",frames_frozen_rate:\"double\",\"frames.slow\":\"integer\",frames_slow_rate:\"double\",\"frames.total\":\"integer\",fs_error:\"string\",\"gcp.function.context.event_id\":\"string\",\"gcp.function.context.event_type\":\"string\",\"gcp.function.context.id\":\"string\",\"gcp.function.context.resource\":\"string\",\"gcp.function.context.source\":\"string\",\"gcp.function.context.specversion\":\"string\",\"gcp.function.context.time\":\"string\",\"gcp.function.context.timestamp\":\"string\",\"gcp.function.context.type\":\"string\",\"gcp.project.id\":\"string\",gcp_region:\"string\",\"gen_ai.agent.name\":\"string\",\"gen_ai.context.utilization\":\"double\",\"gen_ai.context.window_size\":\"integer\",\"gen_ai.conversation.id\":\"string\",\"gen_ai.cost.cache_creation.input_tokens\":\"double\",\"gen_ai.cost.cache_read.input_tokens\":\"double\",\"gen_ai.cost.input_tokens\":\"double\",\"gen_ai.cost.output_tokens\":\"double\",\"gen_ai.cost.reasoning.output_tokens\":\"double\",\"gen_ai.cost.total_tokens\":\"double\",\"gen_ai.embeddings.input\":\"string\",\"gen_ai.function_id\":\"string\",\"gen_ai.input.messages\":\"string\",\"gen_ai.operation.name\":\"string\",\"gen_ai.operation.type\":\"string\",\"gen_ai.output.messages\":\"string\",\"gen_ai.pipeline.name\":\"string\",\"gen_ai.prompt\":\"string\",\"gen_ai.prompt.name\":\"string\",\"gen_ai.provider.name\":\"string\",\"gen_ai.request.available_tools\":\"string\",\"gen_ai.request.frequency_penalty\":\"double\",\"gen_ai.request.max_tokens\":\"integer\",\"gen_ai.request.messages\":\"string\",\"gen_ai.request.model\":\"string\",\"gen_ai.request.presence_penalty\":\"double\",\"gen_ai.request.reasoning.level\":\"string\",\"gen_ai.request.schema\":\"string\",\"gen_ai.request.seed\":\"string\",\"gen_ai.request.stop_sequences\":\"string[]\",\"gen_ai.request.temperature\":\"double\",\"gen_ai.request.top_k\":\"integer\",\"gen_ai.request.top_p\":\"double\",\"gen_ai.response.finish_reason\":\"string\",\"gen_ai.response.finish_reasons\":\"string\",\"gen_ai.response.id\":\"string\",\"gen_ai.response.model\":\"string\",\"gen_ai.response.object\":\"string\",\"gen_ai.response.streaming\":\"boolean\",\"gen_ai.response.text\":\"string\",\"gen_ai.response.time_to_first_chunk\":\"double\",\"gen_ai.response.time_to_first_token\":\"double\",\"gen_ai.response.tokens_per_second\":\"double\",\"gen_ai.response.tool_calls\":\"string\",\"gen_ai.system\":\"string\",\"gen_ai.system_instructions\":\"string\",\"gen_ai.system.message\":\"string\",\"gen_ai.tool.call.arguments\":\"string\",\"gen_ai.tool.call.result\":\"string\",\"gen_ai.tool.definitions\":\"string\",\"gen_ai.tool.description\":\"string\",\"gen_ai.tool.input\":\"string\",\"gen_ai.tool.message\":\"string\",\"gen_ai.tool.name\":\"string\",\"gen_ai.tool.output\":\"string\",\"gen_ai.tool.type\":\"string\",\"gen_ai.usage.cache_creation.input_tokens\":\"integer\",\"gen_ai.usage.cache_creation_input_tokens\":\"integer\",\"gen_ai.usage.cache_read.input_tokens\":\"integer\",\"gen_ai.usage.cache_read_input_tokens\":\"integer\",\"gen_ai.usage.completion_tokens\":\"integer\",\"gen_ai.usage.input_tokens\":\"integer\",\"gen_ai.usage.input_tokens.cached\":\"integer\",\"gen_ai.usage.input_tokens.cache_write\":\"integer\",\"gen_ai.usage.output_tokens\":\"integer\",\"gen_ai.usage.output_tokens.reasoning\":\"integer\",\"gen_ai.usage.prompt_tokens\":\"integer\",\"gen_ai.usage.reasoning.output_tokens\":\"integer\",\"gen_ai.usage.total_tokens\":\"integer\",\"graphql.document\":\"string\",\"graphql.operation.name\":\"string\",\"graphql.operation.type\":\"string\",\"graphql.processing.type\":\"string\",\"graphql.source\":\"string\",\"grpc.error.bad_request.field_violations\":\"string[]\",\"grpc.error.debug_info.detail\":\"string\",\"grpc.error.debug_info.stack_entries\":\"string[]\",\"grpc.error.error_info.domain\":\"string\",\"grpc.error.error_info.metadata.<key>\":\"string\",\"grpc.error.error_info.reason\":\"string\",\"grpc.error.precondition_failure.violations\":\"string[]\",\"grpc.error.quota_failure.violations\":\"string[]\",\"grpc.error.resource_info.description\":\"string\",\"grpc.error.resource_info.owner\":\"string\",\"grpc.error.resource_info.resource_name\":\"string\",\"grpc.error.resource_info.resource_type\":\"string\",\"grpc.error.retry_info.retry_delay_ms\":\"integer\",hardwareConcurrency:\"string\",\"http.client_ip\":\"string\",\"http.decoded_response_content_length\":\"integer\",\"http.flavor\":\"string\",\"http.fragment\":\"string\",\"http.host\":\"string\",\"http.method\":\"string\",\"http.query\":\"string\",\"http.request.body.data\":\"string\",\"http.request.body.decoded_size\":\"integer\",\"http.request.body.size\":\"integer\",\"http.request.connection_end\":\"double\",\"http.request.connect_start\":\"double\",\"http.request_content_length\":\"integer\",\"http.request_content_length_uncompressed\":\"integer\",\"http.request.domain_lookup_end\":\"double\",\"http.request.domain_lookup_start\":\"double\",\"http.request.fetch_start\":\"double\",\"http.request.header.<key>\":\"string[]\",\"http.request.method\":\"string\",\"http.request_method\":\"string\",\"http.request.redirect_end\":\"double\",\"http.request.redirect_start\":\"double\",\"http.request.request_start\":\"double\",\"http.request.resend_count\":\"integer\",\"http.request.response_end\":\"double\",\"http.request.response_start\":\"double\",\"http.request.same_origin\":\"boolean\",\"http.request.secure_connection_start\":\"double\",\"http.request.time_to_first_byte\":\"double\",\"http.request.worker_start\":\"double\",\"http.response.body.decoded_size\":\"integer\",\"http.response.body.size\":\"integer\",\"http.response_content_length\":\"integer\",\"http.response_content_length_uncompressed\":\"integer\",\"http.response.header.content-length\":\"string\",\"http.response.header.<key>\":\"string[]\",\"http.response.size\":\"integer\",\"http.response.status_code\":\"integer\",\"http.response.status_text\":\"string\",\"http.response_transfer_size\":\"integer\",\"http.route\":\"string\",\"http.scheme\":\"string\",\"http.server_name\":\"string\",\"http.server.request.time_in_queue\":\"double\",\"http.status_code\":\"integer\",\"http.status_text\":\"string\",\"http.target\":\"string\",\"http.url\":\"string\",\"http.user_agent\":\"string\",id:\"string\",inp:\"double\",\"jsonrpc.protocol.version\":\"string\",\"jsonrpc.request.id\":\"string\",\"jvm.gc.action\":\"string\",\"jvm.gc.name\":\"string\",\"jvm.memory.pool.name\":\"string\",\"jvm.memory.type\":\"string\",\"jvm.thread.daemon\":\"boolean\",\"jvm.thread.state\":\"string\",\"koa.name\":\"string\",\"koa.type\":\"string\",\"langchain.chain.name\":\"string\",lcp:\"double\",\"lcp.element\":\"string\",\"lcp.id\":\"string\",\"lcp.loadTime\":\"integer\",\"lcp.renderTime\":\"integer\",\"lcp.size\":\"integer\",\"lcp.url\":\"string\",\"litestar.middleware_name\":\"string\",\"logger.name\":\"string\",\"mcp.cancelled.reason\":\"string\",\"mcp.cancelled.request_id\":\"string\",\"mcp.client.name\":\"string\",\"mcp.client.title\":\"string\",\"mcp.client.version\":\"string\",\"mcp.lifecycle.phase\":\"string\",\"mcp.logging.data_type\":\"string\",\"mcp.logging.level\":\"string\",\"mcp.logging.logger\":\"string\",\"mcp.logging.message\":\"string\",\"mcp.method.name\":\"string\",\"mcp.progress.current\":\"integer\",\"mcp.progress.message\":\"string\",\"mcp.progress.percentage\":\"double\",\"mcp.progress.token\":\"string\",\"mcp.progress.total\":\"integer\",\"mcp.prompt.name\":\"string\",\"mcp.prompt.result.description\":\"string\",\"mcp.prompt.result.message_content\":\"string\",\"mcp.prompt.result.message_count\":\"integer\",\"mcp.prompt.result.message_role\":\"string\",\"mcp.protocol.ready\":\"integer\",\"mcp.protocol.version\":\"string\",\"mcp.request.argument.<key>\":\"string\",\"mcp.request.argument.name\":\"string\",\"mcp.request.argument.uri\":\"string\",\"mcp.request.id\":\"string\",\"mcp.resource.protocol\":\"string\",\"mcp.resource.uri\":\"string\",\"mcp.server.name\":\"string\",\"mcp.server.title\":\"string\",\"mcp.server.version\":\"string\",\"mcp.session.id\":\"string\",\"mcp.tool.name\":\"string\",\"mcp.tool.result.content\":\"string\",\"mcp.tool.result.content_count\":\"integer\",\"mcp.tool.result.is_error\":\"boolean\",\"mcp.transport\":\"string\",\"mdc.<key>\":\"string\",\"messaging.batch.message_count\":\"integer\",\"messaging.conversation_id\":\"string\",\"messaging.destination\":\"string\",\"messaging.destination.connection\":\"string\",\"messaging.destination_kind\":\"string\",\"messaging.destination.name\":\"string\",\"messaging.destination.partition.id\":\"string\",\"messaging.kafka.message.key\":\"string\",\"messaging.kafka.message.tombstone\":\"boolean\",\"messaging.kafka.offset\":\"integer\",\"messaging.message.body.size\":\"integer\",\"messaging.message.conversation_id\":\"string\",\"messaging.message.envelope.size\":\"integer\",\"messaging.message.id\":\"string\",\"messaging.message_id\":\"string\",\"messaging.message.receive.latency\":\"integer\",\"messaging.message.retry.count\":\"integer\",\"messaging.operation\":\"string\",\"messaging.operation.name\":\"string\",\"messaging.operation.type\":\"string\",\"messaging.protocol\":\"string\",\"messaging.protocol_version\":\"string\",\"messaging.rabbitmq.destination.routing_key\":\"string\",\"messaging.rabbitmq.routing_key\":\"string\",\"messaging.system\":\"string\",\"messaging.url\":\"string\",method:\"string\",\"middleware.name\":\"string\",\"navigation.origin\":\"string\",\"navigation.route.id\":\"string\",\"navigation.type\":\"string\",\"nel.elapsed_time\":\"integer\",\"nel.phase\":\"string\",\"nel.referrer\":\"string\",\"nel.sampling_function\":\"double\",\"nel.type\":\"string\",\"network.connection.effective_type\":\"string\",\"network.connection.rtt\":\"integer\",\"network.connection.type\":\"string\",\"network.local.address\":\"string\",\"network.local.port\":\"integer\",\"network.peer.address\":\"string\",\"network.peer.port\":\"integer\",\"network.protocol.name\":\"string\",\"network.protocol.version\":\"string\",\"network.transport\":\"string\",\"network.type\":\"string\",\"net.host.ip\":\"string\",\"net.host.name\":\"string\",\"net.host.port\":\"integer\",\"net.peer.ip\":\"string\",\"net.peer.name\":\"string\",\"net.peer.port\":\"integer\",\"net.protocol.name\":\"string\",\"net.protocol.version\":\"string\",\"net.sock.family\":\"string\",\"net.sock.host.addr\":\"string\",\"net.sock.host.port\":\"integer\",\"net.sock.peer.addr\":\"string\",\"net.sock.peer.name\":\"string\",\"net.sock.peer.port\":\"integer\",\"net.transport\":\"string\",\"os.build\":\"string\",\"os.build_id\":\"string\",\"os.description\":\"string\",\"os.kernel_version\":\"string\",\"os.name\":\"string\",\"os.raw_description\":\"string\",\"os.rooted\":\"boolean\",\"os.theme\":\"string\",\"os.type\":\"string\",\"os.version\":\"string\",\"otel.kind\":\"string\",\"otel.scope.name\":\"string\",\"otel.scope.version\":\"string\",\"otel.status_code\":\"string\",\"otel.status_description\":\"string\",\"params.<key>\":\"string\",\"performance.activationStart\":\"double\",\"performance.timeOrigin\":\"double\",port:\"integer\",previous_route:\"string\",\"process.command_args\":\"string[]\",\"process.executable.name\":\"string\",\"process.pid\":\"integer\",\"process.runtime.description\":\"string\",\"process.runtime.engine.name\":\"string\",\"process.runtime.engine.version\":\"string\",\"process.runtime.name\":\"string\",\"process.runtime.version\":\"string\",profile_id:\"string\",query:\"string\",\"query.<key>\":\"string\",\"react_native.architecture\":\"string\",\"react_native.module.call.count\":\"integer\",\"react_native.module.call.distinct_count\":\"integer\",\"react_native.module.duration.max\":\"double\",\"react_native.module.duration.total\":\"double\",\"react_native.module.error.count\":\"integer\",\"react_native.module.kind\":\"string\",\"react_native.module.method\":\"string\",\"react_native.module.name\":\"string\",\"react_native.module.top.duration\":\"double\",\"react_native.module.top.name\":\"string\",\"react.version\":\"string\",\"redis.command\":\"string\",\"redis.key\":\"string\",release:\"string\",\"remix.action_form_data.<key>\":\"string\",replayId:\"string\",replay_id:\"string\",\"resource.deployment.environment\":\"string\",\"resource.deployment.environment.name\":\"string\",\"resource.render_blocking_status\":\"string\",route:\"string\",\"router.navigation.origin\":\"string\",\"router.navigation.route.id\":\"string\",\"router.navigation.type\":\"string\",\"rpc.grpc.status_code\":\"integer\",\"rpc.method\":\"string\",\"rpc.response.status_code\":\"string\",\"rpc.service\":\"string\",\"rpc.system\":\"string\",\"rpc.system.name\":\"string\",\"runtime.build\":\"string\",\"runtime.name\":\"string\",\"runtime.raw_description\":\"string\",\"runtime.version\":\"string\",\"score.<key>\":\"double\",\"score.ratio.<key>\":\"double\",\"score.total\":\"double\",\"score.weight.<key>\":\"double\",\"sentry.action\":\"string\",\"sentry.browser.name\":\"string\",\"sentry.browser.version\":\"string\",\"sentry.cancellation_reason\":\"string\",\"sentry.category\":\"string\",\"sentry.client_sample_rate\":\"double\",\"sentry.description\":\"string\",\"sentry.dist\":\"string\",\"sentry.domain\":\"string\",\"sentry.dsc.environment\":\"string\",\"sentry.dsc.project_id\":\"string\",\"sentry.dsc.public_key\":\"string\",\"sentry.dsc.release\":\"string\",\"sentry.dsc.sampled\":\"boolean\",\"sentry.dsc.sample_rate\":\"string\",\"sentry.dsc.trace_id\":\"string\",\"sentry.dsc.transaction\":\"string\",\"sentry.environment\":\"string\",\"sentry.event.serialized_breadcrumbs\":\"string\",\"sentry.event.serialized_contexts\":\"string\",\"sentry.event.serialized_extra\":\"string\",\"sentry.event.serialized_meta\":\"string\",\"sentry.exclusive_time\":\"double\",\"sentry.frames.frozen\":\"integer\",\"sentry.frames.slow\":\"integer\",\"sentry.frames.total\":\"integer\",\"sentry.graphql.operation\":\"string\",\"sentry.group\":\"string\",\"sentry.http.prefetch\":\"boolean\",\"sentry.idle_span_finish_reason\":\"string\",\"sentry.is_localhost\":\"boolean\",\"sentry.is_remote\":\"boolean\",\"sentry.kind\":\"string\",\"sentry.main_thread\":\"boolean\",\"sentry.message.parameter.<key>\":\"string\",\"sentry.message.template\":\"string\",\"sentry.metric.source\":\"string\",\"sentry.mobile\":\"boolean\",\"sentry.module.<key>\":\"string\",\"sentry.nextjs.ssr.function.route\":\"string\",\"sentry.nextjs.ssr.function.type\":\"string\",\"sentry.normalized_db_query\":\"string\",\"sentry.normalized_db_query.hash\":\"string\",\"sentry.normalized_description\":\"string\",\"sentry.observed_timestamp_nanos\":\"string\",\"sentry.op\":\"string\",\"sentry.origin\":\"string\",\"sentry.pageload.span_id\":\"string\",\"sentry.platform\":\"string\",\"sentry.profiler_id\":\"string\",\"sentry.profile_id\":\"string\",\"sentry.relay.ingress\":\"string\",\"sentry.relay.pipeline\":\"string\",\"sentry.release\":\"string\",\"sentry.replay_id\":\"string\",\"sentry.replay_is_buffering\":\"boolean\",\"sentry.report_event\":\"string\",\"sentry.sdk.integrations\":\"string[]\",\"sentry.sdk.name\":\"string\",\"sentry.sdk.version\":\"string\",\"sentry.segment.id\":\"string\",\"sentry.segment_id\":\"string\",\"sentry.segment.name\":\"string\",\"sentry.segment.name.source\":\"string\",\"sentry.server_sample_rate\":\"double\",\"sentry.source\":\"string\",\"sentry.span.source\":\"string\",\"sentry.status\":\"string\",\"sentry.status_code\":\"integer\",\"sentry.status.message\":\"string\",\"sentry.sveltekit.navigation.from\":\"string\",\"sentry.sveltekit.navigation.to\":\"string\",\"sentry.sveltekit.navigation.type\":\"string\",\"sentry.thread.id\":\"integer\",\"sentry.timestamp.sequence\":\"integer\",\"sentry.trace_lifecycle\":\"string\",\"sentry.trace.parent_span_id\":\"string\",\"sentry.trace.status\":\"string\",\"sentry.transaction\":\"string\",\"sentry.user.email\":\"string\",\"sentry.user.geo.city\":\"string\",\"sentry.user.geo.country_code\":\"string\",\"sentry.user.geo.region\":\"string\",\"sentry.user.geo.subdivision\":\"string\",\"sentry.user.id\":\"string\",\"sentry.user.ip\":\"string\",\"sentry.user.username\":\"string\",\"server.address\":\"string\",server_name:\"string\",\"server.port\":\"integer\",\"service.name\":\"string\",\"service.version\":\"string\",\"session.id\":\"string\",stall_percentage:\"double\",stall_total_time:\"double\",\"starlette.middleware_name\":\"string\",\"starlite.middleware_name\":\"string\",\"state.type\":\"string\",\"subprocess.pid\":\"integer\",\"sveltekit.load.environment\":\"string\",\"sveltekit.load.node_id\":\"string\",\"sveltekit.load.node_type\":\"string\",\"sveltekit.tracing.original_name\":\"string\",\"thread.id\":\"integer\",\"thread.name\":\"string\",\"timber.tag\":\"string\",time_to_full_display:\"double\",time_to_initial_display:\"double\",transaction:\"string\",\"trpc.procedure_path\":\"string\",\"trpc.procedure_type\":\"string\",ttfb:\"double\",\"ttfb.requestTime\":\"double\",\"turbo_modules.total_call_count\":\"integer\",\"turbo_modules.total_duration_ms\":\"double\",\"turbo_modules.total_error_count\":\"integer\",\"turbo_modules.unique_methods\":\"integer\",\"turbo_module.arch\":\"string\",\"turbo_module.method\":\"string\",\"turbo_module.name\":\"string\",\"turbo_module.top_module\":\"string\",\"turbo_module.top_module_duration_ms\":\"double\",\"turbo_module.total_call_count\":\"integer\",\"turbo_module.total_duration_ms\":\"double\",\"turbo_module.total_error_count\":\"integer\",\"turbo_module.unique_methods\":\"integer\",type:\"string\",\"ui.component_name\":\"string\",\"ui.contributes_to_ttfd\":\"boolean\",\"ui.contributes_to_ttid\":\"boolean\",\"ui.element.height\":\"integer\",\"ui.element.id\":\"string\",\"ui.element.identifier\":\"string\",\"ui.element.load_time\":\"double\",\"ui.element.paint_type\":\"string\",\"ui.element.render_time\":\"double\",\"ui.element.type\":\"string\",\"ui.element.url\":\"string\",\"ui.element.width\":\"integer\",url:\"string\",\"url.domain\":\"string\",\"url.fragment\":\"string\",\"url.full\":\"string\",\"url.path\":\"string\",\"url.path.parameter.<key>\":\"string\",\"url.path.params.<key>\":\"string\",\"url.port\":\"integer\",\"url.query\":\"string\",\"url.same_origin\":\"boolean\",\"url.scheme\":\"string\",\"url.template\":\"string\",\"user_agent.original\":\"string\",\"user.email\":\"string\",\"user.full_name\":\"string\",\"user.geo.city\":\"string\",\"user.geo.country_code\":\"string\",\"user.geo.region\":\"string\",\"user.geo.subdivision\":\"string\",\"user.hash\":\"string\",\"user.id\":\"string\",\"user.ip_address\":\"string\",\"user.name\":\"string\",\"user.roles\":\"string[]\",\"vercel.branch\":\"string\",\"vercel.build_id\":\"string\",\"vercel.deployment_id\":\"string\",\"vercel.destination\":\"string\",\"vercel.edge_type\":\"string\",\"vercel.entrypoint\":\"string\",\"vercel.execution_region\":\"string\",\"vercel.id\":\"string\",\"vercel.ja3_digest\":\"string\",\"vercel.ja4_digest\":\"string\",\"vercel.log_type\":\"string\",\"vercel.path\":\"string\",\"vercel.project_id\":\"string\",\"vercel.project_name\":\"string\",\"vercel.proxy.cache_id\":\"string\",\"vercel.proxy.client_ip\":\"string\",\"vercel.proxy.host\":\"string\",\"vercel.proxy.lambda_region\":\"string\",\"vercel.proxy.method\":\"string\",\"vercel.proxy.path\":\"string\",\"vercel.proxy.path_type\":\"string\",\"vercel.proxy.path_type_variant\":\"string\",\"vercel.proxy.referer\":\"string\",\"vercel.proxy.region\":\"string\",\"vercel.proxy.response_byte_size\":\"integer\",\"vercel.proxy.scheme\":\"string\",\"vercel.proxy.status_code\":\"integer\",\"vercel.proxy.timestamp\":\"integer\",\"vercel.proxy.user_agent\":\"string[]\",\"vercel.proxy.vercel_cache\":\"string\",\"vercel.proxy.vercel_id\":\"string\",\"vercel.proxy.waf_action\":\"string\",\"vercel.proxy.waf_rule_id\":\"string\",\"vercel.request_id\":\"string\",\"vercel.source\":\"string\",\"vercel.status_code\":\"integer\"},Tm={address:{brief:\"The destination hostname or IP address for a TCP connection.\",type:\"string\",keys:[\"server.address\",\"address\",\"http.server_name\",\"net.host.name\",\"server_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"example.com\",examples:[\"example.com\"],deprecation:{replacement:\"server.address\",reason:\"Old namespace-less attribute, to be replaced with server.address for span-first future\",status:\"backfill\"},aliases:[\"server.address\",\"http.server_name\",\"net.host.name\",\"http.host\",\"server_name\",\"net.peer.name\"],changelog:[{version:\"0.24.0\",prs:[647],description:\"Added server_name as an alias\"},{version:\"0.21.0\",prs:[588,602],description:\"Added net.peer.name as an alias\"},{version:\"0.19.0\",prs:[534],description:\"Added address attribute\"}]},\"ai.citations\":{brief:\"References or sources cited by the AI model in its response.\",type:\"string[]\",keys:[\"ai.citations\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"Citation 1\",\"Citation 2\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.completion_tokens.used\":{brief:\"The number of tokens used to respond to the message.\",type:\"integer\",keys:[\"gen_ai.usage.output_tokens\",\"ai.completion_tokens.used\",\"gen_ai.usage.completion_tokens\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:10,deprecation:{replacement:\"gen_ai.usage.output_tokens\",status:\"backfill\"},aliases:[\"gen_ai.usage.output_tokens\",\"gen_ai.usage.completion_tokens\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57,61]},{version:\"0.0.0\"}]},\"ai.documents\":{brief:\"Documents or content chunks used as context for the AI model.\",type:\"string[]\",keys:[\"ai.documents\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"document1.txt\",\"document2.pdf\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.finish_reason\":{brief:\"The reason why the model stopped generating.\",type:\"string\",keys:[\"gen_ai.response.finish_reasons\",\"ai.finish_reason\",\"gen_ai.response.finish_reason\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"COMPLETE\",deprecation:{replacement:\"gen_ai.response.finish_reasons\",status:\"backfill\"},aliases:[\"gen_ai.response.finish_reasons\"],changelog:[{version:\"0.1.0\",prs:[55,57,61,108,127]}]},\"ai.frequency_penalty\":{brief:\"Used to reduce repetitiveness of generated tokens. The higher the value, the stronger a penalty is applied to previously present tokens, proportional to how many times they have already appeared in the prompt or prior generation.\",type:\"double\",keys:[\"gen_ai.request.frequency_penalty\",\"ai.frequency_penalty\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.5,deprecation:{replacement:\"gen_ai.request.frequency_penalty\",status:\"backfill\"},aliases:[\"gen_ai.request.frequency_penalty\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},\"ai.function_call\":{brief:\"For an AI model call, the function that was called. This is deprecated for OpenAI, and replaced by tool_calls\",type:\"string\",keys:[\"gen_ai.tool.name\",\"ai.function_call\",\"mcp.tool.name\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"function_name\",deprecation:{replacement:\"gen_ai.tool.name\",status:\"backfill\"},aliases:[\"gen_ai.tool.name\",\"mcp.tool.name\"],changelog:[{version:\"0.1.0\",prs:[55,57,61,108]}]},\"ai.generation_id\":{brief:\"Unique identifier for the completion.\",type:\"string\",keys:[\"gen_ai.response.id\",\"ai.generation_id\",\"ai.response.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"gen_123abc\",deprecation:{replacement:\"gen_ai.response.id\",status:\"backfill\"},aliases:[\"gen_ai.response.id\",\"ai.response.id\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.response.id as an alias\"},{version:\"0.1.0\",prs:[55,57,61,108,127]}]},\"ai.input_messages\":{brief:\"The input messages sent to the model\",type:\"string\",keys:[\"gen_ai.input.messages\",\"ai.input_messages\",\"ai.prompt\",\"ai.prompt.messages\",\"ai.texts\",\"gen_ai.prompt\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'[{\"role\": \"user\", \"message\": \"hello\"}]',deprecation:{replacement:\"gen_ai.input.messages\",status:\"backfill\"},aliases:[\"gen_ai.request.messages\"],changelog:[{version:\"0.1.0\",prs:[65,119]},{version:\"0.0.0\"}]},\"ai.is_search_required\":{brief:\"Boolean indicating if the model needs to perform a search.\",type:\"boolean\",keys:[\"ai.is_search_required\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!1,deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.metadata\":{brief:\"Extra metadata passed to an AI pipeline step.\",type:\"string\",keys:[\"ai.metadata\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'{\"user_id\": 123, \"session_id\": \"abc123\"}',deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55,127]}]},\"ai.model.id\":{brief:\"The id of the model used by the Vercel AI SDK.\",type:\"string\",keys:[\"gen_ai.request.model\",\"ai.model.id\",\"ai.model_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"gpt-4o\",examples:[\"gpt-4o\"],deprecation:{replacement:\"gen_ai.request.model\",reason:\"This attribute is being deprecated in favor of gen_ai.request.model.\",status:\"backfill\"},aliases:[\"gen_ai.request.model\",\"ai.model_id\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.model.id attribute\"}]},\"ai.model_id\":{brief:\"The vendor-specific ID of the model used.\",type:\"string\",keys:[\"gen_ai.request.model\",\"ai.model.id\",\"ai.model_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"gpt-4\",deprecation:{replacement:\"gen_ai.request.model\",status:\"backfill\"},aliases:[\"gen_ai.request.model\",\"ai.model.id\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.model.id as an alias\"},{version:\"0.1.0\",prs:[57,61,127]},{version:\"0.0.0\"}]},\"ai.model.provider\":{brief:\"The provider of the model.\",type:\"string\",keys:[\"gen_ai.provider.name\",\"ai.model.provider\",\"gen_ai.system\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"openai\",deprecation:{replacement:\"gen_ai.provider.name\",status:\"backfill\"},aliases:[\"gen_ai.provider.name\",\"gen_ai.system\"],changelog:[{version:\"0.4.0\",prs:[253]},{version:\"0.1.0\",prs:[57,61,108,127]}]},\"ai.pipeline.name\":{brief:\"The name of the AI pipeline.\",type:\"string\",keys:[\"gen_ai.pipeline.name\",\"ai.pipeline.name\",\"langchain.chain.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Autofix Pipeline\",deprecation:{replacement:\"gen_ai.pipeline.name\",status:\"backfill\"},aliases:[\"gen_ai.pipeline.name\",\"langchain.chain.name\"],changelog:[{version:\"0.22.0\",prs:[599],description:\"Added langchain.chain.name as an alias\"},{version:\"0.1.0\",prs:[53,76,108,127]}]},\"ai.preamble\":{brief:\"For an AI model call, the preamble parameter. Preambles are a part of the prompt used to adjust the model's overall behavior and conversation style.\",type:\"string\",keys:[\"gen_ai.system_instructions\",\"ai.preamble\",\"gen_ai.system.message\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"You are now a clown.\",deprecation:{replacement:\"gen_ai.system_instructions\",status:\"backfill\"},aliases:[\"gen_ai.system_instructions\"],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.presence_penalty\":{brief:\"Used to reduce repetitiveness of generated tokens. Similar to frequency_penalty, except that this penalty is applied equally to all tokens that have already appeared, regardless of their exact frequencies.\",type:\"double\",keys:[\"gen_ai.request.presence_penalty\",\"ai.presence_penalty\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.5,deprecation:{replacement:\"gen_ai.request.presence_penalty\",status:\"backfill\"},aliases:[\"gen_ai.request.presence_penalty\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},\"ai.prompt\":{brief:\"The prompt passed to the Vercel AI SDK, as a stringified object.\",type:\"string\",keys:[\"gen_ai.input.messages\",\"ai.input_messages\",\"ai.prompt\",\"ai.prompt.messages\",\"ai.texts\",\"gen_ai.prompt\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'{\"prompt\":\"What is the weather in Paris?\"}',examples:['{\"prompt\":\"What is the weather in Paris?\"}'],deprecation:{replacement:\"gen_ai.input.messages\",reason:\"This attribute is being deprecated in favor of gen_ai.input.messages.\",status:\"backfill\"},aliases:[\"gen_ai.input.messages\",\"ai.texts\",\"ai.prompt.messages\",\"gen_ai.prompt\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.prompt attribute\"}]},\"ai.prompt.messages\":{brief:\"The input messages sent to the AI model.\",type:\"string\",keys:[\"gen_ai.input.messages\",\"ai.input_messages\",\"ai.prompt\",\"ai.prompt.messages\",\"ai.texts\",\"gen_ai.prompt\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'[{\"role\": \"user\", \"message\": \"hello\"}]',deprecation:{replacement:\"gen_ai.input.messages\",status:\"backfill\"},aliases:[\"gen_ai.input.messages\",\"ai.texts\",\"gen_ai.prompt\",\"ai.prompt\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.prompt as an alias\"},{version:\"0.19.0\",prs:[498],description:\"Added ai.prompt.messages attribute\"}]},\"ai.prompt_tokens.used\":{brief:\"The number of tokens used to process just the prompt.\",type:\"integer\",keys:[\"gen_ai.usage.input_tokens\",\"ai.prompt_tokens.used\",\"gen_ai.usage.prompt_tokens\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:20,deprecation:{replacement:\"gen_ai.usage.input_tokens\",status:\"backfill\"},aliases:[\"gen_ai.usage.prompt_tokens\",\"gen_ai.usage.input_tokens\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57,61]},{version:\"0.0.0\"}]},\"ai.prompt.tools\":{brief:\"The tools made available to the model, as an array of stringified tool definitions.\",type:\"string[]\",keys:[\"gen_ai.tool.definitions\",\"ai.prompt.tools\",\"ai.tools\",\"gen_ai.request.available_tools\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:['{\"type\":\"function\",\"name\":\"get_weather\"}'],examples:[['{\"type\":\"function\",\"name\":\"get_weather\"}']],deprecation:{replacement:\"gen_ai.tool.definitions\",reason:\"This attribute is being deprecated in favor of gen_ai.tool.definitions.\",status:\"backfill\"},changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.prompt.tools attribute\"}]},\"ai.raw_prompting\":{brief:\"When enabled, the user\\u2019s prompt will be sent to the model without any pre-processing.\",type:\"boolean\",keys:[\"ai.raw_prompting\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.responses\":{brief:\"The response messages sent back by the AI model.\",type:\"string[]\",keys:[\"gen_ai.output.messages\",\"ai.response.text\",\"ai.response.toolCalls\",\"ai.responses\",\"ai.tool_calls\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:[\"hello\",\"world\"],deprecation:{replacement:\"gen_ai.output.messages\",status:\"backfill\"},changelog:[{version:\"0.1.0\",prs:[65,127]},{version:\"0.0.0\"}]},\"ai.response_format\":{brief:\"For an AI model call, the format of the response\",type:\"string\",keys:[\"ai.response_format\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"json_object\",deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55,127]}]},\"ai.response.id\":{brief:\"The id of the response returned by the model.\",type:\"string\",keys:[\"gen_ai.response.id\",\"ai.generation_id\",\"ai.response.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"chatcmpl-BuKJgVSKAMTUYbBSjHTMUuNGKzOPY\",examples:[\"chatcmpl-BuKJgVSKAMTUYbBSjHTMUuNGKzOPY\"],deprecation:{replacement:\"gen_ai.response.id\",reason:\"This attribute is being deprecated in favor of gen_ai.response.id.\",status:\"backfill\"},aliases:[\"gen_ai.response.id\",\"ai.generation_id\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.response.id attribute\"}]},\"ai.response.model\":{brief:\"The id of the model that produced the response.\",type:\"string\",keys:[\"gen_ai.response.model\",\"ai.response.model\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"gpt-4o-2024-08-06\",examples:[\"gpt-4o-2024-08-06\"],deprecation:{replacement:\"gen_ai.response.model\",reason:\"This attribute is being deprecated in favor of gen_ai.response.model.\",status:\"backfill\"},aliases:[\"gen_ai.response.model\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.response.model attribute\"}]},\"ai.response.object\":{brief:\"The type of the object returned by the model.\",type:\"string\",keys:[\"ai.response.object\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"chat.completion\",examples:[\"chat.completion\"],deprecation:{reason:\"This attribute is deprecated. The Sentry conventions have no replacement for the raw Vercel AI response object type.\"},changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.response.object attribute\"}]},\"ai.response.text\":{brief:\"The text response from the AI model.\",type:\"string\",keys:[\"gen_ai.output.messages\",\"ai.response.text\",\"ai.response.toolCalls\",\"ai.responses\",\"ai.tool_calls\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"The weather in Paris is currently rainy.\",deprecation:{replacement:\"gen_ai.output.messages\",status:\"backfill\"},aliases:[\"gen_ai.output.messages\",\"ai.response.toolCalls\"],changelog:[{version:\"0.19.0\",prs:[498],description:\"Added ai.response.text attribute\"}]},\"ai.response.timestamp\":{brief:\"The ISO 8601 timestamp at which the response was produced.\",type:\"string\",keys:[\"ai.response.timestamp\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"2026-02-19T15:32:11.000Z\",examples:[\"2026-02-19T15:32:11.000Z\"],deprecation:{reason:\"This attribute is deprecated. The span start and end timestamps carry the same information.\"},changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.response.timestamp attribute\"}]},\"ai.response.toolCalls\":{brief:\"The tool calls in the AI model response.\",type:\"string\",keys:[\"gen_ai.output.messages\",\"ai.response.text\",\"ai.response.toolCalls\",\"ai.responses\",\"ai.tool_calls\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'[{\"name\": \"get_weather\", \"arguments\": {\"location\": \"Paris\"}}]',deprecation:{replacement:\"gen_ai.output.messages\",status:\"backfill\"},aliases:[\"gen_ai.output.messages\",\"ai.response.text\"],changelog:[{version:\"0.19.0\",prs:[498],description:\"Added ai.response.toolCalls attribute\"}]},\"ai.schema\":{brief:\"The stringified JSON schema the model output must conform to.\",type:\"string\",keys:[\"ai.schema\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\"}}}',examples:['{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\"}}}'],deprecation:{reason:\"This attribute is deprecated. The Sentry conventions have no replacement for the requested output schema.\"},changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.schema attribute\"}]},\"ai.search_queries\":{brief:\"Queries used to search for relevant context or documents.\",type:\"string[]\",keys:[\"ai.search_queries\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"climate change effects\",\"renewable energy\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.search_results\":{brief:\"Results returned from search queries for context.\",type:\"string[]\",keys:[\"ai.search_results\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"search_result_1, search_result_2\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.seed\":{brief:\"The seed, ideally models given the same seed and same other parameters will produce the exact same output.\",type:\"string\",keys:[\"gen_ai.request.seed\",\"ai.seed\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",deprecation:{replacement:\"gen_ai.request.seed\",status:\"backfill\"},aliases:[\"gen_ai.request.seed\"],changelog:[{version:\"0.1.0\",prs:[55,57,61,108,127]}]},\"ai.streaming\":{brief:\"Whether the request was streamed back.\",type:\"boolean\",keys:[\"gen_ai.response.streaming\",\"ai.streaming\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,deprecation:{replacement:\"gen_ai.response.streaming\",status:\"backfill\"},aliases:[\"gen_ai.response.streaming\"],changelog:[{version:\"0.1.0\",prs:[76,108]},{version:\"0.0.0\"}]},\"ai.tags\":{brief:\"Tags that describe an AI pipeline step.\",type:\"string\",keys:[\"ai.tags\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'{\"executed_function\": \"add_integers\"}',deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55,127]}]},\"ai.temperature\":{brief:\"For an AI model call, the temperature parameter. Temperature essentially means how random the output will be.\",type:\"double\",keys:[\"gen_ai.request.temperature\",\"ai.temperature\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.1,deprecation:{replacement:\"gen_ai.request.temperature\",status:\"backfill\"},aliases:[\"gen_ai.request.temperature\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},\"ai.texts\":{brief:\"Raw text inputs provided to the model.\",type:\"string[]\",keys:[\"gen_ai.input.messages\",\"ai.input_messages\",\"ai.prompt\",\"ai.prompt.messages\",\"ai.texts\",\"gen_ai.prompt\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"Hello, how are you?\",\"What is the capital of France?\"],deprecation:{replacement:\"gen_ai.input.messages\",status:\"backfill\"},aliases:[\"gen_ai.input.messages\",\"ai.prompt.messages\",\"gen_ai.prompt\",\"ai.prompt\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.prompt as an alias\"},{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"ai.toolCall.args\":{brief:\"The arguments of the tool call.\",type:\"string\",keys:[\"gen_ai.tool.call.arguments\",\"ai.toolCall.args\",\"gen_ai.tool.input\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'{\"location\": \"Paris\"}',deprecation:{replacement:\"gen_ai.tool.call.arguments\",status:\"backfill\"},aliases:[\"gen_ai.tool.call.arguments\",\"gen_ai.tool.input\"],changelog:[{version:\"0.19.0\",prs:[498],description:\"Added ai.toolCall.args attribute\"}]},\"ai.toolCall.result\":{brief:\"The result of the tool call.\",type:\"string\",keys:[\"gen_ai.tool.call.result\",\"ai.toolCall.result\",\"gen_ai.tool.message\",\"gen_ai.tool.output\",\"mcp.tool.result.content\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"rainy, 57\\xB0F\",deprecation:{replacement:\"gen_ai.tool.call.result\",status:\"backfill\"},aliases:[\"gen_ai.tool.call.result\",\"gen_ai.tool.output\",\"gen_ai.tool.message\",\"mcp.tool.result.content\"],changelog:[{version:\"0.19.0\",prs:[498],description:\"Added ai.toolCall.result attribute\"}]},\"ai.tools\":{brief:\"For an AI model call, the functions that are available\",type:\"string[]\",keys:[\"gen_ai.tool.definitions\",\"ai.prompt.tools\",\"ai.tools\",\"gen_ai.request.available_tools\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:[\"function_1\",\"function_2\"],deprecation:{replacement:\"gen_ai.tool.definitions\",status:\"backfill\"},changelog:[{version:\"0.1.0\",prs:[55,65,127]}]},\"ai.tool_calls\":{brief:\"For an AI model call, the tool calls that were made.\",type:\"string[]\",keys:[\"gen_ai.output.messages\",\"ai.response.text\",\"ai.response.toolCalls\",\"ai.responses\",\"ai.tool_calls\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"tool_call_1\",\"tool_call_2\"],deprecation:{replacement:\"gen_ai.output.messages\",status:\"backfill\"},changelog:[{version:\"0.1.0\",prs:[55,65]}]},\"ai.top_k\":{brief:\"Limits the model to only consider the K most likely next tokens, where K is an integer (e.g., top_k=20 means only the 20 highest probability tokens are considered).\",type:\"integer\",keys:[\"gen_ai.request.top_k\",\"ai.top_k\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:35,deprecation:{replacement:\"gen_ai.request.top_k\",status:\"backfill\"},aliases:[\"gen_ai.request.top_k\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},\"ai.top_p\":{brief:\"Limits the model to only consider tokens whose cumulative probability mass adds up to p, where p is a float between 0 and 1 (e.g., top_p=0.7 means only tokens that sum up to 70% of the probability mass are considered).\",type:\"double\",keys:[\"gen_ai.request.top_p\",\"ai.top_p\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.7,deprecation:{replacement:\"gen_ai.request.top_p\",status:\"backfill\"},aliases:[\"gen_ai.request.top_p\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[55,57,61,108]}]},\"ai.total_cost\":{brief:\"The total cost for the tokens used.\",type:\"double\",keys:[\"gen_ai.cost.total_tokens\",\"ai.total_cost\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12.34,deprecation:{replacement:\"gen_ai.cost.total_tokens\",status:\"backfill\"},aliases:[\"gen_ai.cost.total_tokens\"],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[53]}],searchAlias:{name:\"ai.total_cost\",type:\"currency\"}},\"ai.total_tokens.used\":{brief:\"The total number of tokens used to process the prompt.\",type:\"integer\",keys:[\"gen_ai.usage.total_tokens\",\"ai.total_tokens.used\",\"ai.usage.tokens\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:30,deprecation:{replacement:\"gen_ai.usage.total_tokens\",status:\"backfill\"},aliases:[\"gen_ai.usage.total_tokens\",\"ai.usage.tokens\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.usage.tokens as an alias\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57,61,108]},{version:\"0.0.0\"}]},\"ai.usage.tokens\":{brief:\"The total number of tokens used for the request and the response.\",type:\"integer\",keys:[\"gen_ai.usage.total_tokens\",\"ai.total_tokens.used\",\"ai.usage.tokens\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:150,examples:[150],deprecation:{replacement:\"gen_ai.usage.total_tokens\",reason:\"This attribute is being deprecated in favor of gen_ai.usage.total_tokens.\",status:\"backfill\"},aliases:[\"gen_ai.usage.total_tokens\",\"ai.total_tokens.used\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.usage.tokens attribute\"}]},\"ai.values\":{brief:\"The stringified values produced by a Vercel AI SDK object or array generation.\",type:\"string\",keys:[\"ai.values\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'[{\"city\":\"Paris\"}]',examples:['[{\"city\":\"Paris\"}]'],deprecation:{reason:\"This attribute is deprecated. Use gen_ai.output.messages for model output instead.\"},changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.values attribute\"}]},\"ai.warnings\":{brief:\"Warning messages generated during model execution.\",type:\"string[]\",keys:[\"ai.warnings\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"Token limit exceeded\"],deprecation:{},changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.1.0\",prs:[55]}]},\"angular.version\":{brief:\"The version of the Angular framework\",type:\"string\",keys:[\"angular.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"17.1.0\",changelog:[{version:\"0.7.0\",prs:[367],description:\"Added angular.version attribute\"}]},\"app.app_build\":{brief:\"Internal build identifier, as it appears on the platform.\",type:\"string\",keys:[\"app.build\",\"app.app_build\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1\",deprecation:{replacement:\"app.build\",reason:\"Deprecated in favor of app.build\",status:\"backfill\"},aliases:[\"app.build\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_build in favor of app.build\"}]},\"app.app_identifier\":{brief:\"Version-independent application identifier, often a dotted bundle ID.\",type:\"string\",keys:[\"app.identifier\",\"app.app_identifier\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"com.example.myapp\",deprecation:{replacement:\"app.identifier\",reason:\"Deprecated in favor of app.identifier\",status:\"backfill\"},aliases:[\"app.identifier\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_identifier in favor of app.identifier\"}]},\"app.app_name\":{brief:\"Human readable application name, as it appears on the platform.\",type:\"string\",keys:[\"app.name\",\"app.app_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"My App\",deprecation:{replacement:\"app.name\",reason:\"Deprecated in favor of app.name\",status:\"backfill\"},aliases:[\"app.name\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_name in favor of app.name\"}]},\"app.app_start_time\":{brief:\"Formatted UTC timestamp when the user started the application.\",type:\"string\",keys:[\"app.start_time\",\"app.app_start_time\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"2025-01-01T00:00:00.000Z\",deprecation:{replacement:\"app.start_time\",reason:\"Deprecated in favor of app.start_time\",status:\"backfill\"},aliases:[\"app.start_time\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_start_time in favor of app.start_time\"}]},\"app.app_version\":{brief:\"Human readable application version, as it appears on the platform.\",type:\"string\",keys:[\"app.version\",\"app.app_version\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1.0.0\",deprecation:{replacement:\"app.version\",reason:\"Deprecated in favor of app.version\",status:\"backfill\"},aliases:[\"app.version\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added and deprecated app.app_version in favor of app.version\"}]},\"app.build\":{brief:\"Internal build identifier, as it appears on the platform.\",type:\"string\",keys:[\"app.build\",\"app.app_build\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1\",aliases:[\"app.app_build\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.build attribute\"}]},\"app.identifier\":{brief:\"Version-independent application identifier, often a dotted bundle ID.\",type:\"string\",keys:[\"app.identifier\",\"app.app_identifier\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"com.example.myapp\",aliases:[\"app.app_identifier\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.identifier attribute\"}]},\"app.in_foreground\":{brief:\"Whether the application is currently in the foreground.\",type:\"boolean\",keys:[\"app.in_foreground\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.in_foreground attribute\"}]},\"app.name\":{brief:\"Human readable application name, as it appears on the platform.\",type:\"string\",keys:[\"app.name\",\"app.app_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"My App\",aliases:[\"app.app_name\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.name attribute\"}]},app_start_cold:{brief:\"The duration of a cold app start in milliseconds\",type:\"double\",keys:[\"app.vitals.start.cold.value\",\"app_start_cold\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.start.cold.value\",reason:\"Replaced by app.vitals.start.cold.value to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.start.cold.value\"],changelog:[{version:\"0.5.0\",prs:[323],description:\"Added and deprecated in favor of app.vitals.start.cold.value\"}]},\"app.start_time\":{brief:\"Formatted UTC timestamp when the user started the application.\",type:\"string\",keys:[\"app.start_time\",\"app.app_start_time\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"2025-01-01T00:00:00.000Z\",aliases:[\"app.app_start_time\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.start_time attribute\"}]},app_start_type:{brief:\"Mobile app start variant. Either cold or warm.\",type:\"string\",keys:[\"app.vitals.start.type\",\"app_start_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"cold\",deprecation:{replacement:\"app.vitals.start.type\",reason:\"Replaced by app.vitals.start.type to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.start.type\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.start.type\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},app_start_warm:{brief:\"The duration of a warm app start in milliseconds\",type:\"double\",keys:[\"app.vitals.start.warm.value\",\"app_start_warm\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.start.warm.value\",reason:\"Replaced by app.vitals.start.warm.value to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.start.warm.value\"],changelog:[{version:\"0.5.0\",prs:[323],description:\"Added and deprecated in favor of app.vitals.start.warm.value\"}]},\"app.version\":{brief:\"Human readable application version, as it appears on the platform.\",type:\"string\",keys:[\"app.version\",\"app.app_version\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1.0.0\",aliases:[\"app.app_version\"],changelog:[{version:\"0.5.0\",prs:[296],description:\"Added app.version attribute\"}]},\"app.vitals.frames.delay.value\":{brief:\"The sum of all delayed frame durations in seconds during the lifetime of the span. For more information see [frames delay](https://develop.sentry.dev/sdk/performance/frames-delay/).\",type:\"integer\",keys:[\"app.vitals.frames.delay.value\",\"frames.delay\",\"mobile.frames_delay\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:5,aliases:[\"frames.delay\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.delay.value to replace frames.delay\"}]},\"app.vitals.frames.frozen.count\":{brief:\"The number of frozen frames rendered during the lifetime of the span.\",type:\"integer\",keys:[\"app.vitals.frames.frozen.count\",\"frames.frozen\",\"mobile.frozen_frames\",\"sentry.frames.frozen\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:3,aliases:[\"frames.frozen\",\"sentry.frames.frozen\"],changelog:[{version:\"0.19.0\",prs:[500],description:\"Added sentry.frames.frozen as an alias\"},{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.frozen.count to replace frames.frozen\"}]},\"app.vitals.frames.frozen.rate\":{brief:\"The fraction of rendered frames that were frozen, calculated as `app.vitals.frames.frozen.count` divided by `app.vitals.frames.total.count`. This is computed by Relay.\",type:\"double\",keys:[\"app.vitals.frames.frozen.rate\",\"frames_frozen_rate\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.5,aliases:[\"frames_frozen_rate\"],changelog:[{version:\"0.19.0\",prs:[493],description:\"Added app.vitals.frames.frozen.rate attribute\"}]},\"app.vitals.frames.slow.count\":{brief:\"The number of slow frames rendered during the lifetime of the span.\",type:\"integer\",keys:[\"app.vitals.frames.slow.count\",\"frames.slow\",\"mobile.slow_frames\",\"sentry.frames.slow\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,aliases:[\"frames.slow\",\"sentry.frames.slow\"],changelog:[{version:\"0.19.0\",prs:[500],description:\"Added sentry.frames.slow as an alias\"},{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.slow.count to replace frames.slow\"}]},\"app.vitals.frames.slow.rate\":{brief:\"The fraction of rendered frames that were slow, calculated as `app.vitals.frames.slow.count` divided by `app.vitals.frames.total.count`. This is computed by Relay.\",type:\"double\",keys:[\"app.vitals.frames.slow.rate\",\"frames_slow_rate\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.25,aliases:[\"frames_slow_rate\"],changelog:[{version:\"0.19.0\",prs:[493],description:\"Added app.vitals.frames.slow.rate attribute\"}]},\"app.vitals.frames.total.count\":{brief:\"The number of total frames rendered during the lifetime of the span.\",type:\"integer\",keys:[\"app.vitals.frames.total.count\",\"frames.total\",\"mobile.total_frames\",\"sentry.frames.total\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:60,aliases:[\"frames.total\",\"sentry.frames.total\"],changelog:[{version:\"0.19.0\",prs:[500],description:\"Added sentry.frames.total as an alias\"},{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.frames.total.count to replace frames.total\"}]},\"app.vitals.stall.duration\":{brief:\"The combined duration of all stalls in milliseconds. Only applies to React Native. This is computed by Relay.\",type:\"double\",keys:[\"app.vitals.stall.duration\",\"stall_total_time\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:4e3,aliases:[\"stall_total_time\"],changelog:[{version:\"0.19.0\",prs:[493],description:\"Added app.vitals.stall.duration attribute\"}]},\"app.vitals.stall.percentage\":{brief:\"The fraction of transaction duration during which the app was stalled, between 0.0 and 1.0. For example, 0.8 represents 80%. Only applies to React Native. This is computed by Relay.\",type:\"double\",keys:[\"app.vitals.stall.percentage\",\"stall_percentage\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.8,aliases:[\"stall_percentage\"],changelog:[{version:\"0.19.0\",prs:[493],description:\"Added app.vitals.stall.percentage attribute\"}]},\"app.vitals.start.cold.value\":{brief:\"The duration of a cold app start in milliseconds\",type:\"double\",keys:[\"app.vitals.start.cold.value\",\"app_start_cold\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[\"app_start_cold\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.start.cold.value attribute\"}]},\"app.vitals.start.prewarmed\":{brief:\"Whether the app start was prewarmed.\",type:\"boolean\",keys:[\"app.vitals.start.prewarmed\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.11.0\",prs:[379],description:\"Added app.vitals.start.prewarmed attribute\"}]},\"app.vitals.start.reason\":{brief:\"The reason that triggered the app start.\",type:\"string\",keys:[\"app.vitals.start.reason\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"push\",changelog:[{version:\"0.7.0\",prs:[353],description:\"Added app.vitals.start.reason attribute\"}]},\"app.vitals.start.screen\":{brief:\"The screen that is rendered when the app start is complete. This is the screen the user first sees and can interact with after launch. The absence of this attribute on the app start span indicates a background app start where no UI was rendered.\",type:\"string\",keys:[\"app.vitals.start.screen\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"MainActivity\",changelog:[{version:\"0.7.0\",prs:[353],description:\"Added app.vitals.start.screen attribute\"}]},\"app.vitals.start.type\":{brief:\"The type of app start, for example `cold` or `warm`\",type:\"string\",keys:[\"app.vitals.start.type\",\"app_start_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"cold\",aliases:[\"app_start_type\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.start.type attribute\"}]},\"app.vitals.start.warm.value\":{brief:\"The duration of a warm app start in milliseconds\",type:\"double\",keys:[\"app.vitals.start.warm.value\",\"app_start_warm\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[\"app_start_warm\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.start.warm.value attribute\"}]},\"app.vitals.ttfd.value\":{brief:\"The duration of time to full display in milliseconds\",type:\"double\",keys:[\"app.vitals.ttfd.value\",\"time_to_full_display\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[\"time_to_full_display\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.ttfd.value attribute\"}]},\"app.vitals.ttid.value\":{brief:\"The duration of time to initial display in milliseconds\",type:\"double\",keys:[\"app.vitals.ttid.value\",\"time_to_initial_display\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,aliases:[\"time_to_initial_display\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added app.vitals.ttid.value attribute\"}]},\"art.gc.blocking_count\":{brief:\"Total number of blocking (stop-the-world) garbage collections performed by the Android Runtime\",type:\"integer\",keys:[\"art.gc.blocking_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.blocking_count attribute\"}]},\"art.gc.blocking_time\":{brief:\"Total time spent in blocking (stop-the-world) garbage collections by the Android Runtime, in milliseconds\",type:\"double\",keys:[\"art.gc.blocking_time\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:11.873,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.blocking_time attribute\"}]},\"art.gc.pre_oome_count\":{brief:\"Total number of garbage collections triggered as a last resort before an OutOfMemoryError by the Android Runtime\",type:\"integer\",keys:[\"art.gc.pre_oome_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:0,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.pre_oome_count attribute\"}]},\"art.gc.total_count\":{brief:\"Total number of garbage collections performed by the Android Runtime\",type:\"integer\",keys:[\"art.gc.total_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.total_count attribute\"}]},\"art.gc.total_time\":{brief:\"Total time spent in garbage collection by the Android Runtime, in milliseconds\",type:\"double\",keys:[\"art.gc.total_time\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:11.807,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.total_time attribute\"}]},\"art.gc.waiting_time\":{brief:\"Total time threads spent waiting for garbage collection to complete in the Android Runtime, in milliseconds\",type:\"double\",keys:[\"art.gc.waiting_time\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:8.054,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.gc.waiting_time attribute\"}]},\"art.memory.free\":{brief:\"Free memory available to the process as reported by the Android Runtime, in bytes\",type:\"integer\",keys:[\"art.memory.free\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:3181568,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.free attribute\"}]},\"art.memory.free_until_gc\":{brief:\"Free memory available before a garbage collection would be triggered by the Android Runtime, in bytes\",type:\"integer\",keys:[\"art.memory.free_until_gc\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:3181568,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.free_until_gc attribute\"}]},\"art.memory.free_until_oome\":{brief:\"Free memory available before an OutOfMemoryError would be thrown by the Android Runtime, in bytes\",type:\"integer\",keys:[\"art.memory.free_until_oome\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:196083712,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.free_until_oome attribute\"}]},\"art.memory.max\":{brief:\"Maximum memory the process is allowed to use as reported by the Android Runtime, in bytes\",type:\"integer\",keys:[\"art.memory.max\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:201326592,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.max attribute\"}]},\"art.memory.total\":{brief:\"Total memory currently allocated to the process by the Android Runtime, in bytes\",type:\"integer\",keys:[\"art.memory.total\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:7774208,changelog:[{version:\"0.11.0\",prs:[382],description:\"Added art.memory.total attribute\"}]},\"aws.cloudwatch.logs.log_group\":{brief:\"The name of the CloudWatch Logs log group\",type:\"string\",keys:[\"aws.cloudwatch.logs.log_group\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"/aws/lambda/my-function\",changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.cloudwatch.logs.log_group attribute\"}]},\"aws.cloudwatch.logs.log_stream\":{brief:\"The name of the CloudWatch Logs log stream\",type:\"string\",keys:[\"aws.cloudwatch.logs.log_stream\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"2024/01/01/[$LATEST]abcdef1234567890\",changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.cloudwatch.logs.log_stream attribute\"}]},\"aws.cloudwatch.logs.url\":{brief:\"The URL to the CloudWatch Logs log group\",type:\"string\",keys:[\"aws.cloudwatch.logs.url\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"https://console.aws.amazon.com/cloudwatch/home?region=us-east-1#logsV2:log-groups/log-group/my-log-group\",changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.cloudwatch.logs.url attribute\"}]},\"aws.dynamodb.attribute_definitions\":{brief:\"The JSON-serialized value of each item in the `AttributeDefinitions` request field.\",type:\"string[]\",keys:[\"aws.dynamodb.attribute_definitions\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:['{ \"AttributeName\": \"string\", \"AttributeType\": \"string\" }'],changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.attribute_definitions attribute\"}]},\"aws.dynamodb.consistent_read\":{brief:\"The value of the `ConsistentRead` request parameter.\",type:\"boolean\",keys:[\"aws.dynamodb.consistent_read\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.consistent_read attribute\"}]},\"aws.dynamodb.consumed_capacity\":{brief:\"The JSON-serialized value of each item in the `ConsumedCapacity` response field.\",type:\"string[]\",keys:[\"aws.dynamodb.consumed_capacity\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:['{ \"CapacityUnits\": number, \"GlobalSecondaryIndexes\": { \"string\" : { \"CapacityUnits\": number, \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }, \"LocalSecondaryIndexes\": { \"string\" : { \"CapacityUnits\": number, \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }, \"ReadCapacityUnits\": number, \"Table\": { \"CapacityUnits\": number, \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number }, \"TableName\": \"string\", \"WriteCapacityUnits\": number }'],changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.consumed_capacity attribute\"}]},\"aws.dynamodb.count\":{brief:\"The value of the `Count` response parameter.\",type:\"integer\",keys:[\"aws.dynamodb.count\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:10,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.count attribute\"}]},\"aws.dynamodb.exclusive_start_table\":{brief:\"The value of the `ExclusiveStartTableName` request parameter.\",type:\"string\",keys:[\"aws.dynamodb.exclusive_start_table\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Users\",changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.exclusive_start_table attribute\"}]},\"aws.dynamodb.global_secondary_indexes\":{brief:\"The JSON-serialized value of each item of the `GlobalSecondaryIndexes` request field.\",type:\"string[]\",keys:[\"aws.dynamodb.global_secondary_indexes\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:['{ \"IndexName\": \"string\", \"KeySchema\": [ { \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" }, \"ProvisionedThroughput\": { \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }'],changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.global_secondary_indexes attribute\"}]},\"aws.dynamodb.global_secondary_index_updates\":{brief:\"The JSON-serialized value of each item in the `GlobalSecondaryIndexUpdates` request field.\",type:\"string[]\",keys:[\"aws.dynamodb.global_secondary_index_updates\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:['{ \"Create\": { \"IndexName\": \"string\", \"KeySchema\": [ { \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" }, \"ProvisionedThroughput\": { \"ReadCapacityUnits\": number, \"WriteCapacityUnits\": number } }'],changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.global_secondary_index_updates attribute\"}]},\"aws.dynamodb.index_name\":{brief:\"The value of the `IndexName` request parameter.\",type:\"string\",keys:[\"aws.dynamodb.index_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"name_to_group\",changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.index_name attribute\"}]},\"aws.dynamodb.item_collection_metrics\":{brief:\"The JSON-serialized value of the `ItemCollectionMetrics` response field.\",type:\"string\",keys:[\"aws.dynamodb.item_collection_metrics\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:'{ \"string\" : [ { \"ItemCollectionKey\": { \"string\" : { \"B\": blob, \"BOOL\": boolean, \"BS\": [ blob ], \"L\": [ \"AttributeValue\" ], \"M\": { \"string\" : \"AttributeValue\" }, \"N\": \"string\", \"NS\": [ \"string\" ], \"NULL\": boolean, \"S\": \"string\", \"SS\": [ \"string\" ] } }, \"SizeEstimateRangeGB\": [ number ] } ] }',changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.item_collection_metrics attribute\"}]},\"aws.dynamodb.limit\":{brief:\"The value of the `Limit` request parameter.\",type:\"integer\",keys:[\"aws.dynamodb.limit\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:10,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.limit attribute\"}]},\"aws.dynamodb.local_secondary_indexes\":{brief:\"The JSON-serialized value of each item of the `LocalSecondaryIndexes` request field.\",type:\"string[]\",keys:[\"aws.dynamodb.local_secondary_indexes\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:['{ \"IndexArn\": \"string\", \"IndexName\": \"string\", \"IndexSizeBytes\": number, \"ItemCount\": number, \"KeySchema\": [ { \"AttributeName\": \"string\", \"KeyType\": \"string\" } ], \"Projection\": { \"NonKeyAttributes\": [ \"string\" ], \"ProjectionType\": \"string\" } }'],changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.local_secondary_indexes attribute\"}]},\"aws.dynamodb.projection\":{brief:\"The value of the `ProjectionExpression` request parameter.\",type:\"string\",keys:[\"aws.dynamodb.projection\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Title, Price, Color\",changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.projection attribute\"}]},\"aws.dynamodb.provisioned_read_capacity\":{brief:\"The value of the `ProvisionedThroughput.ReadCapacityUnits` request parameter.\",type:\"double\",keys:[\"aws.dynamodb.provisioned_read_capacity\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:1,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.provisioned_read_capacity attribute\"}]},\"aws.dynamodb.provisioned_write_capacity\":{brief:\"The value of the `ProvisionedThroughput.WriteCapacityUnits` request parameter.\",type:\"double\",keys:[\"aws.dynamodb.provisioned_write_capacity\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:2,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.provisioned_write_capacity attribute\"}]},\"aws.dynamodb.scanned_count\":{brief:\"The value of the `ScannedCount` response parameter.\",type:\"integer\",keys:[\"aws.dynamodb.scanned_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:50,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.scanned_count attribute\"}]},\"aws.dynamodb.scan_forward\":{brief:\"The value of the `ScanIndexForward` request parameter.\",type:\"boolean\",keys:[\"aws.dynamodb.scan_forward\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.scan_forward attribute\"}]},\"aws.dynamodb.segment\":{brief:\"The value of the `Segment` request parameter.\",type:\"integer\",keys:[\"aws.dynamodb.segment\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:10,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.segment attribute\"}]},\"aws.dynamodb.select\":{brief:\"The value of the `Select` request parameter.\",type:\"string\",keys:[\"aws.dynamodb.select\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"ALL_ATTRIBUTES\",changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.select attribute\"}]},\"aws.dynamodb.table_count\":{brief:\"The number of items in the `TableNames` response parameter.\",type:\"integer\",keys:[\"aws.dynamodb.table_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:20,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.table_count attribute\"}]},\"aws.dynamodb.table_names\":{brief:\"The keys in the `RequestItems` object field.\",type:\"string[]\",keys:[\"aws.dynamodb.table_names\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:[\"Users\",\"Cats\"],changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.table_names attribute\"}]},\"aws.dynamodb.total_segments\":{brief:\"The value of the `TotalSegments` request parameter.\",type:\"integer\",keys:[\"aws.dynamodb.total_segments\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:100,changelog:[{version:\"0.16.0\",prs:[479],description:\"Added aws.dynamodb.total_segments attribute\"}]},\"aws.extended_request_id\":{brief:\"The AWS extended request ID as returned in the response headers.\",type:\"string\",keys:[\"aws.extended_request_id\",\"aws.request.extended_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"wzHcyEWfmOGDIE5QOhTAqFDoDWP3y8IUvpNINCwL9N4TEHbUw0/gZJ+VZTmCNCWR7fezEN3eCiQ=\",aliases:[\"aws.request.extended_id\"],changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.extended_request_id attribute\"}]},\"aws.kinesis.stream_name\":{brief:\"The name of the AWS Kinesis stream the request refers to.\",type:\"string\",keys:[\"aws.kinesis.stream_name\",\"aws.kinesis.stream.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"some-stream-name\",aliases:[\"aws.kinesis.stream.name\"],changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.kinesis.stream_name attribute\"}]},\"aws.kinesis.stream.name\":{brief:\"The name of the AWS Kinesis stream the request refers to.\",type:\"string\",keys:[\"aws.kinesis.stream_name\",\"aws.kinesis.stream.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"some-stream-name\",deprecation:{replacement:\"aws.kinesis.stream_name\",reason:\"This attribute is being deprecated in favor of aws.kinesis.stream_name, which is the OTel-aligned replacement.\",status:\"backfill\"},aliases:[\"aws.kinesis.stream_name\"],changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.kinesis.stream.name attribute, deprecated in favor of aws.kinesis.stream_name\"}]},\"aws.lambda.aws_request_id\":{brief:\"The AWS request ID as received by the Lambda function runtime\",type:\"string\",keys:[\"faas.invocation_id\",\"aws.lambda.aws_request_id\",\"faas.execution\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"8476a536-e9f4-11e8-9739-2dfe598c3fcd\",deprecation:{replacement:\"faas.invocation_id\",reason:\"This attribute is being deprecated in favor of faas.invocation_id\",status:\"backfill\"},aliases:[\"faas.invocation_id\",\"faas.execution\"],changelog:[{version:\"0.16.0\",prs:[473],description:\"Added faas.execution as an alias\"},{version:\"0.11.1\",prs:[414,424],description:\"Deprecated aws.lambda.aws_request_id in favor of faas.invocation_id\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.aws_request_id attribute\"}]},\"aws.lambda.execution_duration_in_millis\":{brief:\"The execution duration of the Lambda function invocation in milliseconds\",type:\"double\",keys:[\"aws.lambda.execution_duration_in_millis\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.execution_duration_in_millis attribute\"}]},\"aws.lambda.function_name\":{brief:\"The name of the Lambda function\",type:\"string\",keys:[\"faas.name\",\"aws.lambda.function_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"my-function\",deprecation:{replacement:\"faas.name\",reason:\"Use the OTel-aligned faas.name attribute instead\",status:\"backfill\"},aliases:[\"faas.name\"],changelog:[{version:\"0.11.1\",prs:[414],description:\"Deprecated aws.lambda.function_name in favor of faas.name\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.function_name attribute\"}]},\"aws.lambda.function_version\":{brief:\"The version of the Lambda function\",type:\"string\",keys:[\"faas.version\",\"aws.lambda.function_version\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"$LATEST\",deprecation:{replacement:\"faas.version\",reason:\"Use the OTel-aligned faas.version attribute instead\",status:\"backfill\"},aliases:[\"faas.version\"],changelog:[{version:\"0.11.1\",prs:[414,424],description:\"Deprecated aws.lambda.function_version in favor of faas.version\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.function_version attribute\"}]},\"aws.lambda.invoked_arn\":{brief:\"The full ARN of the Lambda function that was invoked\",type:\"string\",keys:[\"aws.lambda.invoked_arn\",\"aws.lambda.invoked_function_arn\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:lambda:us-east-1:123456789012:function:my-function\",aliases:[\"aws.lambda.invoked_function_arn\"],changelog:[{version:\"0.11.1\",prs:[414]}]},\"aws.lambda.invoked_function_arn\":{brief:\"The full ARN of the Lambda function that was invoked\",type:\"string\",keys:[\"aws.lambda.invoked_arn\",\"aws.lambda.invoked_function_arn\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"arn:aws:lambda:us-east-1:123456789012:function:my-function\",deprecation:{replacement:\"aws.lambda.invoked_arn\",reason:\"This attribute is being deprecated in favor of aws.lambda.invoked_arn\",status:\"backfill\"},aliases:[\"aws.lambda.invoked_arn\"],changelog:[{version:\"0.11.1\",prs:[414],description:\"Deprecated aws.lambda.invoked_function_arn in favor of aws.lambda.invoked_arn\"},{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.invoked_function_arn attribute\"}]},\"aws.lambda.remaining_time_in_millis\":{brief:\"The remaining time in milliseconds before the Lambda function times out\",type:\"double\",keys:[\"aws.lambda.remaining_time_in_millis\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:5e3,changelog:[{version:\"0.7.0\",prs:[369],description:\"Added aws.lambda.remaining_time_in_millis attribute\"}]},\"aws.log.group.names\":{brief:\"The name(s) of the AWS log group(s) an application is writing to.\",type:\"string[]\",keys:[\"aws.log.group.names\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:[\"/aws/lambda/my-function\",\"opentelemetry-service\"],changelog:[{version:\"0.11.1\",prs:[414]}]},\"aws.log.stream.names\":{brief:\"The name(s) of the AWS log stream(s) an application is writing to.\",type:\"string[]\",keys:[\"aws.log.stream.names\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:[\"logs/main/10838bed-421f-43ef-870a-f43feacbbb5b\"],changelog:[{version:\"0.11.1\",prs:[414]}]},\"aws.operation_name\":{brief:\"The name of the API operation invoked on an AWS service.\",type:\"string\",keys:[\"rpc.method\",\"aws.operation_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"PutObject\",examples:[\"PutObject\"],deprecation:{replacement:\"rpc.method\",reason:\"This attribute is being deprecated in favor of rpc.method, which is the framework-agnostic replacement.\",status:\"backfill\"},aliases:[\"rpc.method\"],changelog:[{version:\"0.19.0\",prs:[536],description:\"Added aws.operation_name attribute\"}]},aws_region:{brief:\"The geographical region the AWS resource is running\",type:\"string\",keys:[\"cloud.region\",\"aws_region\",\"gcp_region\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"us-east-1\",examples:[\"us-east-1\"],deprecation:{replacement:\"cloud.region\",status:\"backfill\"},aliases:[\"cloud.region\",\"gcp_region\"],changelog:[{version:\"0.19.0\",prs:[537],description:\"Added aws_region attribute\"}]},\"aws.request.extended_id\":{brief:\"The AWS extended request ID as returned in the response headers.\",type:\"string\",keys:[\"aws.extended_request_id\",\"aws.request.extended_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"wzHcyEWfmOGDIE5QOhTAqFDoDWP3y8IUvpNINCwL9N4TEHbUw0/gZJ+VZTmCNCWR7fezEN3eCiQ=\",deprecation:{replacement:\"aws.extended_request_id\",reason:\"This attribute is being deprecated in favor of aws.extended_request_id, which is the OTel-aligned replacement.\",status:\"backfill\"},aliases:[\"aws.extended_request_id\"],changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.request.extended_id attribute, deprecated in favor of aws.extended_request_id\"}]},\"aws.request_id\":{brief:\"The AWS request ID as returned in the response headers.\",type:\"string\",keys:[\"aws.request_id\",\"aws.request.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"79b9da39-b7ae-508a-a6bc-864b2829c622\",aliases:[\"aws.request.id\"],changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.request_id attribute\"}]},\"aws.request.id\":{brief:\"The AWS request ID as returned in the response headers.\",type:\"string\",keys:[\"aws.request_id\",\"aws.request.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"79b9da39-b7ae-508a-a6bc-864b2829c622\",deprecation:{replacement:\"aws.request_id\",reason:\"This attribute is being deprecated in favor of aws.request_id, which is the OTel-aligned replacement.\",status:\"backfill\"},aliases:[\"aws.request_id\"],changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.request.id attribute, deprecated in favor of aws.request_id\"}]},\"aws.request.url\":{brief:\"The URL of the AWS API request.\",type:\"string\",keys:[\"url.full\",\"aws.request.url\",\"http.url\",\"messaging.url\",\"url\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"https://sqs.us-east-1.amazonaws.com/123456789/my-queue\",deprecation:{replacement:\"url.full\",reason:\"This attribute is being deprecated in favor of url.full, which is the OTel-aligned replacement.\",status:\"backfill\"},aliases:[\"url.full\",\"http.url\",\"url\",\"messaging.url\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.url as an alias\"},{version:\"0.19.0\",prs:[488],description:\"Added aws.request.url attribute, deprecated in favor of url.full\"}]},\"aws.s3.bucket\":{brief:\"The S3 bucket name the request refers to.\",type:\"string\",keys:[\"aws.s3.bucket\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"ot-demo-test\",changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.s3.bucket attribute\"}]},\"aws.secretsmanager.secret.arn\":{brief:\"The ARN of the Secret stored in Secrets Manager.\",type:\"string\",keys:[\"aws.secretsmanager.secret.arn\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:secretsmanager:us-east-1:123456789012:secret:SecretName-6RandomCharacters\",changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.secretsmanager.secret.arn attribute\"}]},\"aws.sns.topic.arn\":{brief:\"The ARN of the AWS SNS Topic. An Amazon SNS topic is a logical access point that acts as a communication channel.\",type:\"string\",keys:[\"aws.sns.topic.arn\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:sns:us-east-1:123456789012:mystack-mytopic-NZJ5JSMVGFIE\",changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.sns.topic.arn attribute\"}]},\"aws.step_functions.activity.arn\":{brief:\"The ARN of the AWS Step Functions Activity.\",type:\"string\",keys:[\"aws.step_functions.activity.arn\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:states:us-east-1:123456789012:activity:get-greeting\",changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.step_functions.activity.arn attribute\"}]},\"aws.step_functions.state_machine.arn\":{brief:\"The ARN of the AWS Step Functions State Machine.\",type:\"string\",keys:[\"aws.step_functions.state_machine.arn\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:1\",changelog:[{version:\"0.16.0\",prs:[480],description:\"Added aws.step_functions.state_machine.arn attribute\"}]},blocked_main_thread:{brief:\"Whether the main thread was blocked by the span.\",type:\"boolean\",keys:[\"blocked_main_thread\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"browser.bfcache.frame\":{brief:\"Which frame in the page's frame tree a back/forward cache not-restored reason originated from: the top document or a child frame.\",type:\"string\",keys:[\"browser.bfcache.frame\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"top\",examples:[\"top\",\"child\"],changelog:[{version:\"0.19.0\",prs:[513],description:\"Added browser.bfcache.frame attribute\"}]},\"browser.bfcache.not_restored_reason_count\":{brief:\"The number of reported reasons a page was not restored from the back/forward cache on a back/forward navigation. 0 when the browser reported no reasons (e.g. non-Chromium browsers).\",type:\"integer\",keys:[\"browser.bfcache.not_restored_reason_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2,examples:[2],changelog:[{version:\"0.19.0\",prs:[513],description:\"Added browser.bfcache.not_restored_reason_count attribute\"}]},\"browser.bfcache.outcome\":{brief:\"Whether a back/forward navigation was restored from the browser's back/forward cache (bfcache). 'hit' means the page was restored; 'miss' means it was reloaded.\",type:\"string\",keys:[\"browser.bfcache.outcome\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"hit\",examples:[\"hit\",\"miss\"],changelog:[{version:\"0.19.0\",prs:[513],description:\"Added browser.bfcache.outcome attribute\"}]},\"browser.bfcache.reason\":{brief:\"A browser-reported reason a page was not restored from the back/forward cache on a back/forward navigation, taken from the notRestoredReasons API. Reported per reason (a single miss can have several). Currently Chromium-only.\",type:\"string\",keys:[\"browser.bfcache.reason\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"unload-listener\",examples:[\"unload-listener\",\"websocket\",\"idbversionchangeevent\",\"response-cache-control-no-store\"],changelog:[{version:\"0.19.0\",prs:[513],description:\"Added browser.bfcache.reason attribute\"}]},\"browser.name\":{brief:\"The name of the browser.\",type:\"string\",keys:[\"browser.name\",\"sentry.browser.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Chrome\",aliases:[\"sentry.browser.name\"],changelog:[{version:\"0.1.0\",prs:[127,139]},{version:\"0.0.0\"}]},\"browser.navigation.id\":{brief:\"The identifier of the navigation the measurement belongs to, incremented by the browser for each navigation within a page's lifetime.\",type:\"integer\",keys:[\"browser.navigation.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,examples:[1,3,0],changelog:[{version:\"0.24.0\",prs:[640],description:\"Document 0 as the fallback value when the browser does not support `navigationId`\"},{version:\"0.22.0\",prs:[634],description:\"Added browser.navigation.id attribute\"}],additionalContext:[\"Sourced from `PerformanceEntry.navigationId`, defined by the Soft Navigations spec. Despite its origin it is not soft-navigation specific: the field is set on the `PerformanceNavigationTiming` entry of a hard navigation too.\",\"The value starts at 1 for the initial page load and increments for each subsequent navigation. It is only unique within a single page lifetime, not globally.\",\"A value of 0 is a fallback rather than a real navigation id: web-vitals reports 0 when the browser does not expose `PerformanceEntry.navigationId`, so 0 means the id is unknown.\",\"Pairs with `browser.navigation.type`: the type says how the browser arrived at the page, the id says which navigation of that page a measurement belongs to.\",\"Not to be confused with the Navigation API's `NavigationHistoryEntry.id`, which is an opaque string identifying a history entry rather than a counter, and is not interchangeable with this value.\",\"Also distinct from the `router.navigation.*` attributes, which describe the client-side router's own view of a navigation. Those come from the framework, this one comes from the browser, and both can be set on the same span.\"]},\"browser.navigation.type\":{brief:\"The type of navigation the browser performed to arrive at the page the metrics were measured on.\",type:\"string\",keys:[\"browser.navigation.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"navigate\",examples:[\"navigate\",\"reload\",\"back-forward\",\"back-forward-cache\",\"prerender\",\"restore\",\"soft-navigation\"],changelog:[{version:\"0.24.0\",prs:[640],description:\"Use the web-vitals navigation types as-is: `bfcache` is now `back-forward-cache`, and `back-forward` and `restore` are no longer reported as `navigate`\"},{version:\"0.22.0\",prs:[600],description:\"Added browser.navigation.type attribute\"}],additionalContext:[\"Carries the `navigationType` value reported by the web-vitals library verbatim. web-vitals hyphenates the Navigation Timing `PerformanceNavigationTiming.type` value (`back_forward` becomes `back-forward`) and adds states that API does not cover: `back-forward-cache` for a restore from the back/forward cache, `prerender`, `restore` for a discarded tab being reloaded, and `soft-navigation`.\",\"`back-forward-cache` is only set when the page was actually restored from the back/forward cache. A back/forward navigation that missed the cache is a full document load and reports `back-forward`. Use the `browser.bfcache.*` attributes to diagnose misses.\",\"`prerender` pages finish painting before activation, so their paint timings are offset by `browser.performance.navigation.activation_start`. Keep them separate when aggregating web vitals.\",\"Not to be confused with `router.navigation.type`, which holds the client-side router's own vocabulary (`link`, `goto`, `router.push`). The two are independent and can both be set on the same span.\"]},\"browser.paint.type\":{brief:\"The type of paint timing entry reported by the browser.\",type:\"string\",keys:[\"browser.paint.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"first-paint\",examples:[\"first-paint\",\"first-contentful-paint\"],changelog:[{version:\"0.22.0\",prs:[606],description:\"Added browser.paint.type attribute\"}]},\"browser.performance.navigation.activation_start\":{brief:\"The time between initiating a navigation to a page and the browser activating the page\",type:\"double\",keys:[\"browser.performance.navigation.activation_start\",\"performance.activationStart\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1.983,aliases:[\"performance.activationStart\"],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added browser.performance.navigation.activation_start attribute\"}]},\"browser.performance.time_origin\":{brief:\"The browser's performance.timeOrigin timestamp representing the time when the pageload was initiated\",type:\"double\",keys:[\"browser.performance.time_origin\",\"performance.timeOrigin\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1776185678886e-3,aliases:[\"performance.timeOrigin\"],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added browser.performance.time_origin attribute attribute\"}]},\"browser.report.type\":{brief:\"A browser report sent via reporting API..\",type:\"string\",keys:[\"browser.report.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"network-error\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},\"browser.script.invoker\":{brief:\"How a script was called in the browser.\",type:\"string\",keys:[\"browser.script.invoker\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Window.requestAnimationFrame\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"browser.script.invoker_type\":{brief:\"Browser script entry point type.\",type:\"string\",keys:[\"browser.script.invoker_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"event-listener\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"browser.script.source_char_position\":{brief:\"A number representing the script character position of the script.\",type:\"integer\",keys:[\"browser.script.source_char_position\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:678,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"browser.version\":{brief:\"The version of the browser.\",type:\"string\",keys:[\"browser.version\",\"sentry.browser.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"120.0.6099.130\",aliases:[\"sentry.browser.version\"],changelog:[{version:\"0.1.0\",prs:[59,127,139]}]},\"browser.web_vital.cls.report_event\":{brief:\"The event that caused the SDK to report CLS (pagehide or navigation)\",type:\"string\",keys:[\"browser.web_vital.cls.report_event\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"navigation\",deprecation:{reason:\"The JavaScript SDK stopped setting this in v11. With per-navigation web vitals, web-vitals decides when the CLS value is final, so there is no report event to record. No replacement.\"},changelog:[{version:\"0.24.0\",prs:[642],description:\"Deprecated browser.web_vital.cls.report_event, which has no replacement\"},{version:\"0.5.0\",prs:[319],description:\"Added browser.web_vital.cls.report_event attribute\"}]},\"browser.web_vital.cls.source.<key>\":{brief:\"The HTML elements or components responsible for the layout shift. <key> is a numeric index from 1 to N\",type:\"string\",keys:[\"browser.web_vital.cls.source.<key>\",\"cls.source.<key>\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"body > div#app\",aliases:[\"cls.source.<key>\"],changelog:[{version:\"0.5.0\",prs:[234]}]},\"browser.web_vital.cls.value\":{brief:\"The value of the recorded Cumulative Layout Shift (CLS) web vital\",type:\"double\",keys:[\"browser.web_vital.cls.value\",\"cls\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.2361,aliases:[\"cls\"],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added browser.web_vital.cls.value attribute\"}]},\"browser.web_vital.fcp.value\":{brief:\"The time it takes for the browser to render the first piece of meaningful content on the screen\",type:\"double\",keys:[\"browser.web_vital.fcp.value\",\"fcp\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:547.6951,aliases:[\"fcp\"],changelog:[{version:\"0.5.0\",prs:[235]}]},\"browser.web_vital.fp.value\":{brief:\"The time in milliseconds it takes for the browser to render the first pixel on the screen\",type:\"double\",keys:[\"browser.web_vital.fp.value\",\"fp\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:477.1926,aliases:[\"fp\"],changelog:[{version:\"0.5.0\",prs:[235]}]},\"browser.web_vital.inp.interaction_type\":{brief:\"The kind of user interaction INP was reported on\",type:\"string\",keys:[\"browser.web_vital.inp.interaction_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"click\",examples:[\"click\",\"hover\",\"drag\",\"press\"],changelog:[{version:\"0.24.0\",prs:[641],description:\"Added browser.web_vital.inp.interaction_type attribute\"}],additionalContext:[\"One of `click`, `hover`, `drag` or `press`, derived from the DOM event name of the Event Timing entry: pointer, mouse and touch events map to `click`, `mouseover` and similar to `hover`, drag and drop events to `drag`, and keyboard and `input` events to `press`. The same value forms the suffix of the span's `ui.interaction.*` op.\",\"Not to be confused with the `interactionType` of the web-vitals attribution build, which only distinguishes `pointer` and `keyboard`.\",\"Omitted when INP is reported without an interaction to attribute it to, see `browser.web_vital.inp.target`. The op of such a span still falls into `ui.interaction.click` so that it stays within the interaction span family, which makes this attribute, not the op, the way to tell a real click from a value with no interaction.\"]},\"browser.web_vital.inp.target\":{brief:\"The HTML element selector or component name of the element the user interacted with, for the interaction INP was reported on\",type:\"string\",keys:[\"browser.web_vital.inp.target\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"body > div#app > button.submit\",examples:[\"body > div#app > button.submit\",\"SubmitButton\"],changelog:[{version:\"0.24.0\",prs:[641],description:\"Added browser.web_vital.inp.target attribute\"}],additionalContext:[\"Named after `PerformanceEventTiming.target`, the way `browser.web_vital.lcp.element` is named after `LargestContentfulPaint.element`. The value uses the same format as that attribute.\",\"Omitted when INP is reported without an interaction to attribute it to. web-vitals reports such a value for a soft navigation whose interactions all stayed below the Event Timing duration threshold, so there is no element to name. The span is still named and still carries `browser.web_vital.inp.value`.\"]},\"browser.web_vital.inp.value\":{brief:\"The value of the recorded Interaction to Next Paint (INP) web vital\",type:\"double\",keys:[\"browser.web_vital.inp.value\",\"inp\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:200,aliases:[\"inp\"],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added browser.web_vital.inp.value attribute\"}]},\"browser.web_vital.lcp.element\":{brief:\"The HTML element selector or component name for which LCP was reported\",type:\"string\",keys:[\"browser.web_vital.lcp.element\",\"lcp.element\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"body > div#app > div#container > div\",aliases:[\"lcp.element\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"browser.web_vital.lcp.id\":{brief:\"The id of the dom element responsible for the largest contentful paint\",type:\"string\",keys:[\"browser.web_vital.lcp.id\",\"lcp.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"#gero\",aliases:[\"lcp.id\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"browser.web_vital.lcp.load_time\":{brief:\"The time it took for the LCP element to be loaded\",type:\"integer\",keys:[\"browser.web_vital.lcp.load_time\",\"lcp.loadTime\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1402,aliases:[\"lcp.loadTime\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"browser.web_vital.lcp.render_time\":{brief:\"The time it took for the LCP element to be rendered\",type:\"integer\",keys:[\"browser.web_vital.lcp.render_time\",\"lcp.renderTime\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1685,aliases:[\"lcp.renderTime\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"browser.web_vital.lcp.report_event\":{brief:\"The event that caused the SDK to report LCP (pagehide or navigation)\",type:\"string\",keys:[\"browser.web_vital.lcp.report_event\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"pagehide\",deprecation:{reason:\"The JavaScript SDK stopped setting this in v11. With per-navigation web vitals, web-vitals decides when the LCP value is final, so there is no report event to record. No replacement.\"},changelog:[{version:\"0.24.0\",prs:[642],description:\"Deprecated browser.web_vital.lcp.report_event, which has no replacement\"},{version:\"0.5.0\",prs:[319],description:\"Added browser.web_vital.lcp.report_event attribute\"}]},\"browser.web_vital.lcp.size\":{brief:\"The size of the largest contentful paint element\",type:\"integer\",keys:[\"browser.web_vital.lcp.size\",\"lcp.size\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1024,aliases:[\"lcp.size\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"browser.web_vital.lcp.url\":{brief:\"The url of the dom element responsible for the largest contentful paint\",type:\"string\",keys:[\"browser.web_vital.lcp.url\",\"lcp.url\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com/static/img.png\",aliases:[\"lcp.url\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"browser.web_vital.lcp.value\":{brief:\"The value of the recorded Largest Contentful Paint (LCP) web vital\",type:\"double\",keys:[\"browser.web_vital.lcp.value\",\"lcp\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2500,aliases:[\"lcp\"],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added browser.web_vital.lcp.value attribute\"}]},\"browser.web_vital.ttfb.request_time\":{brief:\"The time it takes for the server to process the initial request and send the first byte of a response to the user's browser\",type:\"double\",keys:[\"browser.web_vital.ttfb.request_time\",\"ttfb.requestTime\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1554.5814,aliases:[\"ttfb.requestTime\"],changelog:[{version:\"0.5.0\",prs:[235]}]},\"browser.web_vital.ttfb.value\":{brief:\"The value of the recorded Time To First Byte (TTFB) web vital in Milliseconds\",type:\"double\",keys:[\"browser.web_vital.ttfb.value\",\"ttfb\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:194.3322,aliases:[\"ttfb\"],changelog:[{version:\"0.5.0\",prs:[235]}]},\"cache.hit\":{brief:\"If the cache was hit during this span.\",type:\"boolean\",keys:[\"cache.hit\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"cache.item_age\":{brief:\"The age of the cache entry in seconds, measured at read time.\",type:\"integer\",keys:[\"cache.item_age\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:5,examples:[5,3600],changelog:[{version:\"0.23.0\",prs:[637],description:\"Added cache.item_age attribute\"}],additionalContext:[\"Set on reads that return an entry. Absent on a miss, or when the cache does not report a write time.\",\"Clamped to 0. On a shared cache, the writer's clock and the reader's clock can drift far enough to make the age negative.\",\"Can exceed `cache.ttl`. A cache that discards an expired entry on read still reports the age of that entry, with `cache.hit: false`.\"],searchAlias:{name:\"cache.item_age\",type:\"second\"}},\"cache.item_size\":{brief:\"The size of the requested item in the cache. In bytes.\",type:\"integer\",keys:[\"cache.item_size\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:58,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}],searchAlias:{name:\"cache.item_size\",type:\"byte\"}},\"cache.key\":{brief:\"The key of the cache accessed.\",type:\"string[]\",keys:[\"cache.key\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:[\"my-cache-key\",\"my-other-cache-key\"],changelog:[{version:\"0.0.0\"}]},\"cache.operation\":{brief:\"The operation being performed on the cache.\",type:\"string\",keys:[\"cache.operation\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"get\",examples:[\"get\",\"put\",\"remove\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"cache.tags\":{brief:\"The tags attached to the cache entry. Tags group entries so a cache can invalidate them together.\",type:\"string[]\",keys:[\"cache.tags\"],applyScrubbing:{key:\"auto\",reason:\"Applications pick tag values freely and often build them from record identifiers such as a user id.\"},isInOtel:!1,visibility:\"public\",example:[\"blog-posts\",\"post-42\"],examples:[[\"blog-posts\",\"post-42\"],[\"products\"]],changelog:[{version:\"0.23.0\",prs:[637],description:\"Added cache.tags attribute\"}],additionalContext:[\"Cache library examples that support tags: Next.js `cacheTag()`, Symfony `ItemInterface::tag()`, Laravel `Cache::tags()`.\",\"HTTP caches take tags from a response header. Cloudflare reads `Cache-Tag`, Fastly reads `Surrogate-Key`.\",\"Record only the tags the application declared. Leave out implicit tags that the framework adds itself, for example one tag per route.\",\"The tags describe the entry, not the operation. Take them from the entry the cache returned or stored.\"]},\"cache.ttl\":{brief:\"The ttl of the cache in seconds\",type:\"integer\",keys:[\"cache.ttl\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:120,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"cache.write\":{brief:\"If the cache operation resulted in a write to the cache.\",type:\"boolean\",keys:[\"cache.write\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\"}]},channel:{brief:\"The channel name that is being used.\",type:\"string\",keys:[\"channel\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"mail\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"client.address\":{brief:\"Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",keys:[\"client.address\",\"http.client_ip\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",aliases:[\"http.client_ip\"],changelog:[{version:\"0.1.0\",prs:[106,127]},{version:\"0.0.0\"}]},\"client.port\":{brief:\"Client port number.\",type:\"integer\",keys:[\"client.port\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:5432,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"cloudflare.d1.duration\":{brief:\"The duration of a Cloudflare D1 operation.\",type:\"integer\",keys:[\"cloudflare.d1.duration\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:543,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"cloudflare.d1.query_type\":{brief:\"The type of query executed in a Cloudflare D1 operation\",type:\"string\",keys:[\"db.operation.name\",\"cloudflare.d1.query_type\",\"db.operation\",\"redis.command\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"run\",deprecation:{replacement:\"db.operation.name\",status:\"backfill\"},aliases:[\"db.operation.name\",\"db.operation\",\"redis.command\"],changelog:[{version:\"0.19.0\",prs:[531],description:\"Added redis.command as an alias\"},{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.d1.query_type attribute\"}]},\"cloudflare.d1.rows_read\":{brief:\"The number of rows read in a Cloudflare D1 operation.\",type:\"integer\",keys:[\"cloudflare.d1.rows_read\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"cloudflare.d1.rows_written\":{brief:\"The number of rows written in a Cloudflare D1 operation.\",type:\"integer\",keys:[\"cloudflare.d1.rows_written\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"cloudflare.durable_object.query.bindings\":{brief:\"The number of bound parameters passed to the SQL exec call.\",type:\"integer\",keys:[\"cloudflare.durable_object.query.bindings\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2,changelog:[{version:\"0.13.0\",prs:[435],description:\"Added cloudflare.durable_object.query.bindings attribute\"}]},\"cloudflare.durable_object.response.rows_read\":{brief:\"The number of rows read by a Cloudflare Durable Object SQL operation.\",type:\"integer\",keys:[\"cloudflare.durable_object.response.rows_read\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12,changelog:[{version:\"0.13.0\",prs:[435],description:\"Added cloudflare.durable_object.response.rows_read attribute\"}]},\"cloudflare.durable_object.response.rows_written\":{brief:\"The number of rows written by a Cloudflare Durable Object SQL operation.\",type:\"integer\",keys:[\"cloudflare.durable_object.response.rows_written\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.13.0\",prs:[435],description:\"Added cloudflare.durable_object.response.rows_written attribute\"}]},\"cloudflare.r2.bucket\":{brief:\"The name of the Cloudflare R2 bucket binding\",type:\"string\",keys:[\"cloudflare.r2.bucket\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"MY_BUCKET\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.bucket attribute\"}]},\"cloudflare.r2.operation\":{brief:\"The R2 API operation being performed\",type:\"string\",keys:[\"cloudflare.r2.operation\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"GetObject\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.operation attribute\"}]},\"cloudflare.r2.request.delimiter\":{brief:\"The delimiter used to group objects in an R2 list operation\",type:\"string\",keys:[\"cloudflare.r2.request.delimiter\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"/\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.delimiter attribute\"}]},\"cloudflare.r2.request.key\":{brief:\"The object key used in the R2 operation\",type:\"string\",keys:[\"cloudflare.r2.request.key\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"my-file.txt\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.key attribute\"}]},\"cloudflare.r2.request.part_number\":{brief:\"The part number in a multipart upload operation\",type:\"integer\",keys:[\"cloudflare.r2.request.part_number\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.part_number attribute\"}]},\"cloudflare.r2.request.prefix\":{brief:\"The prefix used to filter objects in an R2 list operation\",type:\"string\",keys:[\"cloudflare.r2.request.prefix\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"images/\",changelog:[{version:\"0.11.1\",prs:[413],description:\"Added cloudflare.r2.request.prefix attribute\"}]},\"cloudflare.workflow.attempt\":{brief:\"The current attempt number for a Cloudflare Workflow step\",type:\"integer\",keys:[\"cloudflare.workflow.attempt\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.attempt attribute\"}]},\"cloudflare.workflow.retries.backoff\":{brief:\"The backoff strategy for Cloudflare Workflow step retries\",type:\"string\",keys:[\"cloudflare.workflow.retries.backoff\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"exponential\",changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.retries.backoff attribute\"}]},\"cloudflare.workflow.retries.delay\":{brief:\"The delay between Cloudflare Workflow step retries\",type:\"string\",keys:[\"cloudflare.workflow.retries.delay\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"5 seconds\",changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.retries.delay attribute\"}]},\"cloudflare.workflow.retries.limit\":{brief:\"The maximum number of retries for a Cloudflare Workflow step\",type:\"integer\",keys:[\"cloudflare.workflow.retries.limit\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:3,changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.retries.limit attribute\"}]},\"cloudflare.workflow.timeout\":{brief:\"The timeout duration for a Cloudflare Workflow step\",type:\"string\",keys:[\"cloudflare.workflow.timeout\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1 minute\",changelog:[{version:\"0.11.0\",prs:[392],description:\"Added cloudflare.workflow.timeout attribute\"}]},\"cloud.account.id\":{brief:\"The cloud account ID the resource is assigned to\",type:\"string\",keys:[\"cloud.account.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"123456789012\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.account.id attribute\"}]},\"cloud.availability_zone\":{brief:\"Cloud regions often have multiple, isolated locations known as zones to increase availability\",type:\"string\",keys:[\"cloud.availability_zone\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"us-east-1c\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.availability_zone attribute\"}]},\"cloud.platform\":{brief:\"The cloud platform in use\",type:\"string\",keys:[\"cloud.platform\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"aws_lambda\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.platform attribute\"}]},\"cloud.provider\":{brief:\"Name of the cloud provider\",type:\"string\",keys:[\"cloud.provider\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"aws\",changelog:[{version:\"0.7.0\",prs:[364],description:\"Added cloud.provider attribute\"}]},\"cloud.region\":{brief:\"The geographical region the resource is running\",type:\"string\",keys:[\"cloud.region\",\"aws_region\",\"gcp_region\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"us-east-1\",aliases:[\"aws_region\",\"gcp_region\"],changelog:[{version:\"0.19.0\",prs:[535,537],description:\"Added aws_region and gcp_region as aliases\"},{version:\"0.7.0\",prs:[364],description:\"Added cloud.region attribute\"}]},\"cloud.resource_id\":{brief:\"Cloud provider-specific native identifier of the monitored cloud resource\",type:\"string\",keys:[\"cloud.resource_id\",\"faas.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function\",aliases:[\"faas.id\"],changelog:[{version:\"0.16.0\",prs:[475],description:\"Added faas.id as an alias\"},{version:\"0.11.1\",prs:[414]}],additionalContext:[\"This can be an identifier for a resource in AWS, GCP, or Azure. There may be some overlap in values found here with other attributes. For instance, an AWS lambda ARN may be found here as well as in `aws.lambda.invoked_arn`. OTEL recommends setting them alongside each other.\"]},cls:{brief:\"The value of the recorded Cumulative Layout Shift (CLS) web vital\",type:\"double\",keys:[\"browser.web_vital.cls.value\",\"cls\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.2361,deprecation:{replacement:\"browser.web_vital.cls.value\",reason:\"The CLS web vital is now recorded as a browser.web_vital.cls.value attribute.\",status:\"backfill\"},aliases:[\"browser.web_vital.cls.value\"],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},\"cls.source.<key>\":{brief:\"The HTML elements or components responsible for the layout shift. <key> is a numeric index from 1 to N\",type:\"string\",keys:[\"browser.web_vital.cls.source.<key>\",\"cls.source.<key>\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"body > div#app\",deprecation:{replacement:\"browser.web_vital.cls.source.<key>\",reason:\"The CLS source is now recorded as a browser.web_vital.cls.source.<key> attribute.\",status:\"backfill\"},aliases:[\"browser.web_vital.cls.source.<key>\"],changelog:[{version:\"0.5.0\",prs:[234]}]},code:{brief:\"Status code of the RPC returned by the RPC server or generated by the client.\",type:\"string\",keys:[\"rpc.response.status_code\",\"code\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"DEADLINE_EXCEEDED\",examples:[\"DEADLINE_EXCEEDED\"],deprecation:{replacement:\"rpc.response.status_code\",status:\"backfill\"},aliases:[\"rpc.grpc.status_code\",\"rpc.response.status_code\"],changelog:[{version:\"0.19.0\",prs:[533],description:\"Added code attribute\"}]},\"code.filepath\":{brief:\"The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).\",type:\"string\",keys:[\"code.file.path\",\"sveltekit.load.node_id\",\"code.filepath\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"/app/myapplication/http/handler/server.py\",deprecation:{replacement:\"code.file.path\",status:\"backfill\"},aliases:[\"code.file.path\",\"sveltekit.load.node_id\"],changelog:[{version:\"0.22.0\",prs:[611],description:\"Added sveltekit.load.node_id as an alias\"},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"code.file.path\":{brief:\"The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path).\",type:\"string\",keys:[\"code.file.path\",\"sveltekit.load.node_id\",\"code.filepath\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"/app/myapplication/http/handler/server.py\",aliases:[\"code.filepath\",\"sveltekit.load.node_id\"],changelog:[{version:\"0.22.0\",prs:[611],description:\"Added sveltekit.load.node_id as an alias\"},{version:\"0.0.0\"}]},\"code.function\":{brief:\"The method or function name, or equivalent (usually rightmost part of the code unit's name).\",type:\"string\",keys:[\"code.function\",\"code.function.name\",\"django.function_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"server_request\",aliases:[\"code.function.name\",\"django.function_name\"],changelog:[{version:\"0.19.0\",prs:[538],description:\"Added django.function_name as an alias\"},{version:\"0.1.0\",prs:[61,74]},{version:\"0.0.0\"}]},\"code.function.name\":{brief:\"The method or function fully-qualified name without arguments.\",type:\"string\",keys:[\"code.function.name\",\"code.function\",\"django.function_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"server_request\",aliases:[\"code.function\",\"django.function_name\"],changelog:[{version:\"0.19.0\",prs:[538],description:\"Added django.function_name as an alias\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"code.lineno\":{brief:\"The line number in code.filepath best representing the operation. It SHOULD point within the code unit named in code.function\",type:\"integer\",keys:[\"code.line.number\",\"code.lineno\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:42,deprecation:{replacement:\"code.line.number\",status:\"backfill\"},aliases:[\"code.line.number\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61,108]},{version:\"0.0.0\"}]},\"code.line.number\":{brief:\"The line number in code.filepath best representing the operation. It SHOULD point within the code unit named in code.function\",type:\"integer\",keys:[\"code.line.number\",\"code.lineno\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:42,aliases:[\"code.lineno\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"code.namespace\":{brief:\"The 'namespace' within which code.function is defined. Usually the qualified class or module name, such that code.namespace + some separator + code.function form a unique identifier for the code unit.\",type:\"string\",keys:[\"code.namespace\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"http.handler\",changelog:[{version:\"0.1.0\",prs:[61,74]},{version:\"0.0.0\"}]},connectionType:{brief:\"Specifies the type of the current connection (e.g. wifi, ethernet, cellular , etc).\",type:\"string\",keys:[\"network.connection.type\",\"connectionType\",\"device.connection_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"wifi\",deprecation:{replacement:\"network.connection.type\",reason:\"Old namespace-less attribute, to be replaced with network.connection.type for span-first future\",status:\"backfill\"},aliases:[\"network.connection.type\",\"device.connection_type\"],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},\"connection.rtt\":{brief:\"Specifies the estimated effective round-trip time of the current connection, in milliseconds.\",type:\"integer\",keys:[\"network.connection.rtt\",\"connection.rtt\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:100,deprecation:{replacement:\"network.connection.rtt\",reason:\"Old attribute name (no official namespace), to be replaced with network.connection.rtt for span-first future\",status:\"backfill\"},aliases:[\"network.connection.rtt\"],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},\"culture.calendar\":{brief:\"The calendar system used by the culture.\",type:\"string\",keys:[\"culture.calendar\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"GregorianCalendar\",changelog:[{version:\"0.4.0\",prs:[243]}]},\"culture.display_name\":{brief:\"Human readable name of the culture.\",type:\"string\",keys:[\"culture.display_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"English (United States)\",changelog:[{version:\"0.4.0\",prs:[243]}]},\"culture.is_24_hour_format\":{brief:\"Whether the culture uses 24-hour time format.\",type:\"boolean\",keys:[\"culture.is_24_hour_format\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.4.0\",prs:[243]}]},\"culture.locale\":{brief:\"The locale identifier following RFC 4646.\",type:\"string\",keys:[\"culture.locale\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"en-US\",changelog:[{version:\"0.4.0\",prs:[243]}]},\"culture.timezone\":{brief:\"The timezone of the culture, as a geographic timezone identifier.\",type:\"string\",keys:[\"culture.timezone\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Europe/Vienna\",changelog:[{version:\"0.4.0\",prs:[243]}]},\"db.collection.name\":{brief:\"The name of a collection (table, container) within the database.\",type:\"string\",keys:[\"db.collection.name\",\"db.mongodb.collection\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"users\",aliases:[\"db.mongodb.collection\"],changelog:[{version:\"0.19.0\",prs:[483],description:\"Added db.mongodb.collection as an alias\"},{version:\"0.1.0\",prs:[106,127]},{version:\"0.0.0\"}]},\"db.connection_string\":{brief:\"The connection string used to connect to the database.\",type:\"string\",keys:[\"db.connection_string\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"redis://localhost:6379\",examples:[\"redis://localhost:6379\"],deprecation:{reason:\"This attribute is deprecated. The connection is described by server.address and server.port instead, so the value cannot be copied to a single replacement attribute.\"},changelog:[{version:\"0.21.0\",prs:[581],description:\"Added db.connection_string attribute\"}]},\"db.driver.name\":{brief:\"The name of the driver used for the database connection.\",type:\"string\",keys:[\"db.driver.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"psycopg2\",changelog:[{version:\"0.5.0\",prs:[297],description:\"Added db.driver.name attribute\"}]},\"db.mongodb.collection\":{brief:\"The MongoDB collection being accessed.\",type:\"string\",keys:[\"db.collection.name\",\"db.mongodb.collection\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"users\",deprecation:{replacement:\"db.collection.name\",reason:\"This attribute is being deprecated in favor of db.collection.name, which is the OTel-aligned replacement.\",status:\"backfill\"},aliases:[\"db.collection.name\"],changelog:[{version:\"0.19.0\",prs:[483],description:\"Added db.mongodb.collection attribute, deprecated in favor of db.collection.name\"}]},\"db.name\":{brief:\"The name of the database being accessed.\",type:\"string\",keys:[\"db.namespace\",\"db.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"customers\",deprecation:{replacement:\"db.namespace\",status:\"backfill\"},aliases:[\"db.namespace\"],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"db.namespace\":{brief:\"The name of the database being accessed.\",type:\"string\",keys:[\"db.namespace\",\"db.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"customers\",aliases:[\"db.name\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"db.operation\":{brief:\"The name of the operation being executed.\",type:\"string\",keys:[\"db.operation.name\",\"cloudflare.d1.query_type\",\"db.operation\",\"redis.command\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"SELECT\",deprecation:{replacement:\"db.operation.name\",status:\"normalize\"},aliases:[\"db.operation.name\",\"cloudflare.d1.query_type\",\"redis.command\"],changelog:[{version:\"0.19.0\",prs:[531],description:\"Added redis.command as an alias\"},{version:\"0.4.0\",prs:[199]},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"db.operation.batch.size\":{brief:\"The number of queries included in a batch operation. Operations are only considered batches when they contain two or more operations, and so db.operation.batch.size SHOULD never be 1.\",type:\"integer\",keys:[\"db.operation.batch.size\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:3,changelog:[{version:\"0.11.0\",prs:[407],description:\"Added db.operation.batch.size attribute\"}]},\"db.operation.name\":{brief:\"The name of the operation being executed.\",type:\"string\",keys:[\"db.operation.name\",\"cloudflare.d1.query_type\",\"db.operation\",\"redis.command\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"SELECT\",aliases:[\"db.operation\",\"cloudflare.d1.query_type\",\"redis.command\"],changelog:[{version:\"0.19.0\",prs:[531],description:\"Added redis.command as an alias\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"db.params\":{brief:\"The query bindings for a database request.\",type:\"string\",keys:[\"db.params\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:'[{\"x\": 100}]',examples:['[{\"x\": 100}]'],deprecation:{replacement:\"db.query.parameter.<key>\",reason:\"Instead of adding every binding in the db.params attribute, add them as individual entries with db.query.parameter.<key>.\"},changelog:[{version:\"0.19.0\",prs:[529],description:\"Added db.params attribute\"}]},\"db.query.parameter.<key>\":{brief:\"A query parameter used in db.query.text, with <key> being the parameter name, and the attribute value being a string representation of the parameter value.\",type:\"string\",keys:[\"db.query.parameter.<key>\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",hasDynamicSuffix:!0,example:\"db.query.parameter.foo='123'\",changelog:[{version:\"0.1.0\",prs:[103,127]}]},\"db.query.summary\":{brief:\"A shortened representation of operation(s) in the full query. This attribute must be low-cardinality and should only contain the operation table names.\",type:\"string\",keys:[\"db.query.summary\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"SELECT users\",examples:[\"SELECT users\",\"INSERT products; UPDATE orders\"],changelog:[{version:\"0.19.0\",prs:[505],description:\"Added multiple examples\"},{version:\"0.4.0\",prs:[208]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"db.query.text\":{brief:\"The database parameterized query being executed. Any parameter values (filters, insertion values, etc) should be replaced with parameter placeholders. If applicable, use `db.query.parameter.<key>` to add the parameter value.\",type:\"string\",keys:[\"db.query.text\",\"db.statement\",\"query\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"SELECT * FROM users WHERE id = $1\",aliases:[\"db.statement\",\"query\"],changelog:[{version:\"0.19.0\",prs:[530],description:\"Added query as an alias\"},{version:\"0.4.0\",prs:[208]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"db.redis.connection\":{brief:\"The redis connection name.\",type:\"string\",keys:[\"db.redis.connection\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"my-redis-instance\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"db.redis.key\":{brief:\"The key the Redis command is operating on.\",type:\"string\",keys:[\"db.redis.key\",\"redis.key\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"user:2047:city\",aliases:[\"redis.key\"],changelog:[{version:\"0.19.0\",prs:[484],description:\"Added redis.key as an alias\"},{version:\"0.6.0\",prs:[326],description:\"Added db.redis.key attribute\"}]},\"db.redis.parameters\":{brief:\"The array of command parameters given to a redis command.\",type:\"string[]\",keys:[\"db.redis.parameters\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"test\",\"*\"],changelog:[{version:\"0.0.0\"}]},\"db.response.status_code\":{brief:\"Database response status code. The status code returned by the database. Usually it represents an error code, but may also represent partial success, warning, or differentiate between various types of successful outcomes.\",type:\"string\",keys:[\"db.response.status_code\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"ORA-17002\",changelog:[{version:\"0.16.0\",prs:[462],description:\"Added db.response.status_code attribute\"}]},\"db.sql.bindings\":{brief:\"The array of query bindings.\",type:\"string[]\",keys:[\"db.sql.bindings\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"1\",\"foo\"],deprecation:{replacement:\"db.query.parameter.<key>\",reason:\"Instead of adding every binding in the db.sql.bindings attribute, add them as individual entires with db.query.parameter.<key>.\"},changelog:[{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"db.statement\":{brief:\"The database statement being executed.\",type:\"string\",keys:[\"db.query.text\",\"db.statement\",\"query\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"SELECT * FROM users WHERE id = $1\",deprecation:{replacement:\"db.query.text\",reason:\"While this attribute never specifically required parameterization, the replacement, db.query.text, does.\",status:\"normalize\"},aliases:[\"db.query.text\",\"query\"],changelog:[{version:\"0.19.0\",prs:[501],description:\"Improved example, added deprecation reason, and added query as an alias\"},{version:\"0.4.0\",prs:[199]},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"db.stored_procedure.name\":{brief:\"The name of a stored procedure being called.\",type:\"string\",keys:[\"db.stored_procedure.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"GetUserById\",changelog:[{version:\"0.11.0\",prs:[398]}]},\"db.system\":{brief:\"An identifier for the database management system (DBMS) product being used. See [OpenTelemetry docs](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/database/database-spans.md#notes-and-well-known-identifiers-for-dbsystem) for a list of well-known identifiers.\",type:\"string\",keys:[\"db.system.name\",\"db.system\",\"span.system\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"postgresql\",deprecation:{replacement:\"db.system.name\",status:\"backfill\"},aliases:[\"db.system.name\"],changelog:[{version:\"0.4.0\",prs:[199,224]},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}],searchAlias:{name:\"db.system\",deprecatedAliases:[\"span.system\"]}},\"db.system.name\":{brief:\"An identifier for the database management system (DBMS) product being used. See [OpenTelemetry docs](https://github.com/open-telemetry/semantic-conventions/blob/main/docs/database/database-spans.md#notes-and-well-known-identifiers-for-dbsystem) for a list of well-known identifiers.\",type:\"string\",keys:[\"db.system.name\",\"db.system\",\"span.system\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"postgresql\",aliases:[\"db.system\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"db.user\":{brief:\"The database user.\",type:\"string\",keys:[\"db.user\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"fancy_user\",changelog:[{version:\"0.0.0\"}]},deviceMemory:{brief:\"The estimated total memory capacity of the device, only a rough estimation in gigabytes.\",type:\"string\",keys:[\"device.memory.estimated_capacity\",\"deviceMemory\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"8 GB\",deprecation:{replacement:\"device.memory.estimated_capacity\",reason:\"Old namespace-less attribute, to be replaced with device.memory.estimated_capacity for span-first future\",status:\"backfill\"},aliases:[\"device.memory.estimated_capacity\"],changelog:[{version:\"0.5.0\",prs:[281],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},\"device.archs\":{brief:\"The CPU architectures of the device.\",type:\"string[]\",keys:[\"device.archs\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:[\"arm64-v8a\",\"armeabi-v7a\",\"armeabi\"],changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.archs attribute\"}]},\"device.battery_level\":{brief:\"The battery level of the device as a percentage (0-100).\",type:\"double\",keys:[\"device.battery_level\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:100,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.battery_level attribute\"}]},\"device.battery_temperature\":{brief:\"The battery temperature of the device in Celsius.\",type:\"double\",keys:[\"device.battery_temperature\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:25,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.battery_temperature attribute\"}]},\"device.boot_time\":{brief:\"A formatted UTC timestamp when the system was booted.\",type:\"string\",keys:[\"device.boot_time\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"2018-02-08T12:52:12Z\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.boot_time attribute\"}]},\"device.brand\":{brief:\"The brand of the device.\",type:\"string\",keys:[\"device.brand\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Apple\",changelog:[{version:\"0.1.0\",prs:[116,127]}]},\"device.charging\":{brief:\"Whether the device was charging or not.\",type:\"boolean\",keys:[\"device.charging\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!1,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.charging attribute\"}]},\"device.chipset\":{brief:\"The chipset of the device.\",type:\"string\",keys:[\"device.chipset\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Qualcomm SM8550\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.chipset attribute\"}]},\"device.class\":{brief:\"The classification of the device. For example, `low`, `medium`, or `high`. Typically inferred by Relay - SDKs generally do not need to set this directly.\",type:\"string\",keys:[\"device.class\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"medium\",changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.class attribute\"}]},\"device.connection_type\":{brief:\"The internet connection type currently being used by the device.\",type:\"string\",keys:[\"network.connection.type\",\"connectionType\",\"device.connection_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"wifi\",deprecation:{replacement:\"network.connection.type\",reason:\"This attribute is being deprecated in favor of network.connection.type\",status:\"backfill\"},aliases:[\"network.connection.type\",\"connectionType\"],changelog:[{version:\"0.5.0\",prs:[303],description:\"Added and deprecated device.connection_type in favor of network.connection.type\"}]},\"device.cpu_description\":{brief:\"A description of the CPU of the device.\",type:\"string\",keys:[\"device.cpu_description\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.cpu_description attribute\"}]},\"device.external_free_storage\":{brief:\"External storage free size in bytes.\",type:\"integer\",keys:[\"device.external_free_storage\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:67108864e3,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.external_free_storage attribute\"}]},\"device.external_storage_size\":{brief:\"External storage total size in bytes.\",type:\"integer\",keys:[\"device.external_storage_size\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:134217728e3,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.external_storage_size attribute\"}]},\"device.family\":{brief:\"The family of the device.\",type:\"string\",keys:[\"device.family\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"iPhone\",changelog:[{version:\"0.1.0\",prs:[116,127]}]},\"device.free_memory\":{brief:\"Free system memory in bytes.\",type:\"integer\",keys:[\"device.free_memory\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2147483648,changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.free_memory attribute\"}]},\"device.free_storage\":{brief:\"Free device storage in bytes.\",type:\"integer\",keys:[\"device.free_storage\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:107374182400,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.free_storage attribute\"}]},\"device.id\":{brief:\"Unique device identifier.\",type:\"string\",keys:[\"device.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.id attribute\"}]},\"device.locale\":{brief:\"The locale of the device.\",type:\"string\",keys:[\"device.locale\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"en-US\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.locale attribute\"}]},\"device.low_memory\":{brief:\"Whether the device was low on memory.\",type:\"boolean\",keys:[\"device.low_memory\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!1,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.low_memory attribute\"}]},\"device.low_power_mode\":{brief:\"Whether the device is in Low Power Mode.\",type:\"boolean\",keys:[\"device.low_power_mode\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.6.0\",prs:[314],description:\"Added device.low_power_mode attribute\"}]},\"device.manufacturer\":{brief:\"The manufacturer of the device.\",type:\"string\",keys:[\"device.manufacturer\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Google\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.manufacturer attribute\"}]},\"device.memory.estimated_capacity\":{brief:\"The estimated total memory capacity of the device, only a rough estimation in gigabytes. Browsers report estimations in buckets of powers of 2, mostly capped at 8 GB\",type:\"integer\",keys:[\"device.memory.estimated_capacity\",\"deviceMemory\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:8,aliases:[\"deviceMemory\"],changelog:[{version:\"0.5.0\",prs:[281],description:\"Added attribute device.memory.estimated_capacity to be used instead of deviceMemory\"}]},\"device.memory_size\":{brief:\"Total system memory available in bytes.\",type:\"integer\",keys:[\"device.memory_size\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:17179869184,changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.memory_size attribute\"}]},\"device.model\":{brief:\"The model of the device.\",type:\"string\",keys:[\"device.model\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"iPhone 15 Pro Max\",changelog:[{version:\"0.1.0\",prs:[116,127]}]},\"device.model_id\":{brief:\"An internal hardware revision to identify the device exactly.\",type:\"string\",keys:[\"device.model_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"N861AP\",changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.model_id attribute\"}]},\"device.name\":{brief:\"The user-assigned name of the mobile device.\",type:\"string\",keys:[\"device.name\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"localhost\",changelog:[{version:\"0.24.0\",prs:[647],description:\"Limit brief to mobile attributes and remove server_name alias\"},{version:\"0.21.0\",prs:[602],description:\"Added server_name as an alias\"},{version:\"0.5.0\",prs:[303],description:\"Added device.name attribute\"}]},\"device.online\":{brief:\"Whether the device was online or not.\",type:\"boolean\",keys:[\"device.online\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.online attribute\"}]},\"device.orientation\":{brief:'The orientation of the device, either \"portrait\" or \"landscape\".',type:\"string\",keys:[\"device.orientation\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"portrait\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.orientation attribute\"}]},\"device.processor_count\":{brief:'Number of \"logical processors\".',type:\"integer\",keys:[\"device.processor_count\",\"hardwareConcurrency\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:8,aliases:[\"hardwareConcurrency\"],changelog:[{version:\"0.5.0\",prs:[300],description:\"Added and deprecated attribute device.processor_count in favor of device.cpu.logical_core_count\"}]},\"device.processor_frequency\":{brief:\"Processor frequency in MHz.\",type:\"double\",keys:[\"device.processor_frequency\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2400,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.processor_frequency attribute\"}]},\"device.screen_density\":{brief:\"The screen density of the device.\",type:\"double\",keys:[\"device.screen_density\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2.625,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_density attribute\"}]},\"device.screen_dpi\":{brief:\"The screen density in dots-per-inch (DPI) of the device.\",type:\"integer\",keys:[\"device.screen_dpi\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:420,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_dpi attribute\"}]},\"device.screen_height_pixels\":{brief:\"The height of the device screen in pixels.\",type:\"integer\",keys:[\"device.screen_height_pixels\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2400,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_height_pixels attribute\"}]},\"device.screen_width_pixels\":{brief:\"The width of the device screen in pixels.\",type:\"integer\",keys:[\"device.screen_width_pixels\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1080,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.screen_width_pixels attribute\"}]},\"device.simulator\":{brief:\"Whether the device is a simulator or an actual device.\",type:\"boolean\",keys:[\"device.simulator\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!1,changelog:[{version:\"0.5.0\",prs:[300],description:\"Added device.simulator attribute\"}]},\"device.storage_size\":{brief:\"Total device storage in bytes.\",type:\"integer\",keys:[\"device.storage_size\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:274877906944,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.storage_size attribute\"}]},\"device.thermal_state\":{brief:\"The thermal state of the device. Based on Apple's `ProcessInfo.ThermalState` enum: `nominal`, `fair`, `serious`, or `critical`.\",type:\"string\",keys:[\"device.thermal_state\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"nominal\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.thermal_state attribute\"}]},\"device.timezone\":{brief:\"The timezone of the device.\",type:\"string\",keys:[\"device.timezone\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Europe/Vienna\",changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.timezone attribute\"}]},\"device.usable_memory\":{brief:\"Memory usable for the app in bytes.\",type:\"integer\",keys:[\"device.usable_memory\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2147483648,changelog:[{version:\"0.5.0\",prs:[303],description:\"Added device.usable_memory attribute\"}]},dist:{brief:\"The sentry dist.\",type:\"string\",keys:[\"sentry.dist\",\"dist\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"1.0\",deprecation:{replacement:\"sentry.dist\",reason:\"This attribute is being deprecated in favor of sentry.dist.\",status:\"backfill\"},aliases:[\"sentry.dist\"],changelog:[{version:\"0.16.0\",prs:[489],description:\"Added dist attribute\"}]},\"django.function_name\":{brief:\"The fully qualified name of a function used in a Django context.\",type:\"string\",keys:[\"code.function.name\",\"code.function\",\"django.function_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"django.contrib.sessions.middleware.SessionMiddleware\",examples:[\"django.contrib.sessions.middleware.SessionMiddleware\"],deprecation:{replacement:\"code.function.name\",reason:\"This attribute is being deprecated in favor of code.function.name, which is the framework-agnostic replacement.\",status:\"backfill\"},aliases:[\"code.function.name\",\"code.function\"],changelog:[{version:\"0.19.0\",prs:[538],description:\"Added django.function_name attribute\"}]},\"django.middleware_name\":{brief:\"The name of the Django middleware.\",type:\"string\",keys:[\"middleware.name\",\"django.middleware_name\",\"litestar.middleware_name\",\"starlette.middleware_name\",\"starlite.middleware_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"AuthenticationMiddleware\",examples:[\"AuthenticationMiddleware\"],deprecation:{replacement:\"middleware.name\",reason:\"This attribute is being deprecated in favor of middleware.name, which is the framework-agnostic replacement.\",status:\"backfill\"},aliases:[\"middleware.name\"],changelog:[{version:\"0.19.0\",prs:[520],description:\"Added django.middleware_name attribute\"}]},effectiveConnectionType:{brief:\"Specifies the estimated effective type of the current connection (e.g. slow-2g, 2g, 3g, 4g).\",type:\"string\",keys:[\"network.connection.effective_type\",\"effectiveConnectionType\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"4g\",deprecation:{replacement:\"network.connection.effective_type\",reason:\"Old namespace-less attribute, to be replaced with network.connection.effective_type for span-first future\",status:\"backfill\"},aliases:[\"network.connection.effective_type\"],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},environment:{brief:\"The sentry environment.\",type:\"string\",keys:[\"sentry.environment\",\"environment\",\"resource.deployment.environment\",\"resource.deployment.environment.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.environment\",status:\"normalize\"},aliases:[\"sentry.environment\"],changelog:[{version:\"0.19.0\",prs:[427],description:\"Configured normalization\"},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"error.type\":{brief:\"Describes a class of error the operation ended with.\",type:\"string\",keys:[\"error.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"timeout\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"event.id\":{brief:\"The unique identifier for this event (log record)\",type:\"integer\",keys:[\"event.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234567890,changelog:[{version:\"0.1.0\",prs:[101]}]},\"event.name\":{brief:\"The name that uniquely identifies this event (log record)\",type:\"string\",keys:[\"event.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Process Payload\",changelog:[{version:\"0.1.0\",prs:[101,127]}]},\"exception.escaped\":{brief:\"SHOULD be set to true if the exception event is recorded at a point where it is known that the exception is escaping the scope of the span.\",type:\"boolean\",keys:[\"exception.escaped\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"exception.message\":{brief:\"The error message.\",type:\"string\",keys:[\"exception.message\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"ENOENT: no such file or directory\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"exception.stacktrace\":{brief:\"A stacktrace as a string in the natural representation for the language runtime. The representation is to be determined and documented by each language SIG.\",type:\"string\",keys:[\"exception.stacktrace\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:`Exception in thread \"main\" java.lang.RuntimeException: Test exception\n at com.example.GenerateTrace.methodB(GenerateTrace.java:13)\n at com.example.GenerateTrace.methodA(GenerateTrace.java:9)\n at com.example.GenerateTrace.main(GenerateTrace.java:5)`,changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"exception.type\":{brief:\"The type of the exception (its fully-qualified class name, if applicable). The dynamic type of the exception should be preferred over the static type in languages that support it.\",type:\"string\",keys:[\"exception.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"OSError\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"faas.coldstart\":{brief:\"A boolean that is true if the serverless function is executed for the first time (aka cold-start).\",type:\"boolean\",keys:[\"faas.coldstart\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"faas.cron\":{brief:\"A string containing the schedule period as Cron Expression.\",type:\"string\",keys:[\"faas.cron\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"0/5 * * * ? *\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"faas.duration_in_ms\":{brief:\"The duration a function took to run, in milliseconds.\",type:\"integer\",keys:[\"faas.duration_in_ms\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:120,changelog:[{version:\"0.11.0\",prs:[403]}]},\"faas.entry_point\":{brief:\"The code that's run when the cloud provider invokes your function.\",type:\"string\",keys:[\"faas.entry_point\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"my_main_function\",changelog:[{version:\"0.11.0\",prs:[403,415]}]},\"faas.execution\":{brief:\"The execution ID of the current function execution.\",type:\"string\",keys:[\"faas.invocation_id\",\"aws.lambda.aws_request_id\",\"faas.execution\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"af9d5aa4-a685-4c5f-a22b-444f80b3cc28\",deprecation:{replacement:\"faas.invocation_id\",reason:\"This attribute is being deprecated in favor of faas.invocation_id, which is the OTel-aligned replacement.\",status:\"backfill\"},aliases:[\"faas.invocation_id\",\"aws.lambda.aws_request_id\"],changelog:[{version:\"0.16.0\",prs:[473],description:\"Added faas.execution attribute, deprecated in favor of faas.invocation_id\"}]},\"faas.id\":{brief:\"The unique ID of the single function that this runtime instance executes.\",type:\"string\",keys:[\"cloud.resource_id\",\"faas.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"arn:aws:lambda:REGION:ACCOUNT_ID:function:my-function\",deprecation:{replacement:\"cloud.resource_id\",reason:\"This attribute is being deprecated in favor of cloud.resource_id, which is the OTel-aligned replacement (renamed in OTel semantic conventions v1.19.0).\",status:\"backfill\"},aliases:[\"cloud.resource_id\"],changelog:[{version:\"0.16.0\",prs:[475],description:\"Added faas.id attribute, deprecated in favor of cloud.resource_id\"}]},\"faas.identity\":{brief:\"The Service Account (GCP), IAM Execution Role (AWS), or Managed Identity (Azure) used by the serverless function when interacting with other cloud services\",type:\"string\",keys:[\"faas.identity\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"name@project.iam.gserviceaccount.com (GCP), arn:aws:iam::123456789012:role/role-name (AWS), 00000000-0000-0000-0000-000000000000 (Azure)\",changelog:[{version:\"0.11.0\",prs:[403]}]},\"faas.invocation_id\":{brief:\"The invocation ID of the current function invocation.\",type:\"string\",keys:[\"faas.invocation_id\",\"aws.lambda.aws_request_id\",\"faas.execution\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"af9d5aa4-a685-4c5f-a22b-444f80b3cc28\",aliases:[\"aws.lambda.aws_request_id\",\"faas.execution\"],changelog:[{version:\"0.16.0\",prs:[473],description:\"Added faas.execution as an alias\"},{version:\"0.11.1\",prs:[414,424]}]},\"faas.invoked_name\":{brief:\"The name of the invoked function.\",type:\"string\",keys:[\"faas.invoked_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"my-function\",changelog:[{version:\"0.16.0\",prs:[481],description:\"Added faas.invoked_name attribute\"}]},\"faas.invoked_provider\":{brief:\"The cloud provider of the invoked function.\",type:\"string\",keys:[\"faas.invoked_provider\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"aws\",changelog:[{version:\"0.16.0\",prs:[481],description:\"Added faas.invoked_provider attribute\"}]},\"faas.invoked_region\":{brief:\"The cloud region of the invoked function.\",type:\"string\",keys:[\"faas.invoked_region\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"eu-central-1\",changelog:[{version:\"0.16.0\",prs:[481],description:\"Added faas.invoked_region attribute\"}]},\"faas.name\":{brief:\"The name of the serverless function\",type:\"string\",keys:[\"faas.name\",\"aws.lambda.function_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"my_function\",aliases:[\"aws.lambda.function_name\"],changelog:[{version:\"0.11.0\",prs:[403,415]}]},\"faas.time\":{brief:\"A string containing the function invocation time in the ISO 8601 format expressed in UTC.\",type:\"string\",keys:[\"faas.time\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"2020-01-23T13:47:06Z\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"faas.trigger\":{brief:\"Type of the trigger which caused this function invocation.\",type:\"string\",keys:[\"faas.trigger\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"timer\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"faas.version\":{brief:\"The version of the function that was invoked\",type:\"string\",keys:[\"faas.version\",\"aws.lambda.function_version\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"$LATEST\",aliases:[\"aws.lambda.function_version\"],changelog:[{version:\"0.11.1\",prs:[414,424]}]},fcp:{brief:\"The time it takes for the browser to render the first piece of meaningful content on the screen\",type:\"double\",keys:[\"browser.web_vital.fcp.value\",\"fcp\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:547.6951,deprecation:{replacement:\"browser.web_vital.fcp.value\",reason:\"This attribute is being deprecated in favor of browser.web_vital.fcp.value\",status:\"backfill\"},aliases:[\"browser.web_vital.fcp.value\"],changelog:[{version:\"0.5.0\",prs:[235]}]},\"file.path\":{brief:\"Path to the file.\",type:\"string\",keys:[\"file.path\"],applyScrubbing:{key:\"auto\",reason:\"File paths can contain end-user paths (e.g. from stack traces) that may be sensitive.\"},isInOtel:!0,visibility:\"public\",example:\"/home/user/example.txt\",changelog:[{version:\"0.17.0\",prs:[458],description:\"Added file.path attribute\"}]},\"file.size\":{brief:\"File size in bytes.\",type:\"integer\",keys:[\"file.size\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:1024,changelog:[{version:\"0.17.0\",prs:[458],description:\"Added file.size attribute\"}]},\"flag.evaluation.<key>\":{brief:\"An instance of a feature flag evaluation. The value of this attribute is the boolean representing the evaluation result. The <key> suffix is the name of the feature flag.\",type:\"boolean\",keys:[\"flag.evaluation.<key>\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"flag.evaluation.is_new_ui=true\",changelog:[{version:\"0.1.0\",prs:[103]}]},fp:{brief:\"The time it takes for the browser to render the first pixel on the screen\",type:\"double\",keys:[\"browser.web_vital.fp.value\",\"fp\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:477.1926,deprecation:{replacement:\"browser.web_vital.fp.value\",reason:\"This attribute is being deprecated in favor of browser.web_vital.fp.value\",status:\"backfill\"},aliases:[\"browser.web_vital.fp.value\"],changelog:[{version:\"0.5.0\",prs:[235]}]},\"frames.delay\":{brief:\"The sum of all delayed frame durations in seconds during the lifetime of the span. For more information see [frames delay](https://develop.sentry.dev/sdk/performance/frames-delay/).\",type:\"integer\",keys:[\"app.vitals.frames.delay.value\",\"frames.delay\",\"mobile.frames_delay\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:5,deprecation:{replacement:\"app.vitals.frames.delay.value\",reason:\"Replaced by app.vitals.frames.delay.value to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.frames.delay.value\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.delay.value\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}],searchAlias:{name:\"mobile.frames_delay\",type:\"second\"}},\"frames.frozen\":{brief:\"The number of frozen frames rendered during the lifetime of the span.\",type:\"integer\",keys:[\"app.vitals.frames.frozen.count\",\"frames.frozen\",\"mobile.frozen_frames\",\"sentry.frames.frozen\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:3,deprecation:{replacement:\"app.vitals.frames.frozen.count\",reason:\"Replaced by app.vitals.frames.frozen.count to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.frames.frozen.count\",\"sentry.frames.frozen\"],changelog:[{version:\"0.19.0\",prs:[500],description:\"Added sentry.frames.frozen as an alias\"},{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.frozen.count\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}],searchAlias:{name:\"mobile.frozen_frames\"}},frames_frozen_rate:{brief:\"The rate of frozen frames, or `app.vitals.frames.frozen.count` divided by `app.vitals.frames.total.count`. This is computed by Relay.\",type:\"double\",keys:[\"app.vitals.frames.frozen.rate\",\"frames_frozen_rate\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"app.vitals.frames.frozen.rate\",reason:\"Replaced by app.vitals.frames.frozen.rate to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.frames.frozen.rate\"],changelog:[{version:\"0.19.0\",prs:[493],description:\"Deprecated in favor of app.vitals.frames.frozen.rate\"},{version:\"0.7.0\",prs:[362],description:\"Added frames_frozen_rate attribute\"}]},\"frames.slow\":{brief:\"The number of slow frames rendered during the lifetime of the span.\",type:\"integer\",keys:[\"app.vitals.frames.slow.count\",\"frames.slow\",\"mobile.slow_frames\",\"sentry.frames.slow\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,deprecation:{replacement:\"app.vitals.frames.slow.count\",reason:\"Replaced by app.vitals.frames.slow.count to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.frames.slow.count\",\"sentry.frames.slow\"],changelog:[{version:\"0.19.0\",prs:[500],description:\"Added sentry.frames.slow as an alias\"},{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.slow.count\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}],searchAlias:{name:\"mobile.slow_frames\"}},frames_slow_rate:{brief:\"The rate of slow frames, or `app.vitals.frames.slow.count` divided by `app.vitals.frames.total.count`. This is computed by Relay.\",type:\"double\",keys:[\"app.vitals.frames.slow.rate\",\"frames_slow_rate\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"app.vitals.frames.slow.rate\",reason:\"Replaced by app.vitals.frames.slow.rate to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.frames.slow.rate\"],changelog:[{version:\"0.19.0\",prs:[493],description:\"Deprecated in favor of app.vitals.frames.slow.rate\"},{version:\"0.7.0\",prs:[362],description:\"Added frames_slow_rate attribute\"}]},\"frames.total\":{brief:\"The number of total frames rendered during the lifetime of the span.\",type:\"integer\",keys:[\"app.vitals.frames.total.count\",\"frames.total\",\"mobile.total_frames\",\"sentry.frames.total\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:60,deprecation:{replacement:\"app.vitals.frames.total.count\",reason:\"Replaced by app.vitals.frames.total.count to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.frames.total.count\",\"sentry.frames.total\"],changelog:[{version:\"0.19.0\",prs:[500],description:\"Added sentry.frames.total as an alias\"},{version:\"0.5.0\",prs:[313],description:\"Deprecated in favor of app.vitals.frames.total.count\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}],searchAlias:{name:\"mobile.total_frames\"}},fs_error:{brief:\"The error message of a file system error.\",type:\"string\",keys:[\"fs_error\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"ENOENT: no such file or directory\",deprecation:{replacement:\"error.type\",reason:\"This attribute is not part of the OpenTelemetry specification and error.type fits much better. The value changes from the full error message to the syscall error code, so the old value cannot be copied over.\"},changelog:[{version:\"0.23.0\",prs:[638],description:\"Remove unnecessary transformation and change deprecation status to null.\"},{version:\"0.22.0\",prs:[589],description:\"Transform fs_error into error.type\"},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"gcp.function.context.event_id\":{brief:\"The event ID from the legacy GCP Cloud Function context (1st gen)\",type:\"string\",keys:[\"gcp.function.context.event_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.event_id attribute\"}]},\"gcp.function.context.event_type\":{brief:\"The type of the GCP Cloud Function event\",type:\"string\",keys:[\"gcp.function.context.event_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"google.pubsub.topic.publish\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.event_type attribute\"}]},\"gcp.function.context.id\":{brief:\"The unique event ID from the GCP CloudEvents context (2nd gen Cloud Functions)\",type:\"string\",keys:[\"gcp.function.context.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.id attribute\"}]},\"gcp.function.context.resource\":{brief:\"The resource that triggered the GCP Cloud Function event\",type:\"string\",keys:[\"gcp.function.context.resource\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"projects/my-project/topics/my-topic\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.resource attribute\"}]},\"gcp.function.context.source\":{brief:\"The source of the GCP Cloud Function event\",type:\"string\",keys:[\"gcp.function.context.source\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"//pubsub.googleapis.com/projects/my-project/topics/my-topic\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.source attribute\"}]},\"gcp.function.context.specversion\":{brief:\"The CloudEvents specification version of the GCP Cloud Function event\",type:\"string\",keys:[\"gcp.function.context.specversion\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1.0\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.specversion attribute\"}]},\"gcp.function.context.time\":{brief:\"The timestamp of the GCP Cloud Function event\",type:\"string\",keys:[\"gcp.function.context.time\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"2024-01-01T00:00:00.000Z\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.time attribute\"}]},\"gcp.function.context.timestamp\":{brief:\"The legacy timestamp of the GCP Cloud Function event\",type:\"string\",keys:[\"gcp.function.context.timestamp\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"2024-01-01T00:00:00.000Z\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.timestamp attribute\"}]},\"gcp.function.context.type\":{brief:\"The type of the GCP Cloud Function event context\",type:\"string\",keys:[\"gcp.function.context.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"cloud_functions.context\",changelog:[{version:\"0.7.0\",prs:[371],description:\"Added gcp.function.context.type attribute\"}]},\"gcp.project.id\":{brief:\"The ID of the project in GCP that this resource is associated with\",type:\"string\",keys:[\"gcp.project.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"my-project-123\",changelog:[{version:\"0.11.0\",prs:[403]}]},gcp_region:{brief:\"The geographical region the GCP resource is running\",type:\"string\",keys:[\"cloud.region\",\"aws_region\",\"gcp_region\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"us-east-1\",examples:[\"us-east-1\"],deprecation:{replacement:\"cloud.region\",status:\"backfill\"},aliases:[\"cloud.region\",\"aws_region\"],changelog:[{version:\"0.19.0\",prs:[535],description:\"Added gcp_region attribute\"}]},\"gen_ai.agent.name\":{brief:\"The name of the agent being used.\",type:\"string\",keys:[\"gen_ai.agent.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"ResearchAssistant\",changelog:[{version:\"0.1.0\",prs:[62,127]}]},\"gen_ai.context.utilization\":{brief:\"The fraction of the model context window utilized by this generation.\",type:\"double\",keys:[\"gen_ai.context.utilization\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.75,changelog:[{version:\"0.5.0\",prs:[315],description:\"Added gen_ai.context.utilization attribute\"}]},\"gen_ai.context.window_size\":{brief:\"The maximum context window size supported by the model for this generation.\",type:\"integer\",keys:[\"gen_ai.context.window_size\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:128e3,changelog:[{version:\"0.5.0\",prs:[315],description:\"Added gen_ai.context.window_size attribute\"}]},\"gen_ai.conversation.id\":{brief:\"The unique identifier for a conversation (session, thread), used to store and correlate messages within this conversation.\",type:\"string\",keys:[\"gen_ai.conversation.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"conv_5j66UpCpwteGg4YSxUnt7lPY\",changelog:[{version:\"0.4.0\",prs:[250]}]},\"gen_ai.cost.cache_creation.input_tokens\":{brief:\"The cost of input tokens written to cache in USD.\",type:\"double\",keys:[\"gen_ai.cost.cache_creation.input_tokens\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12.34,changelog:[{version:\"0.16.0\",description:\"Added gen_ai.cost.cache_creation.input_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.cache_creation.input_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.cache_creation.input_tokens.\",\"This is a subset of gen_ai.cost.input_tokens, not an independent cost. Do not sum this with gen_ai.cost.input_tokens \\u2014 it is already included.\"]},\"gen_ai.cost.cache_read.input_tokens\":{brief:\"The cost of cached input tokens in USD.\",type:\"double\",keys:[\"gen_ai.cost.cache_read.input_tokens\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12.34,changelog:[{version:\"0.16.0\",description:\"Added gen_ai.cost.cache_read.input_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.cache_read.input_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.cache_read.input_tokens.\",\"This is a subset of gen_ai.cost.input_tokens, not an independent cost. Do not sum this with gen_ai.cost.input_tokens \\u2014 it is already included.\"]},\"gen_ai.cost.input_tokens\":{brief:\"The total cost of all input tokens in USD (includes cached and cache creation tokens).\",type:\"double\",keys:[\"gen_ai.cost.input_tokens\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:123.45,changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.input_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.input_tokens.\",\"This is the total cost of all input tokens, including cached and cache creation tokens at their respective rates. For the cached portion, see gen_ai.cost.cache_read.input_tokens. For the cache creation portion, see gen_ai.cost.cache_creation.input_tokens.\"]},\"gen_ai.cost.output_tokens\":{brief:\"The total cost of all output tokens in USD (includes reasoning tokens).\",type:\"double\",keys:[\"gen_ai.cost.output_tokens\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:123.45,changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.output_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.output_tokens.\",\"This is the total cost of all output tokens, including reasoning tokens at their respective rate. For the reasoning portion, see gen_ai.cost.reasoning.output_tokens.\"]},\"gen_ai.cost.reasoning.output_tokens\":{brief:\"The cost of reasoning output tokens in USD.\",type:\"double\",keys:[\"gen_ai.cost.reasoning.output_tokens\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12.34,changelog:[{version:\"0.16.0\",description:\"Added gen_ai.cost.reasoning.output_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.reasoning.output_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.reasoning.output_tokens.\",\"This is a subset of gen_ai.cost.output_tokens, not an independent cost. Do not sum this with gen_ai.cost.output_tokens \\u2014 it is already included.\"]},\"gen_ai.cost.total_tokens\":{brief:\"The total cost for the tokens used.\",type:\"double\",keys:[\"gen_ai.cost.total_tokens\",\"ai.total_cost\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12.34,aliases:[\"ai.total_cost\"],changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[126]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to calculate total cost, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"Despite the name 'cost.total_tokens', this value is cost in USD, not a token count. For token counts, use gen_ai.usage.total_tokens.\"]},\"gen_ai.embeddings.input\":{brief:\"The input to the embeddings model.\",type:\"string\",keys:[\"gen_ai.embeddings.input\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"What's the weather in Paris?\",changelog:[{version:\"0.3.1\",prs:[195]}]},\"gen_ai.function_id\":{brief:\"Framework-specific tracing label for the execution of a function or other unit of execution in a generative AI system.\",type:\"string\",keys:[\"gen_ai.function_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"my-awesome-function\",changelog:[{version:\"0.5.0\",prs:[308],description:\"Added gen_ai.function_id attribute\"}]},\"gen_ai.input.messages\":{brief:'The messages passed to the model. It has to be a stringified version of an array of objects. The `role` attribute of each object must be `\"user\"`, `\"assistant\"`, `\"tool\"`, or `\"system\"`. For messages of the role `\"tool\"`, the `content` can be a string or an arbitrary object with information about the tool call. For other messages the `content` can be either a string or a list of objects in the format `{type: \"text\", text:\"...\"}`.',type:\"string\",keys:[\"gen_ai.input.messages\",\"ai.input_messages\",\"ai.prompt\",\"ai.prompt.messages\",\"ai.texts\",\"gen_ai.prompt\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:'[{\"role\": \"user\", \"parts\": [{\"type\": \"text\", \"content\": \"Weather in Paris?\"}]}, {\"role\": \"assistant\", \"parts\": [{\"type\": \"tool_call\", \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\", \"name\": \"get_weather\", \"arguments\": {\"location\": \"Paris\"}}]}, {\"role\": \"tool\", \"parts\": [{\"type\": \"tool_call_response\", \"id\": \"call_VSPygqKTWdrhaFErNvMV18Yl\", \"result\": \"rainy, 57\\xB0F\"}]}]',aliases:[\"ai.texts\",\"ai.prompt.messages\",\"gen_ai.prompt\",\"ai.prompt\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.prompt as an alias\"},{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[221]}]},\"gen_ai.operation.name\":{brief:\"The name of the operation being performed. It has the following list of well-known values: 'chat', 'create_agent', 'embeddings', 'execute_tool', 'generate_content', 'invoke_agent', 'text_completion'. If one of them applies, then that value MUST be used. Otherwise a custom value MAY be used.\",type:\"string\",keys:[\"gen_ai.operation.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"chat\",changelog:[{version:\"0.4.0\",prs:[225]},{version:\"0.1.0\",prs:[62,127]}]},\"gen_ai.operation.type\":{brief:\"The type of AI operation. Must be one of 'agent' (invoke_agent and create_agent spans), 'ai_client' (any LLM call), 'tool' (execute_tool spans), 'handoff' (handoff spans), 'other' (input and output processors, skill loading, guardrails etc.) . Added during ingestion based on span.op and gen_ai.operation.type. Used to filter and aggregate data in the UI\",type:\"string\",keys:[\"gen_ai.operation.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"tool\",changelog:[{version:\"0.4.0\",prs:[257]},{version:\"0.1.0\",prs:[113,127]}]},\"gen_ai.output.messages\":{brief:\"The model's response messages. It has to be a stringified version of an array of message objects, which can include text responses and tool calls.\",type:\"string\",keys:[\"gen_ai.output.messages\",\"ai.response.text\",\"ai.response.toolCalls\",\"ai.responses\",\"ai.tool_calls\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:'[{\"role\": \"assistant\", \"parts\": [{\"type\": \"text\", \"content\": \"The weather in Paris is currently rainy with a temperature of 57\\xB0F.\"}], \"finish_reason\": \"stop\"}]',aliases:[\"ai.response.toolCalls\",\"ai.response.text\"],changelog:[{version:\"0.4.0\",prs:[221]}]},\"gen_ai.pipeline.name\":{brief:\"Name of the AI pipeline or chain being executed.\",type:\"string\",keys:[\"gen_ai.pipeline.name\",\"ai.pipeline.name\",\"langchain.chain.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Autofix Pipeline\",aliases:[\"ai.pipeline.name\",\"langchain.chain.name\"],changelog:[{version:\"0.22.0\",prs:[599],description:\"Added langchain.chain.name as an alias\"},{version:\"0.1.0\",prs:[76,127]}]},\"gen_ai.prompt\":{brief:\"The input messages sent to the model\",type:\"string\",keys:[\"gen_ai.input.messages\",\"ai.input_messages\",\"ai.prompt\",\"ai.prompt.messages\",\"ai.texts\",\"gen_ai.prompt\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:'[{\"role\": \"user\", \"message\": \"hello\"}]',deprecation:{replacement:\"gen_ai.input.messages\",reason:\"Deprecated from OTEL, use gen_ai.input.messages with the new format instead.\",status:\"backfill\"},aliases:[\"gen_ai.input.messages\",\"ai.texts\",\"ai.prompt.messages\",\"ai.prompt\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.prompt as an alias\"},{version:\"0.1.0\",prs:[74,108,119]},{version:\"0.0.0\"}]},\"gen_ai.prompt.name\":{brief:\"The name of the prompt that uniquely identifies it.\",type:\"string\",keys:[\"gen_ai.prompt.name\",\"mcp.prompt.name\"],applyScrubbing:{key:\"manual\",reason:\"Prompt names may reveal user behavior patterns or sensitive operations\"},isInOtel:!0,visibility:\"public\",example:\"summarize_text\",aliases:[\"mcp.prompt.name\"],changelog:[{version:\"0.12.0\",prs:[420],description:\"Added gen_ai.prompt.name attribute\"}]},\"gen_ai.provider.name\":{brief:\"The Generative AI provider as identified by the client or server instrumentation.\",type:\"string\",keys:[\"gen_ai.provider.name\",\"ai.model.provider\",\"gen_ai.system\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"openai\",aliases:[\"ai.model.provider\",\"gen_ai.system\"],changelog:[{version:\"0.4.0\",prs:[253]}]},\"gen_ai.request.available_tools\":{brief:\"The available tools for the model. It has to be a stringified version of an array of objects.\",type:\"string\",keys:[\"gen_ai.tool.definitions\",\"ai.prompt.tools\",\"ai.tools\",\"gen_ai.request.available_tools\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'[{\"name\": \"get_weather\", \"description\": \"Get the weather for a given location\"}, {\"name\": \"get_news\", \"description\": \"Get the news for a given topic\"}]',deprecation:{replacement:\"gen_ai.tool.definitions\",status:\"normalize\"},aliases:[\"gen_ai.tool.definitions\"],changelog:[{version:\"0.22.0\",prs:[595],description:\"Added gen_ai.tool.definitions as an alias\"},{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,127]}]},\"gen_ai.request.frequency_penalty\":{brief:\"Used to reduce repetitiveness of generated tokens. The higher the value, the stronger a penalty is applied to previously present tokens, proportional to how many times they have already appeared in the prompt or prior generation.\",type:\"double\",keys:[\"gen_ai.request.frequency_penalty\",\"ai.frequency_penalty\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:.5,aliases:[\"ai.frequency_penalty\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},\"gen_ai.request.max_tokens\":{brief:\"The maximum number of tokens to generate in the response.\",type:\"integer\",keys:[\"gen_ai.request.max_tokens\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:2048,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[62]}]},\"gen_ai.request.messages\":{brief:'The messages passed to the model. It has to be a stringified version of an array of objects. The `role` attribute of each object must be `\"user\"`, `\"assistant\"`, `\"tool\"`, or `\"system\"`. For messages of the role `\"tool\"`, the `content` can be a string or an arbitrary object with information about the tool call. For other messages the `content` can be either a string or a list of objects in the format `{type: \"text\", text:\"...\"}`.',type:\"string\",keys:[\"gen_ai.request.messages\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'[{\"role\": \"system\", \"content\": \"Generate a random number.\"}, {\"role\": \"user\", \"content\": [{\"text\": \"Generate a random number between 0 and 10.\", \"type\": \"text\"}]}, {\"role\": \"tool\", \"content\": {\"toolCallId\": \"1\", \"toolName\": \"Weather\", \"output\": \"rainy\"}}]',deprecation:{replacement:\"gen_ai.input.messages\",status:\"transform\",transformation:\"gen_ai_request_messages_to_input_messages\"},aliases:[\"ai.input_messages\"],changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,74,108,119,122]}]},\"gen_ai.request.model\":{brief:\"The model identifier being used for the request.\",type:\"string\",keys:[\"gen_ai.request.model\",\"ai.model.id\",\"ai.model_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"gpt-4-turbo-preview\",aliases:[\"ai.model_id\",\"ai.model.id\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.model.id as an alias\"},{version:\"0.1.0\",prs:[62,127]}]},\"gen_ai.request.presence_penalty\":{brief:\"Used to reduce repetitiveness of generated tokens. Similar to frequency_penalty, except that this penalty is applied equally to all tokens that have already appeared, regardless of their exact frequencies.\",type:\"double\",keys:[\"gen_ai.request.presence_penalty\",\"ai.presence_penalty\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:.5,aliases:[\"ai.presence_penalty\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},\"gen_ai.request.reasoning.level\":{brief:\"The reasoning or thinking effort level requested for a GenAI model.\",type:\"string\",keys:[\"gen_ai.request.reasoning.level\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"high\",changelog:[{version:\"0.17.0\",prs:[502],description:\"Added gen_ai.request.reasoning.level attribute\"}]},\"gen_ai.request.schema\":{brief:\"The stringified JSON schema the model output must conform to.\",type:\"string\",keys:[\"gen_ai.request.schema\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\"}}}',examples:['{\"type\":\"object\",\"properties\":{\"city\":{\"type\":\"string\"}}}'],deprecation:{reason:\"This attribute is deprecated. The Sentry conventions have no replacement for the requested output schema.\"},changelog:[{version:\"0.21.0\",prs:[583],description:\"Added gen_ai.request.schema attribute\"}]},\"gen_ai.request.seed\":{brief:\"The seed, ideally models given the same seed and same other parameters will produce the exact same output.\",type:\"string\",keys:[\"gen_ai.request.seed\",\"ai.seed\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"1234567890\",aliases:[\"ai.seed\"],changelog:[{version:\"0.1.0\",prs:[57,127]}]},\"gen_ai.request.stop_sequences\":{brief:\"List of sequences that the model will use to stop generating further tokens.\",type:\"string[]\",keys:[\"gen_ai.request.stop_sequences\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:[\"forest\",\"lived\"],changelog:[{version:\"0.16.0\",prs:[482],description:\"Added gen_ai.request.stop_sequences attribute\"}]},\"gen_ai.request.temperature\":{brief:\"For an AI model call, the temperature parameter. Temperature essentially means how random the output will be.\",type:\"double\",keys:[\"gen_ai.request.temperature\",\"ai.temperature\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:.1,aliases:[\"ai.temperature\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},\"gen_ai.request.top_k\":{brief:\"Limits the model to only consider the K most likely next tokens, where K is an integer (e.g., top_k=20 means only the 20 highest probability tokens are considered).\",type:\"integer\",keys:[\"gen_ai.request.top_k\",\"ai.top_k\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:35,aliases:[\"ai.top_k\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},\"gen_ai.request.top_p\":{brief:\"Limits the model to only consider tokens whose cumulative probability mass adds up to p, where p is a float between 0 and 1 (e.g., top_p=0.7 means only tokens that sum up to 70% of the probability mass are considered).\",type:\"double\",keys:[\"gen_ai.request.top_p\",\"ai.top_p\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:.7,aliases:[\"ai.top_p\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}]},\"gen_ai.response.finish_reason\":{brief:\"The reason why the model stopped generating (singular form).\",type:\"string\",keys:[\"gen_ai.response.finish_reasons\",\"ai.finish_reason\",\"gen_ai.response.finish_reason\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"COMPLETE\",deprecation:{replacement:\"gen_ai.response.finish_reasons\",status:\"normalize\"},aliases:[\"gen_ai.response.finish_reasons\"],changelog:[{version:\"0.19.0\",prs:[498],description:\"Added gen_ai.response.finish_reason attribute\"}]},\"gen_ai.response.finish_reasons\":{brief:\"The reason why the model stopped generating.\",type:\"string\",keys:[\"gen_ai.response.finish_reasons\",\"ai.finish_reason\",\"gen_ai.response.finish_reason\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"COMPLETE\",aliases:[\"ai.finish_reason\",\"gen_ai.response.finish_reason\"],changelog:[{version:\"0.1.0\",prs:[57,127]}]},\"gen_ai.response.id\":{brief:\"Unique identifier for the completion.\",type:\"string\",keys:[\"gen_ai.response.id\",\"ai.generation_id\",\"ai.response.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"gen_123abc\",aliases:[\"ai.generation_id\",\"ai.response.id\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.response.id as an alias\"},{version:\"0.1.0\",prs:[57,127]}]},\"gen_ai.response.model\":{brief:\"The vendor-specific ID of the model used.\",type:\"string\",keys:[\"gen_ai.response.model\",\"ai.response.model\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"gpt-4\",aliases:[\"ai.response.model\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.response.model as an alias\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"gen_ai.response.object\":{brief:\"The type of the object returned by the model.\",type:\"string\",keys:[\"gen_ai.response.object\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"chat.completion\",examples:[\"chat.completion\"],deprecation:{reason:\"This attribute is deprecated. The Sentry conventions have no replacement for the raw response object type.\"},changelog:[{version:\"0.21.0\",prs:[583],description:\"Added gen_ai.response.object attribute\"}]},\"gen_ai.response.streaming\":{brief:\"Whether or not the AI model call's response was streamed back asynchronously\",type:\"boolean\",keys:[\"gen_ai.response.streaming\",\"ai.streaming\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,aliases:[\"ai.streaming\"],changelog:[{version:\"0.1.0\",prs:[76]}]},\"gen_ai.response.text\":{brief:\"The model's response text messages. It has to be a stringified version of an array of response text messages.\",type:\"string\",keys:[\"gen_ai.response.text\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'[\"The weather in Paris is rainy and overcast, with temperatures around 57\\xB0F\", \"The weather in London is sunny and warm, with temperatures around 65\\xB0F\"]',deprecation:{replacement:\"gen_ai.output.messages\",status:\"transform\",transformation:\"gen_ai_response_to_output_messages\"},changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,74]}]},\"gen_ai.response.time_to_first_chunk\":{brief:\"Time in seconds when the first response content chunk arrived in streaming responses.\",type:\"double\",keys:[\"gen_ai.response.time_to_first_chunk\",\"gen_ai.response.time_to_first_token\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:.6853435,aliases:[\"gen_ai.response.time_to_first_token\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.response.time_to_first_chunk attribute\"}]},\"gen_ai.response.time_to_first_token\":{brief:\"Time in seconds when the first response content chunk arrived in streaming responses.\",type:\"double\",keys:[\"gen_ai.response.time_to_first_chunk\",\"gen_ai.response.time_to_first_token\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.6853435,deprecation:{replacement:\"gen_ai.response.time_to_first_chunk\",status:\"backfill\"},aliases:[\"gen_ai.response.time_to_first_chunk\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.response.time_to_first_chunk\"},{version:\"0.4.0\",prs:[227]}]},\"gen_ai.response.tokens_per_second\":{brief:\"The total output tokens per seconds throughput\",type:\"double\",keys:[\"gen_ai.response.tokens_per_second\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12345.67,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[66]}]},\"gen_ai.response.tool_calls\":{brief:\"The tool calls in the model's response. It has to be a stringified version of an array of objects.\",type:\"string\",keys:[\"gen_ai.response.tool_calls\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'[{\"name\": \"get_weather\", \"arguments\": {\"location\": \"Paris\"}}]',deprecation:{replacement:\"gen_ai.output.messages\",status:\"transform\",transformation:\"gen_ai_response_to_output_messages\"},changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[63,74]}]},\"gen_ai.system\":{brief:\"The provider of the model.\",type:\"string\",keys:[\"gen_ai.provider.name\",\"ai.model.provider\",\"gen_ai.system\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"openai\",deprecation:{replacement:\"gen_ai.provider.name\",status:\"normalize\"},aliases:[\"ai.model.provider\",\"gen_ai.provider.name\"],changelog:[{version:\"0.4.0\",prs:[253]},{version:\"0.1.0\",prs:[57,127]}]},\"gen_ai.system_instructions\":{brief:\"The system instructions passed to the model.\",type:\"string\",keys:[\"gen_ai.system_instructions\",\"ai.preamble\",\"gen_ai.system.message\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"You are a helpful assistant\",aliases:[\"ai.preamble\"],changelog:[{version:\"0.5.0\",prs:[264]},{version:\"0.4.0\",prs:[221]}]},\"gen_ai.system.message\":{brief:\"The system instructions passed to the model.\",type:\"string\",keys:[\"gen_ai.system_instructions\",\"ai.preamble\",\"gen_ai.system.message\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"You are a helpful assistant\",deprecation:{replacement:\"gen_ai.system_instructions\",status:\"backfill\"},changelog:[{version:\"0.4.0\",prs:[221]},{version:\"0.1.0\",prs:[62]}]},\"gen_ai.tool.call.arguments\":{brief:\"The arguments of the tool call. It has to be a stringified version of the arguments to the tool.\",type:\"string\",keys:[\"gen_ai.tool.call.arguments\",\"ai.toolCall.args\",\"gen_ai.tool.input\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:'{\"location\": \"Paris\"}',aliases:[\"gen_ai.tool.input\",\"ai.toolCall.args\"],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.4.0\",prs:[221]}]},\"gen_ai.tool.call.result\":{brief:\"The result of the tool call. It has to be a stringified version of the result of the tool.\",type:\"string\",keys:[\"gen_ai.tool.call.result\",\"ai.toolCall.result\",\"gen_ai.tool.message\",\"gen_ai.tool.output\",\"mcp.tool.result.content\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"rainy, 57\\xB0F\",aliases:[\"gen_ai.tool.output\",\"gen_ai.tool.message\",\"mcp.tool.result.content\",\"ai.toolCall.result\"],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.4.0\",prs:[221]}]},\"gen_ai.tool.definitions\":{brief:\"The list of source system tool definitions available to the GenAI agent or model.\",type:\"string\",keys:[\"gen_ai.tool.definitions\",\"ai.prompt.tools\",\"ai.tools\",\"gen_ai.request.available_tools\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:'[{\"type\": \"function\", \"name\": \"get_current_weather\", \"description\": \"Get the current weather in a given location\", \"parameters\": {\"type\": \"object\", \"properties\": {\"location\": {\"type\": \"string\", \"description\": \"The city and state, e.g. San Francisco, CA\"}, \"unit\": {\"type\": \"string\", \"enum\": [\"celsius\", \"fahrenheit\"]}}, \"required\": [\"location\", \"unit\"]}}]',aliases:[\"gen_ai.request.available_tools\"],changelog:[{version:\"0.22.0\",prs:[595],description:\"Added gen_ai.request.available_tools as an alias\"},{version:\"0.4.0\",prs:[221]}]},\"gen_ai.tool.description\":{brief:\"The description of the tool being used.\",type:\"string\",keys:[\"gen_ai.tool.description\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Searches the web for current information about a topic\",changelog:[{version:\"0.1.0\",prs:[62,127]}]},\"gen_ai.tool.input\":{brief:\"The input of the tool being used. It has to be a stringified version of the input to the tool.\",type:\"string\",keys:[\"gen_ai.tool.call.arguments\",\"ai.toolCall.args\",\"gen_ai.tool.input\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:'{\"location\": \"Paris\"}',deprecation:{replacement:\"gen_ai.tool.call.arguments\",status:\"normalize\"},aliases:[\"gen_ai.tool.call.arguments\",\"ai.toolCall.args\"],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.1.0\",prs:[63,74]}]},\"gen_ai.tool.message\":{brief:\"The response from a tool or function call passed to the model.\",type:\"string\",keys:[\"gen_ai.tool.call.result\",\"ai.toolCall.result\",\"gen_ai.tool.message\",\"gen_ai.tool.output\",\"mcp.tool.result.content\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"rainy, 57\\xB0F\",deprecation:{replacement:\"gen_ai.tool.call.result\",status:\"normalize\"},aliases:[\"gen_ai.tool.call.result\",\"gen_ai.tool.output\",\"mcp.tool.result.content\",\"ai.toolCall.result\"],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.1.0\",prs:[62]}]},\"gen_ai.tool.name\":{brief:\"Name of the tool utilized by the agent.\",type:\"string\",keys:[\"gen_ai.tool.name\",\"ai.function_call\",\"mcp.tool.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Flights\",aliases:[\"ai.function_call\",\"mcp.tool.name\"],changelog:[{version:\"0.1.0\",prs:[57,127]}]},\"gen_ai.tool.output\":{brief:\"The output of the tool being used. It has to be a stringified version of the output of the tool.\",type:\"string\",keys:[\"gen_ai.tool.call.result\",\"ai.toolCall.result\",\"gen_ai.tool.message\",\"gen_ai.tool.output\",\"mcp.tool.result.content\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"rainy, 57\\xB0F\",deprecation:{replacement:\"gen_ai.tool.call.result\",status:\"normalize\"},aliases:[\"gen_ai.tool.call.result\",\"gen_ai.tool.message\",\"mcp.tool.result.content\",\"ai.toolCall.result\"],changelog:[{version:\"0.5.0\",prs:[265]},{version:\"0.1.0\",prs:[63,74]}]},\"gen_ai.tool.type\":{brief:\"The type of tool being used.\",type:\"string\",keys:[\"gen_ai.tool.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"function\",deprecation:{reason:\"The gen_ai.tool.type attribute is deprecated and should no longer be set.\"},changelog:[{version:\"0.1.0\",prs:[62,127]}]},\"gen_ai.usage.cache_creation.input_tokens\":{brief:\"The number of tokens written to the cache when processing the AI input (prompt).\",type:\"integer\",keys:[\"gen_ai.usage.cache_creation.input_tokens\",\"gen_ai.usage.cache_creation_input_tokens\",\"gen_ai.usage.input_tokens.cache_write\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:100,aliases:[\"gen_ai.usage.input_tokens.cache_write\",\"gen_ai.usage.cache_creation_input_tokens\"],changelog:[{version:\"0.24.0\",prs:[582],description:\"Added gen_ai.usage.cache_creation_input_tokens as an alias\"},{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.usage.cache_creation.input_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},\"gen_ai.usage.cache_creation_input_tokens\":{brief:\"The number of tokens written to the cache when processing the AI input (prompt).\",type:\"integer\",keys:[\"gen_ai.usage.cache_creation.input_tokens\",\"gen_ai.usage.cache_creation_input_tokens\",\"gen_ai.usage.input_tokens.cache_write\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:100,examples:[100],deprecation:{replacement:\"gen_ai.usage.cache_creation.input_tokens\",reason:\"This attribute is being deprecated in favor of gen_ai.usage.cache_creation.input_tokens.\",status:\"backfill\"},aliases:[\"gen_ai.usage.cache_creation.input_tokens\",\"gen_ai.usage.input_tokens.cache_write\"],changelog:[{version:\"0.24.0\",prs:[582],description:\"Added gen_ai.usage.cache_creation_input_tokens attribute\"}]},\"gen_ai.usage.cache_read.input_tokens\":{brief:\"The number of cached tokens used to process the AI input (prompt).\",type:\"integer\",keys:[\"gen_ai.usage.cache_read.input_tokens\",\"gen_ai.usage.cache_read_input_tokens\",\"gen_ai.usage.input_tokens.cached\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:50,aliases:[\"gen_ai.usage.input_tokens.cached\",\"gen_ai.usage.cache_read_input_tokens\"],changelog:[{version:\"0.24.0\",prs:[582],description:\"Added gen_ai.usage.cache_read_input_tokens as an alias\"},{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.usage.cache_read.input_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.input_tokens, not an independent count. Do not sum this with gen_ai.usage.input_tokens \\u2014 it is already included.\"]},\"gen_ai.usage.cache_read_input_tokens\":{brief:\"The number of cached tokens used to process the AI input (prompt).\",type:\"integer\",keys:[\"gen_ai.usage.cache_read.input_tokens\",\"gen_ai.usage.cache_read_input_tokens\",\"gen_ai.usage.input_tokens.cached\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:50,examples:[50],deprecation:{replacement:\"gen_ai.usage.cache_read.input_tokens\",reason:\"This attribute is being deprecated in favor of gen_ai.usage.cache_read.input_tokens.\",status:\"backfill\"},aliases:[\"gen_ai.usage.cache_read.input_tokens\",\"gen_ai.usage.input_tokens.cached\"],changelog:[{version:\"0.24.0\",prs:[582],description:\"Added gen_ai.usage.cache_read_input_tokens attribute\"}]},\"gen_ai.usage.completion_tokens\":{brief:\"The number of tokens used in the GenAI response (completion).\",type:\"integer\",keys:[\"gen_ai.usage.output_tokens\",\"ai.completion_tokens.used\",\"gen_ai.usage.completion_tokens\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:10,deprecation:{replacement:\"gen_ai.usage.output_tokens\",status:\"backfill\"},aliases:[\"ai.completion_tokens.used\",\"gen_ai.usage.output_tokens\"],changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},\"gen_ai.usage.input_tokens\":{brief:\"The number of tokens used to process the AI input (prompt) including cached input tokens.\",type:\"integer\",keys:[\"gen_ai.usage.input_tokens\",\"ai.prompt_tokens.used\",\"gen_ai.usage.prompt_tokens\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:10,aliases:[\"ai.prompt_tokens.used\",\"gen_ai.usage.prompt_tokens\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Update additional_context to reference gen_ai.usage.cache_read.input_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.5.0\",prs:[261]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This count includes cached input tokens. gen_ai.usage.cache_read.input_tokens is a subset of this value, not an independent count \\u2014 do not sum them together.\"]},\"gen_ai.usage.input_tokens.cached\":{brief:\"The number of cached tokens used to process the AI input (prompt).\",type:\"integer\",keys:[\"gen_ai.usage.cache_read.input_tokens\",\"gen_ai.usage.cache_read_input_tokens\",\"gen_ai.usage.input_tokens.cached\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:50,deprecation:{replacement:\"gen_ai.usage.cache_read.input_tokens\",status:\"backfill\"},aliases:[\"gen_ai.usage.cache_read.input_tokens\",\"gen_ai.usage.cache_read_input_tokens\"],changelog:[{version:\"0.24.0\",prs:[582],description:\"Added gen_ai.usage.cache_read_input_tokens as an alias\"},{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.usage.cache_read.input_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[62,112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.input_tokens, not an independent count. Do not sum this with gen_ai.usage.input_tokens \\u2014 it is already included.\"]},\"gen_ai.usage.input_tokens.cache_write\":{brief:\"The number of tokens written to the cache when processing the AI input (prompt).\",type:\"integer\",keys:[\"gen_ai.usage.cache_creation.input_tokens\",\"gen_ai.usage.cache_creation_input_tokens\",\"gen_ai.usage.input_tokens.cache_write\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:100,deprecation:{replacement:\"gen_ai.usage.cache_creation.input_tokens\",status:\"backfill\"},aliases:[\"gen_ai.usage.cache_creation.input_tokens\",\"gen_ai.usage.cache_creation_input_tokens\"],changelog:[{version:\"0.24.0\",prs:[582],description:\"Added gen_ai.usage.cache_creation_input_tokens as an alias\"},{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.usage.cache_creation.input_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[217,228]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},\"gen_ai.usage.output_tokens\":{brief:\"The number of tokens used for creating the AI output (including reasoning tokens).\",type:\"integer\",keys:[\"gen_ai.usage.output_tokens\",\"ai.completion_tokens.used\",\"gen_ai.usage.completion_tokens\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:10,aliases:[\"ai.completion_tokens.used\",\"gen_ai.usage.completion_tokens\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Update additional_context to reference gen_ai.usage.reasoning.output_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.5.0\",prs:[261]},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[112]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This count includes reasoning tokens. gen_ai.usage.reasoning.output_tokens is a subset of this value, not an independent count \\u2014 do not sum them together.\"]},\"gen_ai.usage.output_tokens.reasoning\":{brief:\"The number of tokens used for reasoning to create the AI output.\",type:\"integer\",keys:[\"gen_ai.usage.reasoning.output_tokens\",\"gen_ai.usage.output_tokens.reasoning\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:75,deprecation:{replacement:\"gen_ai.usage.reasoning.output_tokens\",status:\"backfill\"},aliases:[\"gen_ai.usage.reasoning.output_tokens\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Deprecate in favor of gen_ai.usage.reasoning.output_tokens\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[62,112]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.output_tokens, not an independent count. Do not sum this with gen_ai.usage.output_tokens \\u2014 it is already included.\"]},\"gen_ai.usage.prompt_tokens\":{brief:\"The number of tokens used in the GenAI input (prompt).\",type:\"integer\",keys:[\"gen_ai.usage.input_tokens\",\"ai.prompt_tokens.used\",\"gen_ai.usage.prompt_tokens\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:20,deprecation:{replacement:\"gen_ai.usage.input_tokens\",status:\"backfill\"},aliases:[\"ai.prompt_tokens.used\",\"gen_ai.usage.input_tokens\"],changelog:[{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\"]},\"gen_ai.usage.reasoning.output_tokens\":{brief:\"The number of tokens used for reasoning to create the AI output.\",type:\"integer\",keys:[\"gen_ai.usage.reasoning.output_tokens\",\"gen_ai.usage.output_tokens.reasoning\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:75,aliases:[\"gen_ai.usage.output_tokens.reasoning\"],changelog:[{version:\"0.11.0\",prs:[418],description:\"Added gen_ai.usage.reasoning.output_tokens attribute\"}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is a subset of gen_ai.usage.output_tokens, not an independent count. Do not sum this with gen_ai.usage.output_tokens \\u2014 it is already included.\"]},\"gen_ai.usage.total_tokens\":{brief:\"The total number of tokens used to process the prompt. (input tokens plus output todkens)\",type:\"integer\",keys:[\"gen_ai.usage.total_tokens\",\"ai.total_tokens.used\",\"ai.usage.tokens\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:20,aliases:[\"ai.total_tokens.used\",\"ai.usage.tokens\"],changelog:[{version:\"0.21.0\",prs:[583],description:\"Added ai.usage.tokens as an alias\"},{version:\"0.9.0\",prs:[397],description:\"Add additional_context\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[57]}],additionalContext:[\"This attribute appears on both agent parent spans (aggregated totals) and LLM child spans (per-call values). When using sum() to count tokens, filter to gen_ai.operation.type:ai_client to avoid double-counting hierarchical spans.\",\"This is the sum of gen_ai.usage.input_tokens and gen_ai.usage.output_tokens. Do not sum this with either of them \\u2014 they are already included.\"]},\"graphql.document\":{brief:\"The GraphQL document being executed.\",type:\"string\",keys:[\"graphql.document\",\"graphql.source\"],applyScrubbing:{key:\"auto\",reason:\"The document may contain sensitive information in arguments or variables. Instrumentation should redact sensitive information when possible.\"},isInOtel:!0,visibility:\"public\",example:\"query findBookById { bookById(id: ?) { name } }\",aliases:[\"graphql.source\"],changelog:[{version:\"0.21.0\",prs:[584],description:\"Added graphql.source as an alias\"},{version:\"0.7.0\",description:\"Adds the `graphql.document` attribute to track the GraphQL document being executed.\"}]},\"graphql.operation.name\":{brief:\"The name of the operation being executed.\",type:\"string\",keys:[\"graphql.operation.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"findBookById\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"graphql.operation.type\":{brief:\"The type of the operation being executed.\",type:\"string\",keys:[\"graphql.operation.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"query\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"graphql.processing.type\":{brief:\"The type of processing represented by this span.\",type:\"string\",keys:[\"graphql.processing.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"parse\",examples:[\"parse\",\"validate\",\"execute\",\"resolve\"],changelog:[{version:\"0.21.0\",prs:[572],description:\"Added graphql.processing.type attribute\"}],additionalContext:[\"Well-known values are request, parse, validate, variable_coercion, plan, execute, subscription_event, step_execute, resolve, dataloader_dispatch, dataloader_batch and _OTHER. Use one of these if it applies, otherwise a custom value.\",\"Not to be confused with graphql.operation.type, which holds the GraphQL operation type (query, mutation, subscription) and only applies to spans that run an operation.\"]},\"graphql.source\":{brief:\"The GraphQL document being executed.\",type:\"string\",keys:[\"graphql.document\",\"graphql.source\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"query findBookById { bookById(id: ?) { name } }\",examples:[\"query findBookById { bookById(id: ?) { name } }\"],deprecation:{replacement:\"graphql.document\",reason:\"This attribute is being deprecated in favor of graphql.document, which is the OpenTelemetry name for the same value.\",status:\"backfill\"},aliases:[\"graphql.document\"],changelog:[{version:\"0.21.0\",prs:[584],description:\"Added graphql.source attribute\"}]},\"grpc.error.bad_request.field_violations\":{brief:\"The individual field violations from a google.rpc.BadRequest error detail. Each entry is a JSON-encoded object with field, description, reason, and (optional) localized_message keys, mirroring google.rpc.BadRequest.FieldViolation.\",type:\"string[]\",keys:[\"grpc.error.bad_request.field_violations\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:['{\"field\":\"email\",\"description\":\"must be a valid email address\",\"reason\":\"FIELD_INVALID\",\"localized_message\":{\"locale\":\"en-US\",\"message\":\"Must be a valid email address\"}}'],changelog:[{version:\"0.17.0\",prs:[460],description:\"Added grpc.error.bad_request.field_violations attribute\"}]},\"grpc.error.debug_info.detail\":{brief:\"Additional debugging information, such as a server-side stack trace, from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly.\",type:\"string\",keys:[\"grpc.error.debug_info.detail\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"at com.example.Service.method(Service.java:42)\",changelog:[{version:\"0.17.0\",prs:[460],description:\"Added grpc.error.debug_info.detail attribute\"}]},\"grpc.error.debug_info.stack_entries\":{brief:\"The server-side stack trace entries from a google.rpc.DebugInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly.\",type:\"string[]\",keys:[\"grpc.error.debug_info.stack_entries\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:[\"com.example.Service.method(Service.java:42)\",\"com.example.Server.handle(Server.java:100)\"],changelog:[{version:\"0.17.0\",prs:[460],description:\"Added grpc.error.debug_info.stack_entries attribute\"}]},\"grpc.error.error_info.domain\":{brief:\"The logical grouping to which the gRPC error reason belongs, from the google.rpc.ErrorInfo error detail.\",type:\"string\",keys:[\"grpc.error.error_info.domain\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"example.sentry.io\",changelog:[{version:\"0.17.0\",prs:[460],description:\"Added grpc.error.error_info.domain attribute\"}]},\"grpc.error.error_info.metadata.<key>\":{brief:\"Additional structured metadata attached to a google.rpc.ErrorInfo error detail, with <key> being the metadata key name. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly.\",type:\"string\",keys:[\"grpc.error.error_info.metadata.<key>\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"grpc.error.error_info.metadata.user_id='123'\",changelog:[{version:\"0.17.0\",prs:[460],description:\"Added grpc.error.error_info.metadata.<key> attribute\"}]},\"grpc.error.error_info.reason\":{brief:\"The reason for the gRPC error, as defined by the service that generated it, from the google.rpc.ErrorInfo error detail.\",type:\"string\",keys:[\"grpc.error.error_info.reason\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"FIELD_INVALID\",changelog:[{version:\"0.17.0\",prs:[460],description:\"Added grpc.error.error_info.reason attribute\"}]},\"grpc.error.precondition_failure.violations\":{brief:\"The individual precondition violations from a google.rpc.PreconditionFailure error detail. Each entry is a JSON-encoded object with type, subject, and description keys. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly, since violation subjects may identify specific resources or users.\",type:\"string[]\",keys:[\"grpc.error.precondition_failure.violations\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:['{\"type\":\"TOS\",\"subject\":\"example.com/user/123\",\"description\":\"User must accept the terms of service\"}'],changelog:[{version:\"0.17.0\",prs:[460],description:\"Added grpc.error.precondition_failure.violations attribute\"}]},\"grpc.error.quota_failure.violations\":{brief:\"The individual quota violations from a google.rpc.QuotaFailure error detail. Each entry is a JSON-encoded object with subject, description, api_service, quota_metric, quota_id, quota_dimensions, quota_value, and (optional) future_quota_value keys, mirroring google.rpc.QuotaFailure.Violation. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly, since violation subjects may identify specific resources or users.\",type:\"string[]\",keys:[\"grpc.error.quota_failure.violations\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:['{\"subject\":\"clientip:127.0.0.1\",\"description\":\"Limit checks failed.\",\"api_service\":\"example.googleapis.com\",\"quota_metric\":\"example.googleapis.com/read_requests\",\"quota_id\":\"ReadRequestsPerMinutePerProject\",\"quota_dimensions\":{\"region\":\"us-central1\"},\"quota_value\":1000}'],changelog:[{version:\"0.17.0\",prs:[460],description:\"Added grpc.error.quota_failure.violations attribute\"}]},\"grpc.error.resource_info.description\":{brief:\"A description of the error that occurred while accessing the resource, from a google.rpc.ResourceInfo error detail.\",type:\"string\",keys:[\"grpc.error.resource_info.description\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Instance is not ready for the request.\",changelog:[{version:\"0.17.0\",prs:[460],description:\"Added grpc.error.resource_info.description attribute\"}]},\"grpc.error.resource_info.owner\":{brief:\"The owner of the resource being accessed (e.g. project or account owning it), from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly.\",type:\"string\",keys:[\"grpc.error.resource_info.owner\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"user@example.com\",changelog:[{version:\"0.17.0\",prs:[460],description:\"Added grpc.error.resource_info.owner attribute\"}]},\"grpc.error.resource_info.resource_name\":{brief:\"The name of the resource being accessed, from a google.rpc.ResourceInfo error detail. SDKs should only send this attribute when sendDefaultPii is enabled or dataCollection is configured accordingly.\",type:\"string\",keys:[\"grpc.error.resource_info.resource_name\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"projects/example/instances/example-instance\",changelog:[{version:\"0.17.0\",prs:[460],description:\"Added grpc.error.resource_info.resource_name attribute\"}]},\"grpc.error.resource_info.resource_type\":{brief:\"The type of resource being accessed, from a google.rpc.ResourceInfo error detail.\",type:\"string\",keys:[\"grpc.error.resource_info.resource_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"database\",changelog:[{version:\"0.17.0\",prs:[460],description:\"Added grpc.error.resource_info.resource_type attribute\"}]},\"grpc.error.retry_info.retry_delay_ms\":{brief:\"How long the client should wait before retrying the gRPC call, in milliseconds, from the google.rpc.RetryInfo error detail.\",type:\"integer\",keys:[\"grpc.error.retry_info.retry_delay_ms\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:5e3,changelog:[{version:\"0.17.0\",prs:[460],description:\"Added grpc.error.retry_info.retry_delay_ms attribute\"}]},hardwareConcurrency:{brief:\"The number of logical CPU cores available.\",type:\"string\",keys:[\"device.processor_count\",\"hardwareConcurrency\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"14\",deprecation:{replacement:\"device.processor_count\",reason:\"Old namespace-less attribute, to be replaced with device.processor_count for span-first future\",status:\"backfill\"},aliases:[\"device.processor_count\"],changelog:[{version:\"0.5.0\",prs:[281,300],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},\"http.client_ip\":{brief:\"Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",keys:[\"client.address\",\"http.client_ip\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"client.address\",status:\"backfill\"},aliases:[\"client.address\"],changelog:[{version:\"0.1.0\",prs:[61,106,127]},{version:\"0.0.0\"}]},\"http.decoded_response_content_length\":{brief:\"The decoded body size of the response (in bytes).\",type:\"integer\",keys:[\"http.response.body.decoded_size\",\"http.decoded_response_content_length\",\"http.response_content_length_uncompressed\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:456,deprecation:{replacement:\"http.response.body.decoded_size\",status:\"backfill\"},aliases:[\"http.response.body.decoded_size\",\"http.response_content_length_uncompressed\"],changelog:[{version:\"0.21.0\",prs:[574],description:\"Deprecated in favor of http.response.body.decoded_size\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}],searchAlias:{name:\"http.decoded_response_content_length\",type:\"byte\"}},\"http.flavor\":{brief:\"The actual version of the protocol used for network communication.\",type:\"string\",keys:[\"network.protocol.version\",\"http.flavor\",\"messaging.protocol_version\",\"net.protocol.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"1.1\",deprecation:{replacement:\"network.protocol.version\",status:\"backfill\"},aliases:[\"network.protocol.version\",\"net.protocol.version\",\"messaging.protocol_version\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.protocol_version as an alias\"},{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"http.fragment\":{brief:\"The fragments present in the URI. Note that this contains the leading # character, while the `url.fragment` attribute does not.\",type:\"string\",keys:[\"http.fragment\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"#details\",changelog:[{version:\"0.0.0\"}]},\"http.host\":{brief:\"The domain name.\",type:\"string\",keys:[\"http.host\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\",reason:\"Deprecated, use one of `server.address` or `client.address`, depending on the usage\"},aliases:[\"address\",\"server.address\",\"client.address\",\"http.server_name\",\"net.host.name\",\"server_name\",\"net.peer.name\"],changelog:[{version:\"0.24.0\",prs:[647],description:\"Added server_name as an alias\"},{version:\"0.21.0\",prs:[588,602],description:\"Added net.peer.name as an alias\"},{version:\"0.19.0\",prs:[534],description:\"Added address as an alias\"},{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"http.method\":{brief:\"The HTTP method used.\",type:\"string\",keys:[\"http.request.method\",\"http.method\",\"http.request_method\",\"method\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"GET\",deprecation:{replacement:\"http.request.method\",status:\"backfill\"},aliases:[\"http.request.method\",\"http.request_method\",\"method\"],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"http.query\":{brief:\"The query string present in the URL. Note that this contains the leading ? character, while the `url.query` attribute does not.\",type:\"string\",keys:[\"http.query\"],applyScrubbing:{key:\"auto\",reason:\"Query string values can contain sensitive information. Clients should attempt to scrub parameters that might contain sensitive information.\"},isInOtel:!1,visibility:\"public\",example:\"?foo=bar&bar=baz\",changelog:[{version:\"0.0.0\"}]},\"http.request.body.data\":{brief:\"HTTP request body data. Can be given as string or structural data of any format.\",type:\"string\",keys:[\"http.request.body.data\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:'[{\"role\": \"user\", \"message\": \"hello\"}]',changelog:[{version:\"0.6.0\",prs:[336],description:\"Added http.request.body.data attribute\"}]},\"http.request.body.decoded_size\":{brief:\"The decoded body size of the request (in bytes).\",type:\"integer\",keys:[\"http.request.body.decoded_size\",\"http.request_content_length_uncompressed\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:456,aliases:[\"http.request_content_length_uncompressed\"],changelog:[{version:\"0.21.0\",prs:[574],description:\"Added http.request.body.decoded_size attribute\"}],additionalContext:[\"This is the size after content decoding. Set it only when the decoded size is actually known, for example by measuring a decompressed request stream.\",\"Do not derive this from the `content-length` header, which always carries the encoded size. Use `http.request.body.size` for that.\"]},\"http.request.body.size\":{brief:\"The encoded body size of the request (in bytes).\",type:\"integer\",keys:[\"http.request.body.size\",\"http.request_content_length\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:123,aliases:[\"http.request_content_length\"],changelog:[{version:\"0.21.0\",prs:[574],description:\"Added http.request.body.size attribute\"}],additionalContext:[\"This is the on-the-wire (encoded) size. The `content-length` header always carries the encoded size, so set this attribute whenever `content-length` is known, regardless of whether `content-encoding` is present.\"]},\"http.request.connection_end\":{brief:\"The UNIX timestamp representing the time immediately after the browser finishes establishing the connection to the server to retrieve the resource. The timestamp value includes the time interval to establish the transport connection, as well as other time intervals such as TLS handshake and SOCKS authentication.\",type:\"double\",keys:[\"http.request.connection_end\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:173282955515e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.connect_start\":{brief:\"The UNIX timestamp representing the time immediately before the user agent starts establishing the connection to the server to retrieve the resource.\",type:\"double\",keys:[\"http.request.connect_start\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1732829555111e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request_content_length\":{brief:\"The encoded body size of the request (in bytes).\",type:\"integer\",keys:[\"http.request.body.size\",\"http.request_content_length\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:123,deprecation:{replacement:\"http.request.body.size\",status:\"backfill\"},aliases:[\"http.request.body.size\"],changelog:[{version:\"0.21.0\",prs:[574],description:\"Added http.request_content_length attribute, deprecated in favor of http.request.body.size\"}]},\"http.request_content_length_uncompressed\":{brief:\"The decoded body size of the request (in bytes).\",type:\"integer\",keys:[\"http.request.body.decoded_size\",\"http.request_content_length_uncompressed\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:456,deprecation:{replacement:\"http.request.body.decoded_size\",status:\"backfill\"},aliases:[\"http.request.body.decoded_size\"],changelog:[{version:\"0.21.0\",prs:[574],description:\"Added http.request_content_length_uncompressed attribute, deprecated in favor of http.request.body.decoded_size\"}]},\"http.request.domain_lookup_end\":{brief:\"The UNIX timestamp representing the time immediately after the browser finishes the domain-name lookup for the resource.\",type:\"double\",keys:[\"http.request.domain_lookup_end\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1732829555201e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.domain_lookup_start\":{brief:\"The UNIX timestamp representing the time immediately before the browser starts the domain name lookup for the resource.\",type:\"double\",keys:[\"http.request.domain_lookup_start\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1732829555322e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.fetch_start\":{brief:\"The UNIX timestamp representing the time immediately before the browser starts to fetch the resource.\",type:\"double\",keys:[\"http.request.fetch_start\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1732829555389e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.header.<key>\":{brief:\"HTTP request headers, <key> being the lower-cased, but otherwise unchanged HTTP Header name, the value being the header values.\",type:\"string[]\",keys:[\"http.request.header.<key>\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",hasDynamicSuffix:!0,example:\"http.request.header.custom-header=['foo', 'bar']\",examples:[\"http.request.header.custom-header=['foo', 'bar']\",\"http.request.header.content-length=['123']\"],changelog:[{version:\"0.4.0\",prs:[201,204]},{version:\"0.1.0\",prs:[103]}]},\"http.request.method\":{brief:\"The HTTP method used.\",type:\"string\",keys:[\"http.request.method\",\"http.method\",\"http.request_method\",\"method\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"GET\",aliases:[\"method\",\"http.method\",\"http.request_method\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"http.request_method\":{brief:\"The HTTP method used.\",type:\"string\",keys:[\"http.request.method\",\"http.method\",\"http.request_method\",\"method\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"GET\",deprecation:{replacement:\"http.request.method\",status:\"backfill\"},aliases:[\"method\",\"http.method\",\"http.request.method\"],changelog:[{version:\"0.6.0\",prs:[343],description:\"Added http.request_method attribute\"}]},\"http.request.redirect_end\":{brief:\"The UNIX timestamp representing the timestamp immediately after receiving the last byte of the response of the last redirect\",type:\"double\",keys:[\"http.request.redirect_end\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1732829558502e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[130,134]}]},\"http.request.redirect_start\":{brief:\"The UNIX timestamp representing the start time of the fetch which that initiates the redirect.\",type:\"double\",keys:[\"http.request.redirect_start\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1732829555495e-3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.request_start\":{brief:\"The UNIX timestamp representing the time immediately before the browser starts requesting the resource from the server, cache, or local resource. If the transport connection fails and the browser retires the request, the value returned will be the start of the retry request.\",type:\"double\",keys:[\"http.request.request_start\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:173282955551e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.resend_count\":{brief:\"The ordinal number of request resending attempt (for any reason, including redirects).\",type:\"integer\",keys:[\"http.request.resend_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"http.request.response_end\":{brief:\"The UNIX timestamp representing the time immediately after the browser receives the last byte of the resource or immediately before the transport connection is closed, whichever comes first.\",type:\"double\",keys:[\"http.request.response_end\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:173282955589e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.response_start\":{brief:\"The UNIX timestamp representing the time immediately before the browser starts requesting the resource from the server, cache, or local resource. If the transport connection fails and the browser retires the request, the value returned will be the start of the retry request.\",type:\"double\",keys:[\"http.request.response_start\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:17328295557e-1,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.same_origin\":{brief:\"Indicates that a URL has the same origin as the current page's origin in the browser.\",type:\"boolean\",keys:[\"http.request.same_origin\",\"url.same_origin\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,aliases:[\"url.same_origin\"],changelog:[{version:\"0.16.0\",prs:[456],description:\"Added http.request.same_origin attribute\"}]},\"http.request.secure_connection_start\":{brief:\"The UNIX timestamp representing the time immediately before the browser starts the handshake process to secure the current connection. If a secure connection is not used, the property returns zero.\",type:\"double\",keys:[\"http.request.secure_connection_start\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:173282955573e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[134]},{version:\"0.0.0\"}]},\"http.request.time_to_first_byte\":{brief:\"The time in seconds from the browser's timeorigin to when the first byte of the request's response was received. See https://web.dev/articles/ttfb#measure-resource-requests\",type:\"double\",keys:[\"http.request.time_to_first_byte\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1.032,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[131]}]},\"http.request.worker_start\":{brief:\"The UNIX timestamp representing the timestamp immediately before dispatching the FetchEvent if a Service Worker thread is already running, or immediately before starting the Service Worker thread if it is not already running.\",type:\"double\",keys:[\"http.request.worker_start\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:173282955368e-2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[130,134]}]},\"http.response.body.decoded_size\":{brief:\"The decoded body size of the response (in bytes).\",type:\"integer\",keys:[\"http.response.body.decoded_size\",\"http.decoded_response_content_length\",\"http.response_content_length_uncompressed\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:456,aliases:[\"http.decoded_response_content_length\",\"http.response_content_length_uncompressed\"],changelog:[{version:\"0.21.0\",prs:[574],description:\"Added http.response.body.decoded_size attribute\"}],additionalContext:[\"This is the size after content decoding. Set it only when the decoded size is actually known, for example from the browser Resource Timing `decodedBodySize` or by measuring a decompressed response stream.\",\"Do not derive this from the `content-length` header, which always carries the encoded size. Use `http.response.body.size` for that.\"]},\"http.response.body.size\":{brief:\"The encoded body size of the response (in bytes).\",type:\"integer\",keys:[\"http.response.body.size\",\"http.response.header.content-length\",\"http.response_content_length\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:123,aliases:[\"http.response_content_length\",\"http.response.header.content-length\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[106]},{version:\"0.0.0\"}]},\"http.response_content_length\":{brief:\"The encoded body size of the response (in bytes).\",type:\"integer\",keys:[\"http.response.body.size\",\"http.response.header.content-length\",\"http.response_content_length\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:123,deprecation:{replacement:\"http.response.body.size\",status:\"backfill\"},aliases:[\"http.response.body.size\",\"http.response.header.content-length\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61,106]},{version:\"0.0.0\"}],searchAlias:{name:\"http.response_content_length\",type:\"byte\"}},\"http.response_content_length_uncompressed\":{brief:\"The decoded body size of the response (in bytes).\",type:\"integer\",keys:[\"http.response.body.decoded_size\",\"http.decoded_response_content_length\",\"http.response_content_length_uncompressed\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:456,deprecation:{replacement:\"http.response.body.decoded_size\",status:\"backfill\"},aliases:[\"http.response.body.decoded_size\",\"http.decoded_response_content_length\"],changelog:[{version:\"0.21.0\",prs:[574],description:\"Added http.response_content_length_uncompressed attribute, deprecated in favor of http.response.body.decoded_size\"}]},\"http.response.header.content-length\":{brief:\"The size of the message body sent to the recipient (in bytes)\",type:\"string\",keys:[\"http.response.header.content-length\",\"http.response.body.size\",\"http.response_content_length\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"http.response.header.custom-header=['foo', 'bar']\",aliases:[\"http.response_content_length\",\"http.response.body.size\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"http.response.header.<key>\":{brief:\"HTTP response headers, <key> being the lower-cased, but otherwise unchanged HTTP Header name, the value being the header values.\",type:\"string[]\",keys:[\"http.response.header.<key>\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",hasDynamicSuffix:!0,example:\"http.response.header.custom-header=['foo', 'bar']\",examples:[\"http.response.header.custom-header=['foo', 'bar']\",\"http.response.header.content-length=['123']\"],changelog:[{version:\"0.4.0\",prs:[201,204]},{version:\"0.1.0\",prs:[103]}]},\"http.response.size\":{brief:\"The transfer size of the response (in bytes).\",type:\"integer\",keys:[\"http.response.size\",\"http.response_transfer_size\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:456,aliases:[\"http.response_transfer_size\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"http.response.status_code\":{brief:\"The status code of the HTTP response.\",type:\"integer\",keys:[\"http.response.status_code\",\"http.response_status_code\",\"http.status_code\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:404,aliases:[\"http.status_code\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}],searchAlias:{name:\"http.response_status_code\"}},\"http.response.status_text\":{brief:\"The reason phrase of the HTTP response.\",type:\"string\",keys:[\"http.response.status_text\",\"http.status_text\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"NOT FOUND\",aliases:[\"http.status_text\"],changelog:[{version:\"0.21.0\",prs:[574],description:\"Added http.response.status_text attribute\"}],additionalContext:[\"HTTP/2 and HTTP/3 do not carry a reason phrase. Do not set this attribute when the protocol provides none; use `http.response.status_code` instead.\"]},\"http.response_transfer_size\":{brief:\"The transfer size of the response (in bytes).\",type:\"integer\",keys:[\"http.response.size\",\"http.response_transfer_size\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:456,deprecation:{replacement:\"http.response.size\",status:\"backfill\"},aliases:[\"http.response.size\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}],searchAlias:{name:\"http.response_transfer_size\",type:\"byte\"}},\"http.route\":{brief:\"The matched route, that is, the path template in the format used by the respective server framework.\",type:\"string\",keys:[\"http.route\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"/users/:id\",examples:[\"/users/:id\",\"my-controller/my-action/{id}\",\"/posts\"],aliases:[\"route\"],changelog:[{version:\"0.19.0\",prs:[505,521],description:\"Added multiple examples, removed alias to `url.template`, added additional context\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}],additionalContext:[\"This attribute should primarily be set by server-side instrumentation that captures the framework route of an incoming request.\",\"For `http.client` spans and client-side routing, use `url.template` instead.\"]},\"http.scheme\":{brief:\"The URI scheme component identifying the used protocol.\",type:\"string\",keys:[\"url.scheme\",\"http.scheme\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"https\",deprecation:{replacement:\"url.scheme\",status:\"backfill\"},aliases:[\"url.scheme\"],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"http.server_name\":{brief:\"The server domain name\",type:\"string\",keys:[\"server.address\",\"address\",\"http.server_name\",\"net.host.name\",\"server_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\",status:\"backfill\"},aliases:[\"address\",\"server.address\",\"net.host.name\",\"http.host\",\"server_name\",\"net.peer.name\"],changelog:[{version:\"0.24.0\",prs:[647],description:\"Added server_name as an alias\"},{version:\"0.21.0\",prs:[588,602],description:\"Added net.peer.name as an alias\"},{version:\"0.19.0\",prs:[534],description:\"Added address as an alias\"},{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"http.server.request.time_in_queue\":{brief:\"The time in milliseconds the request spent in the server queue before processing began. Measured from the X-Request-Start header set by reverse proxies (e.g., Nginx, HAProxy, Heroku) to when the application started handling the request.\",type:\"double\",keys:[\"http.server.request.time_in_queue\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:50,changelog:[{version:\"0.5.0\",prs:[267]}]},\"http.status_code\":{brief:\"The status code of the HTTP response.\",type:\"integer\",keys:[\"http.response.status_code\",\"http.response_status_code\",\"http.status_code\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:404,deprecation:{replacement:\"http.response.status_code\",status:\"backfill\"},aliases:[\"http.response.status_code\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"http.status_text\":{brief:\"The reason phrase of the HTTP response\",type:\"string\",keys:[\"http.response.status_text\",\"http.status_text\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"NOT FOUND\",examples:[\"NOT FOUND\"],deprecation:{replacement:\"http.response.status_text\",status:\"backfill\"},aliases:[\"http.response.status_text\"],changelog:[{version:\"0.21.0\",prs:[574],description:\"Added http.status_text attribute, deprecated in favor of http.response.status_text\"}]},\"http.target\":{brief:\"The pathname and query string of the URL.\",type:\"string\",keys:[\"http.target\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"/test?foo=bar#buzz\",deprecation:{reason:\"This attribute is being deprecated in favor of url.path, url.query and url.fragment. The value holds all three parts at once, so it has no single replacement.\"},changelog:[{version:\"0.21.0\",prs:[587],description:\"Documented url.path, url.query and url.fragment as the replacements for http.target\"},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"http.url\":{brief:\"The URL of the resource that was fetched.\",type:\"string\",keys:[\"url.full\",\"aws.request.url\",\"http.url\",\"messaging.url\",\"url\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"https://example.com/test?foo=bar#buzz\",deprecation:{replacement:\"url.full\",status:\"backfill\"},aliases:[\"url.full\",\"url\",\"aws.request.url\",\"messaging.url\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.url as an alias\"},{version:\"0.1.0\",prs:[61,108]},{version:\"0.0.0\"}]},\"http.user_agent\":{brief:\"Value of the HTTP User-Agent header sent by the client.\",type:\"string\",keys:[\"user_agent.original\",\"http.user_agent\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1\",deprecation:{replacement:\"user_agent.original\",status:\"backfill\"},aliases:[\"user_agent.original\"],changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},id:{brief:\"A unique identifier for the span.\",type:\"string\",keys:[\"id\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"f47ac10b58cc4372a5670e02b2c3d479\",changelog:[{version:\"0.0.0\"}]},inp:{brief:\"The value of the recorded Interaction to Next Paint (INP) web vital\",type:\"double\",keys:[\"browser.web_vital.inp.value\",\"inp\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:200,deprecation:{replacement:\"browser.web_vital.inp.value\",reason:\"The INP web vital is now recorded as a browser.web_vital.inp.value attribute.\",status:\"backfill\"},aliases:[\"browser.web_vital.inp.value\"],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},\"jsonrpc.protocol.version\":{brief:\"The version of the JSON-RPC protocol used.\",type:\"string\",keys:[\"jsonrpc.protocol.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"2.0\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Added jsonrpc.protocol.version attribute\"}]},\"jsonrpc.request.id\":{brief:\"The JSON-RPC request identifier. Unique within the session.\",type:\"string\",keys:[\"jsonrpc.request.id\",\"mcp.request.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"1\",aliases:[\"mcp.request.id\"],changelog:[{version:\"0.12.0\",prs:[420],description:\"Added jsonrpc.request.id attribute\"}]},\"jvm.gc.action\":{brief:\"Name of the garbage collector action.\",type:\"string\",keys:[\"jvm.gc.action\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"end of minor GC\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"jvm.gc.name\":{brief:\"Name of the garbage collector.\",type:\"string\",keys:[\"jvm.gc.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"G1 Young Generation\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"jvm.memory.pool.name\":{brief:\"Name of the memory pool.\",type:\"string\",keys:[\"jvm.memory.pool.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"G1 Old Gen\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"jvm.memory.type\":{brief:\"Name of the memory pool.\",type:\"string\",keys:[\"jvm.memory.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"G1 Old Gen\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"jvm.thread.daemon\":{brief:\"Whether the thread is daemon or not.\",type:\"boolean\",keys:[\"jvm.thread.daemon\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"jvm.thread.state\":{brief:\"State of the thread.\",type:\"string\",keys:[\"jvm.thread.state\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"blocked\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"koa.name\":{brief:\"The name of the Koa middleware or matched route that handled the request.\",type:\"string\",keys:[\"koa.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"/users/:id\",deprecation:{reason:\"No single replacement. SDKs should use http.route for router layers and code.function.name for middleware layers instead.\"},changelog:[{version:\"0.16.0\",prs:[490],description:\"Added koa.name attribute as deprecated\"}]},\"koa.type\":{brief:\"The type of the Koa layer that handled the request.\",type:\"string\",keys:[\"koa.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"router\",changelog:[{version:\"0.16.0\",prs:[471],description:\"Added koa.type attribute\"}]},\"langchain.chain.name\":{brief:\"The name of the LangChain chain being executed.\",type:\"string\",keys:[\"gen_ai.pipeline.name\",\"ai.pipeline.name\",\"langchain.chain.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"format_prompt\",examples:[\"format_prompt\",\"RunnableSequence\"],deprecation:{replacement:\"gen_ai.pipeline.name\",reason:\"This attribute is being deprecated in favor of gen_ai.pipeline.name, which is the SDK-agnostic replacement for the name of the AI pipeline or chain being executed.\",status:\"backfill\"},aliases:[\"gen_ai.pipeline.name\",\"ai.pipeline.name\"],changelog:[{version:\"0.22.0\",prs:[599],description:\"Added langchain.chain.name attribute\"}]},lcp:{brief:\"The value of the recorded Largest Contentful Paint (LCP) web vital\",type:\"double\",keys:[\"browser.web_vital.lcp.value\",\"lcp\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2500,deprecation:{replacement:\"browser.web_vital.lcp.value\",reason:\"The LCP web vital is now recorded as a browser.web_vital.lcp.value attribute.\",status:\"backfill\"},aliases:[\"browser.web_vital.lcp.value\"],changelog:[{version:\"0.5.0\",prs:[229],description:\"Added and deprecated attribute to document JS SDK's current behaviour\"}]},\"lcp.element\":{brief:\"The dom element responsible for the largest contentful paint.\",type:\"string\",keys:[\"browser.web_vital.lcp.element\",\"lcp.element\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"img\",deprecation:{replacement:\"browser.web_vital.lcp.element\",reason:\"The LCP element is now recorded as a browser.web_vital.lcp.element attribute.\",status:\"backfill\"},aliases:[\"browser.web_vital.lcp.element\"],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"lcp.id\":{brief:\"The id of the dom element responsible for the largest contentful paint.\",type:\"string\",keys:[\"browser.web_vital.lcp.id\",\"lcp.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"#hero\",deprecation:{replacement:\"browser.web_vital.lcp.id\",reason:\"The LCP id is now recorded as a browser.web_vital.lcp.id attribute.\",status:\"backfill\"},aliases:[\"browser.web_vital.lcp.id\"],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"lcp.loadTime\":{brief:\"The time it took for the LCP element to be loaded\",type:\"integer\",keys:[\"browser.web_vital.lcp.load_time\",\"lcp.loadTime\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1402,deprecation:{replacement:\"browser.web_vital.lcp.load_time\",reason:\"The LCP load time is now recorded as a browser.web_vital.lcp.load_time attribute.\",status:\"backfill\"},aliases:[\"browser.web_vital.lcp.load_time\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"lcp.renderTime\":{brief:\"The time it took for the LCP element to be rendered\",type:\"integer\",keys:[\"browser.web_vital.lcp.render_time\",\"lcp.renderTime\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1685,deprecation:{replacement:\"browser.web_vital.lcp.render_time\",reason:\"The LCP render time is now recorded as a browser.web_vital.lcp.render_time attribute.\",status:\"backfill\"},aliases:[\"browser.web_vital.lcp.render_time\"],changelog:[{version:\"0.5.0\",prs:[233]}]},\"lcp.size\":{brief:\"The size of the largest contentful paint element.\",type:\"integer\",keys:[\"browser.web_vital.lcp.size\",\"lcp.size\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234,deprecation:{replacement:\"browser.web_vital.lcp.size\",reason:\"The LCP size is now recorded as a browser.web_vital.lcp.size attribute.\",status:\"backfill\"},aliases:[\"browser.web_vital.lcp.size\"],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"lcp.url\":{brief:\"The url of the dom element responsible for the largest contentful paint.\",type:\"string\",keys:[\"browser.web_vital.lcp.url\",\"lcp.url\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com\",deprecation:{replacement:\"browser.web_vital.lcp.url\",reason:\"The LCP url is now recorded as a browser.web_vital.lcp.url attribute.\",status:\"backfill\"},aliases:[\"browser.web_vital.lcp.url\"],changelog:[{version:\"0.5.0\",prs:[233]},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"litestar.middleware_name\":{brief:\"The name of the Litestar middleware.\",type:\"string\",keys:[\"middleware.name\",\"django.middleware_name\",\"litestar.middleware_name\",\"starlette.middleware_name\",\"starlite.middleware_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"AuthenticationMiddleware\",deprecation:{replacement:\"middleware.name\",reason:\"This attribute is being deprecated in favor of middleware.name, which is the framework-agnostic replacement.\",status:\"backfill\"},aliases:[\"middleware.name\"],changelog:[{version:\"0.19.0\",prs:[486],description:\"Added litestar.middleware_name attribute, deprecated in favor of middleware.name\"}]},\"logger.name\":{brief:\"The name of the logger that generated this event.\",type:\"string\",keys:[\"logger.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"myLogger\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"mcp.cancelled.reason\":{brief:\"Reason for the cancellation of an MCP operation.\",type:\"string\",keys:[\"mcp.cancelled.reason\"],applyScrubbing:{key:\"manual\",reason:\"Cancellation reasons may contain user-specific or sensitive information\"},isInOtel:!1,visibility:\"public\",example:\"User cancelled the request\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.cancelled.request_id\":{brief:\"Request ID of the cancelled MCP operation.\",type:\"string\",keys:[\"mcp.cancelled.request_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"123\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.client.name\":{brief:\"Name of the MCP client application.\",type:\"string\",keys:[\"mcp.client.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"claude-desktop\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.client.title\":{brief:\"Display title of the MCP client application.\",type:\"string\",keys:[\"mcp.client.title\"],applyScrubbing:{key:\"manual\",reason:\"Client titles may reveal user-specific application configurations or custom setups\"},isInOtel:!1,visibility:\"public\",example:\"Claude Desktop\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.client.version\":{brief:\"Version of the MCP client application.\",type:\"string\",keys:[\"mcp.client.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1.0.0\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.lifecycle.phase\":{brief:\"Lifecycle phase indicator for MCP operations.\",type:\"string\",keys:[\"mcp.lifecycle.phase\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"initialization_complete\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.logging.data_type\":{brief:\"Data type of the logged message content.\",type:\"string\",keys:[\"mcp.logging.data_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"string\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.logging.level\":{brief:\"Log level for MCP logging operations.\",type:\"string\",keys:[\"mcp.logging.level\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"info\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.logging.logger\":{brief:\"Logger name for MCP logging operations.\",type:\"string\",keys:[\"mcp.logging.logger\"],applyScrubbing:{key:\"manual\",reason:\"Logger names may be user-defined and could contain sensitive information\"},isInOtel:!1,visibility:\"public\",example:\"mcp_server\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.logging.message\":{brief:\"Log message content from MCP logging operations.\",type:\"string\",keys:[\"mcp.logging.message\"],applyScrubbing:{key:\"auto\",reason:\"Log messages can contain user data\"},isInOtel:!1,visibility:\"public\",example:\"Tool execution completed successfully\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.method.name\":{brief:\"The name of the MCP request or notification method being called.\",type:\"string\",keys:[\"mcp.method.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"tools/call\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.progress.current\":{brief:\"Current progress value of an MCP operation.\",type:\"integer\",keys:[\"mcp.progress.current\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:50,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},\"mcp.progress.message\":{brief:\"Progress message describing the current state of an MCP operation.\",type:\"string\",keys:[\"mcp.progress.message\"],applyScrubbing:{key:\"manual\",reason:\"Progress messages may contain user-specific or sensitive information\"},isInOtel:!1,visibility:\"public\",example:\"Processing 50 of 100 items\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.progress.percentage\":{brief:\"Calculated progress percentage of an MCP operation. Computed from current/total * 100.\",type:\"double\",keys:[\"mcp.progress.percentage\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:50,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},\"mcp.progress.token\":{brief:\"Token for tracking progress of an MCP operation.\",type:\"string\",keys:[\"mcp.progress.token\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"progress-token-123\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.progress.total\":{brief:\"Total progress target value of an MCP operation.\",type:\"integer\",keys:[\"mcp.progress.total\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:100,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},\"mcp.prompt.name\":{brief:\"Name of the MCP prompt template being used.\",type:\"string\",keys:[\"gen_ai.prompt.name\",\"mcp.prompt.name\"],applyScrubbing:{key:\"manual\",reason:\"Prompt names may reveal user behavior patterns or sensitive operations\"},isInOtel:!1,visibility:\"public\",example:\"summarize\",deprecation:{replacement:\"gen_ai.prompt.name\",reason:\"OTel uses gen_ai.prompt.name for MCP prompt names\",status:\"backfill\"},aliases:[\"gen_ai.prompt.name\"],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of gen_ai.prompt.name\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.prompt.result.description\":{brief:\"Description of the prompt result.\",type:\"string\",keys:[\"mcp.prompt.result.description\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"A summary of the requested information\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.prompt.result.message_content\":{brief:\"Content of the message in the prompt result. Used for single message results only.\",type:\"string\",keys:[\"mcp.prompt.result.message_content\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"Please provide a summary of the document\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.prompt.result.message_count\":{brief:\"Number of messages in the prompt result.\",type:\"integer\",keys:[\"mcp.prompt.result.message_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:3,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},\"mcp.prompt.result.message_role\":{brief:\"Role of the message in the prompt result. Used for single message results only.\",type:\"string\",keys:[\"mcp.prompt.result.message_role\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"user\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.protocol.ready\":{brief:\"Protocol readiness indicator for MCP session. Non-zero value indicates the protocol is ready.\",type:\"integer\",keys:[\"mcp.protocol.ready\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},\"mcp.protocol.version\":{brief:\"MCP protocol version used in the session.\",type:\"string\",keys:[\"mcp.protocol.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"2024-11-05\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.request.argument.<key>\":{brief:\"MCP request argument with dynamic key suffix. The <key> is replaced with the actual argument name. The value is a JSON-stringified representation of the argument value.\",type:\"string\",keys:[\"mcp.request.argument.<key>\"],applyScrubbing:{key:\"auto\",reason:\"Arguments contain user input\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"mcp.request.argument.query='weather in Paris'\",changelog:[{version:\"0.3.0\",prs:[176]}]},\"mcp.request.argument.name\":{brief:\"Name argument from prompts/get MCP request.\",type:\"string\",keys:[\"mcp.request.argument.name\"],applyScrubbing:{key:\"auto\",reason:\"Prompt names can contain user input\"},isInOtel:!1,visibility:\"public\",example:\"summarize\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.request.argument.uri\":{brief:\"URI argument from resources/read MCP request.\",type:\"string\",keys:[\"mcp.request.argument.uri\"],applyScrubbing:{key:\"auto\",reason:\"URIs can contain user file paths\"},isInOtel:!1,visibility:\"public\",example:\"file:///path/to/resource\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.request.id\":{brief:\"JSON-RPC request identifier for the MCP request. Unique within the MCP session.\",type:\"string\",keys:[\"jsonrpc.request.id\",\"mcp.request.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1\",deprecation:{replacement:\"jsonrpc.request.id\",reason:\"OTel models MCP as JSON-RPC, uses jsonrpc.request.id\",status:\"backfill\"},aliases:[\"jsonrpc.request.id\"],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of jsonrpc.request.id\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.resource.protocol\":{brief:\"Protocol of the resource URI being accessed, extracted from the URI.\",type:\"string\",keys:[\"network.protocol.name\",\"mcp.resource.protocol\",\"messaging.protocol\",\"net.protocol.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"file\",deprecation:{replacement:\"network.protocol.name\",reason:\"OTel uses the generic network.protocol.name attribute\",status:\"backfill\"},aliases:[\"network.protocol.name\",\"net.protocol.name\",\"messaging.protocol\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.protocol as an alias\"},{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of network.protocol.name\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.resource.uri\":{brief:\"The resource URI being accessed in an MCP operation.\",type:\"string\",keys:[\"mcp.resource.uri\"],applyScrubbing:{key:\"auto\",reason:\"URIs can contain sensitive file paths\"},isInOtel:!0,visibility:\"public\",example:\"file:///path/to/file.txt\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.server.name\":{brief:\"Name of the MCP server application.\",type:\"string\",keys:[\"mcp.server.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"sentry-mcp-server\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.server.title\":{brief:\"Display title of the MCP server application.\",type:\"string\",keys:[\"mcp.server.title\"],applyScrubbing:{key:\"manual\",reason:\"Server titles may reveal user-specific application configurations or custom setups\"},isInOtel:!1,visibility:\"public\",example:\"Sentry MCP Server\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.server.version\":{brief:\"Version of the MCP server application.\",type:\"string\",keys:[\"mcp.server.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"0.1.0\",changelog:[{version:\"0.3.0\",prs:[171]}]},\"mcp.session.id\":{brief:\"Identifier for the MCP session.\",type:\"string\",keys:[\"mcp.session.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"550e8400-e29b-41d4-a716-446655440000\",changelog:[{version:\"0.12.0\",prs:[420],description:\"Set is_in_otel=true, attribute exists in OTel MCP registry\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.tool.name\":{brief:\"Name of the MCP tool being called.\",type:\"string\",keys:[\"gen_ai.tool.name\",\"ai.function_call\",\"mcp.tool.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"calculator\",deprecation:{replacement:\"gen_ai.tool.name\",reason:\"OTel uses gen_ai.tool.name for MCP tool names\",status:\"backfill\"},aliases:[\"gen_ai.tool.name\",\"ai.function_call\"],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of gen_ai.tool.name\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.tool.result.content\":{brief:\"The content of the tool result.\",type:\"string\",keys:[\"gen_ai.tool.call.result\",\"ai.toolCall.result\",\"gen_ai.tool.message\",\"gen_ai.tool.output\",\"mcp.tool.result.content\"],applyScrubbing:{key:\"auto\",reason:\"Tool results can contain user data\"},isInOtel:!1,visibility:\"public\",example:'{\"output\": \"rainy\", \"toolCallId\": \"1\"}',deprecation:{replacement:\"gen_ai.tool.call.result\",reason:\"OTel uses gen_ai.tool.call.result for MCP tool results\",status:\"backfill\"},aliases:[\"gen_ai.tool.call.result\",\"gen_ai.tool.message\",\"gen_ai.tool.output\",\"ai.toolCall.result\"],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of gen_ai.tool.call.result\"},{version:\"0.3.0\",prs:[171]},{version:\"0.2.0\",prs:[164]}]},\"mcp.tool.result.content_count\":{brief:\"Number of content items in the tool result.\",type:\"integer\",keys:[\"mcp.tool.result.content_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[171]}]},\"mcp.tool.result.is_error\":{brief:\"Whether a tool execution resulted in an error.\",type:\"boolean\",keys:[\"mcp.tool.result.is_error\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!1,deprecation:{replacement:\"error.type\",reason:\"OTel uses error.type set to 'tool_error' when isError is true. Cannot be automatically backfilled due to type mismatch (boolean vs string).\"},changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of error.type\"},{version:\"0.3.0\",prs:[171]}]},\"mcp.transport\":{brief:\"Transport method used for MCP communication.\",type:\"string\",keys:[\"network.transport\",\"mcp.transport\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"stdio\",deprecation:{replacement:\"network.transport\",reason:\"OTel uses the generic network.transport attribute\",status:\"backfill\"},aliases:[\"network.transport\",\"net.transport\"],changelog:[{version:\"0.12.0\",prs:[420],description:\"Deprecated in favor of network.transport\"},{version:\"0.3.0\",prs:[171]}]},\"mdc.<key>\":{brief:\"Attributes from the Mapped Diagnostic Context (MDC) present at the moment the log record was created. The MDC is supported by all the most popular logging solutions in the Java ecosystem, and it's usually implemented as a thread-local map that stores context for e.g. a specific request.\",type:\"string\",keys:[\"mdc.<key>\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"mdc.some_key='some_value'\",changelog:[{version:\"0.3.0\",prs:[176]}]},\"messaging.batch.message_count\":{brief:\"The number of messages sent, received, or processed in the scope of the batching operation.\",type:\"integer\",keys:[\"messaging.batch.message_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:10,changelog:[{version:\"0.6.0\",prs:[341],description:\"Added messaging.batch.message_count attribute\"}]},\"messaging.conversation_id\":{brief:'The conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called \"Correlation ID\".',type:\"string\",keys:[\"messaging.message.conversation_id\",\"messaging.conversation_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"MyConversationId\",examples:[\"MyConversationId\"],deprecation:{replacement:\"messaging.message.conversation_id\",reason:\"This attribute is being deprecated in favor of messaging.message.conversation_id.\",status:\"backfill\"},aliases:[\"messaging.message.conversation_id\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.conversation_id attribute\"}]},\"messaging.destination\":{brief:\"The message destination name.\",type:\"string\",keys:[\"messaging.destination.name\",\"messaging.destination\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"BestTopic\",deprecation:{replacement:\"messaging.destination.name\",reason:\"This attribute is being deprecated in favor of messaging.destination.name, which is the OTel-aligned replacement.\",status:\"backfill\"},aliases:[\"messaging.destination.name\"],changelog:[{version:\"0.16.0\",prs:[482],description:\"Added messaging.destination attribute, deprecated in favor of messaging.destination.name\"}]},\"messaging.destination.connection\":{brief:\"The message destination connection.\",type:\"string\",keys:[\"messaging.destination.connection\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"BestTopic\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"messaging.destination_kind\":{brief:\"The kind of message destination.\",type:\"string\",keys:[\"messaging.destination_kind\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"topic\",deprecation:{reason:\"Deprecated from OTEL, which now models the destination kind via messaging.operation.type and messaging.destination.name.\"},changelog:[{version:\"0.19.0\",prs:[509],description:\"Added deprecated messaging.destination_kind attribute for parity with legacy OTel instrumentations.\"}]},\"messaging.destination.name\":{brief:\"The message destination name.\",type:\"string\",keys:[\"messaging.destination.name\",\"messaging.destination\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"BestTopic\",aliases:[\"messaging.destination\"],changelog:[{version:\"0.16.0\",prs:[482],description:\"Added messaging.destination as an alias\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"messaging.destination.partition.id\":{brief:\"The identifier of the partition messages are sent to or received from, unique within the messaging.destination.name.\",type:\"string\",keys:[\"messaging.destination.partition.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"1\",changelog:[{version:\"0.19.0\",prs:[474],description:\"Added messaging.destination.partition.id attribute\"}]},\"messaging.kafka.message.key\":{brief:\"Message keys in Kafka are used for grouping alike messages to ensure they're processed on the same partition. They differ from messaging.message.id in that they're not unique. If the key is null, the attribute MUST NOT be set.\",type:\"string\",keys:[\"messaging.kafka.message.key\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"myKey\",changelog:[{version:\"0.19.0\",prs:[474],description:\"Added messaging.kafka.message.key attribute\"}]},\"messaging.kafka.message.tombstone\":{brief:\"A boolean that is true if the message is a tombstone.\",type:\"boolean\",keys:[\"messaging.kafka.message.tombstone\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:!0,changelog:[{version:\"0.19.0\",prs:[474],description:\"Added messaging.kafka.message.tombstone attribute\"}]},\"messaging.kafka.offset\":{brief:\"The offset of a record in the corresponding Kafka partition.\",type:\"integer\",keys:[\"messaging.kafka.offset\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:42,changelog:[{version:\"0.19.0\",prs:[474],description:\"Added messaging.kafka.offset attribute\"}]},\"messaging.message.body.size\":{brief:\"The size of the message body in bytes.\",type:\"integer\",keys:[\"messaging.message.body.size\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:839,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}],searchAlias:{name:\"messaging.message.body.size\",type:\"byte\"}},\"messaging.message.conversation_id\":{brief:'The conversation ID identifying the conversation to which the message belongs, represented as a string. Sometimes called \"Correlation ID\".',type:\"string\",keys:[\"messaging.message.conversation_id\",\"messaging.conversation_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"MyConversationId\",aliases:[\"messaging.conversation_id\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.conversation_id as an alias\"},{version:\"0.16.0\",prs:[468],description:\"Added messaging.message.conversation_id attribute\"}]},\"messaging.message.envelope.size\":{brief:\"The size of the message body and metadata in bytes.\",type:\"integer\",keys:[\"messaging.message.envelope.size\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:1045,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"messaging.message.id\":{brief:\"A value used by the messaging system as an identifier for the message, represented as a string.\",type:\"string\",keys:[\"messaging.message.id\",\"messaging.message_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"f47ac10b58cc4372a5670e02b2c3d479\",aliases:[\"messaging.message_id\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.message_id as an alias\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"messaging.message_id\":{brief:\"A value used by the messaging system as an identifier for the message, represented as a string.\",type:\"string\",keys:[\"messaging.message.id\",\"messaging.message_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"452a7c7c7c7048c2f887f0e7\",examples:[\"452a7c7c7c7048c2f887f0e7\"],deprecation:{replacement:\"messaging.message.id\",reason:\"This attribute is being deprecated in favor of messaging.message.id.\",status:\"backfill\"},aliases:[\"messaging.message.id\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.message_id attribute\"}]},\"messaging.message.receive.latency\":{brief:\"The latency between when the message was published and received.\",type:\"integer\",keys:[\"messaging.message.receive.latency\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1732847252,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}],searchAlias:{name:\"messaging.message.receive.latency\",type:\"millisecond\"}},\"messaging.message.retry.count\":{brief:\"The amount of attempts to send the message.\",type:\"integer\",keys:[\"messaging.message.retry.count\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"messaging.operation\":{brief:\"The name of the messaging operation being performed.\",type:\"string\",keys:[\"messaging.operation.name\",\"messaging.operation\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"publish\",examples:[\"publish\"],deprecation:{replacement:\"messaging.operation.name\",reason:\"This attribute is being deprecated in favor of messaging.operation.name.\",status:\"backfill\"},aliases:[\"messaging.operation.name\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.operation attribute\"}]},\"messaging.operation.name\":{brief:\"The name of the messaging operation being performed\",type:\"string\",keys:[\"messaging.operation.name\",\"messaging.operation\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"send\",aliases:[\"messaging.operation\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.operation as an alias\"},{version:\"0.11.0\",prs:[392],description:\"Added messaging.operation.name attribute\"}]},\"messaging.operation.type\":{brief:\"A string identifying the type of the messaging operation\",type:\"string\",keys:[\"messaging.operation.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"create\",changelog:[{version:\"0.1.0\",prs:[51,127]}]},\"messaging.protocol\":{brief:\"OSI application layer or non-OSI equivalent.\",type:\"string\",keys:[\"network.protocol.name\",\"mcp.resource.protocol\",\"messaging.protocol\",\"net.protocol.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"AMQP\",examples:[\"AMQP\"],deprecation:{replacement:\"network.protocol.name\",reason:\"This attribute is being deprecated in favor of network.protocol.name.\",status:\"backfill\"},aliases:[\"network.protocol.name\",\"net.protocol.name\",\"mcp.resource.protocol\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.protocol attribute\"}]},\"messaging.protocol_version\":{brief:\"The actual version of the protocol used for network communication.\",type:\"string\",keys:[\"network.protocol.version\",\"http.flavor\",\"messaging.protocol_version\",\"net.protocol.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"0.9.1\",examples:[\"0.9.1\"],deprecation:{replacement:\"network.protocol.version\",reason:\"This attribute is being deprecated in favor of network.protocol.version.\",status:\"backfill\"},aliases:[\"network.protocol.version\",\"http.flavor\",\"net.protocol.version\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.protocol_version attribute\"}]},\"messaging.rabbitmq.destination.routing_key\":{brief:\"RabbitMQ message routing key.\",type:\"string\",keys:[\"messaging.rabbitmq.destination.routing_key\",\"messaging.rabbitmq.routing_key\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"myKey\",aliases:[\"messaging.rabbitmq.routing_key\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.rabbitmq.routing_key as an alias\"},{version:\"0.16.0\",prs:[468],description:\"Added messaging.rabbitmq.destination.routing_key attribute\"}]},\"messaging.rabbitmq.routing_key\":{brief:\"RabbitMQ message routing key.\",type:\"string\",keys:[\"messaging.rabbitmq.destination.routing_key\",\"messaging.rabbitmq.routing_key\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"myKey\",examples:[\"myKey\"],deprecation:{replacement:\"messaging.rabbitmq.destination.routing_key\",reason:\"This attribute is being deprecated in favor of messaging.rabbitmq.destination.routing_key.\",status:\"backfill\"},aliases:[\"messaging.rabbitmq.destination.routing_key\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.rabbitmq.routing_key attribute\"}]},\"messaging.system\":{brief:\"The messaging system as identified by the client instrumentation.\",type:\"string\",keys:[\"messaging.system\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"activemq\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"messaging.url\":{brief:\"The connection string of the messaging broker.\",type:\"string\",keys:[\"url.full\",\"aws.request.url\",\"http.url\",\"messaging.url\",\"url\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"amqp://guest:guest@localhost:5672\",examples:[\"amqp://guest:guest@localhost:5672\"],deprecation:{replacement:\"url.full\",reason:\"This attribute is being deprecated in favor of url.full.\",status:\"backfill\"},aliases:[\"url.full\",\"http.url\",\"url\",\"aws.request.url\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.url attribute\"}]},method:{brief:\"The HTTP method used.\",type:\"string\",keys:[\"http.request.method\",\"http.method\",\"http.request_method\",\"method\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"GET\",deprecation:{replacement:\"http.request.method\",status:\"normalize\"},aliases:[\"http.request.method\",\"http.request_method\",\"http.method\"],changelog:[{version:\"0.19.0\",prs:[497],description:\"Configured normalization\"},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"middleware.name\":{brief:\"The name of the middleware.\",type:\"string\",keys:[\"middleware.name\",\"django.middleware_name\",\"litestar.middleware_name\",\"starlette.middleware_name\",\"starlite.middleware_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"AuthenticationMiddleware\",aliases:[\"django.middleware_name\",\"starlite.middleware_name\",\"litestar.middleware_name\",\"starlette.middleware_name\"],changelog:[{version:\"0.19.0\",prs:[485,486,519,520],description:\"Added django.middleware_name, starlite.middleware_name, litestar.middleware_name and starlette.middleware_name as aliases\"},{version:\"0.6.0\",prs:[336],description:\"Added middleware.name attribute\"}]},\"navigation.origin\":{brief:\"The origin of the navigation (usually client side router navigations). Should preferrably parameterized template (like url.template) or a URL path otherwise.\",type:\"string\",keys:[\"router.navigation.origin\",\"navigation.origin\",\"sentry.sveltekit.navigation.from\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"/users/:id\",deprecation:{replacement:\"router.navigation.origin\",reason:\"Moved to the router.* namespace to separate client-side router navigations from browser navigations.\",status:\"backfill\"},aliases:[\"router.navigation.origin\",\"sentry.sveltekit.navigation.from\"],changelog:[{version:\"0.22.0\",prs:[600],description:\"Deprecated in favor of router.navigation.origin\"},{version:\"0.16.0\",prs:[467],description:\"Added navigation.origin attribute\"}]},\"navigation.route.id\":{brief:\"The identifier of the matched client-side route, as assigned by the routing framework (e.g., vue-router name, react-router id).\",type:\"string\",keys:[\"router.navigation.route.id\",\"navigation.route.id\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"AboutView\",deprecation:{replacement:\"router.navigation.route.id\",reason:\"Moved to the router.* namespace to separate client-side router navigations from browser navigations.\",status:\"backfill\"},aliases:[\"router.navigation.route.id\"],changelog:[{version:\"0.22.0\",prs:[600],description:\"Deprecated in favor of router.navigation.route.id\"},{version:\"0.16.0\",prs:[468],description:\"Added navigation.route.id attribute\"}]},\"navigation.type\":{brief:\"The type of navigation done by a client-side router.\",type:\"string\",keys:[\"router.navigation.type\",\"navigation.type\",\"sentry.sveltekit.navigation.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"router.push\",deprecation:{replacement:\"router.navigation.type\",reason:\"Moved to the router.* namespace to separate client-side router navigations from browser navigations.\",status:\"backfill\"},aliases:[\"router.navigation.type\",\"sentry.sveltekit.navigation.type\"],changelog:[{version:\"0.22.0\",prs:[600],description:\"Deprecated in favor of router.navigation.type\"},{version:\"0.16.0\",prs:[467],description:\"Added new deprecated alias\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"nel.elapsed_time\":{brief:\"The elapsed number of milliseconds between the start of the resource fetch and when it was completed or aborted by the user agent.\",type:\"integer\",keys:[\"nel.elapsed_time\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:100,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[68]}]},\"nel.phase\":{brief:'If request failed, the phase of its network error. If request succeeded, \"application\".',type:\"string\",keys:[\"nel.phase\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"application\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},\"nel.referrer\":{brief:\"request's referrer, as determined by the referrer policy associated with its client.\",type:\"string\",keys:[\"nel.referrer\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com/foo?bar=baz\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},\"nel.sampling_function\":{brief:\"The sampling function used to determine if the request should be sampled.\",type:\"double\",keys:[\"nel.sampling_function\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:.5,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[68]}]},\"nel.type\":{brief:'If request failed, the type of its network error. If request succeeded, \"ok\".',type:\"string\",keys:[\"nel.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"dns.unreachable\",changelog:[{version:\"0.1.0\",prs:[68,127]}]},\"network.connection.effective_type\":{brief:\"Specifies the effective type of the current connection (e.g. slow-2g, 2g, 3g, 4g).\",type:\"string\",keys:[\"network.connection.effective_type\",\"effectiveConnectionType\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"4g\",aliases:[\"effectiveConnectionType\"],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added attribute network.connection.effective_type to be used instead of effectiveConnectionType\"}]},\"network.connection.rtt\":{brief:\"Specifies the estimated effective round-trip time of the current connection, in milliseconds.\",type:\"integer\",keys:[\"network.connection.rtt\",\"connection.rtt\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:100,aliases:[\"connection.rtt\"],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added attribute network.connection.rtt to be used instead of connection.rtt\"}]},\"network.connection.type\":{brief:\"Specifies the type of the current connection (e.g. wifi, ethernet, cellular , etc).\",type:\"string\",keys:[\"network.connection.type\",\"connectionType\",\"device.connection_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"wifi\",aliases:[\"device.connection_type\",\"connectionType\"],changelog:[{version:\"0.5.0\",prs:[279],description:\"Added attribute network.connection.type to be used instead of connectionType\"}]},\"network.local.address\":{brief:\"Local address of the network connection - IP address or Unix domain socket name.\",type:\"string\",keys:[\"network.local.address\",\"net.host.ip\",\"net.sock.host.addr\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"10.1.2.80\",examples:[\"10.1.2.80\",\"/var/run/my.sock\"],aliases:[\"net.host.ip\",\"net.sock.host.addr\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"network.local.port\":{brief:\"Local port number of the network connection.\",type:\"integer\",keys:[\"network.local.port\",\"net.sock.host.port\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:65400,aliases:[\"net.sock.host.port\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"network.peer.address\":{brief:\"Peer address of the network connection - IP address or Unix domain socket name.\",type:\"string\",keys:[\"network.peer.address\",\"net.peer.ip\",\"net.sock.peer.addr\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"10.1.2.80\",aliases:[\"net.peer.ip\",\"net.sock.peer.addr\"],changelog:[{version:\"0.1.0\",prs:[108,127]},{version:\"0.0.0\"}]},\"network.peer.port\":{brief:\"Peer port number of the network connection.\",type:\"integer\",keys:[\"network.peer.port\",\"net.sock.peer.port\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:65400,aliases:[\"net.sock.peer.port\"],changelog:[{version:\"0.21.0\",prs:[588],description:\"Added net.sock.peer.port as an alias\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"network.protocol.name\":{brief:\"OSI application layer or non-OSI equivalent.\",type:\"string\",keys:[\"network.protocol.name\",\"mcp.resource.protocol\",\"messaging.protocol\",\"net.protocol.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"http\",aliases:[\"net.protocol.name\",\"mcp.resource.protocol\",\"messaging.protocol\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.protocol as an alias\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"network.protocol.version\":{brief:\"The actual version of the protocol used for network communication.\",type:\"string\",keys:[\"network.protocol.version\",\"http.flavor\",\"messaging.protocol_version\",\"net.protocol.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"1.1\",aliases:[\"http.flavor\",\"net.protocol.version\",\"messaging.protocol_version\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.protocol_version as an alias\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"network.transport\":{brief:\"OSI transport layer or inter-process communication method.\",type:\"string\",keys:[\"network.transport\",\"mcp.transport\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"tcp\",aliases:[\"net.transport\",\"mcp.transport\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"network.type\":{brief:\"OSI network layer or non-OSI equivalent.\",type:\"string\",keys:[\"network.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"ipv4\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"net.host.ip\":{brief:\"Local address of the network connection - IP address or Unix domain socket name.\",type:\"string\",keys:[\"network.local.address\",\"net.host.ip\",\"net.sock.host.addr\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"192.168.0.1\",deprecation:{replacement:\"network.local.address\",status:\"backfill\"},aliases:[\"network.local.address\",\"net.sock.host.addr\"],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"net.host.name\":{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",keys:[\"server.address\",\"address\",\"http.server_name\",\"net.host.name\",\"server_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\",status:\"backfill\"},aliases:[\"address\",\"server.address\",\"http.server_name\",\"http.host\",\"server_name\",\"net.peer.name\"],changelog:[{version:\"0.24.0\",prs:[647],description:\"Added server_name as an alias\"},{version:\"0.21.0\",prs:[588,602],description:\"Added net.peer.name as an alias\"},{version:\"0.19.0\",prs:[534],description:\"Added address as an alias\"},{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"net.host.port\":{brief:\"Server port number.\",type:\"integer\",keys:[\"server.port\",\"net.host.port\",\"port\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:1337,deprecation:{replacement:\"server.port\",status:\"backfill\"},aliases:[\"server.port\",\"port\"],changelog:[{version:\"0.19.0\",prs:[532],description:\"Added port as an alias\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"net.peer.ip\":{brief:\"Peer address of the network connection - IP address or Unix domain socket name.\",type:\"string\",keys:[\"network.peer.address\",\"net.peer.ip\",\"net.sock.peer.addr\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"192.168.0.1\",deprecation:{replacement:\"network.peer.address\",status:\"backfill\"},aliases:[\"network.peer.address\",\"net.sock.peer.addr\"],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"net.peer.name\":{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",keys:[\"net.peer.name\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\",reason:\"Deprecated, use server.address on client spans and client.address on server spans.\"},aliases:[\"address\",\"server.address\",\"http.server_name\",\"net.host.name\",\"http.host\",\"server_name\"],changelog:[{version:\"0.24.0\",prs:[647],description:\"Added server_name as an alias\"},{version:\"0.21.0\",prs:[588,602],description:\"Added the server.address alias group to net.peer.name\"},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"net.peer.port\":{brief:\"Peer port number.\",type:\"integer\",keys:[\"net.peer.port\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:1337,deprecation:{replacement:\"server.port\",reason:\"Deprecated, use server.port on client spans and client.port on server spans.\"},changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"net.protocol.name\":{brief:\"OSI application layer or non-OSI equivalent.\",type:\"string\",keys:[\"network.protocol.name\",\"mcp.resource.protocol\",\"messaging.protocol\",\"net.protocol.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"http\",deprecation:{replacement:\"network.protocol.name\",status:\"backfill\"},aliases:[\"network.protocol.name\",\"mcp.resource.protocol\",\"messaging.protocol\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.protocol as an alias\"},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"net.protocol.version\":{brief:\"The actual version of the protocol used for network communication.\",type:\"string\",keys:[\"network.protocol.version\",\"http.flavor\",\"messaging.protocol_version\",\"net.protocol.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"1.1\",deprecation:{replacement:\"network.protocol.version\",status:\"backfill\"},aliases:[\"network.protocol.version\",\"http.flavor\",\"messaging.protocol_version\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.protocol_version as an alias\"},{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"net.sock.family\":{brief:\"OSI transport and network layer\",type:\"string\",keys:[\"net.sock.family\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"inet\",deprecation:{replacement:\"network.transport\",reason:\"Deprecated, use network.transport and network.type.\"},changelog:[{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"net.sock.host.addr\":{brief:\"Local address of the network connection mapping to Unix domain socket name.\",type:\"string\",keys:[\"network.local.address\",\"net.host.ip\",\"net.sock.host.addr\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"/var/my.sock\",deprecation:{replacement:\"network.local.address\",status:\"backfill\"},aliases:[\"network.local.address\",\"net.host.ip\"],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"net.sock.host.port\":{brief:\"Local port number of the network connection.\",type:\"integer\",keys:[\"network.local.port\",\"net.sock.host.port\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:8080,deprecation:{replacement:\"network.local.port\",status:\"backfill\"},aliases:[\"network.local.port\"],changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"net.sock.peer.addr\":{brief:\"Peer address of the network connection - IP address\",type:\"string\",keys:[\"network.peer.address\",\"net.peer.ip\",\"net.sock.peer.addr\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"192.168.0.1\",deprecation:{replacement:\"network.peer.address\",status:\"backfill\"},aliases:[\"network.peer.address\",\"net.peer.ip\"],changelog:[{version:\"0.1.0\",prs:[61,108,127]},{version:\"0.0.0\"}]},\"net.sock.peer.name\":{brief:\"Peer address of the network connection - Unix domain socket name\",type:\"string\",keys:[\"net.sock.peer.name\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"/var/my.sock\",deprecation:{reason:\"Deprecated from OTEL, no replacement at this time\"},changelog:[{version:\"0.1.0\",prs:[61,119,127]},{version:\"0.0.0\"}]},\"net.sock.peer.port\":{brief:\"Peer port number of the network connection.\",type:\"integer\",keys:[\"network.peer.port\",\"net.sock.peer.port\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:8080,deprecation:{replacement:\"network.peer.port\",status:\"backfill\"},aliases:[\"network.peer.port\"],changelog:[{version:\"0.21.0\",prs:[588],description:\"Added network.peer.port as an alias\"},{version:\"0.4.0\",prs:[228]},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"net.transport\":{brief:\"OSI transport layer or inter-process communication method.\",type:\"string\",keys:[\"net.transport\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"tcp\",deprecation:{replacement:\"network.transport\",reason:\"This attribute is being deprecated in favor of network.transport. The values change from ip_tcp and ip_udp to tcp and udp, so the old value cannot be copied over.\"},aliases:[\"network.transport\",\"mcp.transport\"],changelog:[{version:\"0.21.0\",prs:[588],description:\"Set net.transport to _status null, because its values change on the replacement\"},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"os.build\":{brief:\"The build ID of the operating system.\",type:\"string\",keys:[\"os.build_id\",\"os.build\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1234567890\",deprecation:{replacement:\"os.build_id\",status:\"backfill\"},aliases:[\"os.build_id\"],changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.build attribute, deprecated in favor of os.build_id\"}]},\"os.build_id\":{brief:\"The build ID of the operating system.\",type:\"string\",keys:[\"os.build_id\",\"os.build\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"1234567890\",aliases:[\"os.build\"],changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.build as alias\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"os.description\":{brief:\"Human readable (not intended to be parsed) OS version information, like e.g. reported by ver or lsb_release -a commands.\",type:\"string\",keys:[\"os.description\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Ubuntu 18.04.1 LTS\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"os.kernel_version\":{brief:\"An independent kernel version string. Typically the entire output of the `uname` syscall.\",type:\"string\",keys:[\"os.kernel_version\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"20.2.0\",changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.kernel_version attribute\"}]},\"os.name\":{brief:\"Human readable operating system name.\",type:\"string\",keys:[\"os.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Ubuntu\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"os.raw_description\":{brief:\"An unprocessed description string obtained by the operating system. For some well-known runtimes, Sentry will attempt to parse `name` and `version` from this string, if they are not explicitly given.\",type:\"string\",keys:[\"os.raw_description\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Ubuntu 22.04.4 LTS (Jammy Jellyfish)\",changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.raw_description attribute\"}]},\"os.rooted\":{brief:\"Whether the operating system has been jailbroken or rooted.\",type:\"boolean\",keys:[\"os.rooted\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.rooted attribute\"}]},\"os.theme\":{brief:\"Whether the OS runs in dark mode or light mode.\",type:\"string\",keys:[\"os.theme\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"dark\",changelog:[{version:\"0.5.0\",prs:[301],description:\"Added os.theme attribute\"}]},\"os.type\":{brief:\"The operating system type.\",type:\"string\",keys:[\"os.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"linux\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"os.version\":{brief:\"The version of the operating system.\",type:\"string\",keys:[\"os.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"18.04.2\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"otel.kind\":{brief:\"The span kind (https://opentelemetry.io/docs/concepts/signals/traces/#span-kind). Deprecated, use `sentry.kind` instead.\",type:\"string\",keys:[\"sentry.kind\",\"span.kind\",\"otel.kind\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"SERVER\",deprecation:{replacement:\"sentry.kind\",reason:\"Deprecated in favor of sentry.kind\",status:\"backfill\"},aliases:[\"sentry.kind\"],changelog:[{version:\"0.13.0\",prs:[440],description:\"Added otel.kind attribute\"}]},\"otel.scope.name\":{brief:\"The name of the instrumentation scope - (InstrumentationScope.Name in OTLP).\",type:\"string\",keys:[\"otel.scope.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"io.opentelemetry.contrib.mongodb\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"otel.scope.version\":{brief:\"The version of the instrumentation scope - (InstrumentationScope.Version in OTLP).\",type:\"string\",keys:[\"otel.scope.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"2.4.5\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"otel.status_code\":{brief:\"Name of the code, either \\u201COK\\u201D or \\u201CERROR\\u201D. MUST NOT be set if the status code is UNSET.\",type:\"string\",keys:[\"otel.status_code\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"OK\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"otel.status_description\":{brief:\"Description of the Status if it has a value, otherwise not set.\",type:\"string\",keys:[\"otel.status_description\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"resource not found\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"params.<key>\":{brief:\"Decoded parameters extracted from a URL path. Usually added by client-side routing frameworks like vue-router.\",type:\"string\",keys:[\"params.<key>\",\"url.path.parameter.<key>\",\"url.path.params.<key>\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"params.id='123'\",aliases:[\"url.path.parameter.<key>\",\"url.path.params.<key>\"],changelog:[{version:\"0.21.0\",prs:[586],description:\"Added url.path.params.<key> as an alias\"},{version:\"0.1.0\",prs:[103]}]},\"performance.activationStart\":{brief:\"The time between initiating a navigation to a page and the browser activating the page\",type:\"double\",keys:[\"browser.performance.navigation.activation_start\",\"performance.activationStart\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1.983,deprecation:{replacement:\"browser.performance.navigation.activation_start\",reason:\"The activationStart is now recorded as the browser.performance.navigation.activation_start attribute.\",status:\"backfill\"},aliases:[\"browser.performance.navigation.activation_start\"],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added performance.activationStart attribute\"}]},\"performance.timeOrigin\":{brief:\"The browser's performance.timeOrigin timestamp representing the time when the pageload was initiated\",type:\"double\",keys:[\"browser.performance.time_origin\",\"performance.timeOrigin\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1776185678886e-3,deprecation:{replacement:\"browser.performance.time_origin\",reason:\"The timeOrigin is now recorded as the browser.performance.time_origin attribute.\",status:\"backfill\"},aliases:[\"browser.performance.time_origin\"],changelog:[{version:\"0.5.0\",prs:[321],description:\"Added performance.timeOrigin attribute\"}]},port:{brief:\"The destination port for a TCP connection.\",type:\"integer\",keys:[\"server.port\",\"net.host.port\",\"port\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1337,examples:[1337],deprecation:{replacement:\"server.port\",reason:\"Old namespace-less attribute, to be replaced with server.port for span-first future\",status:\"backfill\"},aliases:[\"server.port\",\"net.host.port\"],changelog:[{version:\"0.19.0\",prs:[532],description:\"Added port attribute\"}]},previous_route:{brief:\"Also used by mobile SDKs to indicate the previous route in the application.\",type:\"string\",keys:[\"previous_route\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"HomeScreen\",changelog:[{version:\"0.1.0\",prs:[74]},{version:\"0.0.0\"}]},\"process.command_args\":{brief:\"All the command arguments (including the command/executable itself) as received by the process.\",type:\"string[]\",keys:[\"process.command_args\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:[\"cmd/otecol\",\"--config=config.yaml\"],changelog:[{version:\"0.6.0\",prs:[327],description:\"Added process.command_args attribute\"}]},\"process.executable.name\":{brief:\"The name of the executable that started the process.\",type:\"string\",keys:[\"process.executable.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"getsentry\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"process.pid\":{brief:\"The process ID of the running process.\",type:\"integer\",keys:[\"process.pid\",\"subprocess.pid\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:12345,aliases:[\"subprocess.pid\"],changelog:[{version:\"0.19.0\",prs:[487],description:\"Added subprocess.pid as an alias\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"process.runtime.description\":{brief:\"An additional description about the runtime of the process, for example a specific vendor customization of the runtime environment. Equivalent to `raw_description` in the Sentry runtime context.\",type:\"string\",keys:[\"process.runtime.description\",\"runtime.raw_description\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Eclipse OpenJ9 VM openj9-0.21.0\",aliases:[\"runtime.raw_description\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"process.runtime.engine.name\":{brief:\"The name of the runtime engine.\",type:\"string\",keys:[\"process.runtime.engine.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"v8\",changelog:[{version:\"0.0.0\"}]},\"process.runtime.engine.version\":{brief:\"The version of the runtime engine.\",type:\"string\",keys:[\"process.runtime.engine.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"12.9.202.13-rusty\",changelog:[{version:\"0.0.0\"}]},\"process.runtime.name\":{brief:\"The name of the runtime. Equivalent to `name` in the Sentry runtime context.\",type:\"string\",keys:[\"process.runtime.name\",\"runtime.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"node\",aliases:[\"runtime.name\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"process.runtime.version\":{brief:\"The version of the runtime of this process, as returned by the runtime without modification. Equivalent to `version` in the Sentry runtime context.\",type:\"string\",keys:[\"process.runtime.version\",\"runtime.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"18.04.2\",aliases:[\"runtime.version\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},profile_id:{brief:\"The ID of the Sentry profile the span is associated with. This is only meaningful for transaction-based profiling.\",type:\"string\",keys:[\"sentry.profile_id\",\"profile.id\",\"profile_id\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"123e4567e89b12d3a456426614174000\",deprecation:{replacement:\"sentry.profile_id\",status:\"normalize\"},aliases:[\"sentry.profile_id\"],changelog:[{version:\"0.19.0\",prs:[497],description:\"Added profile_id attribute\"}]},query:{brief:\"The database query being executed.\",type:\"string\",keys:[\"db.query.text\",\"db.statement\",\"query\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"SELECT * FROM users WHERE id = $1\",examples:[\"SELECT * FROM users WHERE id = $1\"],deprecation:{replacement:\"db.query.text\",reason:\"While this attribute never specifically required parameterization, the replacement, db.query.text, does.\",status:\"backfill\"},aliases:[\"db.query.text\",\"db.statement\"],changelog:[{version:\"0.19.0\",prs:[530],description:\"Added query attribute\"}]},\"query.<key>\":{brief:\"An item in a query string. Usually added by client-side routing frameworks like vue-router.\",type:\"string\",keys:[\"query.<key>\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"query.id='123'\",deprecation:{replacement:\"url.query\",reason:\"Instead of sending items individually in query.<key>, they should be sent all together with url.query.\"},changelog:[{version:\"0.1.0\",prs:[103]}]},\"react_native.architecture\":{brief:\"The React Native architecture the app is running on. `new` for the New Architecture, where native modules are resolved as TurboModules through `TurboModuleRegistry`, `legacy` for the Old Architecture bridge.\",type:\"string\",keys:[\"react_native.architecture\",\"turbo_module.arch\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"new\",examples:[\"new\",\"legacy\"],aliases:[\"turbo_module.arch\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added react_native.architecture attribute\"}]},\"react_native.module.call.count\":{brief:\"The number of native module calls observed during the lifetime of the span.\",type:\"integer\",keys:[\"react_native.module.call.count\",\"turbo_module.total_call_count\",\"turbo_modules.total_call_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:42,examples:[42],aliases:[\"turbo_module.total_call_count\",\"turbo_modules.total_call_count\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added react_native.module.call.count attribute\"}]},\"react_native.module.call.distinct_count\":{brief:\"The number of distinct native module and method pairs called during the lifetime of the span. Useful as a cardinality signal when the per-method breakdown has been truncated.\",type:\"integer\",keys:[\"react_native.module.call.distinct_count\",\"turbo_module.unique_methods\",\"turbo_modules.unique_methods\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:7,examples:[7],aliases:[\"turbo_module.unique_methods\",\"turbo_modules.unique_methods\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added react_native.module.call.distinct_count attribute\"}]},\"react_native.module.duration.max\":{brief:\"The duration of the slowest single native module call observed during the lifetime of the span, in milliseconds.\",type:\"double\",keys:[\"react_native.module.duration.max\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:512.5,examples:[512.5],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added react_native.module.duration.max attribute\"}]},\"react_native.module.duration.total\":{brief:\"The combined wall-clock duration of all native module calls observed during the lifetime of the span, in milliseconds. Calls overlap, so this can exceed the span duration.\",type:\"double\",keys:[\"react_native.module.duration.total\",\"turbo_module.total_duration_ms\",\"turbo_modules.total_duration_ms\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:128.45,examples:[128.45],aliases:[\"turbo_module.total_duration_ms\",\"turbo_modules.total_duration_ms\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added react_native.module.duration.total attribute\"}]},\"react_native.module.error.count\":{brief:\"The number of native module calls that failed during the lifetime of the span. A call counts as failed when it threw, rejected, or \\u2014 on the Old Architecture bridge only \\u2014 invoked its failure callback.\",type:\"integer\",keys:[\"react_native.module.error.count\",\"turbo_module.total_error_count\",\"turbo_modules.total_error_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2,examples:[2],aliases:[\"turbo_module.total_error_count\",\"turbo_modules.total_error_count\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added react_native.module.error.count attribute\"}]},\"react_native.module.kind\":{brief:\"Whether the native module call completed synchronously or reported completion later through a Promise or a callback. One of `sync` or `async`.\",type:\"string\",keys:[\"react_native.module.kind\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"sync\",examples:[\"sync\",\"async\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added react_native.module.kind attribute\"}]},\"react_native.module.method\":{brief:\"The name of the native module method that was called.\",type:\"string\",keys:[\"react_native.module.method\",\"turbo_module.method\"],applyScrubbing:{key:\"manual\",reason:\"Native module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable\"},isInOtel:!1,visibility:\"public\",example:\"getUniqueId\",examples:[\"getUniqueId\"],aliases:[\"turbo_module.method\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added react_native.module.method attribute\"}]},\"react_native.module.name\":{brief:\"The name of the native module the call was dispatched to. On the New Architecture this is the TurboModule name, on the Old Architecture the `NativeModules` key.\",type:\"string\",keys:[\"react_native.module.name\",\"turbo_module.name\"],applyScrubbing:{key:\"manual\",reason:\"Native module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable\"},isInOtel:!1,visibility:\"public\",example:\"RNDeviceInfo\",examples:[\"RNDeviceInfo\"],aliases:[\"turbo_module.name\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added react_native.module.name attribute\"}]},\"react_native.module.top.duration\":{brief:\"The total duration attributed to `react_native.module.top.name`, in milliseconds.\",type:\"double\",keys:[\"react_native.module.top.duration\",\"turbo_module.top_module_duration_ms\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:87.25,examples:[87.25],aliases:[\"turbo_module.top_module_duration_ms\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added react_native.module.top.duration attribute\"}]},\"react_native.module.top.name\":{brief:\"The native module and method that accounted for the most total duration during the lifetime of the span, formatted as `<module>.<method>`.\",type:\"string\",keys:[\"react_native.module.top.name\",\"turbo_module.top_module\"],applyScrubbing:{key:\"manual\",reason:\"Native module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable\"},isInOtel:!1,visibility:\"public\",example:\"RNDeviceInfo.getUniqueId\",examples:[\"RNDeviceInfo.getUniqueId\"],aliases:[\"turbo_module.top_module\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added react_native.module.top.name attribute\"}]},\"react.version\":{brief:\"The version of the React framework\",type:\"string\",keys:[\"react.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"18.2.0\",changelog:[{version:\"0.7.0\",prs:[368],description:\"Added react.version attribute\"}]},\"redis.command\":{brief:\"The name of the Redis operation being executed.\",type:\"string\",keys:[\"db.operation.name\",\"cloudflare.d1.query_type\",\"db.operation\",\"redis.command\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"SELECT\",examples:[\"SELECT\"],deprecation:{replacement:\"db.operation.name\",status:\"backfill\"},aliases:[\"cloudflare.d1.query_type\",\"db.operation.name\",\"db.operation\"],changelog:[{version:\"0.19.0\",prs:[531],description:\"Added redis.command attribute\"}]},\"redis.key\":{brief:\"The key the Redis command is operating on.\",type:\"string\",keys:[\"db.redis.key\",\"redis.key\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"user:2047:city\",deprecation:{replacement:\"db.redis.key\",reason:\"This attribute is being deprecated in favor of db.redis.key, which is the preferred replacement.\",status:\"backfill\"},aliases:[\"db.redis.key\"],changelog:[{version:\"0.19.0\",prs:[484],description:\"Added redis.key attribute, deprecated in favor of db.redis.key\"}]},release:{brief:\"The sentry release.\",type:\"string\",keys:[\"sentry.release\",\"release\",\"service.version\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.release\",status:\"normalize\"},aliases:[\"sentry.release\"],changelog:[{version:\"0.19.0\",prs:[497],description:\"Configured normalization\"},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"remix.action_form_data.<key>\":{brief:\"Remix form data, <key> being the form data key, the value being the form data value.\",type:\"string\",keys:[\"remix.action_form_data.<key>\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"http.response.header.text='test'\",changelog:[{version:\"0.1.0\",prs:[103]}]},replayId:{brief:\"The id of the sentry replay.\",type:\"string\",keys:[\"replayId\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"123e4567e89b12d3a456426614174000\",deprecation:{replacement:\"sentry.replay_id\"},aliases:[\"sentry.replay_id\"],changelog:[{version:\"0.24.0\",prs:[401]}]},replay_id:{brief:\"The id of the sentry replay.\",type:\"string\",keys:[\"sentry.replay_id\",\"replay.id\",\"replay_id\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"123e4567e89b12d3a456426614174000\",deprecation:{replacement:\"sentry.replay_id\",status:\"normalize\"},aliases:[\"sentry.replay_id\"],changelog:[{version:\"0.19.0\",prs:[497],description:\"Configured normalization\"},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"resource.deployment.environment\":{brief:\"The software deployment environment name.\",type:\"string\",keys:[\"sentry.environment\",\"environment\",\"resource.deployment.environment\",\"resource.deployment.environment.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.environment\",status:\"backfill\"},changelog:[{version:\"0.5.0\",prs:[266]}]},\"resource.deployment.environment.name\":{brief:\"The software deployment environment name.\",type:\"string\",keys:[\"sentry.environment\",\"environment\",\"resource.deployment.environment\",\"resource.deployment.environment.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"production\",deprecation:{replacement:\"sentry.environment\",status:\"backfill\"},changelog:[{version:\"0.3.1\",prs:[196]}]},\"resource.render_blocking_status\":{brief:\"The render blocking status of the resource.\",type:\"string\",keys:[\"resource.render_blocking_status\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"non-blocking\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},route:{brief:\"The matched route, that is, the path template in the format used by the respective server framework. Also used by mobile SDKs to indicate the current route in the application.\",type:\"string\",keys:[\"route\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"App\\\\Controller::indexAction\",deprecation:{replacement:\"http.route\"},aliases:[\"http.route\"],changelog:[{version:\"0.1.0\",prs:[61,74]},{version:\"0.0.0\"}]},\"router.navigation.origin\":{brief:\"The origin of the navigation (usually client side router navigations). Should preferably be a parameterized template (like url.template) or a URL path otherwise.\",type:\"string\",keys:[\"router.navigation.origin\",\"navigation.origin\",\"sentry.sveltekit.navigation.from\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"/users/:id\",aliases:[\"navigation.origin\",\"sentry.sveltekit.navigation.from\"],changelog:[{version:\"0.22.0\",prs:[600],description:\"Added router.navigation.origin attribute, replacing navigation.origin\"}]},\"router.navigation.route.id\":{brief:\"The identifier of the matched client-side route, as assigned by the routing framework (e.g., vue-router name, react-router id).\",type:\"string\",keys:[\"router.navigation.route.id\",\"navigation.route.id\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"AboutView\",aliases:[\"navigation.route.id\"],changelog:[{version:\"0.22.0\",prs:[600],description:\"Added router.navigation.route.id attribute, replacing navigation.route.id\"}]},\"router.navigation.type\":{brief:\"The type of navigation done by a client-side router.\",type:\"string\",keys:[\"router.navigation.type\",\"navigation.type\",\"sentry.sveltekit.navigation.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"router.push\",aliases:[\"navigation.type\",\"sentry.sveltekit.navigation.type\"],changelog:[{version:\"0.22.0\",prs:[600],description:\"Added router.navigation.type attribute, replacing navigation.type\"}]},\"rpc.grpc.status_code\":{brief:\"The numeric status code of the gRPC request.\",type:\"integer\",keys:[\"rpc.grpc.status_code\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:2,deprecation:{replacement:\"rpc.response.status_code\",reason:\"Cannot be automatically backfilled due to type mismatch (integer vs string); rpc.grpc.status_code is a numeric gRPC status code while rpc.response.status_code is the string status name.\"},aliases:[\"code\",\"rpc.response.status_code\"],changelog:[{version:\"0.19.0\",prs:[494,533],description:\"Deprecated rpc.grpc.status_code in favor of rpc.response.status_code\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"rpc.method\":{brief:\"The fully-qualified logical name of the method from the RPC interface perspective.\",type:\"string\",keys:[\"rpc.method\",\"aws.operation_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"com.example.ExampleService/exampleMethod\",aliases:[\"aws.operation_name\"],changelog:[{version:\"0.19.0\",prs:[536],description:\"Added aws.operation_name as an alias\"},{version:\"0.7.0\",prs:[351],description:\"Added rpc.method attribute\"}]},\"rpc.response.status_code\":{brief:\"Status code of the RPC returned by the RPC server or generated by the client.\",type:\"string\",keys:[\"rpc.response.status_code\",\"code\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"DEADLINE_EXCEEDED\",aliases:[\"code\",\"rpc.grpc.status_code\"],changelog:[{version:\"0.19.0\",prs:[494,533],description:\"Added code and rpc.grpc.status_code as aliases\"},{version:\"0.7.0\",prs:[352],description:\"Added rpc.response.status_code attribute\"}]},\"rpc.service\":{brief:\"The full (logical) name of the service being called, including its package name, if applicable.\",type:\"string\",keys:[\"rpc.service\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"myService.BestService\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"rpc.system\":{brief:\"A string identifying the remoting system.\",type:\"string\",keys:[\"rpc.system.name\",\"rpc.system\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"aws-api\",deprecation:{replacement:\"rpc.system.name\",reason:\"This attribute is being deprecated in favor of rpc.system.name, which is the OTel-aligned replacement.\",status:\"backfill\"},aliases:[\"rpc.system.name\"],changelog:[{version:\"0.16.0\",prs:[482],description:\"Added rpc.system attribute, deprecated in favor of rpc.system.name\"}]},\"rpc.system.name\":{brief:\"A string identifying the remoting system.\",type:\"string\",keys:[\"rpc.system.name\",\"rpc.system\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"aws-api\",aliases:[\"rpc.system\"],changelog:[{version:\"0.16.0\",prs:[482],description:\"Added rpc.system.name attribute\"}]},\"runtime.build\":{brief:\"The application build string, when it is separate from the version.\",type:\"string\",keys:[\"runtime.build\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"stable\",deprecation:{reason:\"The runtime.* namespace is deprecated in favor of process.runtime.*. No direct OTel equivalent exists for this attribute.\"},changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.build attribute\"}]},\"runtime.name\":{brief:\"The name of the runtime. For example node, CPython, or rustc.\",type:\"string\",keys:[\"process.runtime.name\",\"runtime.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"node\",deprecation:{replacement:\"process.runtime.name\",reason:\"Prefer OTel-aligned process.runtime.name\",status:\"backfill\"},aliases:[\"process.runtime.name\"],changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.name attribute in favor of process.runtime.name\"}]},\"runtime.raw_description\":{brief:\"Unprocessed description string as obtained from the runtime. Used to extract name and version for well-known runtimes.\",type:\"string\",keys:[\"process.runtime.description\",\"runtime.raw_description\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Eclipse OpenJ9 VM openj9-0.21.0\",deprecation:{replacement:\"process.runtime.description\",reason:\"Prefer OTel-aligned process.runtime.description\",status:\"backfill\"},aliases:[\"process.runtime.description\"],changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.raw_description attribute in favor of process.runtime.description\"}]},\"runtime.version\":{brief:\"The version of the runtime.\",type:\"string\",keys:[\"process.runtime.version\",\"runtime.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"18.04.2\",deprecation:{replacement:\"process.runtime.version\",reason:\"Prefer OTel-aligned process.runtime.version\",status:\"backfill\"},aliases:[\"process.runtime.version\"],changelog:[{version:\"0.11.0\",prs:[383],description:\"Added and deprecated runtime.version attribute in favor of process.runtime.version\"}]},\"score.<key>\":{brief:\"The weighted performance score for a web vital. This is defined as `score.weight.<key>` * `score.ratio.<key>`.\",type:\"double\",keys:[\"score.<key>\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"score.cls=0.1723\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score.<key> attribute\"}]},\"score.ratio.<key>\":{brief:\"The score for a web vital, normalized to a number between 0 and 1.\",type:\"double\",keys:[\"score.ratio.<key>\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"score.ratio.inp=0.7748\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score.ratio.<key> attribute\"}]},\"score.total\":{brief:\"The total performance score of a span. This is the sum of individual weighted web vital scores (see `score.<key>`).\",type:\"double\",keys:[\"score.total\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score.total attribute\"}]},\"score.weight.<key>\":{brief:\"The relative weight of a web vital in a span's performance score.\",type:\"double\",keys:[\"score.weight.<key>\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"score.weight.fcp=0.25\",changelog:[{version:\"0.7.0\",prs:[355],description:\"Added score.weight.<key> attribute\"}]},\"sentry.action\":{brief:\"Used as a generic attribute representing the action depending on the type of span. For instance, this is the database query operation for DB spans, and the request method for HTTP spans.\",type:\"string\",keys:[\"sentry.action\",\"span.action\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"SELECT\",changelog:[{version:\"0.4.0\",prs:[212]}],searchAlias:{name:\"span.action\"}},\"sentry.browser.name\":{brief:\"The name of the browser.\",type:\"string\",keys:[\"browser.name\",\"sentry.browser.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Chrome\",deprecation:{replacement:\"browser.name\",status:\"backfill\"},aliases:[\"browser.name\"],changelog:[{version:\"0.1.0\",prs:[139]}],searchAlias:{name:\"browser.name\"}},\"sentry.browser.version\":{brief:\"The version of the browser.\",type:\"string\",keys:[\"browser.version\",\"sentry.browser.version\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"120.0.6099.130\",deprecation:{replacement:\"browser.version\",status:\"backfill\"},aliases:[\"browser.version\"],changelog:[{version:\"0.1.0\",prs:[139]}]},\"sentry.cancellation_reason\":{brief:\"The reason why a span ended early.\",type:\"string\",keys:[\"sentry.cancellation_reason\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"document.hidden\",changelog:[{version:\"0.0.0\"}]},\"sentry.category\":{brief:\"The high-level category of a span, derived from the span operation or span attributes. This categorizes spans by their general purpose (e.g., database, HTTP, UI). Known values include: 'ai', 'ai.pipeline', 'app', 'browser', 'cache', 'console', 'db', 'event', 'file', 'function.aws', 'function.azure', 'function.gcp', 'function.nextjs', 'function.remix', 'graphql', 'grpc', 'http', 'measure', 'middleware', 'navigation', 'pageload', 'queue', 'resource', 'rpc', 'serialize', 'subprocess', 'template', 'topic', 'ui', 'ui.angular', 'ui.ember', 'ui.react', 'ui.svelte', 'ui.vue', 'view', 'websocket'.\",type:\"string\",keys:[\"sentry.category\",\"span.category\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"db\",changelog:[{version:\"0.4.0\",prs:[218]}],searchAlias:{name:\"span.category\"}},\"sentry.client_sample_rate\":{brief:\"Rate at which a span was sampled in the SDK.\",type:\"double\",keys:[\"sentry.client_sample_rate\",\"client_sample_rate\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:.5,changelog:[{version:\"0.1.0\",prs:[102]}],searchAlias:{name:\"client_sample_rate\"}},\"sentry.description\":{brief:\"The human-readable description of a span.\",type:\"string\",keys:[\"sentry.description\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"index view query\",changelog:[{version:\"0.1.0\",prs:[135]}]},\"sentry.dist\":{brief:\"The sentry dist.\",type:\"string\",keys:[\"sentry.dist\",\"dist\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"1.0\",aliases:[\"dist\"],changelog:[{version:\"0.16.0\",prs:[489],description:\"Added dist as an alias\"},{version:\"0.0.0\"}]},\"sentry.domain\":{brief:\"Used as a generic attribute representing the domain depending on the type of span. For instance, this is the collection/table name for database spans, and the server address for HTTP spans.\",type:\"string\",keys:[\"sentry.domain\",\"span.domain\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"example.com\",changelog:[{version:\"0.4.0\",prs:[212]}],searchAlias:{name:\"span.domain\"}},\"sentry.dsc.environment\":{brief:\"The environment from the dynamic sampling context.\",type:\"string\",keys:[\"sentry.dsc.environment\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",example:\"prod\",changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.dsc.project_id\":{brief:\"The ID of the project where the trace originated (i.e. the project of the SDK that started the trace). Propagated through the dynamic sampling context and set by Relay during ingestion.\",type:\"string\",keys:[\"sentry.dsc.project_id\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",example:\"12345\",changelog:[{version:\"0.7.0\",prs:[358],description:\"Add sentry.dsc.project_id as an attribute\"}]},\"sentry.dsc.public_key\":{brief:\"The public key from the dynamic sampling context.\",type:\"string\",keys:[\"sentry.dsc.public_key\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"internal\",example:\"c51734c603c4430eb57cb0a5728a479d\",changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.dsc.release\":{brief:\"The release identifier from the dynamic sampling context.\",type:\"string\",keys:[\"sentry.dsc.release\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",example:\"frontend@e8211be71b214afab5b85de4b4c54be3714952bb\",changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.dsc.sampled\":{brief:\"Whether the event was sampled according to the dynamic sampling context.\",type:\"boolean\",keys:[\"sentry.dsc.sampled\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",example:!0,changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.dsc.sample_rate\":{brief:\"The sample rate from the dynamic sampling context.\",type:\"string\",keys:[\"sentry.dsc.sample_rate\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",example:\"1.0\",changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.dsc.trace_id\":{brief:\"The trace ID from the dynamic sampling context.\",type:\"string\",keys:[\"sentry.dsc.trace_id\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",example:\"047372980460430cbc78d9779df33a46\",changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.dsc.transaction\":{brief:\"The transaction name from the dynamic sampling context.\",type:\"string\",keys:[\"sentry.dsc.transaction\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",example:\"/issues/errors-outages/\",changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.environment\":{brief:\"The sentry environment.\",type:\"string\",keys:[\"sentry.environment\",\"environment\",\"resource.deployment.environment\",\"resource.deployment.environment.name\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"production\",aliases:[\"environment\"],changelog:[{version:\"0.0.0\"}],searchAlias:{name:\"environment\"}},\"sentry.event.serialized_breadcrumbs\":{brief:\"JSON-serialized `breadcrumbs` property from a Sentry event.\",type:\"string\",keys:[\"sentry.event.serialized_breadcrumbs\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",changelog:[{version:\"0.19.0\",prs:[556]}]},\"sentry.event.serialized_contexts\":{brief:\"JSON-serialized `contexts` property from a Sentry event.\",type:\"string\",keys:[\"sentry.event.serialized_contexts\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",changelog:[{version:\"0.19.0\",prs:[556]}]},\"sentry.event.serialized_extra\":{brief:\"JSON-serialized `extra` property from a Sentry event.\",type:\"string\",keys:[\"sentry.event.serialized_extra\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",changelog:[{version:\"0.19.0\",prs:[556]}]},\"sentry.event.serialized_meta\":{brief:\"JSON-serialized `_meta` for the `sentry.event.serialized_*` properties from a Sentry event.\",type:\"string\",keys:[\"sentry.event.serialized_meta\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"internal\",changelog:[{version:\"0.20.0\",prs:[566]}]},\"sentry.exclusive_time\":{brief:\"The exclusive time duration of the span in milliseconds.\",type:\"double\",keys:[\"sentry.exclusive_time\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.3.0\",prs:[160]},{version:\"0.0.0\"}]},\"sentry.frames.frozen\":{brief:\"The number of frozen frames rendered during the lifetime of the span.\",type:\"integer\",keys:[\"app.vitals.frames.frozen.count\",\"frames.frozen\",\"mobile.frozen_frames\",\"sentry.frames.frozen\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:3,deprecation:{replacement:\"app.vitals.frames.frozen.count\",reason:\"Replaced by app.vitals.frames.frozen.count to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.frames.frozen.count\",\"frames.frozen\"],changelog:[{version:\"0.19.0\",prs:[500],description:\"Added sentry.frames.frozen attribute\"}]},\"sentry.frames.slow\":{brief:\"The number of slow frames rendered during the lifetime of the span.\",type:\"integer\",keys:[\"app.vitals.frames.slow.count\",\"frames.slow\",\"mobile.slow_frames\",\"sentry.frames.slow\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1,deprecation:{replacement:\"app.vitals.frames.slow.count\",reason:\"Replaced by app.vitals.frames.slow.count to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.frames.slow.count\",\"frames.slow\"],changelog:[{version:\"0.19.0\",prs:[500],description:\"Added sentry.frames.slow attribute\"}]},\"sentry.frames.total\":{brief:\"The number of total frames rendered during the lifetime of the span.\",type:\"integer\",keys:[\"app.vitals.frames.total.count\",\"frames.total\",\"mobile.total_frames\",\"sentry.frames.total\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:60,deprecation:{replacement:\"app.vitals.frames.total.count\",reason:\"Replaced by app.vitals.frames.total.count to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.frames.total.count\",\"frames.total\"],changelog:[{version:\"0.19.0\",prs:[500],description:\"Added sentry.frames.total attribute\"}]},\"sentry.graphql.operation\":{brief:\"Indicates the type of graphql operation, emitted by the Javascript SDK.\",type:\"string\",keys:[\"sentry.graphql.operation\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"getUserById\",changelog:[{version:\"0.3.1\",prs:[190]}]},\"sentry.group\":{brief:\"Stores the hash of `sentry.normalized_description`. This is primarily used for grouping spans in the product end.\",type:\"string\",keys:[\"sentry.group\",\"span.group\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.4.0\",prs:[212]}],searchAlias:{name:\"span.group\"}},\"sentry.http.prefetch\":{brief:\"If an http request was a prefetch request.\",type:\"boolean\",keys:[\"sentry.http.prefetch\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"sentry.idle_span_finish_reason\":{brief:\"The reason why an idle span ended early.\",type:\"string\",keys:[\"sentry.idle_span_finish_reason\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"idleTimeout\",changelog:[{version:\"0.0.0\"}]},\"sentry.is_localhost\":{brief:\"Indicates whether a telemetry item was sent on a host, device or browser on a localhost URL or IP address.\",type:\"boolean\",keys:[\"sentry.is_localhost\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"internal\",example:!0,examples:[!0,!1],changelog:[{version:\"0.24.0\",prs:[646],description:\"Added sentry.is_localhost attribute\"}],additionalContext:['This attribute is used for the Sentry \"Filter telemetry from localhost\" inbound filter feature.',\"SDKs must set this attribute on every span, as well as every other telemetry item supporting attribuztes.\"]},\"sentry.is_remote\":{brief:\"Indicates whether a span's parent is remote.\",type:\"boolean\",keys:[\"sentry.is_remote\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.3.1\",prs:[190]}]},\"sentry.kind\":{brief:\"Used to clarify the relationship between parents and children, or to distinguish between spans, e.g. a `server` and `client` span with the same name.\",type:\"string\",keys:[\"sentry.kind\",\"span.kind\",\"otel.kind\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"client\",examples:[\"client\",\"server\",\"producer\",\"consumer\",\"internal\"],aliases:[\"otel.kind\"],changelog:[{version:\"0.19.0\",prs:[517],description:\"Added more examples and additional_context to the attribute\"},{version:\"0.3.1\",prs:[190]}],additionalContext:['Valid attribute values are: \"client\", \"server\", \"producer\", \"consumer\" and \"internal\"'],searchAlias:{name:\"span.kind\"}},\"sentry.main_thread\":{brief:\"Whether the span or event occurred on the main thread. Computed by Relay and should not be set by SDKs.\",type:\"boolean\",keys:[\"sentry.main_thread\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\"}]},\"sentry.message.parameter.<key>\":{brief:\"A parameter used in the message template. <key> can either be the number that represent the parameter's position in the template string (sentry.message.parameter.0, sentry.message.parameter.1, etc) or the parameter's name (sentry.message.parameter.item_id, sentry.message.parameter.user_id, etc)\",type:\"string\",keys:[\"sentry.message.parameter.<key>\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"sentry.message.parameter.0='123'\",changelog:[{version:\"0.1.0\",prs:[116]}]},\"sentry.message.template\":{brief:\"The parameterized template string.\",type:\"string\",keys:[\"sentry.message.template\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Hello, {name}!\",changelog:[{version:\"0.1.0\",prs:[116]}]},\"sentry.metric.source\":{brief:\"The provenance of a metric.  For example, this can be set to indicate if a metric was generated by Relay from a span.\",type:\"string\",keys:[\"sentry.metric.source\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"span\",changelog:[{version:\"0.16.0\",prs:[476],description:\"Added sentry.metric.source attribute\"}]},\"sentry.mobile\":{brief:\"Whether the application is using a mobile SDK. Computed by Relay and should not be set by SDKs.\",type:\"boolean\",keys:[\"sentry.mobile\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.5.0\"}]},\"sentry.module.<key>\":{brief:\"A module that was loaded in the process. The key is the name of the module.\",type:\"string\",keys:[\"sentry.module.<key>\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"sentry.module.brianium/paratest='v7.7.0'\",changelog:[{version:\"0.1.0\",prs:[103]}]},\"sentry.nextjs.ssr.function.route\":{brief:\"A parameterized route for a function in Next.js that contributes to Server-Side Rendering. Should be present on spans that track such functions when the file location of the function is known.\",type:\"string\",keys:[\"sentry.nextjs.ssr.function.route\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"/posts/[id]/layout\",changelog:[{version:\"0.1.0\",prs:[54,106]}]},\"sentry.nextjs.ssr.function.type\":{brief:\"A descriptor for a for a function in Next.js that contributes to Server-Side Rendering. Should be present on spans that track such functions.\",type:\"string\",keys:[\"sentry.nextjs.ssr.function.type\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"generateMetadata\",changelog:[{version:\"0.1.0\",prs:[54,106]}]},\"sentry.normalized_db_query\":{brief:\"The normalized version of `db.query.text`.\",type:\"string\",keys:[\"sentry.normalized_db_query\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"SELECT .. FROM sentry_project WHERE (project_id = %s)\",changelog:[{version:\"0.3.1\",prs:[194]}]},\"sentry.normalized_db_query.hash\":{brief:\"The hash of `sentry.normalized_db_query`.\",type:\"string\",keys:[\"sentry.normalized_db_query.hash\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",changelog:[{version:\"0.4.0\",prs:[200]}]},\"sentry.normalized_description\":{brief:\"Used as a generic attribute representing the normalized `sentry.description`. This refers to the legacy use case of `sentry.description` where it holds relevant data depending on the type of span (e.g. database query, resource url, http request description, etc).\",type:\"string\",keys:[\"sentry.normalized_description\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"SELECT .. FROM sentry_project WHERE (project_id = %s)\",changelog:[{version:\"0.4.0\",prs:[212]}]},\"sentry.observed_timestamp_nanos\":{brief:\"The timestamp at which an envelope was received by Relay, in nanoseconds.\",type:\"string\",keys:[\"sentry.observed_timestamp_nanos\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"1544712660300000000\",changelog:[{version:\"0.3.0\",prs:[174]},{version:\"0.2.0\",prs:[137]}]},\"sentry.op\":{brief:\"The operation of a span.\",type:\"string\",keys:[\"sentry.op\",\"span.op\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"http.client\",changelog:[{version:\"0.0.0\"}],searchAlias:{name:\"span.op\"}},\"sentry.origin\":{brief:\"The origin of the instrumentation (e.g. span, log, etc.)\",type:\"string\",keys:[\"sentry.origin\",\"origin\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"auto.http.otel.fastify\",changelog:[{version:\"0.1.0\",prs:[68]},{version:\"0.0.0\"}],searchAlias:{name:\"origin\"}},\"sentry.pageload.span_id\":{brief:\"The id of the pageload span, set by web vital spans and metrics\",type:\"string\",keys:[\"sentry.pageload.span_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"bf2c8d3df84524de\",changelog:[{version:\"0.17.0\",prs:[495],description:\"Added sentry.pageload.span_id attribute\"}]},\"sentry.platform\":{brief:\"The sdk platform that generated the event.\",type:\"string\",keys:[\"sentry.platform\",\"platform\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"php\",changelog:[{version:\"0.0.0\"}],searchAlias:{name:\"platform\"}},\"sentry.profiler_id\":{brief:\"The id of the currently running profiler (continuous profiling)\",type:\"string\",keys:[\"sentry.profiler_id\",\"profiler.id\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"18779b64dd35d1a538e7ce2dd2d3fad3\",changelog:[{version:\"0.4.0\",prs:[242]}],searchAlias:{name:\"profiler.id\"}},\"sentry.profile_id\":{brief:\"The ID of the Sentry profile the span is associated with. This is only meaningful for transaction-based profiling.\",type:\"string\",keys:[\"sentry.profile_id\",\"profile.id\",\"profile_id\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"123e4567e89b12d3a456426614174000\",aliases:[\"profile_id\"],changelog:[{version:\"0.19.0\",prs:[497],description:\"Added profile_id as an alias\"},{version:\"0.6.0\",prs:[344],description:\"Added sentry.profile_id attribute\"}],searchAlias:{name:\"profile.id\"}},\"sentry.relay.ingress\":{brief:\"How an item (span, log, &c.) entered Relay.\",type:\"string\",keys:[\"sentry.relay.ingress\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"internal\",example:\"OTEL\",changelog:[{version:\"0.17.0\",prs:[491],description:\"Added sentry.relay.ingress attribute\"}]},\"sentry.relay.pipeline\":{brief:\"An internal descriptor of which processing pipeline an item went through in Relay.\",type:\"string\",keys:[\"sentry.relay.pipeline\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"internal\",example:\"span v2\",changelog:[{version:\"0.17.0\",prs:[491],description:\"Added sentry.relay.pipeline attribute\"}]},\"sentry.release\":{brief:\"The sentry release.\",type:\"string\",keys:[\"sentry.release\",\"release\",\"service.version\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"7.0.0\",aliases:[\"service.version\",\"release\"],changelog:[{version:\"0.0.0\"}],searchAlias:{name:\"release\"}},\"sentry.replay_id\":{brief:\"The id of the sentry replay.\",type:\"string\",keys:[\"sentry.replay_id\",\"replay.id\",\"replay_id\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"123e4567e89b12d3a456426614174000\",aliases:[\"replay_id\",\"replayId\"],changelog:[{version:\"0.0.0\"}],searchAlias:{name:\"replay.id\"}},\"sentry.replay_is_buffering\":{brief:\"A sentinel attribute on log events indicating whether the current Session Replay is being buffered (onErrorSampleRate).\",type:\"boolean\",keys:[\"sentry.replay_is_buffering\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.3.0\",prs:[185]}]},\"sentry.report_event\":{brief:\"(Deprecated) The event that caused the SDK to report CLS or LCP (pagehide or navigation)\",type:\"string\",keys:[\"sentry.report_event\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"pagehide\",deprecation:{reason:\"The report event moved to browser.web_vital.lcp.report_event and browser.web_vital.cls.report_event, which are themselves deprecated without a replacement. No backfill required.\"},changelog:[{version:\"0.24.0\",prs:[642],description:\"Updated the deprecation reason now that the browser.web_vital.*.report_event attributes are deprecated\"},{version:\"0.5.0\",prs:[320],description:\"Added sentry.report_event attribute\"}]},\"sentry.sdk.integrations\":{brief:\"A list of names identifying enabled integrations. The list shouldhave all enabled integrations, including default integrations. Defaultintegrations are included because different SDK releases may contain differentdefault integrations.\",type:\"string[]\",keys:[\"sentry.sdk.integrations\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:[\"InboundFilters\",\"FunctionToString\",\"BrowserApiErrors\",\"Breadcrumbs\"],changelog:[{version:\"0.0.0\",prs:[42]}]},\"sentry.sdk.name\":{brief:\"The sentry sdk name.\",type:\"string\",keys:[\"sentry.sdk.name\",\"sdk.name\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"@sentry/react\",changelog:[{version:\"0.0.0\"}],searchAlias:{name:\"sdk.name\"}},\"sentry.sdk.version\":{brief:\"The sentry sdk version.\",type:\"string\",keys:[\"sentry.sdk.version\",\"sdk.version\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"7.0.0\",changelog:[{version:\"0.0.0\"}],searchAlias:{name:\"sdk.version\"}},\"sentry.segment.id\":{brief:\"The segment ID of a span\",type:\"string\",keys:[\"sentry.segment.id\",\"sentry.segment_id\",\"transaction.span_id\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"051581bf3cb55c13\",aliases:[\"sentry.segment_id\"],changelog:[{version:\"0.1.0\",prs:[107,124]}]},\"sentry.segment_id\":{brief:\"The segment ID of a span\",type:\"string\",keys:[\"sentry.segment.id\",\"sentry.segment_id\",\"transaction.span_id\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"051581bf3cb55c13\",deprecation:{replacement:\"sentry.segment.id\",status:\"backfill\"},aliases:[\"sentry.segment.id\"],changelog:[{version:\"0.1.0\",prs:[124]}],searchAlias:{name:\"transaction.span_id\"}},\"sentry.segment.name\":{brief:\"The segment name of a span\",type:\"string\",keys:[\"sentry.segment.name\",\"transaction\",\"sentry.transaction\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"GET /user\",aliases:[\"sentry.transaction\",\"transaction\"],changelog:[{version:\"0.6.0\",prs:[345],description:\"Added sentry.transaction and transaction aliases\"},{version:\"0.1.0\",prs:[104]}],searchAlias:{name:\"transaction\"}},\"sentry.segment.name.source\":{brief:\"The source of the segment span name. Should only be set on segment spans. Known values are:  `'custom'`, `'url'`, `'route'`, `'component'`, `'view'`, `'task'`.\",type:\"string\",keys:[\"sentry.segment.name.source\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"internal\",example:\"route\",examples:[\"route\",\"component\",\"view\",\"task\",\"custom\",\"url\"],changelog:[{version:\"0.19.0\",prs:[466],description:\"Added sentry.segment.name.source\"}],additionalContext:[\"This attribute is the replacement for `transaction_info.source` on transactions.\",\"Should we bring back clustering for segment names (like we do for transaction names), this attribute will be used to determine if a segment name should be clustered.\"]},\"sentry.server_sample_rate\":{brief:\"Rate at which a span was sampled in Relay.\",type:\"double\",keys:[\"sentry.server_sample_rate\",\"server_sample_rate\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:.5,changelog:[{version:\"0.1.0\",prs:[102]}],searchAlias:{name:\"server_sample_rate\"}},\"sentry.source\":{brief:\"The source of a span, also referred to as transaction source. Known values are:  `'custom'`, `'url'`, `'route'`, `'component'`, `'view'`, `'task'`. '`source`' describes a parametrized route, while `'url'` describes the full URL, potentially containing identifiers.\",type:\"string\",keys:[\"sentry.source\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"route\",deprecation:{reason:\"This attribute is superseded by sentry.segment.name.source, which only needs to be set on segment spans.\"},changelog:[{version:\"0.19.0\",prs:[510],description:\"Removed the sentry.span.source replacement\"},{version:\"0.5.0\"}]},\"sentry.span.source\":{brief:\"The source of a span, also referred to as transaction source. Known values are:  `'custom'`, `'url'`, `'route'`, `'component'`, `'view'`, `'task'`. '`source`' describes a parametrized route, while `'url'` describes the full URL, potentially containing identifiers.\",type:\"string\",keys:[\"sentry.span.source\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"route\",deprecation:{reason:\"This attribute is superseded by sentry.segment.name.source, which only needs to be set on segment spans.\"},changelog:[{version:\"0.19.0\",prs:[510],description:\"Deprecated; superseded by sentry.segment.name.source on segment spans\"},{version:\"0.4.0\",prs:[214]},{version:\"0.0.0\"}]},\"sentry.status\":{brief:`The span's status (either \"ok\" or \"error\"). Older SDKs may set this to a more specific error, but this behaviour is deprecated.`,type:\"string\",keys:[\"sentry.status\",\"span.status\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"ok\",changelog:[{version:\"0.14.0\",prs:[453]}],searchAlias:{name:\"span.status\"}},\"sentry.status_code\":{brief:\"The HTTP status code used in Sentry Insights. Typically set by Sentry during ingestion, rather than by clients.\",type:\"integer\",keys:[\"sentry.status_code\",\"span.status_code\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:200,changelog:[{version:\"0.4.0\",prs:[223,228]}],searchAlias:{name:\"span.status_code\"}},\"sentry.status.message\":{brief:\"The from OTLP extracted status message.\",type:\"string\",keys:[\"sentry.status.message\",\"span.status.message\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"foobar\",changelog:[{version:\"0.3.1\",prs:[190]}],searchAlias:{name:\"span.status.message\"}},\"sentry.sveltekit.navigation.from\":{brief:\"the navigation origin (sveltekit router)\",type:\"string\",keys:[\"router.navigation.origin\",\"navigation.origin\",\"sentry.sveltekit.navigation.from\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"/home\",deprecation:{replacement:\"router.navigation.origin\",reason:\"Use the more generic attribute instead\",status:\"backfill\"},aliases:[\"navigation.origin\",\"router.navigation.origin\"],changelog:[{version:\"0.22.0\",prs:[600],description:\"Re-pointed deprecation from navigation.origin to router.navigation.origin\"},{version:\"0.16.0\",prs:[467],description:\"Added sentry.sveltekit.navigation.from attribute\"}]},\"sentry.sveltekit.navigation.to\":{brief:\"the navigation destination\",type:\"string\",keys:[\"sentry.sveltekit.navigation.to\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"/users/:id\",deprecation:{reason:\"the navigation destination is already covered by url.* attributes\"},changelog:[{version:\"0.16.0\",prs:[467],description:\"Added sentry.sveltekit.navigation.to attribute\"}]},\"sentry.sveltekit.navigation.type\":{brief:\"The type of navigation event emitted from the sveltekit client router\",type:\"string\",keys:[\"router.navigation.type\",\"navigation.type\",\"sentry.sveltekit.navigation.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"link\",deprecation:{replacement:\"router.navigation.type\",reason:\"Use the more generic attribute instead\",status:\"backfill\"},aliases:[\"navigation.type\",\"router.navigation.type\"],changelog:[{version:\"0.22.0\",prs:[600],description:\"Re-pointed deprecation from navigation.type to router.navigation.type\"},{version:\"0.16.0\",prs:[467],description:\"Added sentry.sveltekit.navigation.type attribute\"}]},\"sentry.thread.id\":{brief:'Current \"managed\" thread ID.',type:\"integer\",keys:[\"thread.id\",\"sentry.thread.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:56,deprecation:{replacement:\"thread.id\",reason:\"This attribute is being deprecated in favor of the OTel-standard thread.id\",status:\"backfill\"},changelog:[{version:\"0.13.0\",prs:[451]}],searchAlias:{name:\"thread.id\"}},\"sentry.timestamp.sequence\":{brief:\"A sequencing counter for deterministic ordering of logs or metrics when timestamps share the same integer millisecond. Starts at 0 on SDK initialization, increments by 1 for each captured item, and resets to 0 when the integer millisecond of the current item differs from the previous one.\",type:\"integer\",keys:[\"sentry.timestamp.sequence\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:0,changelog:[{version:\"0.5.0\",prs:[262]}]},\"sentry.trace_lifecycle\":{brief:\"Indicates the chosen trace lifecycle mode of the SDK (stream or static)\",type:\"string\",keys:[\"sentry.trace_lifecycle\",\"trace_lifecycle\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"stream\",changelog:[{version:\"0.13.0\",prs:[442],description:\"Added sentry.trace_lifecycle attribute\"}],searchAlias:{name:\"trace_lifecycle\"}},\"sentry.trace.parent_span_id\":{brief:\"The span id of the span that was active when the log was collected. This should not be set if there was no active span.\",type:\"string\",keys:[\"sentry.trace.parent_span_id\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"b0e6f15b45c36b12\",deprecation:{},changelog:[{version:\"0.5.0\",prs:[287],description:\"Deprecate `sentry.trace.parent_span_id`\"},{version:\"0.1.0\",prs:[116]}]},\"sentry.trace.status\":{brief:`The segment's status (either \"ok\" or \"error\"). Older SDKs may set this to a more specific error, but this behaviour is deprecated.`,type:\"string\",keys:[\"sentry.trace.status\",\"trace.status\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"ok\",changelog:[{version:\"0.14.0\",prs:[453]}],searchAlias:{name:\"trace.status\"}},\"sentry.transaction\":{brief:\"The sentry transaction (segment name).\",type:\"string\",keys:[\"sentry.segment.name\",\"transaction\",\"sentry.transaction\"],applyScrubbing:{key:\"never\"},isInOtel:!1,visibility:\"public\",example:\"GET /\",deprecation:{replacement:\"sentry.segment.name\",reason:\"This attribute is being deprecated in favor of sentry.segment.name\",status:\"backfill\"},aliases:[\"sentry.segment.name\",\"transaction\"],changelog:[{version:\"0.6.0\",prs:[345],description:\"Deprecated sentry.transaction in favor of sentry.segment.name\"},{version:\"0.0.0\"}]},\"sentry.user.email\":{brief:\"User email address.\",type:\"string\",keys:[\"user.email\",\"sentry.user.email\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.email\",status:\"backfill\"},aliases:[\"user.email\"],changelog:[{version:\"0.10.0\",prs:[406]}],searchAlias:{name:\"user.email\"}},\"sentry.user.geo.city\":{brief:\"Human readable city name.\",type:\"string\",keys:[\"user.geo.city\",\"sentry.user.geo.city\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.city\",status:\"backfill\"},aliases:[\"user.geo.city\"],changelog:[{version:\"0.10.0\",prs:[406]}],searchAlias:{name:\"user.geo.city\"}},\"sentry.user.geo.country_code\":{brief:\"Two-letter country code (ISO 3166-1 alpha-2).\",type:\"string\",keys:[\"user.geo.country_code\",\"sentry.user.geo.country_code\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.country_code\",status:\"backfill\"},aliases:[\"user.geo.country_code\"],changelog:[{version:\"0.10.0\",prs:[406]}],searchAlias:{name:\"user.geo.country_code\"}},\"sentry.user.geo.region\":{brief:\"Human readable region name or code.\",type:\"string\",keys:[\"user.geo.region\",\"sentry.user.geo.region\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.region\",status:\"backfill\"},aliases:[\"user.geo.region\"],changelog:[{version:\"0.10.0\",prs:[406]}],searchAlias:{name:\"user.geo.region\"}},\"sentry.user.geo.subdivision\":{brief:\"Human readable subdivision name.\",type:\"string\",keys:[\"user.geo.subdivision\",\"sentry.user.geo.subdivision\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.geo.subdivision\",status:\"backfill\"},aliases:[\"user.geo.subdivision\"],changelog:[{version:\"0.10.0\",prs:[406]}],searchAlias:{name:\"user.geo.subdivision\"}},\"sentry.user.id\":{brief:\"Unique identifier of the user.\",type:\"string\",keys:[\"user.id\",\"sentry.user.id\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.id\",status:\"backfill\"},aliases:[\"user.id\"],changelog:[{version:\"0.10.0\",prs:[406]}],searchAlias:{name:\"user.id\"}},\"sentry.user.ip\":{brief:\"The IP address of the user.\",type:\"string\",keys:[\"user.ip_address\",\"sentry.user.ip\",\"user.ip\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.ip_address\",status:\"backfill\"},aliases:[\"user.ip_address\"],changelog:[{version:\"0.10.0\",prs:[406]}],searchAlias:{name:\"user.ip\"}},\"sentry.user.username\":{brief:\"Short name or login/username of the user.\",type:\"string\",keys:[\"user.name\",\"sentry.user.username\",\"user.username\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"user.name\",status:\"backfill\"},aliases:[\"user.name\"],changelog:[{version:\"0.10.0\",prs:[406]}],searchAlias:{name:\"user.username\"}},\"server.address\":{brief:\"Preferably the server domain name if available without reverse DNS lookup, or an IP address or Unix domain socket name. For compatibility, it may contain what the hostname command returns on UNIX systems, the fully qualified hostname, or another name specified by the user.\",type:\"string\",keys:[\"server.address\",\"address\",\"http.server_name\",\"net.host.name\",\"server_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",aliases:[\"address\",\"http.server_name\",\"net.host.name\",\"http.host\",\"server_name\",\"net.peer.name\"],changelog:[{version:\"0.24.0\",prs:[645,647],description:\"Broaden brief to allow hostnames\"},{version:\"0.21.0\",prs:[588,602],description:\"Added net.peer.name as an alias\"},{version:\"0.19.0\",prs:[534],description:\"Added address as an alias\"},{version:\"0.1.0\",prs:[108,127]},{version:\"0.0.0\"}]},server_name:{brief:\"The name of the device. On servers and desktops, this is typically the hostname.\",type:\"string\",keys:[\"server.address\",\"address\",\"http.server_name\",\"net.host.name\",\"server_name\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"example.com\",deprecation:{replacement:\"server.address\",reason:\"This attribute is being deprecated in favor of server.address.\",status:\"backfill\"},aliases:[\"address\",\"server.address\",\"http.server_name\",\"net.host.name\",\"http.host\",\"net.peer.name\"],changelog:[{version:\"0.24.0\",prs:[647],description:\"Alias the server.address alias group\"},{version:\"0.21.0\",prs:[588,602],description:\"Alias device.name instead of the server.address alias group\"},{version:\"0.19.0\",prs:[534],description:\"Added address as an alias\"},{version:\"0.16.0\",prs:[477],description:\"Added server_name attribute, deprecated in favor of server.address\"}]},\"server.port\":{brief:\"Server port number.\",type:\"integer\",keys:[\"server.port\",\"net.host.port\",\"port\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:1337,aliases:[\"net.host.port\",\"port\"],changelog:[{version:\"0.19.0\",prs:[532],description:\"Added port as an alias\"},{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"service.name\":{brief:\"Logical name of the service.\",type:\"string\",keys:[\"service.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"omegastar\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"service.version\":{brief:\"The version string of the service API or implementation. The format is not defined by these conventions.\",type:\"string\",keys:[\"service.version\",\"sentry.release\",\"release\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"5.0.0\",aliases:[\"sentry.release\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"session.id\":{brief:\"A unique id identifying the active session at the time of setting this attribute\",type:\"string\",keys:[\"session.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"00112233-4455-6677-8899-aabbccddeeff\",changelog:[{version:\"0.11.0\",prs:[412],description:\"Added session.id attribute\"}]},stall_percentage:{brief:\"The fraction of time the app was stalled. Only applies to React Native. This is computed by Relay.\",type:\"double\",keys:[\"app.vitals.stall.percentage\",\"stall_percentage\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"app.vitals.stall.percentage\",reason:\"Replaced by app.vitals.stall.percentage to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.stall.percentage\"],changelog:[{version:\"0.19.0\",prs:[493],description:\"Deprecated in favor of app.vitals.stall.percentage\"},{version:\"0.7.0\",prs:[362],description:\"Added stall_percentage attribute\"}]},stall_total_time:{brief:\"The combined duration of all stalls in milliseconds. Only applies to React Native. This is computed by Relay.\",type:\"double\",keys:[\"app.vitals.stall.duration\",\"stall_total_time\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",deprecation:{replacement:\"app.vitals.stall.duration\",reason:\"Replaced by app.vitals.stall.duration to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.stall.duration\"],changelog:[{version:\"0.19.0\",prs:[493],description:\"Deprecated in favor of app.vitals.stall.duration\"},{version:\"0.7.0\",prs:[362],description:\"Added stall_total_time attribute\"}]},\"starlette.middleware_name\":{brief:\"The name of the Starlette middleware.\",type:\"string\",keys:[\"middleware.name\",\"django.middleware_name\",\"litestar.middleware_name\",\"starlette.middleware_name\",\"starlite.middleware_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"AuthenticationMiddleware\",deprecation:{replacement:\"middleware.name\",reason:\"This attribute is being deprecated in favor of middleware.name, which is the framework-agnostic replacement.\",status:\"backfill\"},aliases:[\"middleware.name\"],changelog:[{version:\"0.19.0\",prs:[485],description:\"Added starlette.middleware_name attribute, deprecated in favor of middleware.name\"}]},\"starlite.middleware_name\":{brief:\"The name of the Starlite middleware.\",type:\"string\",keys:[\"middleware.name\",\"django.middleware_name\",\"litestar.middleware_name\",\"starlette.middleware_name\",\"starlite.middleware_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"AuthenticationMiddleware\",examples:[\"AuthenticationMiddleware\"],deprecation:{replacement:\"middleware.name\",reason:\"This attribute is being deprecated in favor of middleware.name, which is the framework-agnostic replacement.\",status:\"backfill\"},aliases:[\"middleware.name\"],changelog:[{version:\"0.19.0\",prs:[519],description:\"Added starlite.middleware_name attribute\"}]},\"state.type\":{brief:\"The type of state management library\",type:\"string\",keys:[\"state.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"redux\",changelog:[{version:\"0.7.0\",prs:[365],description:\"Added state.type attribute\"}]},\"subprocess.pid\":{brief:\"The process ID of a subprocess.\",type:\"integer\",keys:[\"process.pid\",\"subprocess.pid\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:12345,deprecation:{replacement:\"process.pid\",reason:\"This attribute is being deprecated in favor of process.pid, which is the OTel-aligned replacement.\",status:\"backfill\"},aliases:[\"process.pid\"],changelog:[{version:\"0.19.0\",prs:[487],description:\"Added subprocess.pid attribute, deprecated in favor of process.pid\"}]},\"sveltekit.load.environment\":{brief:\"The runtime environment in which the SvelteKit load function was executed. Known values are `'server'` and `'client'`.\",type:\"string\",keys:[\"sveltekit.load.environment\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"server\",examples:[\"server\",\"client\"],changelog:[{version:\"0.22.0\",prs:[611],description:\"Added sveltekit.load.environment attribute\"}],additionalContext:[\"Added by the SvelteKit framework itself. The Sentry SDK only forwards the attribute to Sentry.\"]},\"sveltekit.load.node_id\":{brief:\"The path to the SvelteKit load function.\",type:\"string\",keys:[\"sveltekit.load.node_id\",\"code.file.path\",\"code.filepath\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"src/routes/users/:id/+page.server.ts\",examples:[\"src/routes/users/:id/+page.server.ts\"],aliases:[\"code.file.path\",\"code.filepath\"],changelog:[{version:\"0.22.0\",prs:[611],description:\"Added sveltekit.load.node_id attribute\"}],additionalContext:[\"Added by the SvelteKit framework itself. The Sentry SDK only forwards the attribute to Sentry.\"]},\"sveltekit.load.node_type\":{brief:\"The kind of SvelteKit load function that was executed, distinguishing page from layout and universal from server load functions.\",type:\"string\",keys:[\"sveltekit.load.node_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"+page.server\",examples:[\"+page.server\",\"+layout\",\"+layout.server\"],changelog:[{version:\"0.22.0\",prs:[611],description:\"Added sveltekit.load.node_type attribute\"}],additionalContext:[\"Added by the SvelteKit framework itself. The Sentry SDK only forwards the attribute to Sentry.\"]},\"sveltekit.tracing.original_name\":{brief:\"The original span name as emitted by SvelteKit.\",type:\"string\",keys:[\"sveltekit.tracing.original_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"sveltekit.handle.root\",examples:[\"sveltekit.handle.root\"],changelog:[{version:\"0.22.0\",prs:[611],description:\"Added sveltekit.tracing.original_name attribute\"}],additionalContext:[\"The Sentry SDK renames SvelteKit-emitted spans to match Sentry's span name semantics, and preserves the name SvelteKit originally set in this attribute.\"]},\"thread.id\":{brief:\"Current \\u201Cmanaged\\u201D thread ID.\",type:\"integer\",keys:[\"thread.id\",\"sentry.thread.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:56,changelog:[{version:\"0.0.0\"}]},\"thread.name\":{brief:\"Current thread name.\",type:\"string\",keys:[\"thread.name\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"main\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"timber.tag\":{brief:\"The log tag provided by the timber logging framework.\",type:\"string\",keys:[\"timber.tag\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"MyTag\",changelog:[{version:\"0.3.0\",prs:[183]}]},time_to_full_display:{brief:\"The duration of time to full display in milliseconds\",type:\"double\",keys:[\"app.vitals.ttfd.value\",\"time_to_full_display\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.ttfd.value\",reason:\"Replaced by app.vitals.ttfd.value to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.ttfd.value\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added and deprecated in favor of app.vitals.ttfd.value\"}]},time_to_initial_display:{brief:\"The duration of time to initial display in milliseconds\",type:\"double\",keys:[\"app.vitals.ttid.value\",\"time_to_initial_display\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1234.56,deprecation:{replacement:\"app.vitals.ttid.value\",reason:\"Replaced by app.vitals.ttid.value to align with the app.vitals.* namespace for mobile performance attributes\",status:\"backfill\"},aliases:[\"app.vitals.ttid.value\"],changelog:[{version:\"0.5.0\",prs:[313],description:\"Added and deprecated in favor of app.vitals.ttid.value\"}]},transaction:{brief:\"The sentry transaction (segment name).\",type:\"string\",keys:[\"sentry.segment.name\",\"transaction\",\"sentry.transaction\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"GET /\",deprecation:{replacement:\"sentry.segment.name\",status:\"normalize\"},aliases:[\"sentry.segment.name\",\"sentry.transaction\"],changelog:[{version:\"0.19.0\",prs:[497],description:\"Change deprecation from backfill to normalize\"},{version:\"0.6.0\",prs:[345],description:\"Updated transaction deprecation replacement to sentry.segment.name\"},{version:\"0.1.0\",prs:[61,127]},{version:\"0.0.0\"}]},\"trpc.procedure_path\":{brief:\"The path of the tRPC procedure being called\",type:\"string\",keys:[\"trpc.procedure_path\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"user.getById\",changelog:[{version:\"0.7.0\",prs:[370],description:\"Added trpc.procedure_path attribute\"}]},\"trpc.procedure_type\":{brief:\"The type of the tRPC procedure\",type:\"string\",keys:[\"trpc.procedure_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"query\",changelog:[{version:\"0.7.0\",prs:[370],description:\"Added trpc.procedure_type attribute\"}]},ttfb:{brief:\"The value of the recorded Time To First Byte (TTFB) web vital in milliseconds\",type:\"double\",keys:[\"browser.web_vital.ttfb.value\",\"ttfb\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:194,deprecation:{replacement:\"browser.web_vital.ttfb.value\",reason:\"This attribute is being deprecated in favor of browser.web_vital.ttfb.value\",status:\"backfill\"},aliases:[\"browser.web_vital.ttfb.value\"],changelog:[{version:\"0.5.0\",prs:[235]}]},\"ttfb.requestTime\":{brief:\"The time it takes for the server to process the initial request and send the first byte of a response to the user's browser\",type:\"double\",keys:[\"browser.web_vital.ttfb.request_time\",\"ttfb.requestTime\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1554.5814,deprecation:{replacement:\"browser.web_vital.ttfb.request_time\",reason:\"This attribute is being deprecated in favor of browser.web_vital.ttfb.request_time\",status:\"backfill\"},aliases:[\"browser.web_vital.ttfb.request_time\"],changelog:[{version:\"0.5.0\",prs:[235]}]},\"turbo_modules.total_call_count\":{brief:\"The number of native module calls in the flushed call aggregate. Only applies to React Native.\",type:\"integer\",keys:[\"react_native.module.call.count\",\"turbo_module.total_call_count\",\"turbo_modules.total_call_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:42,examples:[42],deprecation:{replacement:\"react_native.module.call.count\",reason:\"Replaced by the `react_native.module.*` namespace; the SDK emitted the same values under both a singular `turbo_module.*` and a plural `turbo_modules.*` prefix\",status:\"backfill\"},aliases:[\"react_native.module.call.count\",\"turbo_module.total_call_count\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added turbo_modules.total_call_count and deprecated it in favor of react_native.module.call.count\"}]},\"turbo_modules.total_duration_ms\":{brief:\"The combined duration of all native module calls in the flushed call aggregate, in milliseconds. Only applies to React Native.\",type:\"double\",keys:[\"react_native.module.duration.total\",\"turbo_module.total_duration_ms\",\"turbo_modules.total_duration_ms\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:128.45,examples:[128.45],deprecation:{replacement:\"react_native.module.duration.total\",reason:\"Replaced by the `react_native.module.*` namespace; the SDK emitted the same values under both a singular `turbo_module.*` and a plural `turbo_modules.*` prefix\",status:\"backfill\"},aliases:[\"react_native.module.duration.total\",\"turbo_module.total_duration_ms\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added turbo_modules.total_duration_ms and deprecated it in favor of react_native.module.duration.total\"}]},\"turbo_modules.total_error_count\":{brief:\"The number of failed native module calls in the flushed call aggregate. Only applies to React Native.\",type:\"integer\",keys:[\"react_native.module.error.count\",\"turbo_module.total_error_count\",\"turbo_modules.total_error_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2,examples:[2],deprecation:{replacement:\"react_native.module.error.count\",reason:\"Replaced by the `react_native.module.*` namespace; the SDK emitted the same values under both a singular `turbo_module.*` and a plural `turbo_modules.*` prefix\",status:\"backfill\"},aliases:[\"react_native.module.error.count\",\"turbo_module.total_error_count\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added turbo_modules.total_error_count and deprecated it in favor of react_native.module.error.count\"}]},\"turbo_modules.unique_methods\":{brief:\"The number of distinct native module and method pairs in the flushed call aggregate. Only applies to React Native.\",type:\"integer\",keys:[\"react_native.module.call.distinct_count\",\"turbo_module.unique_methods\",\"turbo_modules.unique_methods\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:7,examples:[7],deprecation:{replacement:\"react_native.module.call.distinct_count\",reason:\"Replaced by the `react_native.module.*` namespace; the SDK emitted the same values under both a singular `turbo_module.*` and a plural `turbo_modules.*` prefix\",status:\"backfill\"},aliases:[\"react_native.module.call.distinct_count\",\"turbo_module.unique_methods\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added turbo_modules.unique_methods and deprecated it in favor of react_native.module.call.distinct_count\"}]},\"turbo_module.arch\":{brief:\"The React Native architecture the call was observed on. `new` for a TurboModule resolved through `TurboModuleRegistry`, `legacy` for a module reached over the Old Architecture bridge. Only applies to React Native.\",type:\"string\",keys:[\"react_native.architecture\",\"turbo_module.arch\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"new\",examples:[\"new\",\"legacy\"],deprecation:{replacement:\"react_native.architecture\",reason:\"Replaced by the `react_native.*` namespace, which also covers native module calls made over the Old Architecture bridge, which are not TurboModules\",status:\"backfill\"},aliases:[\"react_native.architecture\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added turbo_module.arch and deprecated it in favor of react_native.architecture\"}]},\"turbo_module.method\":{brief:\"The name of the native module method that was called. Only applies to React Native.\",type:\"string\",keys:[\"react_native.module.method\",\"turbo_module.method\"],applyScrubbing:{key:\"manual\",reason:\"Native module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable\"},isInOtel:!1,visibility:\"public\",example:\"getUniqueId\",examples:[\"getUniqueId\"],deprecation:{replacement:\"react_native.module.method\",reason:\"Replaced by the `react_native.*` namespace, which also covers native module calls made over the Old Architecture bridge, which are not TurboModules\",status:\"backfill\"},aliases:[\"react_native.module.method\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added turbo_module.method and deprecated it in favor of react_native.module.method\"}]},\"turbo_module.name\":{brief:\"The name of the native module the call was dispatched to. On the New Architecture this is the TurboModule name, on the Old Architecture the `NativeModules` key. Only applies to React Native.\",type:\"string\",keys:[\"react_native.module.name\",\"turbo_module.name\"],applyScrubbing:{key:\"manual\",reason:\"Native module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable\"},isInOtel:!1,visibility:\"public\",example:\"RNDeviceInfo\",examples:[\"RNDeviceInfo\"],deprecation:{replacement:\"react_native.module.name\",reason:\"Replaced by the `react_native.*` namespace, which also covers native module calls made over the Old Architecture bridge, which are not TurboModules\",status:\"backfill\"},aliases:[\"react_native.module.name\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added turbo_module.name and deprecated it in favor of react_native.module.name\"}]},\"turbo_module.top_module\":{brief:\"The native module and method that accounted for the most total duration during the lifetime of the span. Only applies to React Native.\",type:\"string\",keys:[\"react_native.module.top.name\",\"turbo_module.top_module\"],applyScrubbing:{key:\"manual\",reason:\"Native module and method names are app-defined identifiers, but scrubbing them would make the call attribution unusable\"},isInOtel:!1,visibility:\"public\",example:\"RNDeviceInfo.getUniqueId\",examples:[\"RNDeviceInfo.getUniqueId\"],deprecation:{replacement:\"react_native.module.top.name\",reason:\"Replaced by the `react_native.module.*` namespace, which also covers native module calls made over the Old Architecture bridge, and which drops the `total_` prefix and `_ms` suffix in favor of dot-separated logical grouping\",status:\"backfill\"},aliases:[\"react_native.module.top.name\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added turbo_module.top_module and deprecated it in favor of react_native.module.top.name\"}]},\"turbo_module.top_module_duration_ms\":{brief:\"The total duration attributed to the top native module method, in milliseconds. Only applies to React Native.\",type:\"double\",keys:[\"react_native.module.top.duration\",\"turbo_module.top_module_duration_ms\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:87.25,examples:[87.25],deprecation:{replacement:\"react_native.module.top.duration\",reason:\"Replaced by the `react_native.module.*` namespace, which also covers native module calls made over the Old Architecture bridge, and which drops the `total_` prefix and `_ms` suffix in favor of dot-separated logical grouping\",status:\"backfill\"},aliases:[\"react_native.module.top.duration\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added turbo_module.top_module_duration_ms and deprecated it in favor of react_native.module.top.duration\"}]},\"turbo_module.total_call_count\":{brief:\"The number of native module calls observed during the lifetime of the span. Only applies to React Native.\",type:\"integer\",keys:[\"react_native.module.call.count\",\"turbo_module.total_call_count\",\"turbo_modules.total_call_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:42,examples:[42],deprecation:{replacement:\"react_native.module.call.count\",reason:\"Replaced by the `react_native.module.*` namespace, which also covers native module calls made over the Old Architecture bridge, and which drops the `total_` prefix and `_ms` suffix in favor of dot-separated logical grouping\",status:\"backfill\"},aliases:[\"react_native.module.call.count\",\"turbo_modules.total_call_count\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added turbo_module.total_call_count and deprecated it in favor of react_native.module.call.count\"}]},\"turbo_module.total_duration_ms\":{brief:\"The combined duration of all native module calls observed during the lifetime of the span, in milliseconds. Only applies to React Native.\",type:\"double\",keys:[\"react_native.module.duration.total\",\"turbo_module.total_duration_ms\",\"turbo_modules.total_duration_ms\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:128.45,examples:[128.45],deprecation:{replacement:\"react_native.module.duration.total\",reason:\"Replaced by the `react_native.module.*` namespace, which also covers native module calls made over the Old Architecture bridge, and which drops the `total_` prefix and `_ms` suffix in favor of dot-separated logical grouping\",status:\"backfill\"},aliases:[\"react_native.module.duration.total\",\"turbo_modules.total_duration_ms\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added turbo_module.total_duration_ms and deprecated it in favor of react_native.module.duration.total\"}]},\"turbo_module.total_error_count\":{brief:\"The number of native module calls that failed during the lifetime of the span. Only applies to React Native.\",type:\"integer\",keys:[\"react_native.module.error.count\",\"turbo_module.total_error_count\",\"turbo_modules.total_error_count\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:2,examples:[2],deprecation:{replacement:\"react_native.module.error.count\",reason:\"Replaced by the `react_native.module.*` namespace, which also covers native module calls made over the Old Architecture bridge, and which drops the `total_` prefix and `_ms` suffix in favor of dot-separated logical grouping\",status:\"backfill\"},aliases:[\"react_native.module.error.count\",\"turbo_modules.total_error_count\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added turbo_module.total_error_count and deprecated it in favor of react_native.module.error.count\"}]},\"turbo_module.unique_methods\":{brief:\"The number of distinct native module and method pairs called during the lifetime of the span. Only applies to React Native.\",type:\"integer\",keys:[\"react_native.module.call.distinct_count\",\"turbo_module.unique_methods\",\"turbo_modules.unique_methods\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:7,examples:[7],deprecation:{replacement:\"react_native.module.call.distinct_count\",reason:\"Replaced by the `react_native.module.*` namespace, which also covers native module calls made over the Old Architecture bridge, and which drops the `total_` prefix and `_ms` suffix in favor of dot-separated logical grouping\",status:\"backfill\"},aliases:[\"react_native.module.call.distinct_count\",\"turbo_modules.unique_methods\"],changelog:[{version:\"0.24.0\",prs:[564],description:\"Added turbo_module.unique_methods and deprecated it in favor of react_native.module.call.distinct_count\"}]},type:{brief:\"More granular type of the operation happening.\",type:\"string\",keys:[\"type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"fetch\",changelog:[{version:\"0.0.0\"}]},\"ui.component_name\":{brief:\"The name of the associated component.\",type:\"string\",keys:[\"ui.component_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"HomeButton\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"ui.contributes_to_ttfd\":{brief:\"Whether the span execution contributed to the TTFD (time to fully drawn) metric.\",type:\"boolean\",keys:[\"ui.contributes_to_ttfd\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"ui.contributes_to_ttid\":{brief:\"Whether the span execution contributed to the TTID (time to initial display) metric.\",type:\"boolean\",keys:[\"ui.contributes_to_ttid\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,changelog:[{version:\"0.0.0\"}]},\"ui.element.height\":{brief:\"The height of the UI element (for Html in pixels)\",type:\"integer\",keys:[\"ui.element.height\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:256,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.height attribute\"}]},\"ui.element.id\":{brief:\"The id of the UI element\",type:\"string\",keys:[\"ui.element.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"btn-login\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.id attribute\"}]},\"ui.element.identifier\":{brief:\"The identifier used to measure the UI element timing\",type:\"string\",keys:[\"ui.element.identifier\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"heroImage\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.identifier attribute\"}]},\"ui.element.load_time\":{brief:\"The loading time of a UI element (from time origin to finished loading)\",type:\"double\",keys:[\"ui.element.load_time\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:998.2234,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.load_time attribute\"}]},\"ui.element.paint_type\":{brief:\"The type of element paint. Can either be 'image-paint' or 'text-paint'\",type:\"string\",keys:[\"ui.element.paint_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"image-paint\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.paint_type attribute\"}]},\"ui.element.render_time\":{brief:\"The rendering time of the UI element (from time origin to finished rendering)\",type:\"double\",keys:[\"ui.element.render_time\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1023.1124,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.render_time attribute\"}]},\"ui.element.type\":{brief:\"type of the UI element\",type:\"string\",keys:[\"ui.element.type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"img\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.type attribute\"}]},\"ui.element.url\":{brief:\"The URL of the UI element (e.g. an img src)\",type:\"string\",keys:[\"ui.element.url\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"https://assets.myapp.com/hero.png\",changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.url attribute\"}]},\"ui.element.width\":{brief:\"The width of the UI element (for HTML in pixels)\",type:\"integer\",keys:[\"ui.element.width\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:512,changelog:[{version:\"0.5.0\",prs:[284],description:\"Added ui.element.width attribute\"}]},url:{brief:\"The URL of the resource that was fetched.\",type:\"string\",keys:[\"url.full\",\"aws.request.url\",\"http.url\",\"messaging.url\",\"url\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"https://example.com/test?foo=bar#buzz\",deprecation:{replacement:\"url.full\",status:\"backfill\"},aliases:[\"url.full\",\"http.url\",\"aws.request.url\",\"messaging.url\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.url as an alias\"},{version:\"0.1.0\",prs:[61]},{version:\"0.0.0\"}]},\"url.domain\":{brief:\"Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name.\",type:\"string\",keys:[\"url.domain\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"example.com\",changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"url.fragment\":{brief:\"The fragments present in the URI. Note that this does not contain the leading # character, while the `http.fragment` attribute does.\",type:\"string\",keys:[\"url.fragment\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"details\",changelog:[{version:\"0.0.0\"}]},\"url.full\":{brief:\"The URL of the resource that was fetched.\",type:\"string\",keys:[\"url.full\",\"aws.request.url\",\"http.url\",\"messaging.url\",\"url\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"https://example.com/test?foo=bar#buzz\",aliases:[\"http.url\",\"url\",\"aws.request.url\",\"messaging.url\"],changelog:[{version:\"0.21.0\",prs:[581],description:\"Added messaging.url as an alias\"},{version:\"0.19.0\",prs:[488],description:\"Added aws.request.url as an alias\"},{version:\"0.1.0\",prs:[108]},{version:\"0.0.0\"}]},\"url.path\":{brief:\"The URI path component.\",type:\"string\",keys:[\"url.path\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"/foo\",changelog:[{version:\"0.0.0\"}]},\"url.path.parameter.<key>\":{brief:\"Decoded parameters extracted from a URL path. Usually added by client-side routing frameworks like vue-router.\",type:\"string\",keys:[\"url.path.parameter.<key>\",\"params.<key>\",\"url.path.params.<key>\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"url.path.parameter.id='123'\",aliases:[\"params.<key>\",\"url.path.params.<key>\"],changelog:[{version:\"0.21.0\",prs:[586],description:\"Added url.path.params.<key> as an alias\"},{version:\"0.1.0\",prs:[103]}]},\"url.path.params.<key>\":{brief:\"Decoded parameters extracted from a URL path. Usually added by client-side routing frameworks like vue-router.\",type:\"string\",keys:[\"url.path.parameter.<key>\",\"params.<key>\",\"url.path.params.<key>\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",hasDynamicSuffix:!0,example:\"url.path.params.id='123'\",examples:[\"url.path.params.id='123'\"],deprecation:{replacement:\"url.path.parameter.<key>\",reason:\"This attribute is being deprecated in favor of url.path.parameter.<key>.\",status:\"backfill\"},aliases:[\"url.path.parameter.<key>\",\"params.<key>\"],changelog:[{version:\"0.21.0\",prs:[586],description:\"Added url.path.params.<key> attribute\"}]},\"url.port\":{brief:\"Server port number.\",type:\"integer\",keys:[\"url.port\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:1337,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.0.0\"}]},\"url.query\":{brief:\"The query string present in the URL. Note that this does not contain the leading ? character, while the `http.query` attribute does.\",type:\"string\",keys:[\"url.query\"],applyScrubbing:{key:\"auto\",reason:\"Query string values can contain sensitive information. Clients should attempt to scrub parameters that might contain sensitive information.\"},isInOtel:!0,visibility:\"public\",example:\"foo=bar&bar=baz\",changelog:[{version:\"0.0.0\"}]},\"url.same_origin\":{brief:\"Indicates that a URL has the same origin as the current page's origin in the browser.\",type:\"boolean\",keys:[\"http.request.same_origin\",\"url.same_origin\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:!0,deprecation:{replacement:\"http.request.same_origin\",reason:\"This attribute is being deprecated in favor of http.request.same_origin.\",status:\"backfill\"},aliases:[\"http.request.same_origin\"],changelog:[{version:\"0.16.0\",prs:[456],description:\"Added url.same_origin attribute, deprecated in favor of http.request.same_origin\"}]},\"url.scheme\":{brief:\"The URI scheme component identifying the used protocol.\",type:\"string\",keys:[\"url.scheme\",\"http.scheme\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"https\",aliases:[\"http.scheme\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"url.template\":{brief:\"The low-cardinality template of an absolute URL path reference.\",type:\"string\",keys:[\"url.template\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"/users/{id}\",examples:[\"/users/{id}\",\"/users/:id\",\"/about\"],changelog:[{version:\"0.19.0\",prs:[505,521],description:\"Added multiple examples, removed alias to `http.route`, added additional context\"},{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}],additionalContext:[\"This attribute should primarily be set by client-side routing instrumentation, or `http.client` spans (if applicable).\",\"Use `http.route` for server-side instrumentation that captures the framework route of an incoming request.\"]},\"user_agent.original\":{brief:\"Value of the HTTP User-Agent header sent by the client.\",type:\"string\",keys:[\"user_agent.original\",\"http.user_agent\"],applyScrubbing:{key:\"manual\"},isInOtel:!0,visibility:\"public\",example:\"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1\",aliases:[\"http.user_agent\"],changelog:[{version:\"0.1.0\",prs:[127]},{version:\"0.0.0\"}]},\"user.email\":{brief:\"User email address.\",type:\"string\",keys:[\"user.email\",\"sentry.user.email\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"test@example.com\",aliases:[\"sentry.user.email\"],changelog:[{version:\"0.0.0\"}]},\"user.full_name\":{brief:\"User's full name.\",type:\"string\",keys:[\"user.full_name\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"John Smith\",changelog:[{version:\"0.0.0\"}]},\"user.geo.city\":{brief:\"Human readable city name.\",type:\"string\",keys:[\"user.geo.city\",\"sentry.user.geo.city\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Toronto\",aliases:[\"sentry.user.geo.city\"],changelog:[{version:\"0.0.0\"}]},\"user.geo.country_code\":{brief:\"Two-letter country code (ISO 3166-1 alpha-2).\",type:\"string\",keys:[\"user.geo.country_code\",\"sentry.user.geo.country_code\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"CA\",aliases:[\"sentry.user.geo.country_code\"],changelog:[{version:\"0.0.0\"}]},\"user.geo.region\":{brief:\"Human readable region name or code.\",type:\"string\",keys:[\"user.geo.region\",\"sentry.user.geo.region\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Canada\",aliases:[\"sentry.user.geo.region\"],changelog:[{version:\"0.0.0\"}]},\"user.geo.subdivision\":{brief:\"Human readable subdivision name.\",type:\"string\",keys:[\"user.geo.subdivision\",\"sentry.user.geo.subdivision\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"Ontario\",aliases:[\"sentry.user.geo.subdivision\"],changelog:[{version:\"0.0.0\"}]},\"user.hash\":{brief:\"Unique user hash to correlate information for a user in anonymized form.\",type:\"string\",keys:[\"user.hash\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"8ae4c2993e0f4f3b8b2d1b1f3b5e8f4d\",changelog:[{version:\"0.0.0\"}]},\"user.id\":{brief:\"Unique identifier of the user.\",type:\"string\",keys:[\"user.id\",\"sentry.user.id\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"S-1-5-21-202424912787-2692429404-2351956786-1000\",aliases:[\"sentry.user.id\"],changelog:[{version:\"0.0.0\"}]},\"user.ip_address\":{brief:\"The IP address of the user.\",type:\"string\",keys:[\"user.ip_address\",\"sentry.user.ip\",\"user.ip\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"192.168.1.1\",aliases:[\"sentry.user.ip\"],changelog:[{version:\"0.1.0\",prs:[75]}]},\"user.name\":{brief:\"Short name or login/username of the user.\",type:\"string\",keys:[\"user.name\",\"sentry.user.username\",\"user.username\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:\"j.smith\",aliases:[\"sentry.user.username\"],changelog:[{version:\"0.0.0\"}]},\"user.roles\":{brief:\"Array of user roles at the time of the event.\",type:\"string[]\",keys:[\"user.roles\"],applyScrubbing:{key:\"auto\"},isInOtel:!0,visibility:\"public\",example:[\"admin\",\"editor\"],changelog:[{version:\"0.0.0\"}]},\"vercel.branch\":{brief:\"Git branch name for Vercel project\",type:\"string\",keys:[\"vercel.branch\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"main\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.build_id\":{brief:\"Identifier for the Vercel build (only present on build logs)\",type:\"string\",keys:[\"vercel.build_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"bld_cotnkcr76\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.deployment_id\":{brief:\"Identifier for the Vercel deployment\",type:\"string\",keys:[\"vercel.deployment_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"dpl_233NRGRjVZX1caZrXWtz5g1TAksD\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.destination\":{brief:\"Origin of the external content in Vercel (only on external logs)\",type:\"string\",keys:[\"vercel.destination\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"https://vitals.vercel-insights.com/v1\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.edge_type\":{brief:\"Type of edge runtime in Vercel\",type:\"string\",keys:[\"vercel.edge_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"edge-function\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.entrypoint\":{brief:\"Entrypoint for the request in Vercel\",type:\"string\",keys:[\"vercel.entrypoint\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"api/index.js\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.execution_region\":{brief:\"Region where the request is executed\",type:\"string\",keys:[\"vercel.execution_region\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"sfo1\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.id\":{brief:\"Unique identifier for the log entry in Vercel\",type:\"string\",keys:[\"vercel.id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"1573817187330377061717300000\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.ja3_digest\":{brief:\"JA3 fingerprint digest of Vercel request\",type:\"string\",keys:[\"vercel.ja3_digest\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"769,47-53-5-10-49161-49162-49171-49172-50-56-19-4,0-10-11,23-24-25,0\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.ja4_digest\":{brief:\"JA4 fingerprint digest\",type:\"string\",keys:[\"vercel.ja4_digest\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"t13d1516h2_8daaf6152771_02713d6af862\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.log_type\":{brief:\"Vercel log output type\",type:\"string\",keys:[\"vercel.log_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"stdout\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.path\":{brief:\"Function or dynamic path of the request in Vercel.\",type:\"string\",keys:[\"vercel.path\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"/dynamic/[route].json\",changelog:[{version:\"0.6.0\",prs:[349],description:\"Added vercel.path attribute\"}]},\"vercel.project_id\":{brief:\"Identifier for the Vercel project\",type:\"string\",keys:[\"vercel.project_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"gdufoJxB6b9b1fEqr1jUtFkyavUU\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.project_name\":{brief:\"Name of the Vercel project\",type:\"string\",keys:[\"vercel.project_name\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"my-app\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.cache_id\":{brief:\"Original request ID when request is served from cache\",type:\"string\",keys:[\"vercel.proxy.cache_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"pdx1::v8g4b-1744143786684-93dafbc0f70d\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.client_ip\":{brief:\"Client IP address\",type:\"string\",keys:[\"vercel.proxy.client_ip\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"120.75.16.101\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.host\":{brief:\"Hostname of the request\",type:\"string\",keys:[\"vercel.proxy.host\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"test.vercel.app\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.lambda_region\":{brief:\"Region where lambda function executed\",type:\"string\",keys:[\"vercel.proxy.lambda_region\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"sfo1\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.method\":{brief:\"HTTP method of the request\",type:\"string\",keys:[\"vercel.proxy.method\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"GET\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.path\":{brief:\"Request path with query parameters\",type:\"string\",keys:[\"vercel.proxy.path\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"/dynamic/some-value.json?route=some-value\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.path_type\":{brief:\"How the request was served based on its path and project configuration\",type:\"string\",keys:[\"vercel.proxy.path_type\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"func\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.path_type_variant\":{brief:\"Variant of the path type\",type:\"string\",keys:[\"vercel.proxy.path_type_variant\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"api\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.referer\":{brief:\"Referer of the request\",type:\"string\",keys:[\"vercel.proxy.referer\"],applyScrubbing:{key:\"auto\"},isInOtel:!1,visibility:\"public\",example:\"*.vercel.app\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.region\":{brief:\"Region where the request is processed\",type:\"string\",keys:[\"vercel.proxy.region\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"sfo1\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.response_byte_size\":{brief:\"Size of the response in bytes\",type:\"integer\",keys:[\"vercel.proxy.response_byte_size\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1024,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.scheme\":{brief:\"Protocol of the request\",type:\"string\",keys:[\"vercel.proxy.scheme\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"https\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.status_code\":{brief:\"HTTP status code of the proxy request\",type:\"integer\",keys:[\"vercel.proxy.status_code\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:200,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.timestamp\":{brief:\"Unix timestamp when the proxy request was made\",type:\"integer\",keys:[\"vercel.proxy.timestamp\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:1573817250172,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.user_agent\":{brief:\"User agent strings of the request\",type:\"string[]\",keys:[\"vercel.proxy.user_agent\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:[\"Mozilla/5.0...\"],changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.vercel_cache\":{brief:\"Cache status sent to the browser\",type:\"string\",keys:[\"vercel.proxy.vercel_cache\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"REVALIDATED\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.vercel_id\":{brief:\"Vercel-specific identifier\",type:\"string\",keys:[\"vercel.proxy.vercel_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"sfo1::abc123\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.waf_action\":{brief:\"Action taken by firewall rules\",type:\"string\",keys:[\"vercel.proxy.waf_action\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"deny\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.proxy.waf_rule_id\":{brief:\"ID of the firewall rule that matched\",type:\"string\",keys:[\"vercel.proxy.waf_rule_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"rule_gAHz8jtSB1Gy\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.request_id\":{brief:\"Identifier of the Vercel request\",type:\"string\",keys:[\"vercel.request_id\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"643af4e3-975a-4cc7-9e7a-1eda11539d90\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.source\":{brief:\"Origin of the Vercel log (build, edge, lambda, static, external, or firewall)\",type:\"string\",keys:[\"vercel.source\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:\"build\",changelog:[{version:\"0.2.0\",prs:[163]}]},\"vercel.status_code\":{brief:\"HTTP status code of the request (-1 means no response returned and the lambda crashed)\",type:\"integer\",keys:[\"vercel.status_code\"],applyScrubbing:{key:\"manual\"},isInOtel:!1,visibility:\"public\",example:200,changelog:[{version:\"0.4.0\",prs:[228]},{version:\"0.2.0\",prs:[163]}]}};export{e as ADDRESS,t as AI_CITATIONS,i as AI_COMPLETION_TOKENS_USED,a as AI_DOCUMENTS,s as AI_FINISH_REASON,r as AI_FREQUENCY_PENALTY,n as AI_FUNCTION_CALL,o as AI_GENERATION_ID,l as AI_INPUT_MESSAGES,p as AI_IS_SEARCH_REQUIRED,c as AI_METADATA,u as AI_MODEL_ID,g as AI_MODEL_PROVIDER,b as AI_PIPELINE_NAME,m as AI_PREAMBLE,y as AI_PRESENCE_PENALTY,_ as AI_PROMPT,h as AI_PROMPT_MESSAGES,f as AI_PROMPT_TOKENS_USED,v as AI_PROMPT_TOOLS,k as AI_RAW_PROMPTING,T as AI_RESPONSES,S as AI_RESPONSE_FORMAT,E as AI_RESPONSE_ID,O as AI_RESPONSE_MODEL,I as AI_RESPONSE_OBJECT,A as AI_RESPONSE_TEXT,w as AI_RESPONSE_TIMESTAMP,x as AI_RESPONSE_TOOLCALLS,R as AI_SCHEMA,N as AI_SEARCH_QUERIES,C as AI_SEARCH_RESULTS,P as AI_SEED,D as AI_STREAMING,q as AI_TAGS,L as AI_TEMPERATURE,M as AI_TEXTS,U as AI_TOOLCALL_ARGS,G as AI_TOOLCALL_RESULT,z as AI_TOOLS,Y as AI_TOOL_CALLS,V as AI_TOP_K,B as AI_TOP_P,F as AI_TOTAL_COST,W as AI_TOTAL_TOKENS_USED,H as AI_USAGE_TOKENS,K as AI_VALUES,j as AI_WARNINGS,Q as ANGULAR_VERSION,X as APP_APP_BUILD,J as APP_APP_IDENTIFIER,Z as APP_APP_NAME,$ as APP_APP_START_TIME,ee as APP_APP_VERSION,te as APP_BUILD,ie as APP_IDENTIFIER,ae as APP_IN_FOREGROUND,se as APP_NAME,re as APP_START_COLD,ne as APP_START_TIME,oe as APP_START_TYPE,le as APP_START_WARM,pe as APP_VERSION,ce as APP_VITALS_FRAMES_DELAY_VALUE,ue as APP_VITALS_FRAMES_FROZEN_COUNT,de as APP_VITALS_FRAMES_FROZEN_RATE,ge as APP_VITALS_FRAMES_SLOW_COUNT,be as APP_VITALS_FRAMES_SLOW_RATE,me as APP_VITALS_FRAMES_TOTAL_COUNT,ye as APP_VITALS_STALL_DURATION,_e as APP_VITALS_STALL_PERCENTAGE,he as APP_VITALS_START_COLD_VALUE,fe as APP_VITALS_START_PREWARMED,ve as APP_VITALS_START_REASON,ke as APP_VITALS_START_SCREEN,Te as APP_VITALS_START_TYPE,Se as APP_VITALS_START_WARM_VALUE,Ee as APP_VITALS_TTFD_VALUE,Oe as APP_VITALS_TTID_VALUE,Ie as ART_GC_BLOCKING_COUNT,Ae as ART_GC_BLOCKING_TIME,we as ART_GC_PRE_OOME_COUNT,xe as ART_GC_TOTAL_COUNT,Re as ART_GC_TOTAL_TIME,Ne as ART_GC_WAITING_TIME,Ce as ART_MEMORY_FREE,Pe as ART_MEMORY_FREE_UNTIL_GC,De as ART_MEMORY_FREE_UNTIL_OOME,qe as ART_MEMORY_MAX,Le as ART_MEMORY_TOTAL,Tm as ATTRIBUTE_METADATA,km as ATTRIBUTE_TYPE,Me as AWS_CLOUDWATCH_LOGS_LOG_GROUP,Ue as AWS_CLOUDWATCH_LOGS_LOG_STREAM,Ge as AWS_CLOUDWATCH_LOGS_URL,ze as AWS_DYNAMODB_ATTRIBUTE_DEFINITIONS,Ye as AWS_DYNAMODB_CONSISTENT_READ,Ve as AWS_DYNAMODB_CONSUMED_CAPACITY,Be as AWS_DYNAMODB_COUNT,Fe as AWS_DYNAMODB_EXCLUSIVE_START_TABLE,We as AWS_DYNAMODB_GLOBAL_SECONDARY_INDEXES,He as AWS_DYNAMODB_GLOBAL_SECONDARY_INDEX_UPDATES,Ke as AWS_DYNAMODB_INDEX_NAME,je as AWS_DYNAMODB_ITEM_COLLECTION_METRICS,Qe as AWS_DYNAMODB_LIMIT,Xe as AWS_DYNAMODB_LOCAL_SECONDARY_INDEXES,Je as AWS_DYNAMODB_PROJECTION,Ze as AWS_DYNAMODB_PROVISIONED_READ_CAPACITY,$e as AWS_DYNAMODB_PROVISIONED_WRITE_CAPACITY,et as AWS_DYNAMODB_SCANNED_COUNT,tt as AWS_DYNAMODB_SCAN_FORWARD,it as AWS_DYNAMODB_SEGMENT,at as AWS_DYNAMODB_SELECT,st as AWS_DYNAMODB_TABLE_COUNT,rt as AWS_DYNAMODB_TABLE_NAMES,nt as AWS_DYNAMODB_TOTAL_SEGMENTS,ot as AWS_EXTENDED_REQUEST_ID,lt as AWS_KINESIS_STREAM_NAME,ct as AWS_LAMBDA_AWS_REQUEST_ID,ut as AWS_LAMBDA_EXECUTION_DURATION_IN_MILLIS,dt as AWS_LAMBDA_FUNCTION_NAME,gt as AWS_LAMBDA_FUNCTION_VERSION,bt as AWS_LAMBDA_INVOKED_ARN,mt as AWS_LAMBDA_INVOKED_FUNCTION_ARN,yt as AWS_LAMBDA_REMAINING_TIME_IN_MILLIS,_t as AWS_LOG_GROUP_NAMES,ht as AWS_LOG_STREAM_NAMES,ft as AWS_OPERATION_NAME,vt as AWS_REGION,kt as AWS_REQUEST_EXTENDED_ID,Tt as AWS_REQUEST_ID,Et as AWS_REQUEST_URL,Ot as AWS_S3_BUCKET,It as AWS_SECRETSMANAGER_SECRET_ARN,At as AWS_SNS_TOPIC_ARN,wt as AWS_STEP_FUNCTIONS_ACTIVITY_ARN,xt as AWS_STEP_FUNCTIONS_STATE_MACHINE_ARN,Rt as BLOCKED_MAIN_THREAD,Nt as BROWSER_BFCACHE_FRAME,Ct as BROWSER_BFCACHE_NOT_RESTORED_REASON_COUNT,Pt as BROWSER_BFCACHE_OUTCOME,Dt as BROWSER_BFCACHE_REASON,qt as BROWSER_NAME,Lt as BROWSER_NAVIGATION_ID,Mt as BROWSER_NAVIGATION_TYPE,Ut as BROWSER_PAINT_TYPE,Gt as BROWSER_PERFORMANCE_NAVIGATION_ACTIVATION_START,zt as BROWSER_PERFORMANCE_TIME_ORIGIN,Yt as BROWSER_REPORT_TYPE,Vt as BROWSER_SCRIPT_INVOKER,Bt as BROWSER_SCRIPT_INVOKER_TYPE,Ft as BROWSER_SCRIPT_SOURCE_CHAR_POSITION,Wt as BROWSER_VERSION,Ht as BROWSER_WEB_VITAL_CLS_REPORT_EVENT,Kt as BROWSER_WEB_VITAL_CLS_SOURCE_KEY,jt as BROWSER_WEB_VITAL_CLS_SOURCE_KEY_BASE,Qt as BROWSER_WEB_VITAL_CLS_VALUE,Xt as BROWSER_WEB_VITAL_FCP_VALUE,Jt as BROWSER_WEB_VITAL_FP_VALUE,Zt as BROWSER_WEB_VITAL_INP_INTERACTION_TYPE,$t as BROWSER_WEB_VITAL_INP_TARGET,ei as BROWSER_WEB_VITAL_INP_VALUE,ti as BROWSER_WEB_VITAL_LCP_ELEMENT,ii as BROWSER_WEB_VITAL_LCP_ID,ai as BROWSER_WEB_VITAL_LCP_LOAD_TIME,si as BROWSER_WEB_VITAL_LCP_RENDER_TIME,ri as BROWSER_WEB_VITAL_LCP_REPORT_EVENT,ni as BROWSER_WEB_VITAL_LCP_SIZE,oi as BROWSER_WEB_VITAL_LCP_URL,li as BROWSER_WEB_VITAL_LCP_VALUE,pi as BROWSER_WEB_VITAL_TTFB_REQUEST_TIME,ci as BROWSER_WEB_VITAL_TTFB_VALUE,ui as CACHE_HIT,di as CACHE_ITEM_AGE,gi as CACHE_ITEM_SIZE,bi as CACHE_KEY,mi as CACHE_OPERATION,yi as CACHE_TAGS,_i as CACHE_TTL,hi as CACHE_WRITE,fi as CHANNEL,vi as CLIENT_ADDRESS,ki as CLIENT_PORT,Ti as CLOUDFLARE_D1_DURATION,Si as CLOUDFLARE_D1_QUERY_TYPE,Ei as CLOUDFLARE_D1_ROWS_READ,Oi as CLOUDFLARE_D1_ROWS_WRITTEN,Ii as CLOUDFLARE_DURABLE_OBJECT_QUERY_BINDINGS,Ai as CLOUDFLARE_DURABLE_OBJECT_RESPONSE_ROWS_READ,wi as CLOUDFLARE_DURABLE_OBJECT_RESPONSE_ROWS_WRITTEN,xi as CLOUDFLARE_R2_BUCKET,Ri as CLOUDFLARE_R2_OPERATION,Ni as CLOUDFLARE_R2_REQUEST_DELIMITER,Ci as CLOUDFLARE_R2_REQUEST_KEY,Pi as CLOUDFLARE_R2_REQUEST_PART_NUMBER,Di as CLOUDFLARE_R2_REQUEST_PREFIX,qi as CLOUDFLARE_WORKFLOW_ATTEMPT,Li as CLOUDFLARE_WORKFLOW_RETRIES_BACKOFF,Mi as CLOUDFLARE_WORKFLOW_RETRIES_DELAY,Ui as CLOUDFLARE_WORKFLOW_RETRIES_LIMIT,Gi as CLOUDFLARE_WORKFLOW_TIMEOUT,zi as CLOUD_ACCOUNT_ID,Yi as CLOUD_AVAILABILITY_ZONE,Vi as CLOUD_PLATFORM,Bi as CLOUD_PROVIDER,Fi as CLOUD_REGION,Wi as CLOUD_RESOURCE_ID,Hi as CLS,Ki as CLS_SOURCE_KEY,ji as CLS_SOURCE_KEY_BASE,Qi as CODE,Xi as CODE_FILEPATH,Ji as CODE_FILE_PATH,Zi as CODE_FUNCTION,$i as CODE_FUNCTION_NAME,ea as CODE_LINENO,ta as CODE_LINE_NUMBER,ia as CODE_NAMESPACE,aa as CONNECTIONTYPE,sa as CONNECTION_RTT,ra as CULTURE_CALENDAR,na as CULTURE_DISPLAY_NAME,oa as CULTURE_IS_24_HOUR_FORMAT,la as CULTURE_LOCALE,pa as CULTURE_TIMEZONE,ca as DB_COLLECTION_NAME,ua as DB_CONNECTION_STRING,da as DB_DRIVER_NAME,ga as DB_MONGODB_COLLECTION,ba as DB_NAME,ma as DB_NAMESPACE,ya as DB_OPERATION,_a as DB_OPERATION_BATCH_SIZE,ha as DB_OPERATION_NAME,fa as DB_PARAMS,va as DB_QUERY_PARAMETER_KEY,ka as DB_QUERY_PARAMETER_KEY_BASE,Ta as DB_QUERY_SUMMARY,Sa as DB_QUERY_TEXT,Ea as DB_REDIS_CONNECTION,Oa as DB_REDIS_KEY,Ia as DB_REDIS_PARAMETERS,Aa as DB_RESPONSE_STATUS_CODE,wa as DB_SQL_BINDINGS,xa as DB_STATEMENT,Ra as DB_STORED_PROCEDURE_NAME,Na as DB_SYSTEM,Ca as DB_SYSTEM_NAME,Pa as DB_USER,Da as DEVICEMEMORY,qa as DEVICE_ARCHS,La as DEVICE_BATTERY_LEVEL,Ma as DEVICE_BATTERY_TEMPERATURE,Ua as DEVICE_BOOT_TIME,Ga as DEVICE_BRAND,za as DEVICE_CHARGING,Ya as DEVICE_CHIPSET,Va as DEVICE_CLASS,Ba as DEVICE_CONNECTION_TYPE,Fa as DEVICE_CPU_DESCRIPTION,Wa as DEVICE_EXTERNAL_FREE_STORAGE,Ha as DEVICE_EXTERNAL_STORAGE_SIZE,Ka as DEVICE_FAMILY,ja as DEVICE_FREE_MEMORY,Qa as DEVICE_FREE_STORAGE,Xa as DEVICE_ID,Ja as DEVICE_LOCALE,Za as DEVICE_LOW_MEMORY,$a as DEVICE_LOW_POWER_MODE,es as DEVICE_MANUFACTURER,ts as DEVICE_MEMORY_ESTIMATED_CAPACITY,is as DEVICE_MEMORY_SIZE,as as DEVICE_MODEL,ss as DEVICE_MODEL_ID,rs as DEVICE_NAME,ns as DEVICE_ONLINE,os as DEVICE_ORIENTATION,ls as DEVICE_PROCESSOR_COUNT,ps as DEVICE_PROCESSOR_FREQUENCY,cs as DEVICE_SCREEN_DENSITY,us as DEVICE_SCREEN_DPI,ds as DEVICE_SCREEN_HEIGHT_PIXELS,gs as DEVICE_SCREEN_WIDTH_PIXELS,bs as DEVICE_SIMULATOR,ms as DEVICE_STORAGE_SIZE,ys as DEVICE_THERMAL_STATE,_s as DEVICE_TIMEZONE,hs as DEVICE_USABLE_MEMORY,fs as DIST,vs as DJANGO_FUNCTION_NAME,ks as DJANGO_MIDDLEWARE_NAME,Ts as EFFECTIVECONNECTIONTYPE,Ss as ENVIRONMENT,Es as ERROR_TYPE,Os as EVENT_ID,Is as EVENT_NAME,As as EXCEPTION_ESCAPED,ws as EXCEPTION_MESSAGE,xs as EXCEPTION_STACKTRACE,Rs as EXCEPTION_TYPE,Ns as FAAS_COLDSTART,Cs as FAAS_CRON,Ps as FAAS_DURATION_IN_MS,Ds as FAAS_ENTRY_POINT,qs as FAAS_EXECUTION,Ls as FAAS_ID,Ms as FAAS_IDENTITY,Us as FAAS_INVOCATION_ID,Gs as FAAS_INVOKED_NAME,zs as FAAS_INVOKED_PROVIDER,Ys as FAAS_INVOKED_REGION,Vs as FAAS_NAME,Bs as FAAS_TIME,Fs as FAAS_TRIGGER,Ws as FAAS_VERSION,Hs as FCP,Ks as FILE_PATH,js as FILE_SIZE,Qs as FLAG_EVALUATION_KEY,Xs as FLAG_EVALUATION_KEY_BASE,Js as FP,Zs as FRAMES_DELAY,$s as FRAMES_FROZEN,er as FRAMES_FROZEN_RATE,tr as FRAMES_SLOW,ir as FRAMES_SLOW_RATE,ar as FRAMES_TOTAL,sr as FS_ERROR,rr as GCP_FUNCTION_CONTEXT_EVENT_ID,nr as GCP_FUNCTION_CONTEXT_EVENT_TYPE,or as GCP_FUNCTION_CONTEXT_ID,lr as GCP_FUNCTION_CONTEXT_RESOURCE,pr as GCP_FUNCTION_CONTEXT_SOURCE,cr as GCP_FUNCTION_CONTEXT_SPECVERSION,ur as GCP_FUNCTION_CONTEXT_TIME,dr as GCP_FUNCTION_CONTEXT_TIMESTAMP,gr as GCP_FUNCTION_CONTEXT_TYPE,br as GCP_PROJECT_ID,mr as GCP_REGION,yr as GEN_AI_AGENT_NAME,_r as GEN_AI_CONTEXT_UTILIZATION,hr as GEN_AI_CONTEXT_WINDOW_SIZE,fr as GEN_AI_CONVERSATION_ID,vr as GEN_AI_COST_CACHE_CREATION_INPUT_TOKENS,kr as GEN_AI_COST_CACHE_READ_INPUT_TOKENS,Tr as GEN_AI_COST_INPUT_TOKENS,Sr as GEN_AI_COST_OUTPUT_TOKENS,Er as GEN_AI_COST_REASONING_OUTPUT_TOKENS,Or as GEN_AI_COST_TOTAL_TOKENS,Ir as GEN_AI_EMBEDDINGS_INPUT,Ar as GEN_AI_FUNCTION_ID,wr as GEN_AI_INPUT_MESSAGES,xr as GEN_AI_OPERATION_NAME,Rr as GEN_AI_OPERATION_TYPE,Nr as GEN_AI_OUTPUT_MESSAGES,Cr as GEN_AI_PIPELINE_NAME,Pr as GEN_AI_PROMPT,Dr as GEN_AI_PROMPT_NAME,qr as GEN_AI_PROVIDER_NAME,Lr as GEN_AI_REQUEST_AVAILABLE_TOOLS,Mr as GEN_AI_REQUEST_FREQUENCY_PENALTY,Ur as GEN_AI_REQUEST_MAX_TOKENS,Gr as GEN_AI_REQUEST_MESSAGES,zr as GEN_AI_REQUEST_MODEL,Yr as GEN_AI_REQUEST_PRESENCE_PENALTY,Vr as GEN_AI_REQUEST_REASONING_LEVEL,Br as GEN_AI_REQUEST_SCHEMA,Fr as GEN_AI_REQUEST_SEED,Wr as GEN_AI_REQUEST_STOP_SEQUENCES,Hr as GEN_AI_REQUEST_TEMPERATURE,Kr as GEN_AI_REQUEST_TOP_K,jr as GEN_AI_REQUEST_TOP_P,Qr as GEN_AI_RESPONSE_FINISH_REASON,Xr as GEN_AI_RESPONSE_FINISH_REASONS,Jr as GEN_AI_RESPONSE_ID,Zr as GEN_AI_RESPONSE_MODEL,$r as GEN_AI_RESPONSE_OBJECT,en as GEN_AI_RESPONSE_STREAMING,tn as GEN_AI_RESPONSE_TEXT,an as GEN_AI_RESPONSE_TIME_TO_FIRST_CHUNK,sn as GEN_AI_RESPONSE_TIME_TO_FIRST_TOKEN,rn as GEN_AI_RESPONSE_TOKENS_PER_SECOND,nn as GEN_AI_RESPONSE_TOOL_CALLS,on as GEN_AI_SYSTEM,ln as GEN_AI_SYSTEM_INSTRUCTIONS,pn as GEN_AI_SYSTEM_MESSAGE,cn as GEN_AI_TOOL_CALL_ARGUMENTS,un as GEN_AI_TOOL_CALL_RESULT,dn as GEN_AI_TOOL_DEFINITIONS,gn as GEN_AI_TOOL_DESCRIPTION,bn as GEN_AI_TOOL_INPUT,mn as GEN_AI_TOOL_MESSAGE,yn as GEN_AI_TOOL_NAME,_n as GEN_AI_TOOL_OUTPUT,hn as GEN_AI_TOOL_TYPE,fn as GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS,kn as GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS,Sn as GEN_AI_USAGE_COMPLETION_TOKENS,En as GEN_AI_USAGE_INPUT_TOKENS,On as GEN_AI_USAGE_INPUT_TOKENS_CACHED,In as GEN_AI_USAGE_INPUT_TOKENS_CACHE_WRITE,An as GEN_AI_USAGE_OUTPUT_TOKENS,wn as GEN_AI_USAGE_OUTPUT_TOKENS_REASONING,xn as GEN_AI_USAGE_PROMPT_TOKENS,Rn as GEN_AI_USAGE_REASONING_OUTPUT_TOKENS,Nn as GEN_AI_USAGE_TOTAL_TOKENS,Cn as GRAPHQL_DOCUMENT,Pn as GRAPHQL_OPERATION_NAME,Dn as GRAPHQL_OPERATION_TYPE,qn as GRAPHQL_PROCESSING_TYPE,Ln as GRAPHQL_SOURCE,Mn as GRPC_ERROR_BAD_REQUEST_FIELD_VIOLATIONS,Un as GRPC_ERROR_DEBUG_INFO_DETAIL,Gn as GRPC_ERROR_DEBUG_INFO_STACK_ENTRIES,zn as GRPC_ERROR_ERROR_INFO_DOMAIN,Yn as GRPC_ERROR_ERROR_INFO_METADATA_KEY,Vn as GRPC_ERROR_ERROR_INFO_METADATA_KEY_BASE,Bn as GRPC_ERROR_ERROR_INFO_REASON,Fn as GRPC_ERROR_PRECONDITION_FAILURE_VIOLATIONS,Wn as GRPC_ERROR_QUOTA_FAILURE_VIOLATIONS,Hn as GRPC_ERROR_RESOURCE_INFO_DESCRIPTION,Kn as GRPC_ERROR_RESOURCE_INFO_OWNER,jn as GRPC_ERROR_RESOURCE_INFO_RESOURCE_NAME,Qn as GRPC_ERROR_RESOURCE_INFO_RESOURCE_TYPE,Xn as GRPC_ERROR_RETRY_INFO_RETRY_DELAY_MS,Jn as HARDWARECONCURRENCY,Zn as HTTP_CLIENT_IP,$n as HTTP_DECODED_RESPONSE_CONTENT_LENGTH,eo as HTTP_FLAVOR,to as HTTP_FRAGMENT,io as HTTP_HOST,ao as HTTP_METHOD,so as HTTP_QUERY,ro as HTTP_REQUEST_BODY_DATA,no as HTTP_REQUEST_BODY_DECODED_SIZE,oo as HTTP_REQUEST_BODY_SIZE,lo as HTTP_REQUEST_CONNECTION_END,po as HTTP_REQUEST_CONNECT_START,co as HTTP_REQUEST_CONTENT_LENGTH,uo as HTTP_REQUEST_CONTENT_LENGTH_UNCOMPRESSED,go as HTTP_REQUEST_DOMAIN_LOOKUP_END,bo as HTTP_REQUEST_DOMAIN_LOOKUP_START,mo as HTTP_REQUEST_FETCH_START,yo as HTTP_REQUEST_HEADER_KEY,_o as HTTP_REQUEST_HEADER_KEY_BASE,ho as HTTP_REQUEST_METHOD,vo as HTTP_REQUEST_REDIRECT_END,ko as HTTP_REQUEST_REDIRECT_START,To as HTTP_REQUEST_REQUEST_START,So as HTTP_REQUEST_RESEND_COUNT,Eo as HTTP_REQUEST_RESPONSE_END,Oo as HTTP_REQUEST_RESPONSE_START,Io as HTTP_REQUEST_SAME_ORIGIN,Ao as HTTP_REQUEST_SECURE_CONNECTION_START,wo as HTTP_REQUEST_TIME_TO_FIRST_BYTE,xo as HTTP_REQUEST_WORKER_START,Ro as HTTP_RESPONSE_BODY_DECODED_SIZE,No as HTTP_RESPONSE_BODY_SIZE,Co as HTTP_RESPONSE_CONTENT_LENGTH,Po as HTTP_RESPONSE_CONTENT_LENGTH_UNCOMPRESSED,Do as HTTP_RESPONSE_HEADER_CONTENT_LENGTH,qo as HTTP_RESPONSE_HEADER_KEY,Lo as HTTP_RESPONSE_HEADER_KEY_BASE,Mo as HTTP_RESPONSE_SIZE,Uo as HTTP_RESPONSE_STATUS_CODE,Go as HTTP_RESPONSE_STATUS_TEXT,zo as HTTP_RESPONSE_TRANSFER_SIZE,Yo as HTTP_ROUTE,Vo as HTTP_SCHEME,Bo as HTTP_SERVER_NAME,Fo as HTTP_SERVER_REQUEST_TIME_IN_QUEUE,Wo as HTTP_STATUS_CODE,Ho as HTTP_STATUS_TEXT,Ko as HTTP_TARGET,jo as HTTP_URL,Qo as HTTP_USER_AGENT,Xo as ID,Jo as INP,Zo as JSONRPC_PROTOCOL_VERSION,$o as JSONRPC_REQUEST_ID,el as JVM_GC_ACTION,tl as JVM_GC_NAME,il as JVM_MEMORY_POOL_NAME,al as JVM_MEMORY_TYPE,sl as JVM_THREAD_DAEMON,rl as JVM_THREAD_STATE,nl as KOA_NAME,ol as KOA_TYPE,ll as LANGCHAIN_CHAIN_NAME,pl as LCP,cl as LCP_ELEMENT,ul as LCP_ID,dl as LCP_LOADTIME,gl as LCP_RENDERTIME,bl as LCP_SIZE,ml as LCP_URL,yl as LITESTAR_MIDDLEWARE_NAME,_l as LOGGER_NAME,hl as MCP_CANCELLED_REASON,fl as MCP_CANCELLED_REQUEST_ID,vl as MCP_CLIENT_NAME,kl as MCP_CLIENT_TITLE,Tl as MCP_CLIENT_VERSION,Sl as MCP_LIFECYCLE_PHASE,El as MCP_LOGGING_DATA_TYPE,Ol as MCP_LOGGING_LEVEL,Il as MCP_LOGGING_LOGGER,Al as MCP_LOGGING_MESSAGE,wl as MCP_METHOD_NAME,xl as MCP_PROGRESS_CURRENT,Rl as MCP_PROGRESS_MESSAGE,Nl as MCP_PROGRESS_PERCENTAGE,Cl as MCP_PROGRESS_TOKEN,Pl as MCP_PROGRESS_TOTAL,Dl as MCP_PROMPT_NAME,ql as MCP_PROMPT_RESULT_DESCRIPTION,Ll as MCP_PROMPT_RESULT_MESSAGE_CONTENT,Ml as MCP_PROMPT_RESULT_MESSAGE_COUNT,Ul as MCP_PROMPT_RESULT_MESSAGE_ROLE,Gl as MCP_PROTOCOL_READY,zl as MCP_PROTOCOL_VERSION,Yl as MCP_REQUEST_ARGUMENT_KEY,Vl as MCP_REQUEST_ARGUMENT_KEY_BASE,Bl as MCP_REQUEST_ARGUMENT_NAME,Fl as MCP_REQUEST_ARGUMENT_URI,Wl as MCP_REQUEST_ID,Hl as MCP_RESOURCE_PROTOCOL,Kl as MCP_RESOURCE_URI,jl as MCP_SERVER_NAME,Ql as MCP_SERVER_TITLE,Xl as MCP_SERVER_VERSION,Jl as MCP_SESSION_ID,Zl as MCP_TOOL_NAME,$l as MCP_TOOL_RESULT_CONTENT,ep as MCP_TOOL_RESULT_CONTENT_COUNT,tp as MCP_TOOL_RESULT_IS_ERROR,ip as MCP_TRANSPORT,ap as MDC_KEY,sp as MDC_KEY_BASE,rp as MESSAGING_BATCH_MESSAGE_COUNT,np as MESSAGING_CONVERSATION_ID,op as MESSAGING_DESTINATION,lp as MESSAGING_DESTINATION_CONNECTION,pp as MESSAGING_DESTINATION_KIND,cp as MESSAGING_DESTINATION_NAME,up as MESSAGING_DESTINATION_PARTITION_ID,dp as MESSAGING_KAFKA_MESSAGE_KEY,gp as MESSAGING_KAFKA_MESSAGE_TOMBSTONE,bp as MESSAGING_KAFKA_OFFSET,mp as MESSAGING_MESSAGE_BODY_SIZE,yp as MESSAGING_MESSAGE_CONVERSATION_ID,_p as MESSAGING_MESSAGE_ENVELOPE_SIZE,hp as MESSAGING_MESSAGE_ID,vp as MESSAGING_MESSAGE_RECEIVE_LATENCY,kp as MESSAGING_MESSAGE_RETRY_COUNT,Tp as MESSAGING_OPERATION,Sp as MESSAGING_OPERATION_NAME,Ep as MESSAGING_OPERATION_TYPE,Op as MESSAGING_PROTOCOL,Ip as MESSAGING_PROTOCOL_VERSION,Ap as MESSAGING_RABBITMQ_DESTINATION_ROUTING_KEY,wp as MESSAGING_RABBITMQ_ROUTING_KEY,xp as MESSAGING_SYSTEM,Rp as MESSAGING_URL,Np as METHOD,Cp as MIDDLEWARE_NAME,Pp as NAVIGATION_ORIGIN,Dp as NAVIGATION_ROUTE_ID,qp as NAVIGATION_TYPE,Lp as NEL_ELAPSED_TIME,Mp as NEL_PHASE,Up as NEL_REFERRER,Gp as NEL_SAMPLING_FUNCTION,zp as NEL_TYPE,Yp as NETWORK_CONNECTION_EFFECTIVE_TYPE,Vp as NETWORK_CONNECTION_RTT,Bp as NETWORK_CONNECTION_TYPE,Fp as NETWORK_LOCAL_ADDRESS,Wp as NETWORK_LOCAL_PORT,Hp as NETWORK_PEER_ADDRESS,Kp as NETWORK_PEER_PORT,jp as NETWORK_PROTOCOL_NAME,Qp as NETWORK_PROTOCOL_VERSION,Xp as NETWORK_TRANSPORT,Jp as NETWORK_TYPE,Zp as NET_HOST_IP,$p as NET_HOST_NAME,ec as NET_HOST_PORT,tc as NET_PEER_IP,ic as NET_PEER_NAME,ac as NET_PEER_PORT,sc as NET_PROTOCOL_NAME,rc as NET_PROTOCOL_VERSION,nc as NET_SOCK_FAMILY,oc as NET_SOCK_HOST_ADDR,lc as NET_SOCK_HOST_PORT,pc as NET_SOCK_PEER_ADDR,cc as NET_SOCK_PEER_NAME,uc as NET_SOCK_PEER_PORT,dc as NET_TRANSPORT,gc as OS_BUILD,bc as OS_BUILD_ID,mc as OS_DESCRIPTION,yc as OS_KERNEL_VERSION,_c as OS_NAME,hc as OS_RAW_DESCRIPTION,fc as OS_ROOTED,vc as OS_THEME,kc as OS_TYPE,Tc as OS_VERSION,Sc as OTEL_KIND,Ec as OTEL_SCOPE_NAME,Oc as OTEL_SCOPE_VERSION,Ic as OTEL_STATUS_CODE,Ac as OTEL_STATUS_DESCRIPTION,wc as PARAMS_KEY,xc as PARAMS_KEY_BASE,Rc as PERFORMANCE_ACTIVATIONSTART,Nc as PERFORMANCE_TIMEORIGIN,Cc as PORT,Pc as PREVIOUS_ROUTE,Dc as PROCESS_COMMAND_ARGS,qc as PROCESS_EXECUTABLE_NAME,Lc as PROCESS_PID,Mc as PROCESS_RUNTIME_DESCRIPTION,Uc as PROCESS_RUNTIME_ENGINE_NAME,Gc as PROCESS_RUNTIME_ENGINE_VERSION,zc as PROCESS_RUNTIME_NAME,Yc as PROCESS_RUNTIME_VERSION,Vc as PROFILE_ID,Bc as QUERY,Fc as QUERY_KEY,Wc as QUERY_KEY_BASE,Hc as REACT_NATIVE_ARCHITECTURE,Kc as REACT_NATIVE_MODULE_CALL_COUNT,jc as REACT_NATIVE_MODULE_CALL_DISTINCT_COUNT,Qc as REACT_NATIVE_MODULE_DURATION_MAX,Xc as REACT_NATIVE_MODULE_DURATION_TOTAL,Jc as REACT_NATIVE_MODULE_ERROR_COUNT,Zc as REACT_NATIVE_MODULE_KIND,$c as REACT_NATIVE_MODULE_METHOD,eu as REACT_NATIVE_MODULE_NAME,tu as REACT_NATIVE_MODULE_TOP_DURATION,iu as REACT_NATIVE_MODULE_TOP_NAME,au as REACT_VERSION,su as REDIS_COMMAND,ru as REDIS_KEY,nu as RELEASE,ou as REMIX_ACTION_FORM_DATA_KEY,lu as REMIX_ACTION_FORM_DATA_KEY_BASE,pu as REPLAYID,cu as REPLAY_ID,uu as RESOURCE_DEPLOYMENT_ENVIRONMENT,du as RESOURCE_DEPLOYMENT_ENVIRONMENT_NAME,gu as RESOURCE_RENDER_BLOCKING_STATUS,bu as ROUTE,mu as ROUTER_NAVIGATION_ORIGIN,yu as ROUTER_NAVIGATION_ROUTE_ID,_u as ROUTER_NAVIGATION_TYPE,hu as RPC_GRPC_STATUS_CODE,fu as RPC_METHOD,vu as RPC_RESPONSE_STATUS_CODE,ku as RPC_SERVICE,Tu as RPC_SYSTEM,Su as RPC_SYSTEM_NAME,Eu as RUNTIME_BUILD,Ou as RUNTIME_NAME,Iu as RUNTIME_RAW_DESCRIPTION,Au as RUNTIME_VERSION,wu as SCORE_KEY,xu as SCORE_KEY_BASE,Ru as SCORE_RATIO_KEY,Nu as SCORE_RATIO_KEY_BASE,Cu as SCORE_TOTAL,Pu as SCORE_WEIGHT_KEY,Du as SCORE_WEIGHT_KEY_BASE,qu as SENTRY_ACTION,Lu as SENTRY_BROWSER_NAME,Mu as SENTRY_BROWSER_VERSION,Uu as SENTRY_CANCELLATION_REASON,Gu as SENTRY_CATEGORY,zu as SENTRY_CLIENT_SAMPLE_RATE,Yu as SENTRY_DESCRIPTION,Vu as SENTRY_DIST,Bu as SENTRY_DOMAIN,Fu as SENTRY_DSC_ENVIRONMENT,Wu as SENTRY_DSC_PROJECT_ID,Hu as SENTRY_DSC_PUBLIC_KEY,Ku as SENTRY_DSC_RELEASE,ju as SENTRY_DSC_SAMPLED,Qu as SENTRY_DSC_SAMPLE_RATE,Xu as SENTRY_DSC_TRACE_ID,Ju as SENTRY_DSC_TRANSACTION,Zu as SENTRY_ENVIRONMENT,$u as SENTRY_EVENT_SERIALIZED_BREADCRUMBS,ed as SENTRY_EVENT_SERIALIZED_CONTEXTS,td as SENTRY_EVENT_SERIALIZED_EXTRA,id as SENTRY_EVENT_SERIALIZED_META,ad as SENTRY_EXCLUSIVE_TIME,sd as SENTRY_FRAMES_FROZEN,rd as SENTRY_FRAMES_SLOW,nd as SENTRY_FRAMES_TOTAL,od as SENTRY_GRAPHQL_OPERATION,ld as SENTRY_GROUP,pd as SENTRY_HTTP_PREFETCH,cd as SENTRY_IDLE_SPAN_FINISH_REASON,ud as SENTRY_IS_LOCALHOST,dd as SENTRY_IS_REMOTE,gd as SENTRY_KIND,bd as SENTRY_MAIN_THREAD,md as SENTRY_MESSAGE_PARAMETER_KEY,yd as SENTRY_MESSAGE_TEMPLATE,_d as SENTRY_METRIC_SOURCE,hd as SENTRY_MOBILE,fd as SENTRY_MODULE_KEY,vd as SENTRY_MODULE_KEY_BASE,kd as SENTRY_NEXTJS_SSR_FUNCTION_ROUTE,Td as SENTRY_NEXTJS_SSR_FUNCTION_TYPE,Sd as SENTRY_NORMALIZED_DB_QUERY,Ed as SENTRY_NORMALIZED_DB_QUERY_HASH,Od as SENTRY_NORMALIZED_DESCRIPTION,Id as SENTRY_OBSERVED_TIMESTAMP_NANOS,Ad as SENTRY_OP,wd as SENTRY_ORIGIN,xd as SENTRY_PAGELOAD_SPAN_ID,Rd as SENTRY_PLATFORM,Nd as SENTRY_PROFILER_ID,Cd as SENTRY_PROFILE_ID,Pd as SENTRY_RELAY_INGRESS,Dd as SENTRY_RELAY_PIPELINE,qd as SENTRY_RELEASE,Ld as SENTRY_REPLAY_ID,Md as SENTRY_REPLAY_IS_BUFFERING,Ud as SENTRY_REPORT_EVENT,Gd as SENTRY_SDK_INTEGRATIONS,zd as SENTRY_SDK_NAME,Yd as SENTRY_SDK_VERSION,Vd as SENTRY_SEGMENT_ID,Fd as SENTRY_SEGMENT_NAME,Wd as SENTRY_SEGMENT_NAME_SOURCE,Hd as SENTRY_SERVER_SAMPLE_RATE,Kd as SENTRY_SOURCE,jd as SENTRY_SPAN_SOURCE,Qd as SENTRY_STATUS,Xd as SENTRY_STATUS_CODE,Jd as SENTRY_STATUS_MESSAGE,Zd as SENTRY_SVELTEKIT_NAVIGATION_FROM,$d as SENTRY_SVELTEKIT_NAVIGATION_TO,eg as SENTRY_SVELTEKIT_NAVIGATION_TYPE,tg as SENTRY_THREAD_ID,ig as SENTRY_TIMESTAMP_SEQUENCE,ag as SENTRY_TRACE_LIFECYCLE,sg as SENTRY_TRACE_PARENT_SPAN_ID,rg as SENTRY_TRACE_STATUS,ng as SENTRY_TRANSACTION,og as SENTRY_USER_EMAIL,lg as SENTRY_USER_GEO_CITY,pg as SENTRY_USER_GEO_COUNTRY_CODE,cg as SENTRY_USER_GEO_REGION,ug as SENTRY_USER_GEO_SUBDIVISION,dg as SENTRY_USER_ID,gg as SENTRY_USER_IP,bg as SENTRY_USER_USERNAME,mg as SERVER_ADDRESS,yg as SERVER_NAME,_g as SERVER_PORT,hg as SERVICE_NAME,fg as SERVICE_VERSION,vg as SESSION_ID,kg as STALL_PERCENTAGE,Tg as STALL_TOTAL_TIME,Sg as STARLETTE_MIDDLEWARE_NAME,Eg as STARLITE_MIDDLEWARE_NAME,Og as STATE_TYPE,Ig as SUBPROCESS_PID,Ag as SVELTEKIT_LOAD_ENVIRONMENT,wg as SVELTEKIT_LOAD_NODE_ID,xg as SVELTEKIT_LOAD_NODE_TYPE,Rg as SVELTEKIT_TRACING_ORIGINAL_NAME,Ng as THREAD_ID,Cg as THREAD_NAME,Pg as TIMBER_TAG,Dg as TIME_TO_FULL_DISPLAY,qg as TIME_TO_INITIAL_DISPLAY,Lg as TRANSACTION,Mg as TRPC_PROCEDURE_PATH,Ug as TRPC_PROCEDURE_TYPE,Gg as TTFB,zg as TTFB_REQUESTTIME,Yg as TURBO_MODULES_TOTAL_CALL_COUNT,Vg as TURBO_MODULES_TOTAL_DURATION_MS,Bg as TURBO_MODULES_TOTAL_ERROR_COUNT,Fg as TURBO_MODULES_UNIQUE_METHODS,Wg as TURBO_MODULE_ARCH,Hg as TURBO_MODULE_METHOD,Kg as TURBO_MODULE_NAME,jg as TURBO_MODULE_TOP_MODULE,Qg as TURBO_MODULE_TOP_MODULE_DURATION_MS,Xg as TURBO_MODULE_TOTAL_CALL_COUNT,Jg as TURBO_MODULE_TOTAL_DURATION_MS,Zg as TURBO_MODULE_TOTAL_ERROR_COUNT,$g as TURBO_MODULE_UNIQUE_METHODS,eb as TYPE,tb as UI_COMPONENT_NAME,ib as UI_CONTRIBUTES_TO_TTFD,ab as UI_CONTRIBUTES_TO_TTID,sb as UI_ELEMENT_HEIGHT,rb as UI_ELEMENT_ID,nb as UI_ELEMENT_IDENTIFIER,ob as UI_ELEMENT_LOAD_TIME,lb as UI_ELEMENT_PAINT_TYPE,pb as UI_ELEMENT_RENDER_TIME,cb as UI_ELEMENT_TYPE,ub as UI_ELEMENT_URL,db as UI_ELEMENT_WIDTH,gb as URL,bb as URL_DOMAIN,mb as URL_FRAGMENT,yb as URL_FULL,_b as URL_PATH,hb as URL_PATH_PARAMETER_KEY,fb as URL_PATH_PARAMETER_KEY_BASE,vb as URL_PATH_PARAMS_KEY,kb as URL_PATH_PARAMS_KEY_BASE,Tb as URL_PORT,Sb as URL_QUERY,Eb as URL_SAME_ORIGIN,Ob as URL_SCHEME,Ib as URL_TEMPLATE,Ab as USER_AGENT_ORIGINAL,wb as USER_EMAIL,xb as USER_FULL_NAME,Rb as USER_GEO_CITY,Nb as USER_GEO_COUNTRY_CODE,Cb as USER_GEO_REGION,Pb as USER_GEO_SUBDIVISION,Db as USER_HASH,qb as USER_ID,Lb as USER_IP_ADDRESS,Mb as USER_NAME,Ub as USER_ROLES,Gb as VERCEL_BRANCH,zb as VERCEL_BUILD_ID,Yb as VERCEL_DEPLOYMENT_ID,Vb as VERCEL_DESTINATION,Bb as VERCEL_EDGE_TYPE,Fb as VERCEL_ENTRYPOINT,Wb as VERCEL_EXECUTION_REGION,Hb as VERCEL_ID,Kb as VERCEL_JA3_DIGEST,jb as VERCEL_JA4_DIGEST,Qb as VERCEL_LOG_TYPE,Xb as VERCEL_PATH,Jb as VERCEL_PROJECT_ID,Zb as VERCEL_PROJECT_NAME,$b as VERCEL_PROXY_CACHE_ID,em as VERCEL_PROXY_CLIENT_IP,tm as VERCEL_PROXY_HOST,im as VERCEL_PROXY_LAMBDA_REGION,am as VERCEL_PROXY_METHOD,sm as VERCEL_PROXY_PATH,rm as VERCEL_PROXY_PATH_TYPE,nm as VERCEL_PROXY_PATH_TYPE_VARIANT,om as VERCEL_PROXY_REFERER,lm as VERCEL_PROXY_REGION,pm as VERCEL_PROXY_RESPONSE_BYTE_SIZE,cm as VERCEL_PROXY_SCHEME,um as VERCEL_PROXY_STATUS_CODE,dm as VERCEL_PROXY_TIMESTAMP,gm as VERCEL_PROXY_USER_AGENT,bm as VERCEL_PROXY_VERCEL_CACHE,mm as VERCEL_PROXY_VERCEL_ID,ym as VERCEL_PROXY_WAF_ACTION,_m as VERCEL_PROXY_WAF_RULE_ID,hm as VERCEL_REQUEST_ID,fm as VERCEL_SOURCE,vm as VERCEL_STATUS_CODE,d as _AI_MODEL_ID,pt as _AWS_KINESIS_STREAM_NAME,St as _AWS_REQUEST_ID,vn as _GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS,Tn as _GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS,fo as _HTTP_REQUEST_METHOD,fp as _MESSAGING_MESSAGE_ID,Bd as _SENTRY_SEGMENT_ID};\n//# sourceMappingURL=attributes.mjs.map\n","const SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE = \"sentry.sample_rate\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE = \"sentry.previous_trace_sample_rate\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_OP = \"sentry.op\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN = \"sentry.origin\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE = \"sentry.status.message\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON = \"sentry.idle_span_finish_reason\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT = \"sentry.measurement_unit\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE = \"sentry.measurement_value\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_RELEASE = \"sentry.release\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT = \"sentry.environment\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_NAME = \"sentry.segment.name\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_ID = \"sentry.segment.id\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SDK_NAME = \"sentry.sdk.name\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SDK_VERSION = \"sentry.sdk.version\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS = \"sentry.sdk.integrations\";\nconst SEMANTIC_ATTRIBUTE_USER_ID = \"user.id\";\nconst SEMANTIC_ATTRIBUTE_USER_EMAIL = \"user.email\";\nconst SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS = \"user.ip_address\";\nconst SEMANTIC_ATTRIBUTE_USER_USERNAME = \"user.name\";\nconst SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME = \"sentry.custom_span_name\";\nconst SEMANTIC_ATTRIBUTE_PROFILE_ID = \"sentry.profile_id\";\nconst SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME = \"sentry.exclusive_time\";\nconst SEMANTIC_ATTRIBUTE_CACHE_HIT = \"cache.hit\";\nconst SEMANTIC_ATTRIBUTE_CACHE_KEY = \"cache.key\";\nconst SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE = \"cache.item_size\";\nconst SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD = \"http.request.method\";\nconst SEMANTIC_ATTRIBUTE_URL_FULL = \"url.full\";\nconst SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE = \"sentry.link.type\";\nconst GEN_AI_CONVERSATION_ID_ATTRIBUTE = \"gen_ai.conversation.id\";\n\nexport { GEN_AI_CONVERSATION_ID_ATTRIBUTE, SEMANTIC_ATTRIBUTE_CACHE_HIT, SEMANTIC_ATTRIBUTE_CACHE_ITEM_SIZE, SEMANTIC_ATTRIBUTE_CACHE_KEY, SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_PROFILE_ID, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT, SEMANTIC_ATTRIBUTE_SENTRY_IDLE_SPAN_FINISH_REASON, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_UNIT, SEMANTIC_ATTRIBUTE_SENTRY_MEASUREMENT_VALUE, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_RELEASE, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS, SEMANTIC_ATTRIBUTE_SENTRY_SDK_NAME, SEMANTIC_ATTRIBUTE_SENTRY_SDK_VERSION, SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_ID, SEMANTIC_ATTRIBUTE_SENTRY_SEGMENT_NAME, SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE, SEMANTIC_ATTRIBUTE_URL_FULL, SEMANTIC_ATTRIBUTE_USER_EMAIL, SEMANTIC_ATTRIBUTE_USER_ID, SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS, SEMANTIC_ATTRIBUTE_USER_USERNAME, SEMANTIC_LINK_ATTRIBUTE_LINK_TYPE };\n//# sourceMappingURL=semanticAttributes.js.map\n","const SPAN_STATUS_TYPES = [\n  /** The operation completed successfully. */\n  \"ok\",\n  /** Deadline expired before operation could complete. */\n  \"deadline_exceeded\",\n  /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n  \"unauthenticated\",\n  /** 403 Forbidden */\n  \"permission_denied\",\n  /** 404 Not Found. Some requested entity (file or directory) was not found. */\n  \"not_found\",\n  /** 429 Too Many Requests */\n  \"resource_exhausted\",\n  /** Client specified an invalid argument. 4xx. */\n  \"invalid_argument\",\n  /** 501 Not Implemented */\n  \"unimplemented\",\n  /** 503 Service Unavailable */\n  \"unavailable\",\n  /** Other/generic 5xx. */\n  \"internal_error\",\n  /** Unknown. Any non-standard HTTP status code. */\n  \"unknown_error\",\n  /** The operation was cancelled (typically by the user). */\n  \"cancelled\",\n  /** Already exists (409) */\n  \"already_exists\",\n  /** Operation was rejected because the system is not in a state required for the operation's */\n  \"failed_precondition\",\n  /** The operation was aborted, typically due to a concurrency issue. */\n  \"aborted\",\n  /** Operation was attempted past the valid range. */\n  \"out_of_range\",\n  /** Unrecoverable data loss or corruption */\n  \"data_loss\"\n];\n\nexport { SPAN_STATUS_TYPES };\n//# sourceMappingURL=spanStatus.js.map\n","import { GLOBAL_OBJ } from './worldwide.js';\n\nfunction makeWeakRef(value) {\n  try {\n    const WeakRefImpl = GLOBAL_OBJ.WeakRef;\n    if (typeof WeakRefImpl === \"function\") {\n      return new WeakRefImpl(value);\n    }\n  } catch {\n  }\n  return value;\n}\nfunction derefWeakRef(ref) {\n  if (!ref) {\n    return void 0;\n  }\n  if (typeof ref === \"object\" && \"deref\" in ref && typeof ref.deref === \"function\") {\n    try {\n      return ref.deref();\n    } catch {\n      return void 0;\n    }\n  }\n  return ref;\n}\n\nexport { derefWeakRef, makeWeakRef };\n//# sourceMappingURL=weakRef.js.map\n","import { addNonEnumerableProperty } from '../utils/object.js';\nimport { derefWeakRef, makeWeakRef } from '../utils/weakRef.js';\n\nconst SCOPE_ON_START_SPAN_FIELD = \"_sentryScope\";\nconst ISOLATION_SCOPE_ON_START_SPAN_FIELD = \"_sentryIsolationScope\";\nconst TRACER_PROVIDER_SPAN_FIELD = /* @__PURE__ */ Symbol.for(\"sentry.tracerProviderSpan\");\nfunction setCapturedScopesOnSpan(span, scope, isolationScope) {\n  if (span) {\n    addNonEnumerableProperty(span, ISOLATION_SCOPE_ON_START_SPAN_FIELD, makeWeakRef(isolationScope));\n    addNonEnumerableProperty(span, SCOPE_ON_START_SPAN_FIELD, scope);\n  }\n}\nfunction getCapturedScopesOnSpan(span) {\n  const spanWithScopes = span;\n  return {\n    scope: spanWithScopes[SCOPE_ON_START_SPAN_FIELD],\n    isolationScope: derefWeakRef(spanWithScopes[ISOLATION_SCOPE_ON_START_SPAN_FIELD])\n  };\n}\nfunction markSpanAsTracerProviderSpan(span) {\n  addNonEnumerableProperty(span, TRACER_PROVIDER_SPAN_FIELD, true);\n}\nfunction spanIsTracerProviderSpan(span) {\n  return span[TRACER_PROVIDER_SPAN_FIELD] === true;\n}\n\nexport { getCapturedScopesOnSpan, markSpanAsTracerProviderSpan, setCapturedScopesOnSpan, spanIsTracerProviderSpan };\n//# sourceMappingURL=utils.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isString } from './is.js';\n\nconst SENTRY_BAGGAGE_KEY_PREFIX = \"sentry-\";\nconst SENTRY_BAGGAGE_KEY_PREFIX_REGEX = /^sentry-/;\nconst MAX_BAGGAGE_STRING_LENGTH = 8192;\nfunction baggageHeaderToDynamicSamplingContext(baggageHeader) {\n  const baggageObject = parseBaggageHeader(baggageHeader);\n  if (!baggageObject) {\n    return void 0;\n  }\n  const dynamicSamplingContext = Object.entries(baggageObject).reduce((acc, [key, value]) => {\n    if (key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n      const nonPrefixedKey = key.slice(SENTRY_BAGGAGE_KEY_PREFIX.length);\n      acc[nonPrefixedKey] = value;\n    }\n    return acc;\n  }, {});\n  if (Object.keys(dynamicSamplingContext).length > 0) {\n    return dynamicSamplingContext;\n  } else {\n    return void 0;\n  }\n}\nfunction dynamicSamplingContextToSentryBaggageHeader(dynamicSamplingContext) {\n  if (!dynamicSamplingContext) {\n    return void 0;\n  }\n  const sentryPrefixedDSC = Object.entries(dynamicSamplingContext).reduce(\n    (acc, [dscKey, dscValue]) => {\n      if (dscValue) {\n        acc[`${SENTRY_BAGGAGE_KEY_PREFIX}${dscKey}`] = dscValue;\n      }\n      return acc;\n    },\n    {}\n  );\n  return objectToBaggageHeader(sentryPrefixedDSC);\n}\nfunction parseBaggageHeader(baggageHeader) {\n  if (!baggageHeader || !isString(baggageHeader) && !Array.isArray(baggageHeader)) {\n    return void 0;\n  }\n  if (Array.isArray(baggageHeader)) {\n    return baggageHeader.reduce((acc, curr) => {\n      const currBaggageObject = baggageHeaderToObject(curr);\n      Object.entries(currBaggageObject).forEach(([key, value]) => {\n        acc[key] = value;\n      });\n      return acc;\n    }, {});\n  }\n  return baggageHeaderToObject(baggageHeader);\n}\nfunction baggageHeaderToObject(baggageHeader) {\n  return baggageHeader.split(\",\").map((baggageEntry) => {\n    const eqIdx = baggageEntry.indexOf(\"=\");\n    if (eqIdx === -1) {\n      return [];\n    }\n    const key = baggageEntry.slice(0, eqIdx);\n    const value = baggageEntry.slice(eqIdx + 1);\n    return [key, value].map((keyOrValue) => {\n      try {\n        return decodeURIComponent(keyOrValue.trim());\n      } catch {\n        return;\n      }\n    });\n  }).reduce((acc, [key, value]) => {\n    if (key && value) {\n      acc[key] = value;\n    }\n    return acc;\n  }, {});\n}\nfunction objectToBaggageHeader(object) {\n  if (Object.keys(object).length === 0) {\n    return void 0;\n  }\n  return Object.entries(object).reduce((baggageHeader, [objectKey, objectValue], currentIndex) => {\n    const baggageEntry = `${encodeURIComponent(objectKey)}=${encodeURIComponent(objectValue)}`;\n    const newBaggageHeader = currentIndex === 0 ? baggageEntry : `${baggageHeader},${baggageEntry}`;\n    if (newBaggageHeader.length > MAX_BAGGAGE_STRING_LENGTH) {\n      DEBUG_BUILD && debug.warn(\n        `Not adding key: ${objectKey} with val: ${objectValue} to baggage header due to exceeding baggage size limits.`\n      );\n      return baggageHeader;\n    } else {\n      return newBaggageHeader;\n    }\n  }, \"\");\n}\nfunction mergeBaggageHeaders(existing, incoming) {\n  if (!existing) {\n    return incoming;\n  }\n  const existingEntries = parseBaggageHeader(existing);\n  const incomingEntries = parseBaggageHeader(incoming);\n  if (!incomingEntries) {\n    return existing;\n  }\n  const merged = {};\n  let hasNewSentryEntries = false;\n  const newSentryEntries = {};\n  const newNonSentryEntries = {};\n  for (const [key, value] of Object.entries(incomingEntries)) {\n    if (key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n      newSentryEntries[key] = value;\n      hasNewSentryEntries = true;\n    } else {\n      newNonSentryEntries[key] = value;\n    }\n  }\n  if (existingEntries) {\n    for (const [key, value] of Object.entries(existingEntries)) {\n      if (!hasNewSentryEntries || !key.startsWith(SENTRY_BAGGAGE_KEY_PREFIX)) {\n        merged[key] = value;\n      }\n    }\n  }\n  if (hasNewSentryEntries) {\n    Object.assign(merged, newSentryEntries);\n  }\n  for (const [key, value] of Object.entries(newNonSentryEntries)) {\n    merged[key] ?? (merged[key] = value);\n  }\n  return objectToBaggageHeader(merged);\n}\n\nexport { MAX_BAGGAGE_STRING_LENGTH, SENTRY_BAGGAGE_KEY_PREFIX, SENTRY_BAGGAGE_KEY_PREFIX_REGEX, baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader, mergeBaggageHeaders, objectToBaggageHeader, parseBaggageHeader };\n//# sourceMappingURL=baggage.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { consoleSandbox, debug } from './debug-logger.js';\n\nconst ORG_ID_REGEX = /^o(\\d+)\\./;\nconst DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+)?)?@)((?:\\[[:.%\\w]+\\]|[\\w.-]+))(?::(\\d+))?\\/(.+)/;\nfunction isValidProtocol(protocol) {\n  return protocol === \"http\" || protocol === \"https\";\n}\nfunction dsnToString(dsn, withPassword = false) {\n  const { host, path, pass, port, projectId, protocol, publicKey } = dsn;\n  return `${protocol}://${publicKey}${withPassword && pass ? `:${pass}` : \"\"}@${host}${port ? `:${port}` : \"\"}/${path ? `${path}/` : path}${projectId}`;\n}\nfunction dsnFromString(str) {\n  const match = DSN_REGEX.exec(str);\n  if (!match) {\n    consoleSandbox(() => {\n      console.error(`Invalid Sentry Dsn: ${str}`);\n    });\n    return void 0;\n  }\n  const [protocol, publicKey, pass = \"\", host = \"\", port = \"\", lastPath = \"\"] = match.slice(1);\n  let path = \"\";\n  let projectId = lastPath;\n  const split = projectId.split(\"/\");\n  if (split.length > 1) {\n    path = split.slice(0, -1).join(\"/\");\n    projectId = split.pop();\n  }\n  if (projectId) {\n    const projectMatch = projectId.match(/^\\d+/);\n    if (projectMatch) {\n      projectId = projectMatch[0];\n    }\n  }\n  return dsnFromComponents({ host, pass, path, projectId, port, protocol, publicKey });\n}\nfunction dsnFromComponents(components) {\n  return {\n    protocol: components.protocol,\n    publicKey: components.publicKey || \"\",\n    pass: components.pass || \"\",\n    host: components.host,\n    port: components.port || \"\",\n    path: components.path || \"\",\n    projectId: components.projectId\n  };\n}\nfunction validateDsn(dsn) {\n  if (!DEBUG_BUILD) {\n    return true;\n  }\n  const { port, projectId, protocol } = dsn;\n  const requiredComponents = [\"protocol\", \"publicKey\", \"host\", \"projectId\"];\n  const hasMissingRequiredComponent = requiredComponents.find((component) => {\n    if (!dsn[component]) {\n      debug.error(`Invalid Sentry Dsn: ${component} missing`);\n      return true;\n    }\n    return false;\n  });\n  if (hasMissingRequiredComponent) {\n    return false;\n  }\n  if (!projectId.match(/^\\d+$/)) {\n    debug.error(`Invalid Sentry Dsn: Invalid projectId ${projectId}`);\n    return false;\n  }\n  if (!isValidProtocol(protocol)) {\n    debug.error(`Invalid Sentry Dsn: Invalid protocol ${protocol}`);\n    return false;\n  }\n  if (port && isNaN(parseInt(port, 10))) {\n    debug.error(`Invalid Sentry Dsn: Invalid port ${port}`);\n    return false;\n  }\n  return true;\n}\nfunction extractOrgIdFromDsnHost(host) {\n  const match = host.match(ORG_ID_REGEX);\n  return match?.[1];\n}\nfunction extractOrgIdFromClient(client) {\n  const options = client.getOptions();\n  const { host } = client.getDsn() || {};\n  let org_id;\n  if (options.orgId) {\n    org_id = String(options.orgId);\n  } else if (host) {\n    org_id = extractOrgIdFromDsnHost(host);\n  }\n  return org_id;\n}\nfunction makeDsn(from) {\n  const components = typeof from === \"string\" ? dsnFromString(from) : dsnFromComponents(from);\n  if (!components || !validateDsn(components)) {\n    return void 0;\n  }\n  return components;\n}\n\nexport { dsnFromString, dsnToString, extractOrgIdFromClient, extractOrgIdFromDsnHost, makeDsn };\n//# sourceMappingURL=dsn.js.map\n","function parseSampleRate(sampleRate) {\n  if (typeof sampleRate === \"boolean\") {\n    return Number(sampleRate);\n  }\n  const rate = typeof sampleRate === \"string\" ? parseFloat(sampleRate) : sampleRate;\n  if (typeof rate !== \"number\" || isNaN(rate) || rate < 0 || rate > 1) {\n    return void 0;\n  }\n  return rate;\n}\n\nexport { parseSampleRate };\n//# sourceMappingURL=parseSampleRate.js.map\n","import { debug } from './debug-logger.js';\nimport { baggageHeaderToDynamicSamplingContext } from './baggage.js';\nimport { extractOrgIdFromClient } from './dsn.js';\nimport { parseSampleRate } from './parseSampleRate.js';\nimport { generateTraceId, generateSpanId } from './propagationContext.js';\nimport { safeMathRandom } from './randomSafeContext.js';\n\nconst TRACEPARENT_REGEXP = new RegExp(\n  \"^[ \\\\t]*([0-9a-f]{32})?-?([0-9a-f]{16})?-?([01])?[ \\\\t]*$\"\n  // whitespace\n);\nfunction extractTraceparentData(traceparent) {\n  if (!traceparent) {\n    return void 0;\n  }\n  const matches = traceparent.match(TRACEPARENT_REGEXP);\n  if (!matches) {\n    return void 0;\n  }\n  let parentSampled;\n  if (matches[3] === \"1\") {\n    parentSampled = true;\n  } else if (matches[3] === \"0\") {\n    parentSampled = false;\n  }\n  return {\n    traceId: matches[1],\n    parentSampled,\n    parentSpanId: matches[2]\n  };\n}\nfunction isContinuingTrace(propagationContext) {\n  return !!propagationContext.parentSpanId || !!propagationContext.dsc;\n}\nfunction propagationContextFromHeaders(sentryTrace, baggage) {\n  const traceparentData = extractTraceparentData(sentryTrace);\n  const dynamicSamplingContext = baggageHeaderToDynamicSamplingContext(baggage);\n  if (!traceparentData?.traceId) {\n    return {\n      traceId: generateTraceId(),\n      sampleRand: safeMathRandom()\n    };\n  }\n  const sampleRand = getSampleRandFromTraceparentAndDsc(traceparentData, dynamicSamplingContext);\n  if (dynamicSamplingContext) {\n    dynamicSamplingContext.sample_rand = sampleRand.toString();\n  }\n  const { traceId, parentSpanId, parentSampled } = traceparentData;\n  return {\n    traceId,\n    parentSpanId,\n    sampled: parentSampled,\n    dsc: dynamicSamplingContext || {},\n    // If we have traceparent data but no DSC it means we are not head of trace and we must freeze it\n    sampleRand\n  };\n}\nfunction generateSentryTraceHeader(traceId = generateTraceId(), spanId = generateSpanId(), sampled) {\n  let sampledString = \"\";\n  if (sampled !== void 0) {\n    sampledString = sampled ? \"-1\" : \"-0\";\n  }\n  return `${traceId}-${spanId}${sampledString}`;\n}\nfunction generateTraceparentHeader(traceId = generateTraceId(), spanId = generateSpanId(), sampled) {\n  return `00-${traceId}-${spanId}-${sampled ? \"01\" : \"00\"}`;\n}\nfunction getSampleRandFromTraceparentAndDsc(traceparentData, dsc) {\n  const parsedSampleRand = parseSampleRate(dsc?.sample_rand);\n  if (parsedSampleRand !== void 0) {\n    return parsedSampleRand;\n  }\n  const parsedSampleRate = parseSampleRate(dsc?.sample_rate);\n  if (parsedSampleRate && traceparentData?.parentSampled !== void 0) {\n    return traceparentData.parentSampled ? (\n      // Returns a sample rand with positive sampling decision [0, sampleRate)\n      safeMathRandom() * parsedSampleRate\n    ) : (\n      // Returns a sample rand with negative sampling decision [sampleRate, 1)\n      parsedSampleRate + safeMathRandom() * (1 - parsedSampleRate)\n    );\n  } else {\n    return safeMathRandom();\n  }\n}\nfunction shouldContinueTrace(client, baggageOrgId) {\n  const clientOrgId = extractOrgIdFromClient(client);\n  if (baggageOrgId && clientOrgId && baggageOrgId !== clientOrgId) {\n    debug.log(\n      `Won't continue trace because org IDs don't match (incoming baggage: ${baggageOrgId}, SDK options: ${clientOrgId})`\n    );\n    return false;\n  }\n  const strictTraceContinuation = client.getOptions().strictTraceContinuation || false;\n  if (strictTraceContinuation) {\n    if (baggageOrgId && !clientOrgId || !baggageOrgId && clientOrgId) {\n      debug.log(\n        `Starting a new trace because strict trace continuation is enabled but one org ID is missing (incoming baggage: ${baggageOrgId}, Sentry client: ${clientOrgId})`\n      );\n      return false;\n    }\n  }\n  return true;\n}\n\nexport { TRACEPARENT_REGEXP, extractTraceparentData, generateSentryTraceHeader, generateTraceparentHeader, isContinuingTrace, propagationContextFromHeaders, shouldContinueTrace };\n//# sourceMappingURL=tracing.js.map\n","import { makeWeakRef, derefWeakRef } from './weakRef.js';\n\nconst SCOPE_SPAN_FIELD = \"span\";\nfunction _setSpanForScope(scope, span) {\n  if (span) {\n    scope.refs[SCOPE_SPAN_FIELD] = makeWeakRef(span);\n  } else {\n    delete scope.refs[SCOPE_SPAN_FIELD];\n  }\n}\nfunction _getSpanForScope(scope) {\n  return derefWeakRef(scope.refs[SCOPE_SPAN_FIELD]);\n}\n\nexport { _getSpanForScope, _setSpanForScope };\n//# sourceMappingURL=spanOnScope.js.map\n","import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { serializeAttributes } from '../attributes.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getCurrentScope } from '../currentScopes.js';\nimport { SENTRY_SEGMENT_NAME_SOURCE } from '@sentry/conventions/attributes';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN, SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME, SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE } from '../semanticAttributes.js';\nimport { SPAN_STATUS_UNSET, SPAN_STATUS_OK, isStatusErrorMessageValid } from '../tracing/spanstatus.js';\nimport { getCapturedScopesOnSpan } from '../tracing/utils.js';\nimport { addNonEnumerableProperty } from './object.js';\nimport { generateSpanId } from './propagationContext.js';\nimport { timestampInSeconds } from './time.js';\nimport { generateSentryTraceHeader, generateTraceparentHeader } from './tracing.js';\nimport { _getSpanForScope } from './spanOnScope.js';\n\nconst TRACE_FLAG_NONE = 0;\nconst TRACE_FLAG_SAMPLED = 1;\nfunction spanToTransactionTraceContext(span) {\n  const { spanId: span_id, traceId: trace_id } = span.spanContext();\n  const { data, op, parent_span_id, status, origin, links } = spanToStaticSpanJSON(span);\n  return {\n    parent_span_id,\n    span_id,\n    trace_id,\n    data,\n    op,\n    status,\n    origin,\n    links\n  };\n}\nfunction spanToTraceContext(span) {\n  const { spanId, traceId: trace_id, isRemote } = span.spanContext();\n  const parent_span_id = isRemote ? spanId : spanToStaticSpanJSON(span).parent_span_id;\n  const scope = getCapturedScopesOnSpan(span).scope;\n  const span_id = isRemote ? scope?.getPropagationContext().propagationSpanId || generateSpanId() : spanId;\n  return {\n    parent_span_id,\n    span_id,\n    trace_id\n  };\n}\nfunction spanToTraceHeader(span) {\n  const { traceId, spanId } = span.spanContext();\n  const sampled = spanIsSampled(span);\n  return generateSentryTraceHeader(traceId, spanId, sampled);\n}\nfunction spanToTraceparentHeader(span) {\n  const { traceId, spanId } = span.spanContext();\n  const sampled = spanIsSampled(span);\n  return generateTraceparentHeader(traceId, spanId, sampled);\n}\nfunction convertSpanLinksForEnvelope(links) {\n  if (links && links.length > 0) {\n    return links.map(({ context: { spanId, traceId, traceFlags, ...restContext }, attributes }) => ({\n      span_id: spanId,\n      trace_id: traceId,\n      sampled: traceFlags === TRACE_FLAG_SAMPLED,\n      attributes,\n      ...restContext\n    }));\n  } else {\n    return void 0;\n  }\n}\nfunction getStreamedSpanLinks(links) {\n  if (links?.length) {\n    return links.map(({ context: { spanId, traceId, traceFlags }, attributes }) => ({\n      span_id: spanId,\n      trace_id: traceId,\n      sampled: traceFlags === TRACE_FLAG_SAMPLED,\n      attributes\n    }));\n  } else {\n    return void 0;\n  }\n}\nfunction spanTimeInputToSeconds(input) {\n  if (typeof input === \"number\") {\n    return ensureTimestampInSeconds(input);\n  }\n  if (Array.isArray(input)) {\n    return input[0] + input[1] / 1e9;\n  }\n  if (input instanceof Date) {\n    return ensureTimestampInSeconds(input.getTime());\n  }\n  return timestampInSeconds();\n}\nfunction ensureTimestampInSeconds(timestamp) {\n  const isMs = timestamp > 9999999999;\n  return isMs ? timestamp / 1e3 : timestamp;\n}\nfunction spanToStaticSpanJSON(span) {\n  if (spanIsSentrySpan(span)) {\n    return span.getStaticSpanJSON();\n  }\n  const { spanId: span_id, traceId: trace_id } = span.spanContext();\n  if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n    const { attributes, startTime, name, endTime, status, links } = span;\n    return {\n      span_id,\n      trace_id,\n      data: attributes,\n      description: name,\n      parent_span_id: getOtelParentSpanId(span),\n      start_timestamp: spanTimeInputToSeconds(startTime),\n      // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n      timestamp: spanTimeInputToSeconds(endTime) || void 0,\n      status: getStatusMessage(status),\n      op: attributes[SEMANTIC_ATTRIBUTE_SENTRY_OP],\n      origin: attributes[SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN],\n      links: convertSpanLinksForEnvelope(links)\n    };\n  }\n  return {\n    span_id,\n    trace_id,\n    start_timestamp: 0,\n    status: \"ok\",\n    data: {}\n  };\n}\nfunction spanToJSON(span) {\n  if (spanIsSentrySpan(span)) {\n    return span.getSpanJSON();\n  }\n  const { spanId: span_id, traceId: trace_id } = span.spanContext();\n  if (spanIsOpenTelemetrySdkTraceBaseSpan(span)) {\n    const { attributes, startTime, name, endTime, status, links } = span;\n    return {\n      name,\n      span_id,\n      trace_id,\n      parent_span_id: getOtelParentSpanId(span),\n      start_timestamp: spanTimeInputToSeconds(startTime),\n      // This is [0,0] by default in OTEL, in which case we want to interpret this as no end time\n      end_timestamp: spanTimeInputToSeconds(endTime) || void 0,\n      is_segment: spanIsSegment(span),\n      status: getSimpleStatus(status),\n      attributes: addStatusMessageAttribute(attributes, status),\n      links: getStreamedSpanLinks(links)\n    };\n  }\n  return {\n    span_id,\n    trace_id,\n    start_timestamp: 0,\n    name: \"\",\n    status: \"ok\",\n    is_segment: spanIsSegment(span),\n    attributes: {}\n  };\n}\nfunction getOtelParentSpanId(span) {\n  return \"parentSpanId\" in span ? span.parentSpanId : \"parentSpanContext\" in span ? span.parentSpanContext?.spanId : void 0;\n}\nfunction streamedSpanJsonToSerializedSpan(spanJson) {\n  return {\n    ...spanJson,\n    // We only ever send ended spans, but fall back to the start time (i.e. duration 0) so that\n    // sent spans always carry an end timestamp.\n    end_timestamp: spanJson.end_timestamp ?? spanJson.start_timestamp,\n    attributes: serializeAttributes(spanJson.attributes),\n    links: spanJson.links?.map((link) => ({\n      ...link,\n      attributes: serializeAttributes(link.attributes)\n    }))\n  };\n}\nfunction spanIsOpenTelemetrySdkTraceBaseSpan(span) {\n  const castSpan = span;\n  return !!castSpan.attributes && !!castSpan.startTime && !!castSpan.name && !!castSpan.endTime && !!castSpan.status;\n}\nfunction spanIsSentrySpan(span) {\n  return typeof span.getSpanJSON === \"function\";\n}\nfunction spanIsSampled(span) {\n  const { traceFlags } = span.spanContext();\n  return traceFlags === TRACE_FLAG_SAMPLED;\n}\nfunction getStatusMessage(status) {\n  if (!status || status.code === SPAN_STATUS_UNSET) {\n    return \"ok\";\n  }\n  if (status.code === SPAN_STATUS_OK) {\n    return \"ok\";\n  }\n  return status.message && isStatusErrorMessageValid(status.message) ? status.message : \"internal_error\";\n}\nfunction getSimpleStatus(status) {\n  return !status || status.code === SPAN_STATUS_OK || status.code === SPAN_STATUS_UNSET || status.message === \"cancelled\" ? \"ok\" : \"error\";\n}\nfunction addStatusMessageAttribute(attributes, status) {\n  const statusMessage = getSimpleStatus(status) === \"error\" ? status?.message : void 0;\n  return {\n    ...statusMessage && { [SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE]: statusMessage },\n    ...attributes\n  };\n}\nconst CHILD_SPANS_FIELD = \"_sentryChildSpans\";\nconst ROOT_SPAN_FIELD = \"_sentryRootSpan\";\nfunction addChildSpanToSpan(span, childSpan) {\n  const rootSpan = span[ROOT_SPAN_FIELD] || span;\n  addNonEnumerableProperty(childSpan, ROOT_SPAN_FIELD, rootSpan);\n  childSpan.setAttribute(SENTRY_SEGMENT_NAME_SOURCE, void 0);\n  if (!spanIsSampled(span)) {\n    return;\n  }\n  if (!span.isRecording() && !rootSpan.isRecording()) {\n    return;\n  }\n  if (span[CHILD_SPANS_FIELD]) {\n    span[CHILD_SPANS_FIELD].add(childSpan);\n  } else {\n    addNonEnumerableProperty(span, CHILD_SPANS_FIELD, /* @__PURE__ */ new Set([childSpan]));\n  }\n}\nfunction removeChildSpanFromSpan(span, childSpan) {\n  if (span[CHILD_SPANS_FIELD]) {\n    span[CHILD_SPANS_FIELD].delete(childSpan);\n  }\n}\nfunction getSpanDescendants(span) {\n  const resultSet = /* @__PURE__ */ new Set();\n  function addSpanChildren(span2) {\n    if (resultSet.has(span2)) {\n      return;\n    } else if (spanIsSampled(span2)) {\n      resultSet.add(span2);\n      const childSpans = span2[CHILD_SPANS_FIELD] ? Array.from(span2[CHILD_SPANS_FIELD]) : [];\n      for (const childSpan of childSpans) {\n        addSpanChildren(childSpan);\n      }\n    }\n  }\n  addSpanChildren(span);\n  return Array.from(resultSet);\n}\nconst getRootSpan = INTERNAL_getSegmentSpan;\nfunction INTERNAL_getSegmentSpan(span) {\n  return span[ROOT_SPAN_FIELD] || span;\n}\nfunction spanIsSegment(span) {\n  return span === INTERNAL_getSegmentSpan(span);\n}\nfunction getActiveSpan(scope) {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (acs.getActiveSpan) {\n    return acs.getActiveSpan(scope);\n  }\n  return _getSpanForScope(scope || getCurrentScope());\n}\nfunction updateSpanName(span, name) {\n  span.updateName(name);\n  span.setAttributes({\n    [SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME]: name\n  });\n  INTERNAL_setSegmentNameSourceIfSegment(span, \"custom\");\n}\nfunction INTERNAL_setSegmentNameSourceIfSegment(span, source) {\n  if (spanIsSegment(span)) {\n    span.setAttribute(SENTRY_SEGMENT_NAME_SOURCE, source);\n  }\n}\n\nexport { INTERNAL_getSegmentSpan, INTERNAL_setSegmentNameSourceIfSegment, TRACE_FLAG_NONE, TRACE_FLAG_SAMPLED, addChildSpanToSpan, addStatusMessageAttribute, convertSpanLinksForEnvelope, getActiveSpan, getRootSpan, getSimpleStatus, getSpanDescendants, getStatusMessage, getStreamedSpanLinks, removeChildSpanFromSpan, spanIsSampled, spanIsSegment, spanIsSentrySpan, spanTimeInputToSeconds, spanToJSON, spanToStaticSpanJSON, spanToTraceContext, spanToTraceHeader, spanToTraceparentHeader, spanToTransactionTraceContext, streamedSpanJsonToSerializedSpan, updateSpanName };\n//# sourceMappingURL=spanUtils.js.map\n","import { SPAN_STATUS_TYPES } from '../types/spanStatus.js';\n\nconst SPAN_STATUS_UNSET = 0;\nconst SPAN_STATUS_OK = 1;\nconst SPAN_STATUS_ERROR = 2;\nfunction isStatusErrorMessageValid(message) {\n  return message !== \"ok\" && SPAN_STATUS_TYPES.includes(message);\n}\nfunction getSpanStatusFromHttpCode(httpStatus) {\n  if (httpStatus < 400 && httpStatus >= 100) {\n    return { code: SPAN_STATUS_OK };\n  }\n  if (httpStatus >= 400 && httpStatus < 500) {\n    switch (httpStatus) {\n      case 401:\n        return { code: SPAN_STATUS_ERROR, message: \"unauthenticated\" };\n      case 403:\n        return { code: SPAN_STATUS_ERROR, message: \"permission_denied\" };\n      case 404:\n        return { code: SPAN_STATUS_ERROR, message: \"not_found\" };\n      case 409:\n        return { code: SPAN_STATUS_ERROR, message: \"already_exists\" };\n      case 413:\n        return { code: SPAN_STATUS_ERROR, message: \"failed_precondition\" };\n      case 429:\n        return { code: SPAN_STATUS_ERROR, message: \"resource_exhausted\" };\n      case 499:\n        return { code: SPAN_STATUS_ERROR, message: \"cancelled\" };\n      default:\n        return { code: SPAN_STATUS_ERROR, message: \"invalid_argument\" };\n    }\n  }\n  if (httpStatus >= 500 && httpStatus < 600) {\n    switch (httpStatus) {\n      case 501:\n        return { code: SPAN_STATUS_ERROR, message: \"unimplemented\" };\n      case 503:\n        return { code: SPAN_STATUS_ERROR, message: \"unavailable\" };\n      case 504:\n        return { code: SPAN_STATUS_ERROR, message: \"deadline_exceeded\" };\n      default:\n        return { code: SPAN_STATUS_ERROR, message: \"internal_error\" };\n    }\n  }\n  return { code: SPAN_STATUS_ERROR, message: \"internal_error\" };\n}\nfunction setHttpStatus(span, httpStatus) {\n  span.setAttribute(\"http.response.status_code\", httpStatus);\n  const spanStatus = getSpanStatusFromHttpCode(httpStatus);\n  if (spanStatus.message !== \"unknown_error\") {\n    span.setStatus(spanStatus);\n  }\n}\n\nexport { SPAN_STATUS_ERROR, SPAN_STATUS_OK, SPAN_STATUS_UNSET, getSpanStatusFromHttpCode, isStatusErrorMessageValid, setHttpStatus };\n//# sourceMappingURL=spanstatus.js.map\n","import { getClient } from '../currentScopes.js';\n\nfunction hasSpansEnabled(maybeOptions) {\n  if (typeof __SENTRY_TRACING__ === \"boolean\" && !__SENTRY_TRACING__) {\n    return false;\n  }\n  const options = maybeOptions || getClient()?.getOptions();\n  return !!options && // Note: This check is `!= null`, meaning \"nullish\". `0` is not \"nullish\", `undefined` and `null` are. (This comment was brought to you by 15 minutes of questioning life)\n  (options.tracesSampleRate != null || !!options.tracesSampler);\n}\n\nexport { hasSpansEnabled };\n//# sourceMappingURL=hasSpansEnabled.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isMatchingPattern } from './string.js';\n\nfunction logIgnoredSpan(droppedSpan) {\n  debug.log(`Ignoring span ${droppedSpan.op} - ${droppedSpan.description} because it matches \\`ignoreSpans\\`.`);\n}\nfunction shouldIgnoreSpan(span, ignoreSpans) {\n  if (!ignoreSpans?.length) {\n    return false;\n  }\n  for (const pattern of ignoreSpans) {\n    if (isStringOrRegExp(pattern)) {\n      if (span.description && isMatchingPattern(span.description, pattern)) {\n        DEBUG_BUILD && logIgnoredSpan(span);\n        return true;\n      }\n      continue;\n    }\n    const hasAttributes = !!pattern.attributes && Object.keys(pattern.attributes).length > 0;\n    if (!pattern.name && !pattern.op && !hasAttributes) {\n      continue;\n    }\n    const nameMatches = pattern.name ? span.description && isMatchingPattern(span.description, pattern.name) : true;\n    const opMatches = pattern.op ? span.op && isMatchingPattern(span.op, pattern.op) : true;\n    const attrsMatch = pattern.attributes ? Object.entries(pattern.attributes).every(\n      ([key, valuePattern]) => _matchesAttributeValue(span.attributes?.[key], valuePattern)\n    ) : true;\n    if (nameMatches && opMatches && attrsMatch) {\n      DEBUG_BUILD && logIgnoredSpan(span);\n      return true;\n    }\n  }\n  return false;\n}\nfunction _matchesAttributeValue(actual, pat) {\n  if (typeof actual === \"string\" && (typeof pat === \"string\" || pat instanceof RegExp)) {\n    return isMatchingPattern(actual, pat);\n  }\n  if (Array.isArray(actual) && Array.isArray(pat)) {\n    return actual.length === pat.length && actual.every((v, i) => v === pat[i]);\n  }\n  return actual === pat;\n}\nfunction reparentChildSpans(spans, dropSpan) {\n  const droppedSpanParentId = dropSpan.parent_span_id;\n  const droppedSpanId = dropSpan.span_id;\n  if (!droppedSpanParentId) {\n    return;\n  }\n  for (const span of spans) {\n    if (span.parent_span_id === droppedSpanId) {\n      span.parent_span_id = droppedSpanParentId;\n    }\n  }\n}\nfunction isStringOrRegExp(value) {\n  return typeof value === \"string\" || value instanceof RegExp;\n}\n\nexport { reparentChildSpans, shouldIgnoreSpan };\n//# sourceMappingURL=should-ignore-span.js.map\n","import { getClient } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { debug } from './utils/debug-logger.js';\n\nconst installedIntegrations = [];\nfunction filterDuplicates(integrations) {\n  const integrationsByName = {};\n  integrations.forEach((currentInstance) => {\n    const { name } = currentInstance;\n    const existingInstance = integrationsByName[name];\n    if (existingInstance && !existingInstance.isDefaultInstance && currentInstance.isDefaultInstance) {\n      return;\n    }\n    integrationsByName[name] = currentInstance;\n  });\n  return Object.values(integrationsByName);\n}\nfunction getIntegrationsToSetup(options) {\n  const defaultIntegrations = options.defaultIntegrations || [];\n  const userIntegrations = options.integrations;\n  defaultIntegrations.forEach((integration) => {\n    integration.isDefaultInstance = true;\n  });\n  let integrations;\n  if (Array.isArray(userIntegrations)) {\n    integrations = [...defaultIntegrations, ...userIntegrations];\n  } else if (typeof userIntegrations === \"function\") {\n    const resolvedUserIntegrations = userIntegrations(defaultIntegrations);\n    integrations = Array.isArray(resolvedUserIntegrations) ? resolvedUserIntegrations : [resolvedUserIntegrations];\n  } else {\n    integrations = defaultIntegrations;\n  }\n  return filterDuplicates(integrations);\n}\nfunction setupIntegrations(client, integrations) {\n  const integrationIndex = {};\n  integrations.forEach((integration) => {\n    if (integration?.beforeSetup) {\n      integration.beforeSetup(client);\n    }\n  });\n  integrations.forEach((integration) => {\n    if (integration) {\n      setupIntegration(client, integration, integrationIndex);\n    }\n  });\n  return integrationIndex;\n}\nfunction afterSetupIntegrations(client, integrations) {\n  for (const integration of integrations) {\n    if (integration?.afterAllSetup) {\n      integration.afterAllSetup(client);\n    }\n  }\n}\nfunction setupIntegration(client, integration, integrationIndex) {\n  if (integrationIndex[integration.name]) {\n    DEBUG_BUILD && debug.log(`Integration skipped because it was already installed: ${integration.name}`);\n    return;\n  }\n  integrationIndex[integration.name] = integration;\n  if (!installedIntegrations.includes(integration.name) && typeof integration.setupOnce === \"function\") {\n    integration.setupOnce();\n    installedIntegrations.push(integration.name);\n  }\n  if (integration.setup && typeof integration.setup === \"function\") {\n    integration.setup(client);\n  }\n  if (typeof integration.preprocessEvent === \"function\") {\n    const callback = integration.preprocessEvent.bind(integration);\n    client.on(\"preprocessEvent\", (event, hint) => callback(event, hint, client));\n  }\n  if (typeof integration.processEvent === \"function\") {\n    const callback = integration.processEvent.bind(integration);\n    const processor = Object.assign((event, hint) => callback(event, hint, client), {\n      id: integration.name\n    });\n    client.addEventProcessor(processor);\n  }\n  [\"processSpan\", \"processSegmentSpan\"].forEach((hook) => {\n    const callback = integration[hook];\n    if (typeof callback === \"function\") {\n      client.on(hook, (span) => callback.call(integration, span, client));\n    }\n  });\n  DEBUG_BUILD && debug.log(`Integration installed: ${integration.name}`);\n}\nfunction addIntegration(integration) {\n  const client = getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn(`Cannot add integration \"${integration.name}\" because no SDK Client is available.`);\n    return;\n  }\n  client.addIntegration(integration);\n}\nfunction defineIntegration(fn) {\n  return fn;\n}\nfunction extendIntegration(integration, extendedIntegration) {\n  const wrappedIntegration = {\n    ...integration,\n    ...extendedIntegration\n  };\n  for (const key in extendedIntegration) {\n    const baseValue = integration[key];\n    const extendedValue = extendedIntegration[key];\n    if (typeof baseValue === \"function\" && typeof extendedValue === \"function\") {\n      const wrappedFunction = new Proxy(baseValue, {\n        apply: (target, thisArg, args) => {\n          Reflect.apply(target, thisArg, args);\n          return Reflect.apply(extendedValue, thisArg, args);\n        }\n      });\n      wrappedIntegration[key] = wrappedFunction;\n    }\n  }\n  return wrappedIntegration;\n}\n\nexport { addIntegration, afterSetupIntegrations, defineIntegration, extendIntegration, getIntegrationsToSetup, installedIntegrations, setupIntegration, setupIntegrations };\n//# sourceMappingURL=integration.js.map\n","const DEFAULT_ENVIRONMENT = \"production\";\nconst DEV_ENVIRONMENT = \"development\";\n\nexport { DEFAULT_ENVIRONMENT, DEV_ENVIRONMENT };\n//# sourceMappingURL=constants.js.map\n","import { addNonEnumerableProperty } from '../utils/object.js';\nimport { generateTraceId, generateSpanId } from '../utils/propagationContext.js';\nimport { TRACE_FLAG_NONE } from '../utils/spanUtils.js';\n\nconst NON_RECORDING_SPAN_FIELD = /* @__PURE__ */ Symbol.for(\"sentry.nonRecordingSpan\");\nclass SentryNonRecordingSpan {\n  constructor(spanContext = {}) {\n    this._traceId = spanContext.traceId || generateTraceId();\n    this._spanId = spanContext.spanId || generateSpanId();\n    this.dropReason = spanContext.dropReason;\n    addNonEnumerableProperty(this, NON_RECORDING_SPAN_FIELD, true);\n  }\n  /** @inheritdoc */\n  spanContext() {\n    return {\n      spanId: this._spanId,\n      traceId: this._traceId,\n      traceFlags: TRACE_FLAG_NONE\n    };\n  }\n  /** @inheritdoc */\n  end(_timestamp) {\n  }\n  /** @inheritdoc */\n  setAttribute(_key, _value) {\n    return this;\n  }\n  /** @inheritdoc */\n  setAttributes(_values) {\n    return this;\n  }\n  /** @inheritdoc */\n  setStatus(_status) {\n    return this;\n  }\n  /** @inheritdoc */\n  updateName(_name) {\n    return this;\n  }\n  /** @inheritdoc */\n  isRecording() {\n    return false;\n  }\n  /** @inheritdoc */\n  addEvent(_name, _attributesOrStartTime, _startTime) {\n    return this;\n  }\n  /** @inheritDoc */\n  addLink(_link) {\n    return this;\n  }\n  /** @inheritDoc */\n  addLinks(_links) {\n    return this;\n  }\n  /**\n   * This should generally not be used,\n   * but we need it for being compliant with the OTEL Span interface.\n   *\n   * @hidden\n   * @internal\n   */\n  recordException(_exception, _time) {\n  }\n}\nfunction spanIsNonRecordingSpan(span) {\n  return !!span && span[NON_RECORDING_SPAN_FIELD] === true;\n}\n\nexport { SentryNonRecordingSpan, spanIsNonRecordingSpan };\n//# sourceMappingURL=sentryNonRecordingSpan.js.map\n","import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { getExternalPropagationContext, getClient } from '../currentScopes.js';\nimport { SENTRY_SEGMENT_NAME_SOURCE } from '@sentry/conventions/attributes';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE, SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE } from '../semanticAttributes.js';\nimport { baggageHeaderToDynamicSamplingContext, dynamicSamplingContextToSentryBaggageHeader } from '../utils/baggage.js';\nimport { extractOrgIdFromClient } from '../utils/dsn.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { addNonEnumerableProperty } from '../utils/object.js';\nimport { getRootSpan, spanToStaticSpanJSON, spanIsSampled } from '../utils/spanUtils.js';\nimport { spanIsNonRecordingSpan } from './sentryNonRecordingSpan.js';\nimport { getCapturedScopesOnSpan } from './utils.js';\n\nconst FROZEN_DSC_FIELD = \"_frozenDsc\";\nfunction freezeDscOnSpan(span, dsc) {\n  const spanWithMaybeDsc = span;\n  addNonEnumerableProperty(spanWithMaybeDsc, FROZEN_DSC_FIELD, dsc);\n}\nfunction getDynamicSamplingContextFromClient(trace_id, client) {\n  const options = client.getOptions();\n  const { publicKey: public_key } = client.getDsn() || {};\n  const dsc = {\n    environment: options.environment || DEFAULT_ENVIRONMENT,\n    release: options.release,\n    public_key,\n    trace_id,\n    org_id: extractOrgIdFromClient(client)\n  };\n  client.emit(\"createDsc\", dsc);\n  return dsc;\n}\nfunction getDynamicSamplingContextFromScope(client, scope) {\n  if (getExternalPropagationContext()) {\n    return void 0;\n  }\n  const propagationContext = scope.getPropagationContext();\n  return propagationContext.dsc || getDynamicSamplingContextFromClient(propagationContext.traceId, client);\n}\nfunction getDynamicSamplingContextFromSpan(span) {\n  const client = getClient();\n  if (!client) {\n    return {};\n  }\n  const rootSpan = getRootSpan(span);\n  const rootSpanJson = spanToStaticSpanJSON(rootSpan);\n  const rootSpanAttributes = rootSpanJson.data;\n  const traceState = rootSpan.spanContext().traceState;\n  const rootSpanSampleRate = traceState?.get(\"sentry.sample_rate\") ?? rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE] ?? rootSpanAttributes[SEMANTIC_ATTRIBUTE_SENTRY_PREVIOUS_TRACE_SAMPLE_RATE];\n  function applyLocalSampleRateToDsc(dsc2) {\n    if (typeof rootSpanSampleRate === \"number\" || typeof rootSpanSampleRate === \"string\") {\n      dsc2.sample_rate = `${rootSpanSampleRate}`;\n    }\n    return dsc2;\n  }\n  const frozenDsc = rootSpan[FROZEN_DSC_FIELD];\n  if (frozenDsc) {\n    return applyLocalSampleRateToDsc(frozenDsc);\n  }\n  const isNonRecordingRoot = spanIsNonRecordingSpan(rootSpan);\n  const isIgnoredRoot = isNonRecordingRoot && rootSpan.dropReason === \"ignored\";\n  if (isNonRecordingRoot && (!hasSpansEnabled(client.getOptions()) || isIgnoredRoot)) {\n    const capturedScope = getCapturedScopesOnSpan(rootSpan).scope;\n    const scopeDsc = capturedScope && getDynamicSamplingContextFromScope(client, capturedScope);\n    if (scopeDsc) {\n      const dsc2 = { ...scopeDsc };\n      if (isIgnoredRoot) {\n        dsc2.sampled = \"false\";\n      }\n      return applyLocalSampleRateToDsc(dsc2);\n    }\n  }\n  const traceStateDsc = traceState?.get(\"sentry.dsc\");\n  const dscOnTraceState = traceStateDsc && baggageHeaderToDynamicSamplingContext(traceStateDsc);\n  if (dscOnTraceState) {\n    return applyLocalSampleRateToDsc(dscOnTraceState);\n  }\n  const dsc = getDynamicSamplingContextFromClient(span.spanContext().traceId, client);\n  const source = rootSpanAttributes[SENTRY_SEGMENT_NAME_SOURCE];\n  const name = rootSpanJson.description;\n  if (source !== \"url\" && name) {\n    dsc.transaction = name;\n  }\n  if (hasSpansEnabled()) {\n    dsc.sampled = String(spanIsSampled(rootSpan));\n    dsc.sample_rand = // In OTEL we store the sample rand on the trace state because we cannot access scopes for NonRecordingSpans\n    // The Sentry OTEL SpanSampler takes care of writing the sample rand on the root span\n    traceState?.get(\"sentry.sample_rand\") ?? // On all other platforms we can actually get the scopes from a root span (we use this as a fallback)\n    getCapturedScopesOnSpan(rootSpan).scope?.getPropagationContext().sampleRand.toString();\n  }\n  applyLocalSampleRateToDsc(dsc);\n  client.emit(\"createDsc\", dsc, rootSpan);\n  return dsc;\n}\nfunction spanToBaggageHeader(span) {\n  const dsc = getDynamicSamplingContextFromSpan(span);\n  return dynamicSamplingContextToSentryBaggageHeader(dsc);\n}\n\nexport { freezeDscOnSpan, getDynamicSamplingContextFromClient, getDynamicSamplingContextFromScope, getDynamicSamplingContextFromSpan, spanToBaggageHeader };\n//# sourceMappingURL=dynamicSamplingContext.js.map\n","import { getGlobalScope } from '../currentScopes.js';\nimport { getDynamicSamplingContextFromSpan } from '../tracing/dynamicSamplingContext.js';\nimport { merge } from './merge.js';\nimport { spanToTraceContext, getRootSpan, spanToStaticSpanJSON } from './spanUtils.js';\n\nfunction applyScopeDataToEvent(event, data) {\n  const { fingerprint, breadcrumbs, sdkProcessingMetadata } = data;\n  applyDataToEvent(event, data);\n  applyFingerprintToEvent(event, fingerprint);\n  applyBreadcrumbsToEvent(event, breadcrumbs);\n  applySdkMetadataToEvent(event, sdkProcessingMetadata);\n}\nfunction mergeScopeData(data, mergeData) {\n  const {\n    extra,\n    tags,\n    attributes,\n    user,\n    contexts,\n    level,\n    sdkProcessingMetadata,\n    breadcrumbs,\n    fingerprint,\n    eventProcessors,\n    attachments,\n    propagationContext,\n    transactionName\n  } = mergeData;\n  mergeAndOverwriteScopeData(data, \"extra\", extra);\n  mergeAndOverwriteScopeData(data, \"tags\", tags);\n  mergeAndOverwriteScopeData(data, \"attributes\", attributes);\n  mergeAndOverwriteScopeData(data, \"user\", user);\n  mergeAndOverwriteScopeData(data, \"contexts\", contexts);\n  data.sdkProcessingMetadata = merge(data.sdkProcessingMetadata, sdkProcessingMetadata, 2);\n  if (level) {\n    data.level = level;\n  }\n  if (transactionName) {\n    data.transactionName = transactionName;\n  }\n  if (breadcrumbs.length) {\n    data.breadcrumbs = [...data.breadcrumbs, ...breadcrumbs];\n  }\n  if (fingerprint.length) {\n    data.fingerprint = [...data.fingerprint, ...fingerprint];\n  }\n  if (eventProcessors.length) {\n    data.eventProcessors = [...data.eventProcessors, ...eventProcessors];\n  }\n  if (attachments.length) {\n    data.attachments = [...data.attachments, ...attachments];\n  }\n  data.propagationContext = { ...data.propagationContext, ...propagationContext };\n}\nfunction mergeAndOverwriteScopeData(data, prop, mergeVal) {\n  data[prop] = merge(data[prop], mergeVal, 1);\n}\nfunction getCombinedScopeData(isolationScope, currentScope) {\n  const scopeData = getGlobalScope().getScopeData();\n  isolationScope && mergeScopeData(scopeData, isolationScope.getScopeData());\n  currentScope && mergeScopeData(scopeData, currentScope.getScopeData());\n  return scopeData;\n}\nfunction applyDataToEvent(event, data) {\n  const { extra, tags, user, contexts, level, transactionName } = data;\n  if (Object.keys(extra).length) {\n    event.extra = { ...extra, ...event.extra };\n  }\n  if (Object.keys(tags).length) {\n    event.tags = { ...tags, ...event.tags };\n  }\n  if (Object.keys(user).length) {\n    event.user = { ...user, ...event.user };\n  }\n  if (Object.keys(contexts).length) {\n    event.contexts = { ...contexts, ...event.contexts };\n  }\n  if (level) {\n    event.level = level;\n  }\n  if (transactionName && event.type !== \"transaction\") {\n    event.transaction = transactionName;\n  }\n}\nfunction applyBreadcrumbsToEvent(event, breadcrumbs) {\n  const mergedBreadcrumbs = [...event.breadcrumbs || [], ...breadcrumbs];\n  event.breadcrumbs = mergedBreadcrumbs.length ? mergedBreadcrumbs : void 0;\n}\nfunction applySdkMetadataToEvent(event, sdkProcessingMetadata) {\n  event.sdkProcessingMetadata = {\n    ...event.sdkProcessingMetadata,\n    ...sdkProcessingMetadata\n  };\n}\nfunction applySpanToEvent(event, span) {\n  event.contexts = {\n    trace: spanToTraceContext(span),\n    ...event.contexts\n  };\n  event.sdkProcessingMetadata = {\n    dynamicSamplingContext: getDynamicSamplingContextFromSpan(span),\n    ...event.sdkProcessingMetadata\n  };\n  const rootSpan = getRootSpan(span);\n  const transactionName = spanToStaticSpanJSON(rootSpan).description;\n  if (transactionName && !event.transaction && event.type === \"transaction\") {\n    event.transaction = transactionName;\n  }\n}\nfunction applyFingerprintToEvent(event, fingerprint) {\n  event.fingerprint = event.fingerprint ? Array.isArray(event.fingerprint) ? event.fingerprint : [event.fingerprint] : [];\n  if (fingerprint) {\n    event.fingerprint = event.fingerprint.concat(fingerprint);\n  }\n  if (!event.fingerprint.length) {\n    delete event.fingerprint;\n  }\n}\n\nexport { applyScopeDataToEvent, applySpanToEvent, getCombinedScopeData, mergeAndOverwriteScopeData, mergeScopeData };\n//# sourceMappingURL=scopeData.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { isThenable } from './is.js';\n\nconst CALLBACK_ERROR = /* @__PURE__ */ Symbol.for(\"SentryCallbackError\");\nfunction safeCallback(message, fn, fallback) {\n  let result;\n  try {\n    result = fn();\n  } catch (error) {\n    return recover(message, error, fallback);\n  }\n  if (isThenable(result)) {\n    return result.then(void 0, (error) => recover(message, error, fallback));\n  }\n  return result;\n}\nfunction recover(message, error, fallback) {\n  DEBUG_BUILD && debug.error(message, error);\n  return fallback(error);\n}\n\nexport { CALLBACK_ERROR, safeCallback };\n//# sourceMappingURL=safeCallback.js.map\n","import { DEBUG_BUILD } from '../../debug-build.js';\nimport { addNonEnumerableProperty } from '../../utils/object.js';\nimport { consoleSandbox } from '../../utils/debug-logger.js';\nimport { safeCallback } from '../../utils/safeCallback.js';\n\nfunction withStaticSpan(callback) {\n  addNonEnumerableProperty(callback, \"_static\", true);\n  return callback;\n}\nfunction withStreamedSpan(callback) {\n  return callback;\n}\nfunction isStaticBeforeSendSpanCallback(callback) {\n  return !!callback && typeof callback === \"function\" && \"_static\" in callback && !!callback._static;\n}\nlet hasShownSpanDropWarning = false;\nfunction applyBeforeSendSpanCallback(span, beforeSendSpan) {\n  const modifiedSpan = safeCallback(\n    DEBUG_BUILD ? \"The `beforeSendSpan` callback threw an error, sending the span unmodified:\" : \"\",\n    () => beforeSendSpan(span),\n    () => span\n  );\n  if (modifiedSpan) {\n    return modifiedSpan;\n  }\n  if (!hasShownSpanDropWarning) {\n    consoleSandbox(() => {\n      console.warn(\n        \"[Sentry] Returning null from `beforeSendSpan` is disallowed. To drop certain spans, configure the respective integrations directly or use `ignoreSpans`.\"\n      );\n    });\n    hasShownSpanDropWarning = true;\n  }\n  return span;\n}\n\nexport { applyBeforeSendSpanCallback, isStaticBeforeSendSpanCallback, withStaticSpan, withStreamedSpan };\n//# sourceMappingURL=beforeSendSpan.js.map\n","import { streamedSpanJsonToSerializedSpan } from '../../utils/spanUtils.js';\n\nfunction spanJsonToSerializedStreamedSpan(span) {\n  const streamedSpan = {\n    trace_id: span.trace_id,\n    span_id: span.span_id,\n    parent_span_id: span.parent_span_id,\n    name: span.description || \"\",\n    start_timestamp: span.start_timestamp,\n    end_timestamp: span.timestamp,\n    status: !span.status || span.status === \"ok\" || span.status === \"cancelled\" ? \"ok\" : \"error\",\n    is_segment: false,\n    attributes: { ...span.data },\n    links: span.links\n  };\n  return streamedSpanJsonToSerializedSpan(streamedSpan);\n}\n\nexport { spanJsonToSerializedStreamedSpan };\n//# sourceMappingURL=spanJsonToStreamedSpan.js.map\n","import { SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS, SEMANTIC_ATTRIBUTE_USER_USERNAME, SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS, SEMANTIC_ATTRIBUTE_USER_EMAIL, SEMANTIC_ATTRIBUTE_USER_ID, SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT, SEMANTIC_ATTRIBUTE_SENTRY_RELEASE } from '../../semanticAttributes.js';\nimport { getCombinedScopeData } from '../../utils/scopeData.js';\nimport { spanToJSON, INTERNAL_getSegmentSpan, streamedSpanJsonToSerializedSpan, spanToStaticSpanJSON } from '../../utils/spanUtils.js';\nimport { getCapturedScopesOnSpan } from '../utils.js';\nimport { isStaticBeforeSendSpanCallback, applyBeforeSendSpanCallback } from './beforeSendSpan.js';\nimport { spanJsonToSerializedStreamedSpan } from './spanJsonToStreamedSpan.js';\nimport { scopeContextsToSpanAttributes } from './scopeContextAttributes.js';\nimport { DEFAULT_ENVIRONMENT } from '../../constants.js';\nimport { SENTRY_SDK_VERSION, SENTRY_SDK_NAME, SENTRY_SEGMENT_ID, SENTRY_SEGMENT_NAME, SENTRY_TRACE_LIFECYCLE } from '@sentry/conventions/attributes';\n\nfunction captureSpan(span, client) {\n  const spanJSON = spanToJSON(span);\n  const segmentSpan = INTERNAL_getSegmentSpan(span);\n  const serializedSegmentSpan = spanToJSON(segmentSpan);\n  const { isolationScope: spanIsolationScope, scope: spanScope } = getCapturedScopesOnSpan(span);\n  const finalScopeData = getCombinedScopeData(spanIsolationScope, spanScope);\n  applyCommonSpanAttributes(spanJSON, serializedSegmentSpan, client, finalScopeData);\n  client.emit(\"preprocessSpan\", spanJSON);\n  if (spanJSON.is_segment) {\n    applyScopeToSegmentSpan(spanJSON, finalScopeData);\n    applySdkMetadataToSegmentSpan(spanJSON, client);\n    client.emit(\"processSegmentSpan\", spanJSON);\n  }\n  client.emit(\"processSpan\", spanJSON);\n  const { beforeSendSpan, traceLifecycle } = client.getOptions();\n  const processedSpan = (\n    // check for traceLifecycle here because in static lifecycle,\n    // captureSpan is called for INP spans. If an unmigrated beforeSendSpan\n    // callback is run on these spans, it will throw an error.\n    traceLifecycle !== \"static\" && beforeSendSpan && !isStaticBeforeSendSpanCallback(beforeSendSpan) ? applyBeforeSendSpanCallback(spanJSON, beforeSendSpan) : spanJSON\n  );\n  return {\n    ...streamedSpanJsonToSerializedSpan(processedSpan),\n    _segmentSpan: segmentSpan\n  };\n}\nfunction applyScopeToSegmentSpan(segmentSpanJSON, scopeData) {\n  const contextAttributes = scopeContextsToSpanAttributes(scopeData.contexts);\n  safeSetSpanJSONAttributes(segmentSpanJSON, contextAttributes);\n}\nfunction safeSetSpanJSONAttributes(spanJSON, newAttributes) {\n  const originalAttributes = spanJSON.attributes ?? (spanJSON.attributes = {});\n  Object.entries(newAttributes).forEach(([key, value]) => {\n    if (value != null && !(key in originalAttributes)) {\n      originalAttributes[key] = value;\n    }\n  });\n}\nfunction applySdkMetadataToSegmentSpan(segmentSpanJSON, client) {\n  const integrationNames = client.getIntegrationNames();\n  if (!integrationNames.length) return;\n  safeSetSpanJSONAttributes(segmentSpanJSON, {\n    [SEMANTIC_ATTRIBUTE_SENTRY_SDK_INTEGRATIONS]: integrationNames\n  });\n}\nfunction commonSpanAttributes(serializedSegmentSpan, client, scopeData, includeScopeAttributes = true) {\n  const sdk = client.getSdkMetadata();\n  const { release, environment } = client.getOptions();\n  return {\n    [SENTRY_TRACE_LIFECYCLE]: \"stream\",\n    [SENTRY_SEGMENT_NAME]: serializedSegmentSpan.name,\n    [SENTRY_SEGMENT_ID]: serializedSegmentSpan.span_id,\n    [SENTRY_SDK_NAME]: sdk?.sdk?.name,\n    [SENTRY_SDK_VERSION]: sdk?.sdk?.version,\n    [SEMANTIC_ATTRIBUTE_SENTRY_RELEASE]: release,\n    [SEMANTIC_ATTRIBUTE_SENTRY_ENVIRONMENT]: environment || DEFAULT_ENVIRONMENT,\n    [SEMANTIC_ATTRIBUTE_USER_ID]: scopeData.user?.id,\n    [SEMANTIC_ATTRIBUTE_USER_EMAIL]: scopeData.user?.email,\n    [SEMANTIC_ATTRIBUTE_USER_IP_ADDRESS]: scopeData.user?.ip_address,\n    [SEMANTIC_ATTRIBUTE_USER_USERNAME]: scopeData.user?.username,\n    ...includeScopeAttributes ? scopeData.attributes : void 0\n  };\n}\nfunction applyCommonSpanAttributes(spanJSON, serializedSegmentSpan, client, scopeData) {\n  safeSetSpanJSONAttributes(spanJSON, commonSpanAttributes(serializedSegmentSpan, client, scopeData));\n}\nfunction captureStandaloneSpanWithStaticCallback(span, client, beforeSendSpan) {\n  const spanJSON = spanToStaticSpanJSON(span);\n  const segmentSpan = INTERNAL_getSegmentSpan(span);\n  const serializedSegmentSpan = spanToJSON(segmentSpan);\n  const { isolationScope: spanIsolationScope, scope: spanScope } = getCapturedScopesOnSpan(span);\n  const finalScopeData = getCombinedScopeData(spanIsolationScope, spanScope);\n  const commonAttributes = commonSpanAttributes(serializedSegmentSpan, client, finalScopeData, false);\n  Object.entries(commonAttributes).forEach(([key, value]) => {\n    if (value != null && !(key in spanJSON.data)) {\n      spanJSON.data[key] = value;\n    }\n  });\n  const processedSpan = applyBeforeSendSpanCallback(spanJSON, beforeSendSpan);\n  return spanJsonToSerializedStreamedSpan(processedSpan);\n}\n\nexport { captureSpan, captureStandaloneSpanWithStaticCallback, safeSetSpanJSONAttributes };\n//# sourceMappingURL=captureSpan.js.map\n","function safeUnref(timer) {\n  if (typeof timer === \"object\" && typeof timer.unref === \"function\") {\n    timer.unref();\n  }\n  return timer;\n}\n\nexport { safeUnref };\n//# sourceMappingURL=timer.js.map\n","import { getSentryCarrier } from '../carrier.js';\nimport { dsnToString } from './dsn.js';\nimport { normalize } from './normalize.js';\nimport { safeDateNow } from './randomSafeContext.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nfunction createEnvelope(headers, items = []) {\n  return [headers, items];\n}\nfunction addItemToEnvelope(envelope, newItem) {\n  const [headers, items] = envelope;\n  return [headers, [...items, newItem]];\n}\nfunction forEachEnvelopeItem(envelope, callback) {\n  const envelopeItems = envelope[1];\n  for (const envelopeItem of envelopeItems) {\n    const envelopeItemType = envelopeItem[0].type;\n    const result = callback(envelopeItem, envelopeItemType);\n    if (result) {\n      return true;\n    }\n  }\n  return false;\n}\nfunction envelopeContainsItemType(envelope, types) {\n  return forEachEnvelopeItem(envelope, (_, type) => types.includes(type));\n}\nfunction encodeUTF8(input) {\n  const carrier = getSentryCarrier(GLOBAL_OBJ);\n  return carrier.encodePolyfill ? carrier.encodePolyfill(input) : new TextEncoder().encode(input);\n}\nfunction decodeUTF8(input) {\n  const carrier = getSentryCarrier(GLOBAL_OBJ);\n  return carrier.decodePolyfill ? carrier.decodePolyfill(input) : new TextDecoder().decode(input);\n}\nfunction serializeEnvelope(envelope) {\n  const [envHeaders, items] = envelope;\n  let parts = JSON.stringify(envHeaders);\n  function append(next) {\n    if (typeof parts === \"string\") {\n      parts = typeof next === \"string\" ? parts + next : [encodeUTF8(parts), next];\n    } else {\n      parts.push(typeof next === \"string\" ? encodeUTF8(next) : next);\n    }\n  }\n  for (const item of items) {\n    const [itemHeaders, payload] = item;\n    append(`\n${JSON.stringify(itemHeaders)}\n`);\n    if (typeof payload === \"string\" || payload instanceof Uint8Array) {\n      append(payload);\n    } else {\n      let stringifiedPayload;\n      try {\n        stringifiedPayload = JSON.stringify(payload);\n      } catch {\n        stringifiedPayload = JSON.stringify(normalize(payload));\n      }\n      append(stringifiedPayload);\n    }\n  }\n  return typeof parts === \"string\" ? parts : concatBuffers(parts);\n}\nfunction concatBuffers(buffers) {\n  const totalLength = buffers.reduce((acc, buf) => acc + buf.length, 0);\n  const merged = new Uint8Array(totalLength);\n  let offset = 0;\n  for (const buffer of buffers) {\n    merged.set(buffer, offset);\n    offset += buffer.length;\n  }\n  return merged;\n}\nfunction parseEnvelope(env) {\n  let buffer = typeof env === \"string\" ? encodeUTF8(env) : env;\n  function readBinary(length) {\n    const bin = buffer.subarray(0, length);\n    buffer = buffer.subarray(length + 1);\n    return bin;\n  }\n  function readJson() {\n    let i = buffer.indexOf(10);\n    if (i < 0) {\n      i = buffer.length;\n    }\n    return JSON.parse(decodeUTF8(readBinary(i)));\n  }\n  const envelopeHeader = readJson();\n  const items = [];\n  while (buffer.length) {\n    const itemHeader = readJson();\n    const binaryLength = typeof itemHeader.length === \"number\" ? itemHeader.length : void 0;\n    items.push([itemHeader, binaryLength ? readBinary(binaryLength) : readJson()]);\n  }\n  return [envelopeHeader, items];\n}\nfunction createAttachmentEnvelopeItem(attachment) {\n  const buffer = typeof attachment.data === \"string\" ? encodeUTF8(attachment.data) : attachment.data;\n  return [\n    {\n      type: \"attachment\",\n      length: buffer.length,\n      filename: attachment.filename,\n      content_type: attachment.contentType,\n      attachment_type: attachment.attachmentType\n    },\n    buffer\n  ];\n}\nconst DATA_CATEGORY_OVERRIDES = {\n  sessions: \"session\",\n  event: \"error\",\n  client_report: \"internal\",\n  user_report: \"default\",\n  profile_chunk: \"profile\",\n  replay_event: \"replay\",\n  replay_recording: \"replay\",\n  check_in: \"monitor\",\n  raw_security: \"security\",\n  log: \"log_item\",\n  trace_metric: \"metric\"\n};\nfunction _isOverriddenType(type) {\n  return type in DATA_CATEGORY_OVERRIDES;\n}\nfunction envelopeItemTypeToDataCategory(type) {\n  return _isOverriddenType(type) ? DATA_CATEGORY_OVERRIDES[type] : type;\n}\nfunction getSdkMetadataForEnvelopeHeader(metadataOrEvent) {\n  if (!metadataOrEvent?.sdk) {\n    return;\n  }\n  const { name, version } = metadataOrEvent.sdk;\n  return { name, version };\n}\nfunction createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn) {\n  const dynamicSamplingContext = event.sdkProcessingMetadata?.dynamicSamplingContext;\n  return {\n    event_id: event.event_id,\n    sent_at: new Date(safeDateNow()).toISOString(),\n    ...sdkInfo && { sdk: sdkInfo },\n    ...!!tunnel && dsn && { dsn: dsnToString(dsn) },\n    ...dynamicSamplingContext && {\n      trace: dynamicSamplingContext\n    }\n  };\n}\nfunction getDataCategoryByType(type) {\n  return type === \"replay_event\" ? \"replay\" : type || \"error\";\n}\n\nexport { addItemToEnvelope, createAttachmentEnvelopeItem, createEnvelope, createEventEnvelopeHeaders, envelopeContainsItemType, envelopeItemTypeToDataCategory, forEachEnvelopeItem, getDataCategoryByType, getSdkMetadataForEnvelopeHeader, parseEnvelope, serializeEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { isNodeEnv } from './node.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nfunction isBrowser() {\n  return typeof window !== \"undefined\" && (!isNodeEnv() || isElectronNodeRenderer());\n}\nfunction isElectronNodeRenderer() {\n  const process = GLOBAL_OBJ.process;\n  return process?.type === \"renderer\";\n}\n\nexport { isBrowser };\n//# sourceMappingURL=isBrowser.js.map\n","import { getTraceContextFromScope } from '../currentScopes.js';\nimport { isPrimitive } from './is.js';\nimport { spanIsSampled, spanToTraceContext } from './spanUtils.js';\n\nconst escapedSpanTraceContexts = /* @__PURE__ */ new WeakMap();\nfunction toWeakMapKey(error) {\n  return isPrimitive(error) ? void 0 : error;\n}\nfunction recordEscapedErrorSpan(error, span) {\n  const key = toWeakMapKey(error);\n  if (!key || !spanIsSampled(span) || escapedSpanTraceContexts.has(key)) {\n    return;\n  }\n  escapedSpanTraceContexts.set(key, spanToTraceContext(span));\n}\nfunction applyEscapedErrorSpanToEvent(event, hint, scope) {\n  const key = toWeakMapKey(hint.originalException);\n  const traceContext = key && escapedSpanTraceContexts.get(key);\n  if (!traceContext) {\n    return;\n  }\n  const eventTraceContext = event.contexts?.trace;\n  const eventTraceId = eventTraceContext?.trace_id ?? (scope && getTraceContextFromScope(scope).trace_id);\n  if (eventTraceId !== traceContext.trace_id) {\n    return;\n  }\n  event.contexts = {\n    ...event.contexts,\n    trace: {\n      ...eventTraceContext,\n      ...traceContext\n    }\n  };\n}\n\nexport { applyEscapedErrorSpanToEvent, recordEscapedErrorSpan };\n//# sourceMappingURL=errorSpanAttribution.js.map\n","import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getClient, withScope, getCurrentScope, getIsolationScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { SENTRY_SEGMENT_NAME_SOURCE } from '@sentry/conventions/attributes';\nimport { SEMANTIC_ATTRIBUTE_SENTRY_OP, SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE } from '../semanticAttributes.js';\nimport { baggageHeaderToDynamicSamplingContext } from '../utils/baggage.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { handleCallbackErrors } from '../utils/handleCallbackErrors.js';\nimport { recordEscapedErrorSpan } from '../utils/errorSpanAttribution.js';\nimport { hasSpansEnabled } from '../utils/hasSpansEnabled.js';\nimport { shouldIgnoreSpan } from '../utils/should-ignore-span.js';\nimport { hasSpanStreamingEnabled } from './spans/hasSpanStreamingEnabled.js';\nimport { parseSampleRate } from '../utils/parseSampleRate.js';\nimport { generateTraceId } from '../utils/propagationContext.js';\nimport { safeMathRandom } from '../utils/randomSafeContext.js';\nimport { _setSpanForScope } from '../utils/spanOnScope.js';\nimport { spanTimeInputToSeconds, addChildSpanToSpan, spanIsSampled, getActiveSpan, getRootSpan, spanToStaticSpanJSON } from '../utils/spanUtils.js';\nimport { shouldContinueTrace, propagationContextFromHeaders } from '../utils/tracing.js';\nimport { getDynamicSamplingContextFromSpan, freezeDscOnSpan } from './dynamicSamplingContext.js';\nimport { logSpanStart } from './logSpans.js';\nimport { sampleSpan } from './sampling.js';\nimport { spanIsNonRecordingSpan, SentryNonRecordingSpan } from './sentryNonRecordingSpan.js';\nimport { SentrySpan } from './sentrySpan.js';\nimport { SPAN_STATUS_ERROR } from './spanstatus.js';\nimport { setCapturedScopesOnSpan, getCapturedScopesOnSpan } from './utils.js';\nimport { SUPPRESS_TRACING_KEY } from './constants.js';\n\nfunction startSpan(options, callback) {\n  const spanArguments = parseSentrySpanArguments(options);\n  const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n  const customForkedScope = customScope?.clone();\n  return withScope(customForkedScope, () => {\n    const wrapper = getActiveSpanWrapper(customParentSpan);\n    return wrapper(() => {\n      const scope = getCurrentScope();\n      const parentSpan = getParentSpan(customScope ?? scope, customParentSpan);\n      const client = getClient();\n      const missingRequiredParent = options.onlyIfParent && !parentSpan;\n      const activeSpan = missingRequiredParent ? startMissingRequiredParentSpan(scope, client) : createChildOrRootSpan({\n        parentSpan,\n        spanArguments,\n        forceTransaction,\n        scope\n      });\n      const makeSpanActive = !spanIsIgnored(activeSpan) || !parentSpan;\n      return runCallback(\n        activeSpan,\n        makeSpanActive,\n        () => callback(activeSpan),\n        () => activeSpan.end()\n      );\n    });\n  });\n}\nfunction startSpanManual(options, callback) {\n  const spanArguments = parseSentrySpanArguments(options);\n  const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n  const customForkedScope = customScope?.clone();\n  return withScope(customForkedScope, () => {\n    const wrapper = getActiveSpanWrapper(customParentSpan);\n    return wrapper(() => {\n      const scope = getCurrentScope();\n      const parentSpan = getParentSpan(customScope ?? scope, customParentSpan);\n      const missingRequiredParent = options.onlyIfParent && !parentSpan;\n      const activeSpan = missingRequiredParent ? startMissingRequiredParentSpan(scope, getClient()) : createChildOrRootSpan({\n        parentSpan,\n        spanArguments,\n        forceTransaction,\n        scope\n      });\n      const makeSpanActive = !spanIsIgnored(activeSpan) || !parentSpan;\n      return runCallback(activeSpan, makeSpanActive, () => callback(activeSpan, () => activeSpan.end()));\n    });\n  });\n}\nfunction startInactiveSpan(options) {\n  const spanArguments = parseSentrySpanArguments(options);\n  const { forceTransaction, parentSpan: customParentSpan, scope: customScope } = options;\n  const wrapper = customScope ? (callback) => withScope(customScope, callback) : customParentSpan !== void 0 ? (callback) => withActiveSpan(customParentSpan, callback) : (callback) => callback();\n  return wrapper(() => {\n    const scope = getCurrentScope();\n    const parentSpan = getParentSpan(customScope ?? scope, customParentSpan);\n    const client = getClient();\n    const missingRequiredParent = options.onlyIfParent && !parentSpan;\n    if (missingRequiredParent) {\n      return startMissingRequiredParentSpan(scope, client);\n    }\n    return createChildOrRootSpan({\n      parentSpan,\n      spanArguments,\n      forceTransaction,\n      scope\n    });\n  });\n}\nconst continueTrace = (options, callback) => {\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (acs.continueTrace) {\n    return acs.continueTrace(options, callback);\n  }\n  const { sentryTrace, baggage } = options;\n  const client = getClient();\n  const incomingDsc = baggageHeaderToDynamicSamplingContext(baggage);\n  if (client && !shouldContinueTrace(client, incomingDsc?.org_id)) {\n    return startNewTrace(callback);\n  }\n  return withScope((scope) => {\n    const propagationContext = propagationContextFromHeaders(sentryTrace, baggage);\n    scope.setPropagationContext(propagationContext);\n    return withActiveSpan(null, callback);\n  });\n};\nfunction withActiveSpan(span, callback) {\n  const acs = getAcs();\n  if (acs.withActiveSpan) {\n    return acs.withActiveSpan(span, callback);\n  }\n  return withScope((scope) => {\n    _setSpanForScope(scope, span || void 0);\n    return callback(scope);\n  });\n}\nfunction suppressTracing(callback) {\n  const acs = getAcs();\n  if (acs.suppressTracing) {\n    return acs.suppressTracing(callback);\n  }\n  return withScope((scope) => {\n    scope.setSDKProcessingMetadata({ [SUPPRESS_TRACING_KEY]: true });\n    return callback();\n  });\n}\nfunction isTracingSuppressed(scope = getCurrentScope()) {\n  const acs = getAcs();\n  if (acs.isTracingSuppressed) {\n    return acs.isTracingSuppressed(scope);\n  }\n  return scope.getScopeData().sdkProcessingMetadata[SUPPRESS_TRACING_KEY] === true;\n}\nfunction startNewTrace(callback) {\n  const acs = getAcs();\n  if (acs.startNewTrace) {\n    return acs.startNewTrace(callback);\n  }\n  return withActiveSpan(null, () => {\n    return withScope((scope) => {\n      scope.setPropagationContext({\n        traceId: generateTraceId(),\n        sampleRand: safeMathRandom()\n      });\n      DEBUG_BUILD && debug.log(`Starting a new trace with id ${scope.getPropagationContext().traceId}`);\n      return callback();\n    });\n  });\n}\nfunction startMissingRequiredParentSpan(scope, client) {\n  client?.recordDroppedEvent(\"no_parent_span\", \"span\");\n  const span = new SentryNonRecordingSpan({ traceId: scope.getPropagationContext().traceId });\n  setCapturedScopesOnSpan(span, scope, getIsolationScope());\n  return span;\n}\nfunction createChildOrRootSpan({\n  parentSpan: resolvedParentSpan,\n  spanArguments,\n  forceTransaction,\n  scope: currentScope\n}) {\n  const isolationScope = getIsolationScope();\n  const spanScope = {\n    scope: currentScope,\n    parentSpan: resolvedParentSpan\n  };\n  getClient()?.emit(\"prepareSpanScope\", spanScope);\n  const { scope, parentSpan } = spanScope;\n  if (!hasSpansEnabled()) {\n    const scopePropagationContext = scope.getPropagationContext();\n    const traceId = parentSpan ? parentSpan.spanContext().traceId : scopePropagationContext.traceId;\n    const span2 = new SentryNonRecordingSpan({ traceId });\n    if (parentSpan && !forceTransaction) {\n      addChildSpanToSpan(parentSpan, span2);\n    }\n    setCapturedScopesOnSpan(span2, scope, isolationScope);\n    return span2;\n  }\n  const client = getClient();\n  if (_shouldIgnoreStreamedSpan(client, spanArguments)) {\n    if (!isTracingSuppressed(scope)) {\n      client?.recordDroppedEvent(\"ignored\", \"span\");\n    }\n    const ignoredSpan = new SentryNonRecordingSpan({\n      dropReason: \"ignored\",\n      traceId: parentSpan?.spanContext().traceId ?? scope.getPropagationContext().traceId\n    });\n    if (parentSpan && !forceTransaction) {\n      addChildSpanToSpan(parentSpan, ignoredSpan);\n    }\n    setCapturedScopesOnSpan(ignoredSpan, scope, isolationScope);\n    return ignoredSpan;\n  }\n  let span;\n  if (parentSpan && !forceTransaction) {\n    span = _startChildSpan(parentSpan, scope, spanArguments, isolationScope);\n    addChildSpanToSpan(parentSpan, span);\n  } else if (parentSpan) {\n    const dsc = getDynamicSamplingContextFromSpan(parentSpan);\n    const { traceId, spanId: parentSpanId } = parentSpan.spanContext();\n    const parentSampled = spanIsSampled(parentSpan);\n    span = _startRootSpan(\n      {\n        traceId,\n        parentSpanId,\n        ...spanArguments\n      },\n      scope,\n      isolationScope,\n      parentSampled\n    );\n    freezeDscOnSpan(span, dsc);\n  } else {\n    const { traceId, dsc, parentSpanId, sampled: parentSampled, sampleRand } = scope.getPropagationContext();\n    span = _startRootSpan(\n      {\n        traceId,\n        parentSpanId,\n        ...spanArguments\n      },\n      scope,\n      isolationScope,\n      parentSampled\n    );\n    if (dsc) {\n      const dscWithSampleRand = Object.keys(dsc).length === 0 && sampleRand !== void 0 ? { sample_rand: sampleRand.toString() } : dsc;\n      freezeDscOnSpan(span, dscWithSampleRand);\n    }\n  }\n  logSpanStart(span);\n  return span;\n}\nfunction parseSentrySpanArguments(options) {\n  const initialCtx = {\n    // TODO(standalone): remove once the static (transaction) trace lifecycle is dropped.\n    // oxlint-disable-next-line typescript/no-deprecated\n    isStandalone: options.experimental?.standalone,\n    ...options\n  };\n  if (options.op) {\n    initialCtx.attributes = {\n      [SEMANTIC_ATTRIBUTE_SENTRY_OP]: options.op,\n      ...options.attributes\n    };\n  }\n  if (options.startTime) {\n    const ctx = { ...initialCtx };\n    ctx.startTimestamp = spanTimeInputToSeconds(options.startTime);\n    delete ctx.startTime;\n    return ctx;\n  }\n  return initialCtx;\n}\nfunction getAcs() {\n  const carrier = getMainCarrier();\n  return getAsyncContextStrategy(carrier);\n}\nfunction _startRootSpan(spanArguments, scope, isolationScope, parentSampled) {\n  const client = getClient();\n  const options = client?.getOptions() || {};\n  const { name = \"\" } = spanArguments;\n  const mutableSpanSamplingData = { spanAttributes: { ...spanArguments.attributes }, spanName: name, parentSampled };\n  client?.emit(\"beforeSampling\", mutableSpanSamplingData, { decision: false });\n  const finalParentSampled = mutableSpanSamplingData.parentSampled ?? parentSampled;\n  const finalAttributes = mutableSpanSamplingData.spanAttributes;\n  const currentPropagationContext = scope.getPropagationContext();\n  const _isTracingSuppressed = isTracingSuppressed(scope);\n  const [sampled, sampleRate, localSampleRateWasApplied, dropReason] = _isTracingSuppressed ? [false] : sampleSpan(\n    options,\n    {\n      name,\n      parentSampled: finalParentSampled,\n      attributes: finalAttributes,\n      normalizedRequest: isolationScope.getScopeData().sdkProcessingMetadata.normalizedRequest,\n      parentSampleRate: parseSampleRate(currentPropagationContext.dsc?.sample_rate)\n    },\n    currentPropagationContext.sampleRand\n  );\n  const rootSpan = new SentrySpan({\n    ...spanArguments,\n    attributes: {\n      [SENTRY_SEGMENT_NAME_SOURCE]: \"custom\",\n      [SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE]: sampleRate !== void 0 && localSampleRateWasApplied ? sampleRate : void 0,\n      ...finalAttributes\n    },\n    sampled\n  });\n  if (!sampled && client && !_isTracingSuppressed) {\n    DEBUG_BUILD && debug.log(\"[Tracing] Discarding root span because its trace was not chosen to be sampled.\");\n    client.recordDroppedEvent(dropReason || \"sample_rate\", hasSpanStreamingEnabled(client) ? \"span\" : \"transaction\");\n  }\n  setCapturedScopesOnSpan(rootSpan, scope, isolationScope);\n  if (client) {\n    client.emit(\"spanStart\", rootSpan);\n  }\n  return rootSpan;\n}\nfunction _startChildSpan(parentSpan, scope, spanArguments, isolationScope) {\n  const { spanId, traceId } = parentSpan.spanContext();\n  const _isTracingSuppressed = isTracingSuppressed(scope);\n  const sampled = _isTracingSuppressed ? false : spanIsSampled(parentSpan);\n  const childSpan = sampled ? new SentrySpan({\n    ...spanArguments,\n    parentSpanId: spanId,\n    traceId,\n    sampled\n  }) : new SentryNonRecordingSpan({ traceId });\n  addChildSpanToSpan(parentSpan, childSpan);\n  setCapturedScopesOnSpan(childSpan, scope, isolationScope);\n  const client = getClient();\n  if (!client) {\n    return childSpan;\n  }\n  if (hasSpanStreamingEnabled(client) && spanIsNonRecordingSpan(childSpan)) {\n    if (spanIsNonRecordingSpan(parentSpan) && parentSpan.dropReason) {\n      childSpan.dropReason = parentSpan.dropReason;\n      client.recordDroppedEvent(parentSpan.dropReason, \"span\");\n    } else if (!_isTracingSuppressed) {\n      childSpan.dropReason = \"sample_rate\";\n      client.recordDroppedEvent(\"sample_rate\", \"span\");\n    }\n  }\n  client.emit(\"spanStart\", childSpan);\n  return childSpan;\n}\nfunction getParentSpan(scope, customParentSpan) {\n  if (customParentSpan) {\n    return customParentSpan;\n  }\n  if (customParentSpan === null) {\n    return void 0;\n  }\n  const span = getActiveSpan(scope);\n  if (!span) {\n    return void 0;\n  }\n  const client = getClient();\n  const options = client ? client.getOptions() : {};\n  if (options.parentSpanIsAlwaysRootSpan) {\n    return getRootSpan(span);\n  }\n  return span;\n}\nfunction getActiveSpanWrapper(parentSpan) {\n  return parentSpan !== void 0 ? (callback) => {\n    return withActiveSpan(parentSpan, callback);\n  } : (callback) => callback();\n}\nfunction _shouldIgnoreStreamedSpan(client, spanArguments) {\n  const ignoreSpans = client?.getOptions().ignoreSpans;\n  if (!client || !hasSpanStreamingEnabled(client) || !ignoreSpans?.length) {\n    return false;\n  }\n  return shouldIgnoreSpan(\n    {\n      description: spanArguments.name || \"\",\n      op: spanArguments.attributes?.[SEMANTIC_ATTRIBUTE_SENTRY_OP] || spanArguments.op,\n      attributes: spanArguments.attributes\n    },\n    ignoreSpans\n  );\n}\nfunction spanIsIgnored(span) {\n  return spanIsNonRecordingSpan(span) && span.dropReason === \"ignored\";\n}\nfunction runCallback(span, makeSpanActive, callback, finallyCallback) {\n  const wrapper = makeSpanActive ? (callback2) => {\n    return withActiveSpan(span, () => {\n      const scope = getCurrentScope();\n      const creationScope = getCapturedScopesOnSpan(span).scope;\n      if (creationScope) {\n        scope.setPropagationContext(creationScope.getPropagationContext());\n      }\n      setCapturedScopesOnSpan(span, scope, getIsolationScope());\n      return callback2();\n    });\n  } : (callback2) => callback2();\n  return wrapper(\n    () => handleCallbackErrors(\n      () => callback(),\n      (error) => {\n        recordEscapedErrorSpan(error, span);\n        const { status } = spanToStaticSpanJSON(span);\n        if (span.isRecording() && status === \"ok\") {\n          span.setStatus({ code: SPAN_STATUS_ERROR, message: \"internal_error\" });\n        }\n      },\n      finallyCallback\n    )\n  );\n}\n\nexport { continueTrace, isTracingSuppressed, spanIsIgnored, startInactiveSpan, startNewTrace, startSpan, startSpanManual, suppressTracing, withActiveSpan };\n//# sourceMappingURL=trace.js.map\n","import { dsnToString } from './utils/dsn.js';\nimport { getSdkMetadataForEnvelopeHeader, createEventEnvelopeHeaders, createEnvelope } from './utils/envelope.js';\nimport { safeDateNow } from './utils/randomSafeContext.js';\n\nfunction _enhanceEventWithSdkInfo(event, newSdkInfo) {\n  if (!newSdkInfo) {\n    return event;\n  }\n  const eventSdkInfo = event.sdk || {};\n  event.sdk = {\n    ...eventSdkInfo,\n    name: eventSdkInfo.name || newSdkInfo.name,\n    version: eventSdkInfo.version || newSdkInfo.version,\n    integrations: [...event.sdk?.integrations || [], ...newSdkInfo.integrations || []],\n    packages: [...event.sdk?.packages || [], ...newSdkInfo.packages || []],\n    settings: event.sdk?.settings || newSdkInfo.settings ? {\n      ...event.sdk?.settings,\n      ...newSdkInfo.settings\n    } : void 0\n  };\n  return event;\n}\nfunction createSessionEnvelope(session, dsn, metadata, tunnel) {\n  const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n  const envelopeHeaders = {\n    sent_at: new Date(safeDateNow()).toISOString(),\n    ...sdkInfo && { sdk: sdkInfo },\n    ...!!tunnel && dsn && { dsn: dsnToString(dsn) }\n  };\n  const envelopeItem = \"aggregates\" in session ? [{ type: \"sessions\" }, session] : [{ type: \"session\" }, session.toJSON()];\n  return createEnvelope(envelopeHeaders, [envelopeItem]);\n}\nfunction createEventEnvelope(event, dsn, metadata, tunnel) {\n  const sdkInfo = getSdkMetadataForEnvelopeHeader(metadata);\n  const eventType = event.type && event.type !== \"replay_event\" ? event.type : \"event\";\n  _enhanceEventWithSdkInfo(event, metadata?.sdk);\n  const envelopeHeaders = createEventEnvelopeHeaders(event, sdkInfo, tunnel, dsn);\n  delete event.sdkProcessingMetadata;\n  const eventItem = [{ type: eventType }, event];\n  return createEnvelope(envelopeHeaders, [eventItem]);\n}\n\nexport { _enhanceEventWithSdkInfo, createEventEnvelope, createSessionEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { isThenable } from './is.js';\n\nconst STATE_PENDING = 0;\nconst STATE_RESOLVED = 1;\nconst STATE_REJECTED = 2;\nfunction resolvedSyncPromise(value) {\n  return new SyncPromise((resolve) => {\n    resolve(value);\n  });\n}\nfunction rejectedSyncPromise(reason) {\n  return new SyncPromise((_, reject) => {\n    reject(reason);\n  });\n}\nclass SyncPromise {\n  constructor(executor) {\n    this._state = STATE_PENDING;\n    this._handlers = [];\n    this._runExecutor(executor);\n  }\n  /** @inheritdoc */\n  then(onfulfilled, onrejected) {\n    return new SyncPromise((resolve, reject) => {\n      this._handlers.push([\n        false,\n        (result) => {\n          if (!onfulfilled) {\n            resolve(result);\n          } else {\n            try {\n              resolve(onfulfilled(result));\n            } catch (e) {\n              reject(e);\n            }\n          }\n        },\n        (reason) => {\n          if (!onrejected) {\n            reject(reason);\n          } else {\n            try {\n              resolve(onrejected(reason));\n            } catch (e) {\n              reject(e);\n            }\n          }\n        }\n      ]);\n      this._executeHandlers();\n    });\n  }\n  /** @inheritdoc */\n  catch(onrejected) {\n    return this.then((val) => val, onrejected);\n  }\n  /** @inheritdoc */\n  finally(onfinally) {\n    return new SyncPromise((resolve, reject) => {\n      let val;\n      let isRejected;\n      return this.then(\n        (value) => {\n          isRejected = false;\n          val = value;\n          if (onfinally) {\n            onfinally();\n          }\n        },\n        (reason) => {\n          isRejected = true;\n          val = reason;\n          if (onfinally) {\n            onfinally();\n          }\n        }\n      ).then(() => {\n        if (isRejected) {\n          reject(val);\n          return;\n        }\n        resolve(val);\n      });\n    });\n  }\n  /** Excute the resolve/reject handlers. */\n  _executeHandlers() {\n    if (this._state === STATE_PENDING) {\n      return;\n    }\n    const cachedHandlers = this._handlers.slice();\n    this._handlers = [];\n    cachedHandlers.forEach((handler) => {\n      if (handler[0]) {\n        return;\n      }\n      if (this._state === STATE_RESOLVED) {\n        handler[1](this._value);\n      }\n      if (this._state === STATE_REJECTED) {\n        handler[2](this._value);\n      }\n      handler[0] = true;\n    });\n  }\n  /** Run the executor for the SyncPromise. */\n  _runExecutor(executor) {\n    const setResult = (state, value) => {\n      if (this._state !== STATE_PENDING) {\n        return;\n      }\n      if (isThenable(value)) {\n        void value.then(resolve, reject);\n        return;\n      }\n      this._state = state;\n      this._value = value;\n      this._executeHandlers();\n    };\n    const resolve = (value) => {\n      setResult(STATE_RESOLVED, value);\n    };\n    const reject = (reason) => {\n      setResult(STATE_REJECTED, reason);\n    };\n    try {\n      executor(resolve, reject);\n    } catch (e) {\n      reject(e);\n    }\n  }\n}\n\nexport { SyncPromise, rejectedSyncPromise, resolvedSyncPromise };\n//# sourceMappingURL=syncpromise.js.map\n","import { DEBUG_BUILD } from './debug-build.js';\nimport { debug } from './utils/debug-logger.js';\nimport { isThenable } from './utils/is.js';\nimport { safeCallback } from './utils/safeCallback.js';\nimport { resolvedSyncPromise, rejectedSyncPromise } from './utils/syncpromise.js';\n\nfunction notifyEventProcessors(processors, event, hint, index = 0, onDrop) {\n  try {\n    const result = _notifyEventProcessors(event, hint, processors, index, onDrop);\n    return isThenable(result) ? result : resolvedSyncPromise(result);\n  } catch (error) {\n    return rejectedSyncPromise(error);\n  }\n}\nfunction _notifyEventProcessors(event, hint, processors, index, onDrop) {\n  const processor = processors[index];\n  if (!event || !processor) {\n    return event;\n  }\n  const processorName = `Event processor \"${processor.id || \"?\"}\"`;\n  let callbackError = false;\n  const result = safeCallback(\n    DEBUG_BUILD ? `${processorName} threw an error, dropping event:` : \"\",\n    () => processor({ ...event }, hint),\n    () => {\n      callbackError = true;\n      return null;\n    }\n  );\n  DEBUG_BUILD && result === null && debug.log(`${processorName} dropped event`);\n  if (isThenable(result)) {\n    return result.then((final) => {\n      if (!final) {\n        onDrop?.(callbackError ? \"callback_error\" : \"event_processor\");\n        return null;\n      }\n      return _notifyEventProcessors(final, hint, processors, index + 1, onDrop);\n    });\n  }\n  if (!result) {\n    onDrop?.(callbackError ? \"callback_error\" : \"event_processor\");\n    return null;\n  }\n  return _notifyEventProcessors(result, hint, processors, index + 1, onDrop);\n}\n\nexport { notifyEventProcessors };\n//# sourceMappingURL=eventProcessors.js.map\n","import { normalizeStackTracePath } from './stacktrace.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nlet parsedStackResults;\nlet lastSentryKeysCount;\nlet lastNativeKeysCount;\nlet cachedFilenameDebugIds;\nfunction getFilenameToDebugIdMap(stackParser) {\n  const sentryDebugIdMap = GLOBAL_OBJ._sentryDebugIds;\n  const nativeDebugIdMap = GLOBAL_OBJ._debugIds;\n  if (!sentryDebugIdMap && !nativeDebugIdMap) {\n    return {};\n  }\n  const sentryDebugIdKeys = sentryDebugIdMap ? Object.keys(sentryDebugIdMap) : [];\n  const nativeDebugIdKeys = nativeDebugIdMap ? Object.keys(nativeDebugIdMap) : [];\n  if (cachedFilenameDebugIds && sentryDebugIdKeys.length === lastSentryKeysCount && nativeDebugIdKeys.length === lastNativeKeysCount) {\n    return cachedFilenameDebugIds;\n  }\n  lastSentryKeysCount = sentryDebugIdKeys.length;\n  lastNativeKeysCount = nativeDebugIdKeys.length;\n  cachedFilenameDebugIds = {};\n  if (!parsedStackResults) {\n    parsedStackResults = {};\n  }\n  const processDebugIds = (debugIdKeys, debugIdMap) => {\n    for (const key of debugIdKeys) {\n      const debugId = debugIdMap[key];\n      const result = parsedStackResults?.[key];\n      if (result && cachedFilenameDebugIds && debugId) {\n        cachedFilenameDebugIds[result[0]] = debugId;\n        if (parsedStackResults) {\n          parsedStackResults[key] = [result[0], debugId];\n        }\n      } else if (debugId) {\n        const parsedStack = stackParser(key);\n        for (let i = parsedStack.length - 1; i >= 0; i--) {\n          const stackFrame = parsedStack[i];\n          const filename = stackFrame?.filename;\n          if (filename && cachedFilenameDebugIds && parsedStackResults) {\n            cachedFilenameDebugIds[filename] = debugId;\n            parsedStackResults[key] = [filename, debugId];\n            break;\n          }\n        }\n      }\n    }\n  };\n  if (sentryDebugIdMap) {\n    processDebugIds(sentryDebugIdKeys, sentryDebugIdMap);\n  }\n  if (nativeDebugIdMap) {\n    processDebugIds(nativeDebugIdKeys, nativeDebugIdMap);\n  }\n  return cachedFilenameDebugIds;\n}\nfunction getDebugImagesForResources(stackParser, resource_paths) {\n  const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n  if (!filenameDebugIdMap) {\n    return [];\n  }\n  const images = [];\n  for (const path of resource_paths) {\n    const normalizedPath = normalizeStackTracePath(path);\n    if (normalizedPath && filenameDebugIdMap[normalizedPath]) {\n      images.push({\n        type: \"sourcemap\",\n        code_file: path,\n        debug_id: filenameDebugIdMap[normalizedPath]\n      });\n    }\n  }\n  return images;\n}\n\nexport { getDebugImagesForResources, getFilenameToDebugIdMap };\n//# sourceMappingURL=debug-ids.js.map\n","import { DEFAULT_ENVIRONMENT } from '../constants.js';\nimport { notifyEventProcessors } from '../eventProcessors.js';\nimport { Scope } from '../scope.js';\nimport { getFilenameToDebugIdMap } from './debug-ids.js';\nimport { getDataCategoryByType } from './envelope.js';\nimport { applyEscapedErrorSpanToEvent } from './errorSpanAttribution.js';\nimport { uuid4, addExceptionMechanismToCapturedException } from './misc.js';\nimport { normalize } from './normalize.js';\nimport { getCombinedScopeData, applyScopeDataToEvent, applySpanToEvent } from './scopeData.js';\nimport { getActiveSpan } from './spanUtils.js';\nimport { truncate } from './string.js';\nimport { resolvedSyncPromise } from './syncpromise.js';\nimport { dateTimestampInSeconds } from './time.js';\n\nfunction prepareEvent(options, event, hint, scope, client, isolationScope) {\n  const { normalizeDepth = 3, normalizeMaxBreadth = 1e3 } = options;\n  const prepared = {\n    ...event,\n    event_id: event.event_id || hint.event_id || uuid4(),\n    timestamp: event.timestamp || dateTimestampInSeconds()\n  };\n  const integrations = hint.integrations || options.integrations.map((i) => i.name);\n  applyClientOptions(prepared, options);\n  applyIntegrationsMetadata(prepared, integrations);\n  if (client) {\n    client.emit(\"applyFrameMetadata\", event);\n  }\n  if (event.type === void 0) {\n    applyDebugIds(prepared, options.stackParser);\n  }\n  const finalScope = getFinalScope(scope, hint.captureContext);\n  if (hint.mechanism) {\n    addExceptionMechanismToCapturedException(prepared, hint.mechanism);\n  }\n  const clientEventProcessors = client ? client.getEventProcessors() : [];\n  const data = getCombinedScopeData(isolationScope, finalScope);\n  const attachments = [...hint.attachments || [], ...data.attachments];\n  if (attachments.length) {\n    hint.attachments = attachments;\n  }\n  applyScopeDataToEvent(prepared, data);\n  const span = getActiveSpan(finalScope);\n  if (span) {\n    applySpanToEvent(prepared, span);\n  }\n  applyEscapedErrorSpanToEvent(prepared, hint, finalScope);\n  const eventProcessors = [\n    ...clientEventProcessors,\n    // Run scope event processors _after_ all other processors\n    ...data.eventProcessors\n  ];\n  const isInternalException = hint.data && hint.data.__sentry__ === true;\n  const result = isInternalException ? resolvedSyncPromise(prepared) : notifyEventProcessors(eventProcessors, prepared, hint, 0, (reason) => {\n    if (!client) {\n      return;\n    }\n    client.recordDroppedEvent(reason, getDataCategoryByType(event.type));\n    if (event.type === \"transaction\") {\n      client.recordDroppedEvent(reason, \"span\", 1 + (event.spans || []).length);\n    }\n  });\n  return result.then((evt) => {\n    if (!evt) {\n      return null;\n    }\n    applyDebugMeta(evt);\n    if (typeof normalizeDepth === \"number\" && normalizeDepth > 0) {\n      return normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n    }\n    return evt;\n  });\n}\nfunction applyClientOptions(event, options) {\n  const { environment, release, dist, maxValueLength } = options;\n  event.environment = event.environment || environment || DEFAULT_ENVIRONMENT;\n  if (!event.release && release) {\n    event.release = release;\n  }\n  if (!event.dist && dist) {\n    event.dist = dist;\n  }\n  const request = event.request;\n  if (request?.url && maxValueLength) {\n    request.url = truncate(request.url, maxValueLength);\n  }\n  if (maxValueLength) {\n    event.exception?.values?.forEach((exception) => {\n      if (exception.value) {\n        exception.value = truncate(exception.value, maxValueLength);\n      }\n    });\n  }\n}\nfunction applyDebugIds(event, stackParser) {\n  const filenameDebugIdMap = getFilenameToDebugIdMap(stackParser);\n  event.exception?.values?.forEach((exception) => {\n    exception.stacktrace?.frames?.forEach((frame) => {\n      if (frame.filename) {\n        frame.debug_id = filenameDebugIdMap[frame.filename];\n      }\n    });\n  });\n}\nfunction applyDebugMeta(event) {\n  const filenameDebugIdMap = {};\n  event.exception?.values?.forEach((exception) => {\n    exception.stacktrace?.frames?.forEach((frame) => {\n      if (frame.debug_id) {\n        if (frame.abs_path) {\n          filenameDebugIdMap[frame.abs_path] = frame.debug_id;\n        } else if (frame.filename) {\n          filenameDebugIdMap[frame.filename] = frame.debug_id;\n        }\n        delete frame.debug_id;\n      }\n    });\n  });\n  if (Object.keys(filenameDebugIdMap).length === 0) {\n    return;\n  }\n  event.debug_meta = event.debug_meta || {};\n  event.debug_meta.images = event.debug_meta.images || [];\n  const images = event.debug_meta.images;\n  Object.entries(filenameDebugIdMap).forEach(([filename, debug_id]) => {\n    images.push({\n      type: \"sourcemap\",\n      code_file: filename,\n      debug_id\n    });\n  });\n}\nfunction applyIntegrationsMetadata(event, integrationNames) {\n  if (integrationNames.length > 0) {\n    event.sdk = event.sdk || {};\n    event.sdk.integrations = [...event.sdk.integrations || [], ...integrationNames];\n  }\n}\nfunction normalizeEvent(event, depth, maxBreadth) {\n  if (!event) {\n    return null;\n  }\n  const normalized = {\n    ...event,\n    ...event.breadcrumbs && {\n      breadcrumbs: event.breadcrumbs.map((b) => ({\n        ...b,\n        ...b.data && {\n          data: normalize(b.data, depth, maxBreadth)\n        }\n      }))\n    },\n    ...event.user && {\n      user: normalize(event.user, depth, maxBreadth)\n    },\n    ...event.contexts && {\n      contexts: normalize(event.contexts, depth, maxBreadth)\n    },\n    ...event.extra && {\n      extra: normalize(event.extra, depth, maxBreadth)\n    }\n  };\n  if (event.contexts?.trace && normalized.contexts) {\n    normalized.contexts.trace = event.contexts.trace;\n    if (event.contexts.trace.data) {\n      normalized.contexts.trace.data = normalize(event.contexts.trace.data, depth, maxBreadth);\n    }\n  }\n  if (event.spans) {\n    normalized.spans = event.spans.map((span) => {\n      return {\n        ...span,\n        ...span.data && {\n          data: normalize(span.data, depth, maxBreadth)\n        }\n      };\n    });\n  }\n  if (event.contexts?.flags && normalized.contexts) {\n    normalized.contexts.flags = normalize(event.contexts.flags, 3, maxBreadth);\n  }\n  return normalized;\n}\nfunction getFinalScope(scope, captureContext) {\n  if (!captureContext) {\n    return scope;\n  }\n  const finalScope = scope ? scope.clone() : new Scope();\n  finalScope.update(captureContext);\n  return finalScope;\n}\nfunction parseEventHintOrCaptureContext(hint) {\n  if (!hint) {\n    return void 0;\n  }\n  if (hintIsScopeOrFunction(hint)) {\n    return { captureContext: hint };\n  }\n  if (hintIsScopeContext(hint)) {\n    return {\n      captureContext: hint\n    };\n  }\n  return hint;\n}\nfunction hintIsScopeOrFunction(hint) {\n  return hint instanceof Scope || typeof hint === \"function\";\n}\nconst captureContextKeys = [\n  \"user\",\n  \"level\",\n  \"extra\",\n  \"contexts\",\n  \"tags\",\n  \"fingerprint\",\n  \"propagationContext\"\n];\nfunction hintIsScopeContext(hint) {\n  return Object.keys(hint).some((key) => captureContextKeys.includes(key));\n}\n\nexport { applyClientOptions, applyDebugIds, applyDebugMeta, parseEventHintOrCaptureContext, prepareEvent };\n//# sourceMappingURL=prepareEvent.js.map\n","import { getIsolationScope, getCurrentScope, getClient } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { closeSession, makeSession, updateSession } from './session.js';\nimport { debug } from './utils/debug-logger.js';\nimport { parseEventHintOrCaptureContext } from './utils/prepareEvent.js';\nimport { getCombinedScopeData } from './utils/scopeData.js';\nimport { GLOBAL_OBJ } from './utils/worldwide.js';\n\nfunction captureException(exception, hint) {\n  return getCurrentScope().captureException(exception, parseEventHintOrCaptureContext(hint));\n}\nfunction captureMessage(message, captureContext) {\n  const level = typeof captureContext === \"string\" ? captureContext : void 0;\n  const hint = typeof captureContext !== \"string\" ? { captureContext } : void 0;\n  return getCurrentScope().captureMessage(message, level, hint);\n}\nfunction captureEvent(event, hint) {\n  return getCurrentScope().captureEvent(event, hint);\n}\nfunction setContext(name, context) {\n  getIsolationScope().setContext(name, context);\n}\nfunction setExtras(extras) {\n  getIsolationScope().setExtras(extras);\n}\nfunction setExtra(key, extra) {\n  getIsolationScope().setExtra(key, extra);\n}\nfunction setTags(tags) {\n  getIsolationScope().setTags(tags);\n}\nfunction setTag(key, value) {\n  getIsolationScope().setTag(key, value);\n}\nfunction setAttributes(attributes) {\n  getIsolationScope().setAttributes(attributes);\n}\nfunction setAttribute(key, value) {\n  getIsolationScope().setAttribute(key, value);\n}\nfunction setUser(user) {\n  getIsolationScope().setUser(user);\n}\nfunction setConversationId(conversationId) {\n  getIsolationScope().setConversationId(conversationId);\n}\nfunction lastEventId() {\n  return getIsolationScope().lastEventId();\n}\nasync function flush(timeout) {\n  const client = getClient();\n  if (client) {\n    return client.flush(timeout);\n  }\n  DEBUG_BUILD && debug.warn(\"Cannot flush events. No client defined.\");\n  return Promise.resolve(false);\n}\nasync function close(timeout) {\n  const client = getClient();\n  if (client) {\n    return client.close(timeout);\n  }\n  DEBUG_BUILD && debug.warn(\"Cannot flush events and disable SDK. No client defined.\");\n  return Promise.resolve(false);\n}\nfunction isInitialized() {\n  return !!getClient();\n}\nfunction isEnabled() {\n  const client = getClient();\n  return client?.getOptions().enabled !== false && !!client?.getTransport();\n}\nfunction addEventProcessor(callback) {\n  getIsolationScope().addEventProcessor(callback);\n}\nfunction startSession(context) {\n  const isolationScope = getIsolationScope();\n  const { user } = getCombinedScopeData(isolationScope, getCurrentScope());\n  const { userAgent } = GLOBAL_OBJ.navigator || {};\n  const session = makeSession({\n    user,\n    ...userAgent && { userAgent },\n    ...context\n  });\n  const currentSession = isolationScope.getSession();\n  if (currentSession?.status === \"ok\") {\n    updateSession(currentSession, { status: \"exited\" });\n  }\n  endSession();\n  isolationScope.setSession(session);\n  return session;\n}\nfunction endSession() {\n  const isolationScope = getIsolationScope();\n  const currentScope = getCurrentScope();\n  const session = currentScope.getSession() || isolationScope.getSession();\n  if (session) {\n    closeSession(session);\n  }\n  _sendSessionUpdate();\n  isolationScope.setSession();\n}\nfunction _sendSessionUpdate() {\n  const isolationScope = getIsolationScope();\n  const client = getClient();\n  const session = isolationScope.getSession();\n  if (session && client) {\n    client.captureSession(session);\n  }\n}\nfunction captureSession(end = false) {\n  if (end) {\n    endSession();\n    return;\n  }\n  _sendSessionUpdate();\n}\n\nexport { addEventProcessor, captureEvent, captureException, captureMessage, captureSession, close, endSession, flush, isEnabled, isInitialized, lastEventId, setAttribute, setAttributes, setContext, setConversationId, setExtra, setExtras, setTag, setTags, setUser, startSession };\n//# sourceMappingURL=exports.js.map\n","import { makeDsn, dsnToString } from './utils/dsn.js';\n\nconst SENTRY_API_VERSION = \"7\";\nfunction getBaseApiEndpoint(dsn) {\n  const protocol = dsn.protocol ? `${dsn.protocol}:` : \"\";\n  const port = dsn.port ? `:${dsn.port}` : \"\";\n  return `${protocol}//${dsn.host}${port}${dsn.path ? `/${dsn.path}` : \"\"}/api/`;\n}\nfunction _getIngestEndpoint(dsn) {\n  return `${getBaseApiEndpoint(dsn)}${dsn.projectId}/envelope/`;\n}\nfunction _encodedAuth(dsn, sdkInfo) {\n  const params = {\n    sentry_version: SENTRY_API_VERSION\n  };\n  if (dsn.publicKey) {\n    params.sentry_key = dsn.publicKey;\n  }\n  if (sdkInfo) {\n    params.sentry_client = `${sdkInfo.name}/${sdkInfo.version}`;\n  }\n  return new URLSearchParams(params).toString();\n}\nfunction getEnvelopeEndpointWithUrlEncodedAuth(dsn, tunnel, sdkInfo) {\n  return tunnel ? tunnel : `${_getIngestEndpoint(dsn)}?${_encodedAuth(dsn, sdkInfo)}`;\n}\nfunction getReportDialogEndpoint(dsnLike, dialogOptions) {\n  const dsn = makeDsn(dsnLike);\n  if (!dsn) {\n    return \"\";\n  }\n  const endpoint = `${getBaseApiEndpoint(dsn)}embed/error-page/`;\n  let encodedOptions = `dsn=${dsnToString(dsn)}`;\n  for (const key in dialogOptions) {\n    if (key === \"dsn\") {\n      continue;\n    }\n    if (key === \"onClose\" || key === \"onError\") {\n      continue;\n    }\n    if (key === \"user\") {\n      const user = dialogOptions.user;\n      if (!user) {\n        continue;\n      }\n      if (user.name) {\n        encodedOptions += `&name=${encodeURIComponent(user.name)}`;\n      }\n      if (user.email) {\n        encodedOptions += `&email=${encodeURIComponent(user.email)}`;\n      }\n    } else {\n      encodedOptions += `&${encodeURIComponent(key)}=${encodeURIComponent(dialogOptions[key])}`;\n    }\n  }\n  return `${endpoint}?${encodedOptions}`;\n}\n\nexport { SENTRY_API_VERSION, getEnvelopeEndpointWithUrlEncodedAuth, getReportDialogEndpoint };\n//# sourceMappingURL=api.js.map\n","import { dsnToString } from '../utils/dsn.js';\nimport { createEnvelope } from '../utils/envelope.js';\nimport { isBrowser } from '../utils/isBrowser.js';\n\nfunction createLogContainerEnvelopeItem(items, inferUserData) {\n  const inferSetting = inferUserData ? \"auto\" : \"never\";\n  return [\n    {\n      type: \"log\",\n      item_count: items.length,\n      content_type: \"application/vnd.sentry.items.log+json\"\n    },\n    {\n      version: 2,\n      ...isBrowser() && {\n        ingest_settings: { infer_ip: inferSetting, infer_user_agent: inferSetting }\n      },\n      items\n    }\n  ];\n}\nfunction createLogEnvelope(logs, metadata, tunnel, dsn, inferUserData) {\n  const headers = {};\n  if (metadata?.sdk) {\n    headers.sdk = {\n      name: metadata.sdk.name,\n      version: metadata.sdk.version\n    };\n  }\n  if (!!tunnel && !!dsn) {\n    headers.dsn = dsnToString(dsn);\n  }\n  return createEnvelope(headers, [createLogContainerEnvelopeItem(logs, inferUserData)]);\n}\n\nexport { createLogContainerEnvelopeItem, createLogEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { serializeAttributes } from '../attributes.js';\nimport { getGlobalSingleton } from '../carrier.js';\nimport { getClient, getIsolationScope, getCurrentScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { debug, consoleSandbox } from '../utils/debug-logger.js';\nimport { isParameterizedString } from '../utils/is.js';\nimport { safeCallback, CALLBACK_ERROR } from '../utils/safeCallback.js';\nimport { getCombinedScopeData } from '../utils/scopeData.js';\nimport { getActiveSpan } from '../utils/spanUtils.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getSequenceAttribute } from '../utils/timestampSequence.js';\nimport { _getTraceInfoFromScope } from '../utils/trace-info.js';\nimport { SEVERITY_TEXT_TO_SEVERITY_NUMBER } from './constants.js';\nimport { createLogEnvelope } from './envelope.js';\n\nconst MAX_LOG_BUFFER_SIZE = 100;\nfunction setLogAttribute(logAttributes, key, value, setEvenIfPresent = true) {\n  if (value && (!logAttributes[key] || setEvenIfPresent)) {\n    logAttributes[key] = value;\n  }\n}\nfunction _INTERNAL_captureSerializedLog(client, serializedLog) {\n  const bufferMap = _getBufferMap();\n  const logBuffer = _INTERNAL_getLogBuffer(client);\n  if (logBuffer === void 0) {\n    bufferMap.set(client, [serializedLog]);\n  } else {\n    if (logBuffer.length >= MAX_LOG_BUFFER_SIZE) {\n      _INTERNAL_flushLogsBuffer(client, logBuffer);\n      bufferMap.set(client, [serializedLog]);\n    } else {\n      bufferMap.set(client, [...logBuffer, serializedLog]);\n    }\n  }\n}\nfunction _INTERNAL_captureLog(beforeLog, currentScope = getCurrentScope(), captureSerializedLog = _INTERNAL_captureSerializedLog) {\n  const client = currentScope?.getClient() ?? getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn(\"No client available to capture log.\");\n    return;\n  }\n  const { release, environment, beforeSendLog } = client.getOptions();\n  const [, traceContext] = _getTraceInfoFromScope(client, currentScope);\n  const processedLogAttributes = {\n    ...beforeLog.attributes\n  };\n  const {\n    user: { id, email, username },\n    attributes: scopeAttributes\n  } = getCombinedScopeData(getIsolationScope(), currentScope);\n  setLogAttribute(processedLogAttributes, \"user.id\", id, false);\n  setLogAttribute(processedLogAttributes, \"user.email\", email, false);\n  setLogAttribute(processedLogAttributes, \"user.name\", username, false);\n  setLogAttribute(processedLogAttributes, \"sentry.release\", release);\n  setLogAttribute(processedLogAttributes, \"sentry.environment\", environment);\n  const { name, version } = client.getSdkMetadata()?.sdk ?? {};\n  setLogAttribute(processedLogAttributes, \"sentry.sdk.name\", name);\n  setLogAttribute(processedLogAttributes, \"sentry.sdk.version\", version);\n  const replay = client.getIntegrationByName(\"Replay\");\n  const replayId = replay?.getReplayId(true);\n  setLogAttribute(processedLogAttributes, \"sentry.replay_id\", replayId);\n  if (replayId && replay?.getRecordingMode() === \"buffer\") {\n    setLogAttribute(processedLogAttributes, \"sentry._internal.replay_is_buffering\", true);\n  }\n  const beforeLogMessage = beforeLog.message;\n  if (isParameterizedString(beforeLogMessage)) {\n    const { __sentry_template_string__, __sentry_template_values__ = [] } = beforeLogMessage;\n    if (__sentry_template_values__?.length) {\n      processedLogAttributes[\"sentry.message.template\"] = __sentry_template_string__;\n    }\n    __sentry_template_values__.forEach((param, index) => {\n      processedLogAttributes[`sentry.message.parameter.${index}`] = param;\n    });\n  }\n  const span = getActiveSpan(currentScope);\n  setLogAttribute(processedLogAttributes, \"sentry.trace.parent_span_id\", span?.spanContext().spanId);\n  const processedLog = { ...beforeLog, attributes: processedLogAttributes };\n  client.emit(\"beforeCaptureLog\", processedLog);\n  const log = beforeSendLog ? safeCallback(\n    DEBUG_BUILD ? \"The `beforeSendLog` callback threw an error, dropping the log:\" : \"\",\n    // We need to wrap this in `consoleSandbox` to avoid recursive calls to `beforeSendLog`\n    () => consoleSandbox(() => beforeSendLog(processedLog)),\n    () => CALLBACK_ERROR\n  ) : processedLog;\n  if (log === CALLBACK_ERROR) {\n    client.recordDroppedEvent(\"callback_error\", \"log_item\", 1);\n    return;\n  }\n  if (!log) {\n    client.recordDroppedEvent(\"before_send\", \"log_item\", 1);\n    DEBUG_BUILD && debug.warn(\"beforeSendLog returned null, log will not be captured.\");\n    return;\n  }\n  const { level, message, attributes: logAttributes = {}, severityNumber } = log;\n  const timestamp = timestampInSeconds();\n  const sequenceAttr = getSequenceAttribute(timestamp);\n  const serializedLog = {\n    timestamp,\n    level,\n    body: _removeLoneSurrogates(String(message)),\n    trace_id: traceContext?.trace_id,\n    severity_number: severityNumber ?? SEVERITY_TEXT_TO_SEVERITY_NUMBER[level],\n    attributes: sanitizeLogAttributes({\n      ...serializeAttributes(scopeAttributes),\n      ...serializeAttributes(logAttributes, true),\n      [sequenceAttr.key]: sequenceAttr.value\n    })\n  };\n  captureSerializedLog(client, serializedLog);\n  client.emit(\"afterCaptureLog\", log);\n}\nfunction _INTERNAL_flushLogsBuffer(client, maybeLogBuffer) {\n  const logBuffer = maybeLogBuffer ?? _INTERNAL_getLogBuffer(client) ?? [];\n  if (logBuffer.length === 0) {\n    return;\n  }\n  const clientOptions = client.getOptions();\n  const envelope = createLogEnvelope(\n    logBuffer,\n    clientOptions._metadata,\n    clientOptions.tunnel,\n    client.getDsn(),\n    client.getDataCollectionOptions().userInfo\n  );\n  _getBufferMap().set(client, []);\n  client.emit(\"flushLogs\");\n  client.sendEnvelope(envelope);\n}\nfunction _INTERNAL_getLogBuffer(client) {\n  return _getBufferMap().get(client);\n}\nfunction _getBufferMap() {\n  return getGlobalSingleton(\"clientToLogBufferMap\", () => /* @__PURE__ */ new WeakMap());\n}\nfunction sanitizeLogAttributes(attributes) {\n  const sanitized = {};\n  for (const [key, attr] of Object.entries(attributes)) {\n    const sanitizedKey = _removeLoneSurrogates(key);\n    if (attr.type === \"string\") {\n      sanitized[sanitizedKey] = { ...attr, value: _removeLoneSurrogates(attr.value) };\n    } else {\n      sanitized[sanitizedKey] = attr;\n    }\n  }\n  return sanitized;\n}\nfunction _removeLoneSurrogates(str) {\n  const strObj = Object(str);\n  const isWellFormed = strObj[\"isWellFormed\"];\n  const toWellFormed = strObj[\"toWellFormed\"];\n  if (typeof isWellFormed === \"function\" && typeof toWellFormed === \"function\") {\n    return isWellFormed.call(str) ? str : toWellFormed.call(str);\n  }\n  return str;\n}\n\nexport { _INTERNAL_captureLog, _INTERNAL_captureSerializedLog, _INTERNAL_flushLogsBuffer, _INTERNAL_getLogBuffer, _removeLoneSurrogates };\n//# sourceMappingURL=internal.js.map\n","import { dsnToString } from '../utils/dsn.js';\nimport { createEnvelope } from '../utils/envelope.js';\nimport { isBrowser } from '../utils/isBrowser.js';\n\nfunction createMetricContainerEnvelopeItem(items, inferUserData) {\n  const inferSetting = inferUserData ? \"auto\" : \"never\";\n  return [\n    {\n      type: \"trace_metric\",\n      item_count: items.length,\n      content_type: \"application/vnd.sentry.items.trace-metric+json\"\n    },\n    {\n      version: 2,\n      ...isBrowser() && {\n        ingest_settings: { infer_ip: inferSetting, infer_user_agent: inferSetting }\n      },\n      items\n    }\n  ];\n}\nfunction createMetricEnvelope(metrics, metadata, tunnel, dsn, inferUserData) {\n  const headers = {};\n  if (metadata?.sdk) {\n    headers.sdk = {\n      name: metadata.sdk.name,\n      version: metadata.sdk.version\n    };\n  }\n  if (!!tunnel && !!dsn) {\n    headers.dsn = dsnToString(dsn);\n  }\n  return createEnvelope(headers, [createMetricContainerEnvelopeItem(metrics, inferUserData)]);\n}\n\nexport { createMetricContainerEnvelopeItem, createMetricEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { serializeAttributes } from '../attributes.js';\nimport { getGlobalSingleton } from '../carrier.js';\nimport { getCurrentScope, getClient, getIsolationScope } from '../currentScopes.js';\nimport { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { safeCallback, CALLBACK_ERROR } from '../utils/safeCallback.js';\nimport { getCombinedScopeData } from '../utils/scopeData.js';\nimport { getActiveSpan } from '../utils/spanUtils.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { getSequenceAttribute } from '../utils/timestampSequence.js';\nimport { _getTraceInfoFromScope } from '../utils/trace-info.js';\nimport { createMetricEnvelope } from './envelope.js';\n\nconst MAX_METRIC_BUFFER_SIZE = 1e3;\nfunction setMetricAttribute(metricAttributes, key, value, setEvenIfPresent = true) {\n  if (value && (setEvenIfPresent || !(key in metricAttributes))) {\n    metricAttributes[key] = value;\n  }\n}\nfunction _INTERNAL_captureSerializedMetric(client, serializedMetric) {\n  const bufferMap = _getBufferMap();\n  const metricBuffer = _INTERNAL_getMetricBuffer(client);\n  if (metricBuffer === void 0) {\n    bufferMap.set(client, [serializedMetric]);\n  } else {\n    if (metricBuffer.length >= MAX_METRIC_BUFFER_SIZE) {\n      _INTERNAL_flushMetricsBuffer(client, metricBuffer);\n      bufferMap.set(client, [serializedMetric]);\n    } else {\n      bufferMap.set(client, [...metricBuffer, serializedMetric]);\n    }\n  }\n}\nfunction _enrichMetricAttributes(beforeMetric, client, user) {\n  const { release, environment } = client.getOptions();\n  const processedMetricAttributes = {\n    ...beforeMetric.attributes\n  };\n  setMetricAttribute(processedMetricAttributes, \"user.id\", user.id, false);\n  setMetricAttribute(processedMetricAttributes, \"user.email\", user.email, false);\n  setMetricAttribute(processedMetricAttributes, \"user.name\", user.username, false);\n  setMetricAttribute(processedMetricAttributes, \"sentry.release\", release);\n  setMetricAttribute(processedMetricAttributes, \"sentry.environment\", environment);\n  const { name, version } = client.getSdkMetadata()?.sdk ?? {};\n  setMetricAttribute(processedMetricAttributes, \"sentry.sdk.name\", name);\n  setMetricAttribute(processedMetricAttributes, \"sentry.sdk.version\", version);\n  const replay = client.getIntegrationByName(\"Replay\");\n  const replayId = replay?.getReplayId(true);\n  setMetricAttribute(processedMetricAttributes, \"sentry.replay_id\", replayId);\n  if (replayId && replay?.getRecordingMode() === \"buffer\") {\n    setMetricAttribute(processedMetricAttributes, \"sentry._internal.replay_is_buffering\", true);\n  }\n  return {\n    ...beforeMetric,\n    attributes: processedMetricAttributes\n  };\n}\nfunction _buildSerializedMetric(metric, client, currentScope, scopeAttributes) {\n  const [, traceContext] = _getTraceInfoFromScope(client, currentScope);\n  const span = getActiveSpan(currentScope);\n  const traceId = span ? span.spanContext().traceId : traceContext?.trace_id;\n  const spanId = span ? span.spanContext().spanId : void 0;\n  const timestamp = timestampInSeconds();\n  const sequenceAttr = getSequenceAttribute(timestamp);\n  return {\n    timestamp,\n    trace_id: traceId ?? \"\",\n    span_id: spanId,\n    name: metric.name,\n    type: metric.type,\n    unit: metric.unit,\n    value: metric.value,\n    attributes: {\n      ...serializeAttributes(scopeAttributes),\n      ...serializeAttributes(metric.attributes, \"skip-undefined\"),\n      [sequenceAttr.key]: sequenceAttr.value\n    }\n  };\n}\nfunction _INTERNAL_captureMetric(beforeMetric, options) {\n  const currentScope = options?.scope ?? getCurrentScope();\n  const captureSerializedMetric = options?.captureSerializedMetric ?? _INTERNAL_captureSerializedMetric;\n  const client = currentScope?.getClient() ?? getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn(\"No client available to capture metric.\");\n    return;\n  }\n  const { beforeSendMetric } = client.getOptions();\n  const { user, attributes: scopeAttributes } = getCombinedScopeData(getIsolationScope(), currentScope);\n  const enrichedMetric = _enrichMetricAttributes(beforeMetric, client, user);\n  client.emit(\"processMetric\", enrichedMetric);\n  const processedMetric = beforeSendMetric ? safeCallback(\n    DEBUG_BUILD ? \"The `beforeSendMetric` callback threw an error, dropping the metric:\" : \"\",\n    () => beforeSendMetric(enrichedMetric),\n    () => CALLBACK_ERROR\n  ) : enrichedMetric;\n  if (processedMetric === CALLBACK_ERROR) {\n    client.recordDroppedEvent(\"callback_error\", \"metric\", 1);\n    return;\n  }\n  if (!processedMetric) {\n    client.recordDroppedEvent(\"before_send\", \"metric\", 1);\n    DEBUG_BUILD && debug.log(\"`beforeSendMetric` returned `null`, will not send metric.\");\n    return;\n  }\n  const serializedMetric = _buildSerializedMetric(processedMetric, client, currentScope, scopeAttributes);\n  DEBUG_BUILD && debug.log(\"[Metric]\", serializedMetric);\n  captureSerializedMetric(client, serializedMetric);\n  client.emit(\"afterCaptureMetric\", processedMetric);\n}\nfunction _INTERNAL_flushMetricsBuffer(client, maybeMetricBuffer) {\n  const metricBuffer = maybeMetricBuffer ?? _INTERNAL_getMetricBuffer(client) ?? [];\n  if (metricBuffer.length === 0) {\n    return;\n  }\n  const clientOptions = client.getOptions();\n  const envelope = createMetricEnvelope(\n    metricBuffer,\n    clientOptions._metadata,\n    clientOptions.tunnel,\n    client.getDsn(),\n    client.getDataCollectionOptions().userInfo\n  );\n  _getBufferMap().set(client, []);\n  client.emit(\"flushMetrics\");\n  client.sendEnvelope(envelope);\n}\nfunction _INTERNAL_getMetricBuffer(client) {\n  return _getBufferMap().get(client);\n}\nfunction _getBufferMap() {\n  return getGlobalSingleton(\"clientToMetricBufferMap\", () => /* @__PURE__ */ new WeakMap());\n}\n\nexport { _INTERNAL_captureMetric, _INTERNAL_captureSerializedMetric, _INTERNAL_flushMetricsBuffer, _INTERNAL_getMetricBuffer };\n//# sourceMappingURL=internal.js.map\n","import { createSpanContainerItem } from './envelope.js';\nimport { hasSpanStreamingEnabled } from './hasSpanStreamingEnabled.js';\nimport { spanJsonToSerializedStreamedSpan } from './spanJsonToStreamedSpan.js';\n\nfunction extractGenAiSpansFromEvent(event, client) {\n  if (event.type !== \"transaction\" || !event.spans?.length || !event.sdkProcessingMetadata?.hasGenAiSpans || hasSpanStreamingEnabled(client)) {\n    return void 0;\n  }\n  const genAiSpans = [];\n  const remainingSpans = [];\n  for (const span of event.spans) {\n    if (span.op?.startsWith(\"gen_ai.\")) {\n      genAiSpans.push(spanJsonToSerializedStreamedSpan(span));\n    } else {\n      remainingSpans.push(span);\n    }\n  }\n  if (genAiSpans.length === 0) {\n    return void 0;\n  }\n  event.spans = remainingSpans;\n  return createSpanContainerItem(genAiSpans, client);\n}\n\nexport { extractGenAiSpansFromEvent };\n//# sourceMappingURL=extractGenAiSpans.js.map\n","function hasSpanStreamingEnabled(client) {\n  return client.getOptions().traceLifecycle === \"stream\";\n}\n\nexport { hasSpanStreamingEnabled };\n//# sourceMappingURL=hasSpanStreamingEnabled.js.map\n","import { dsnToString } from '../../utils/dsn.js';\nimport { getSdkMetadataForEnvelopeHeader, createEnvelope } from '../../utils/envelope.js';\nimport { isBrowser } from '../../utils/isBrowser.js';\nimport { safeDateNow } from '../../utils/randomSafeContext.js';\n\nfunction createStreamedSpanEnvelope(serializedSpans, dsc, client) {\n  const options = client.getOptions();\n  const dsn = client.getDsn();\n  const tunnel = options.tunnel;\n  const sdk = getSdkMetadataForEnvelopeHeader(options._metadata);\n  const headers = {\n    sent_at: new Date(safeDateNow()).toISOString(),\n    ...dscHasRequiredProps(dsc) && { trace: dsc },\n    ...sdk && { sdk },\n    ...!!tunnel && dsn && { dsn: dsnToString(dsn) }\n  };\n  return createEnvelope(headers, [createSpanContainerItem(serializedSpans, client)]);\n}\nfunction createSpanContainerItem(serializedSpans, client) {\n  const inferSetting = client.getDataCollectionOptions().userInfo ? \"auto\" : \"never\";\n  return [\n    { type: \"span\", item_count: serializedSpans.length, content_type: \"application/vnd.sentry.items.span.v2+json\" },\n    {\n      version: 2,\n      ingest_settings: isBrowser() ? { infer_ip: inferSetting, infer_user_agent: inferSetting } : void 0,\n      items: serializedSpans\n    }\n  ];\n}\nfunction dscHasRequiredProps(dsc) {\n  return !!dsc.trace_id && !!dsc.public_key;\n}\n\nexport { createSpanContainerItem, createStreamedSpanEnvelope };\n//# sourceMappingURL=envelope.js.map\n","import { resolvedSyncPromise, rejectedSyncPromise } from './syncpromise.js';\nimport { safeUnref } from './timer.js';\n\nconst SENTRY_BUFFER_FULL_ERROR = /* @__PURE__ */ Symbol.for(\"SentryBufferFullError\");\nfunction makePromiseBuffer(limit = 100) {\n  const buffer = /* @__PURE__ */ new Set();\n  function isReady() {\n    return buffer.size < limit;\n  }\n  function remove(task) {\n    buffer.delete(task);\n  }\n  function add(taskProducer) {\n    if (!isReady()) {\n      return rejectedSyncPromise(SENTRY_BUFFER_FULL_ERROR);\n    }\n    const task = taskProducer();\n    buffer.add(task);\n    void task.then(\n      () => remove(task),\n      () => remove(task)\n    );\n    return task;\n  }\n  function drain(timeout) {\n    if (!buffer.size) {\n      return resolvedSyncPromise(true);\n    }\n    const drainPromise = Promise.allSettled(Array.from(buffer)).then(() => true);\n    if (!timeout) {\n      return drainPromise;\n    }\n    const promises = [\n      drainPromise,\n      new Promise((resolve) => safeUnref(setTimeout(() => resolve(false), timeout)))\n    ];\n    return Promise.race(promises);\n  }\n  return {\n    get $() {\n      return Array.from(buffer);\n    },\n    add,\n    drain\n  };\n}\n\nexport { SENTRY_BUFFER_FULL_ERROR, makePromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map\n","import { safeDateNow } from './randomSafeContext.js';\n\nconst DEFAULT_RETRY_AFTER = 60 * 1e3;\nfunction parseRetryAfterHeader(header, now = safeDateNow()) {\n  const headerDelay = parseInt(`${header}`, 10);\n  if (!isNaN(headerDelay)) {\n    return headerDelay * 1e3;\n  }\n  const headerDate = Date.parse(`${header}`);\n  if (!isNaN(headerDate)) {\n    return headerDate - now;\n  }\n  return DEFAULT_RETRY_AFTER;\n}\nfunction disabledUntil(limits, dataCategory) {\n  return limits[dataCategory] || limits.all || 0;\n}\nfunction isRateLimited(limits, dataCategory, now = safeDateNow()) {\n  return disabledUntil(limits, dataCategory) > now;\n}\nfunction updateRateLimits(limits, { statusCode, headers }, now = safeDateNow()) {\n  const updatedRateLimits = {\n    ...limits\n  };\n  const rateLimitHeader = headers?.[\"x-sentry-rate-limits\"];\n  const retryAfterHeader = headers?.[\"retry-after\"];\n  if (rateLimitHeader) {\n    for (const limit of rateLimitHeader.trim().split(\",\")) {\n      const [retryAfter, categories, , , namespaces] = limit.split(\":\", 5);\n      const headerDelay = parseInt(retryAfter, 10);\n      const delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1e3;\n      if (!categories) {\n        updatedRateLimits.all = now + delay;\n      } else {\n        for (const category of categories.split(\";\")) {\n          if (category === \"metric_bucket\") {\n            if (!namespaces || namespaces.split(\";\").includes(\"custom\")) {\n              updatedRateLimits[category] = now + delay;\n            }\n          } else {\n            updatedRateLimits[category] = now + delay;\n          }\n        }\n      }\n    }\n  } else if (retryAfterHeader) {\n    updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n  } else if (statusCode === 429) {\n    updatedRateLimits.all = now + 60 * 1e3;\n  }\n  return updatedRateLimits;\n}\n\nexport { DEFAULT_RETRY_AFTER, disabledUntil, isRateLimited, parseRetryAfterHeader, updateRateLimits };\n//# sourceMappingURL=ratelimit.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { forEachEnvelopeItem, envelopeItemTypeToDataCategory, createEnvelope, serializeEnvelope, envelopeContainsItemType } from '../utils/envelope.js';\nimport { makePromiseBuffer, SENTRY_BUFFER_FULL_ERROR } from '../utils/promisebuffer.js';\nimport { isRateLimited, updateRateLimits } from '../utils/ratelimit.js';\n\nconst DEFAULT_TRANSPORT_BUFFER_SIZE = 64;\nfunction createTransport(options, makeRequest, buffer = makePromiseBuffer(\n  options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE\n)) {\n  let rateLimits = {};\n  const flush = (timeout) => buffer.drain(timeout);\n  function send(envelope) {\n    const filteredEnvelopeItems = [];\n    forEachEnvelopeItem(envelope, (item, type) => {\n      const dataCategory = envelopeItemTypeToDataCategory(type);\n      if (isRateLimited(rateLimits, dataCategory)) {\n        options.recordDroppedEvent(\"ratelimit_backoff\", dataCategory);\n      } else {\n        filteredEnvelopeItems.push(item);\n      }\n    });\n    if (filteredEnvelopeItems.length === 0) {\n      return Promise.resolve({});\n    }\n    const filteredEnvelope = createEnvelope(envelope[0], filteredEnvelopeItems);\n    const recordEnvelopeLoss = (reason) => {\n      if (envelopeContainsItemType(filteredEnvelope, [\"client_report\"])) {\n        DEBUG_BUILD && debug.warn(`Dropping client report. Will not send outcomes (reason: ${reason}).`);\n        return;\n      }\n      forEachEnvelopeItem(filteredEnvelope, (item, type) => {\n        options.recordDroppedEvent(reason, envelopeItemTypeToDataCategory(type));\n      });\n    };\n    const requestTask = () => makeRequest({ body: serializeEnvelope(filteredEnvelope) }).then(\n      (response) => {\n        if (response.statusCode === 413) {\n          DEBUG_BUILD && debug.error(\n            \"Sentry responded with status code 413. Envelope was discarded due to exceeding size limits.\"\n          );\n          recordEnvelopeLoss(\"send_error\");\n          return response;\n        }\n        if (DEBUG_BUILD && response.statusCode !== void 0 && (response.statusCode < 200 || response.statusCode >= 300)) {\n          debug.warn(`Sentry responded with status code ${response.statusCode} to sent event.`);\n        }\n        rateLimits = updateRateLimits(rateLimits, response);\n        return response;\n      },\n      (error) => {\n        recordEnvelopeLoss(\"network_error\");\n        DEBUG_BUILD && debug.error(\"Encountered error running transport request:\", error);\n        throw error;\n      }\n    );\n    return buffer.add(requestTask).then(\n      (result) => result,\n      (error) => {\n        if (error === SENTRY_BUFFER_FULL_ERROR) {\n          DEBUG_BUILD && debug.error(\"Skipped sending event because buffer is full.\");\n          recordEnvelopeLoss(\"queue_overflow\");\n          return Promise.resolve({});\n        } else {\n          throw error;\n        }\n      }\n    );\n  }\n  return {\n    send,\n    flush\n  };\n}\n\nexport { DEFAULT_TRANSPORT_BUFFER_SIZE, createTransport };\n//# sourceMappingURL=base.js.map\n","const DEFAULTS = {\n  userInfo: true,\n  cookies: true,\n  httpHeaders: { request: true, response: true },\n  httpBodies: [\"incomingRequest\", \"outgoingRequest\", \"incomingResponse\", \"outgoingResponse\"],\n  urlQueryParams: true,\n  graphQL: { document: true, variables: true },\n  genAI: { inputs: true, outputs: true },\n  databaseQueryData: true,\n  queues: true,\n  stackFrameVariables: true,\n  frameContextLines: 5\n};\nfunction isCollectBehavior(value) {\n  return typeof value === \"boolean\" || \"allow\" in value || \"deny\" in value;\n}\nfunction resolveHttpHeaders(httpHeaders) {\n  if (httpHeaders === void 0) {\n    return { ...DEFAULTS.httpHeaders };\n  }\n  if (isCollectBehavior(httpHeaders)) {\n    return { request: httpHeaders, response: httpHeaders };\n  }\n  return {\n    request: httpHeaders.request ?? DEFAULTS.httpHeaders.request,\n    response: httpHeaders.response ?? DEFAULTS.httpHeaders.response\n  };\n}\nfunction resolveDataCollectionOptions(options) {\n  const dc = options.dataCollection ?? {};\n  return {\n    userInfo: dc.userInfo ?? DEFAULTS.userInfo,\n    cookies: dc.cookies ?? DEFAULTS.cookies,\n    httpHeaders: resolveHttpHeaders(dc.httpHeaders),\n    httpBodies: dc.httpBodies ?? DEFAULTS.httpBodies,\n    urlQueryParams: dc.urlQueryParams ?? DEFAULTS.urlQueryParams,\n    graphQL: {\n      document: dc.graphQL?.document ?? DEFAULTS.graphQL.document,\n      variables: dc.graphQL?.variables ?? DEFAULTS.graphQL.variables\n    },\n    genAI: {\n      inputs: dc.genAI?.inputs ?? DEFAULTS.genAI.inputs,\n      outputs: dc.genAI?.outputs ?? DEFAULTS.genAI.outputs\n    },\n    databaseQueryData: dc.databaseQueryData ?? DEFAULTS.databaseQueryData,\n    queues: dc.queues ?? DEFAULTS.queues,\n    stackFrameVariables: dc.stackFrameVariables ?? DEFAULTS.stackFrameVariables,\n    frameContextLines: dc.frameContextLines ?? DEFAULTS.frameContextLines\n  };\n}\n\nexport { resolveDataCollectionOptions };\n//# sourceMappingURL=resolveDataCollectionOptions.js.map\n","import { getEnvelopeEndpointWithUrlEncodedAuth } from './api.js';\nimport { DEFAULT_ENVIRONMENT } from './constants.js';\nimport { getTraceContextFromScope, getCurrentScope, getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { createEventEnvelope, createSessionEnvelope } from './envelope.js';\nimport { setupIntegration, afterSetupIntegrations, setupIntegrations } from './integration.js';\nimport { _INTERNAL_flushLogsBuffer } from './logs/internal.js';\nimport { _INTERNAL_flushMetricsBuffer } from './metrics/internal.js';\nimport { updateSession } from './session.js';\nimport { getDynamicSamplingContextFromScope } from './tracing/dynamicSamplingContext.js';\nimport { isStaticBeforeSendSpanCallback, applyBeforeSendSpanCallback } from './tracing/spans/beforeSendSpan.js';\nimport { extractGenAiSpansFromEvent } from './tracing/spans/extractGenAiSpans.js';\nimport { DEFAULT_TRANSPORT_BUFFER_SIZE } from './transports/base.js';\nimport { createClientReportEnvelope } from './utils/clientreport.js';\nimport { debug, consoleSandbox } from './utils/debug-logger.js';\nimport { makeDsn, dsnToString } from './utils/dsn.js';\nimport { getDataCategoryByType, addItemToEnvelope, createAttachmentEnvelopeItem } from './utils/envelope.js';\nimport { getPossibleEventMessages } from './utils/eventUtils.js';\nimport { isParameterizedString, isPrimitive, isObjectLike, isThenable, isPlainObject } from './utils/is.js';\nimport { merge } from './utils/merge.js';\nimport { uuid4, checkOrSetAlreadyCaught } from './utils/misc.js';\nimport { parseSampleRate } from './utils/parseSampleRate.js';\nimport { prepareEvent } from './utils/prepareEvent.js';\nimport { makePromiseBuffer, SENTRY_BUFFER_FULL_ERROR } from './utils/promisebuffer.js';\nimport { safeMathRandom } from './utils/randomSafeContext.js';\nimport { safeCallback } from './utils/safeCallback.js';\nimport { shouldIgnoreSpan, reparentChildSpans } from './utils/should-ignore-span.js';\nimport { safeUnref } from './utils/timer.js';\nimport { convertTransactionEventToSpanJson, convertSpanJsonToTransactionEvent } from './utils/transactionEvent.js';\nimport { maybeWarnAboutIgnoredTransactionOptions } from './utils/warnAboutIgnoredTransactionOptions.js';\nimport { resolveDataCollectionOptions } from './utils/data-collection/resolveDataCollectionOptions.js';\n\nconst ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\nconst MISSING_RELEASE_FOR_SESSION_ERROR = \"Discarded session because of missing or non-string release\";\nconst INTERNAL_ERROR_SYMBOL = /* @__PURE__ */ Symbol.for(\"SentryInternalError\");\nconst DO_NOT_SEND_EVENT_SYMBOL = /* @__PURE__ */ Symbol.for(\"SentryDoNotSendEventError\");\nconst DEFAULT_FLUSH_INTERVAL = 5e3;\nfunction _makeInternalError(message) {\n  return {\n    message,\n    [INTERNAL_ERROR_SYMBOL]: true\n  };\n}\nfunction _makeDoNotSendEventError(message) {\n  return {\n    message,\n    [DO_NOT_SEND_EVENT_SYMBOL]: true\n  };\n}\nfunction _isInternalError(error) {\n  return isObjectLike(error) && INTERNAL_ERROR_SYMBOL in error;\n}\nfunction _isDoNotSendEventError(error) {\n  return isObjectLike(error) && DO_NOT_SEND_EVENT_SYMBOL in error;\n}\nfunction setupWeightBasedFlushing(client, afterCaptureHook, flushHook, estimateSizeFn, flushFn) {\n  let weight = 0;\n  let flushTimeout;\n  let isTimerActive = false;\n  client.on(flushHook, () => {\n    weight = 0;\n    clearTimeout(flushTimeout);\n    isTimerActive = false;\n  });\n  client.on(afterCaptureHook, (item) => {\n    weight += estimateSizeFn(item);\n    if (weight >= 8e5) {\n      flushFn(client);\n    } else if (!isTimerActive) {\n      const flushInterval = client.getOptions()._flushInterval ?? DEFAULT_FLUSH_INTERVAL;\n      if (flushInterval > 0) {\n        isTimerActive = true;\n        flushTimeout = safeUnref(\n          setTimeout(() => {\n            flushFn(client);\n          }, flushInterval)\n        );\n      }\n    }\n  });\n  client.on(\"flush\", () => {\n    flushFn(client);\n  });\n}\nclass Client {\n  /**\n   * Initializes this client instance.\n   *\n   * @param options Options for the client.\n   */\n  constructor(options) {\n    this._options = {\n      attachStacktrace: true,\n      ...options,\n      traceLifecycle: options.traceLifecycle === \"static\" ? \"static\" : \"stream\"\n    };\n    this._integrations = {};\n    this._numProcessing = 0;\n    this._outcomes = {};\n    this._hooks = {};\n    this._eventProcessors = [];\n    this._promiseBuffer = makePromiseBuffer(options.transportOptions?.bufferSize ?? DEFAULT_TRANSPORT_BUFFER_SIZE);\n    this._dataCollection = resolveDataCollectionOptions(options);\n    this._unhandledSessionStatus = \"crashed\";\n    if (options.dsn) {\n      this._dsn = makeDsn(options.dsn);\n    } else {\n      DEBUG_BUILD && debug.warn(\"No DSN provided, client will not send events.\");\n    }\n    const { beforeSendSpan, traceLifecycle } = this._options;\n    if (DEBUG_BUILD && beforeSendSpan && isStaticBeforeSendSpanCallback(beforeSendSpan) !== (traceLifecycle === \"static\")) {\n      consoleSandbox(() => {\n        console.warn(\n          `Ignoring \\`beforeSendSpan\\`: ${traceLifecycle === \"static\" ? \"wrap it with\" : \"remove\"} \\`Sentry.withStaticSpan\\` to use it with \\`traceLifecycle: \"${traceLifecycle}\"\\`.`\n        );\n      });\n    }\n    if (this._dsn) {\n      const url = getEnvelopeEndpointWithUrlEncodedAuth(\n        this._dsn,\n        options.tunnel,\n        options._metadata ? options._metadata.sdk : void 0\n      );\n      this._transport = options.transport({\n        tunnel: this._options.tunnel,\n        recordDroppedEvent: this.recordDroppedEvent.bind(this),\n        ...options.transportOptions,\n        url\n      });\n    }\n    setupWeightBasedFlushing(this, \"afterCaptureLog\", \"flushLogs\", estimateLogSizeInBytes, _INTERNAL_flushLogsBuffer);\n    setupWeightBasedFlushing(\n      this,\n      \"afterCaptureMetric\",\n      \"flushMetrics\",\n      estimateMetricSizeInBytes,\n      _INTERNAL_flushMetricsBuffer\n    );\n  }\n  /**\n   * Captures an exception event and sends it to Sentry.\n   *\n   * Unlike `captureException` exported from every SDK, this method requires that you pass it the current scope.\n   */\n  captureException(exception, hint, scope) {\n    const eventId = uuid4();\n    if (checkOrSetAlreadyCaught(exception)) {\n      DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n      return eventId;\n    }\n    const hintWithEventId = {\n      event_id: eventId,\n      ...hint\n    };\n    this._process(\n      () => this.eventFromException(exception, hintWithEventId).then((event) => this._captureEvent(event, hintWithEventId, scope)).then((res) => res),\n      \"error\"\n    );\n    return hintWithEventId.event_id;\n  }\n  /**\n   * Captures a message event and sends it to Sentry.\n   *\n   * Unlike `captureMessage` exported from every SDK, this method requires that you pass it the current scope.\n   */\n  captureMessage(message, level, hint, currentScope) {\n    const hintWithEventId = {\n      event_id: uuid4(),\n      ...hint\n    };\n    const eventMessage = isParameterizedString(message) ? message : String(message);\n    const isMessage = isPrimitive(message);\n    const promisedEvent = isMessage ? this.eventFromMessage(eventMessage, level, hintWithEventId) : this.eventFromException(message, hintWithEventId);\n    this._process(\n      () => promisedEvent.then((event) => this._captureEvent(event, hintWithEventId, currentScope)),\n      isMessage ? \"unknown\" : \"error\"\n    );\n    return hintWithEventId.event_id;\n  }\n  /**\n   * Captures a manually created event and sends it to Sentry.\n   *\n   * Unlike `captureEvent` exported from every SDK, this method requires that you pass it the current scope.\n   */\n  captureEvent(event, hint, currentScope) {\n    const eventId = uuid4();\n    if (hint?.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n      DEBUG_BUILD && debug.log(ALREADY_SEEN_ERROR);\n      return eventId;\n    }\n    const hintWithEventId = {\n      event_id: eventId,\n      ...hint\n    };\n    const sdkProcessingMetadata = event.sdkProcessingMetadata || {};\n    const capturedSpanScope = sdkProcessingMetadata.capturedSpanScope;\n    const capturedSpanIsolationScope = sdkProcessingMetadata.capturedSpanIsolationScope;\n    const dataCategory = getDataCategoryByType(event.type);\n    this._process(\n      () => this._captureEvent(event, hintWithEventId, capturedSpanScope || currentScope, capturedSpanIsolationScope),\n      dataCategory\n    );\n    return hintWithEventId.event_id;\n  }\n  /**\n   * Captures a session.\n   */\n  captureSession(session) {\n    this.sendSession(session);\n    updateSession(session, { init: false });\n  }\n  /**\n   * Get the current Dsn.\n   */\n  getDsn() {\n    return this._dsn;\n  }\n  /**\n   * Get the current options.\n   */\n  getOptions() {\n    return this._options;\n  }\n  /**\n   * Get the resolved data collection configuration.\n   */\n  getDataCollectionOptions() {\n    return this._dataCollection;\n  }\n  /**\n   * Get the SDK metadata.\n   * @see SdkMetadata\n   */\n  getSdkMetadata() {\n    return this._options._metadata;\n  }\n  /**\n   * Returns the transport that is used by the client.\n   * Please note that the transport gets lazy initialized so it will only be there once the first event has been sent.\n   */\n  getTransport() {\n    return this._transport;\n  }\n  /**\n   * Wait for all events to be sent or the timeout to expire, whichever comes first.\n   *\n   * @param timeout Maximum time in ms the client should wait for events to be flushed. Omitting this parameter will\n   *   cause the client to wait until all events are sent before resolving the promise.\n   * @returns A promise that will resolve with `true` if all events are sent before the timeout, or `false` if there are\n   * still events in the queue when the timeout is reached.\n   */\n  // @ts-expect-error - PromiseLike is a subset of Promise\n  async flush(timeout) {\n    const transport = this._transport;\n    this.emit(\"flush\");\n    if (!transport) {\n      return true;\n    }\n    const clientFinished = await this._isClientDoneProcessing(timeout);\n    const transportFlushed = await transport.flush(timeout);\n    return clientFinished && transportFlushed;\n  }\n  /**\n   * Flush the event queue and set the client to `enabled = false`. See {@link Client.flush}.\n   *\n   * @param {number} timeout Maximum time in ms the client should wait before shutting down. Omitting this parameter will cause\n   *   the client to wait until all events are sent before disabling itself.\n   * @returns {Promise<boolean>} A promise which resolves to `true` if the flush completes successfully before the timeout, or `false` if\n   * it doesn't.\n   */\n  // @ts-expect-error - PromiseLike is a subset of Promise\n  async close(timeout) {\n    const result = await this.flush(timeout);\n    this.getOptions().enabled = false;\n    this.emit(\"close\");\n    return result;\n  }\n  /**\n   * Get all installed event processors.\n   */\n  getEventProcessors() {\n    return this._eventProcessors;\n  }\n  /**\n   * Adds an event processor that applies to any event processed by this client.\n   */\n  addEventProcessor(eventProcessor) {\n    this._eventProcessors.push(eventProcessor);\n  }\n  /**\n   * Initialize this client.\n   * Call this after the client was set on a scope.\n   */\n  init() {\n    if (this._isEnabled() || // Force integrations to be setup even if no DSN was set when we have\n    // Spotlight enabled. This is particularly important for browser as we\n    // don't support the `spotlight` option there and rely on the users\n    // adding the `spotlightBrowserIntegration()` to their integrations which\n    // wouldn't get initialized with the check below when there's no DSN set.\n    this._options.integrations.some(({ name }) => name.startsWith(\"Spotlight\"))) {\n      this._setupIntegrations();\n      maybeWarnAboutIgnoredTransactionOptions(this._options);\n    }\n  }\n  /**\n   * Gets an installed integration by its name.\n   *\n   * @returns {Integration|undefined} The installed integration or `undefined` if no integration with that `name` was installed.\n   */\n  getIntegrationByName(integrationName) {\n    return this._integrations[integrationName];\n  }\n  /**\n   * Returns the names of all installed integrations.\n   */\n  getIntegrationNames() {\n    return Object.keys(this._integrations);\n  }\n  /**\n   * Add an integration to the client.\n   * This can be used to e.g. lazy load integrations.\n   * In most cases, this should not be necessary,\n   * and you're better off just passing the integrations via `integrations: []` at initialization time.\n   * However, if you find the need to conditionally load & add an integration, you can use `addIntegration` to do so.\n   */\n  addIntegration(integration) {\n    const isAlreadyInstalled = this._integrations[integration.name];\n    if (!isAlreadyInstalled && integration.beforeSetup) {\n      integration.beforeSetup(this);\n    }\n    setupIntegration(this, integration, this._integrations);\n    if (!isAlreadyInstalled) {\n      afterSetupIntegrations(this, [integration]);\n    }\n  }\n  /**\n   * Send a fully prepared event to Sentry.\n   */\n  sendEvent(event, hint = {}) {\n    this.emit(\"beforeSendEvent\", event, hint);\n    const genAiSpanItem = extractGenAiSpansFromEvent(event, this);\n    let env = createEventEnvelope(event, this._dsn, this._options._metadata, this._options.tunnel);\n    for (const attachment of hint.attachments || []) {\n      env = addItemToEnvelope(env, createAttachmentEnvelopeItem(attachment));\n    }\n    if (genAiSpanItem) {\n      env = addItemToEnvelope(env, genAiSpanItem);\n    }\n    this.sendEnvelope(env).then((sendResponse) => this.emit(\"afterSendEvent\", event, sendResponse));\n  }\n  /**\n   * Send a session or session aggregrates to Sentry.\n   */\n  sendSession(session) {\n    const { release: clientReleaseOption, environment: clientEnvironmentOption = DEFAULT_ENVIRONMENT } = this._options;\n    if (\"aggregates\" in session) {\n      const sessionAttrs = session.attrs || {};\n      if (!sessionAttrs.release && !clientReleaseOption) {\n        DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n        return;\n      }\n      sessionAttrs.release = sessionAttrs.release || clientReleaseOption;\n      sessionAttrs.environment = sessionAttrs.environment || clientEnvironmentOption;\n      session.attrs = sessionAttrs;\n    } else {\n      if (!session.release && !clientReleaseOption) {\n        DEBUG_BUILD && debug.warn(MISSING_RELEASE_FOR_SESSION_ERROR);\n        return;\n      }\n      session.release = session.release || clientReleaseOption;\n      session.environment = session.environment || clientEnvironmentOption;\n    }\n    this.emit(\"beforeSendSession\", session);\n    const env = createSessionEnvelope(session, this._dsn, this._options._metadata, this._options.tunnel);\n    this.sendEnvelope(env);\n  }\n  /**\n   * Record on the client that an event got dropped (ie, an event that will not be sent to Sentry).\n   */\n  recordDroppedEvent(reason, category, count = 1) {\n    if (this._options.sendClientReports) {\n      const key = `${reason}:${category}`;\n      DEBUG_BUILD && debug.log(`Recording outcome: \"${key}\"${count > 1 ? ` (${count} times)` : \"\"}`);\n      this._outcomes[key] = (this._outcomes[key] || 0) + count;\n    }\n  }\n  /**\n   * Register a hook on this client.\n   */\n  on(hook, callback) {\n    const hookCallbacks = this._hooks[hook] = this._hooks[hook] || /* @__PURE__ */ new Set();\n    const uniqueCallback = (...args) => callback(...args);\n    hookCallbacks.add(uniqueCallback);\n    return () => {\n      hookCallbacks.delete(uniqueCallback);\n    };\n  }\n  /**\n   * Emit a hook that was previously registered via `on()`.\n   */\n  emit(hook, ...rest) {\n    const callbacks = this._hooks[hook];\n    if (callbacks) {\n      callbacks.forEach((callback) => callback(...rest));\n    }\n  }\n  /**\n   * Send an envelope to Sentry.\n   */\n  // @ts-expect-error - PromiseLike is a subset of Promise\n  async sendEnvelope(envelope) {\n    this.emit(\"beforeEnvelope\", envelope);\n    if (this._isEnabled() && this._transport) {\n      try {\n        const result = await this._transport.send(envelope);\n        this.emit(\"afterEnvelope\", envelope);\n        return result;\n      } catch (reason) {\n        DEBUG_BUILD && debug.error(\"Error while sending envelope:\", reason);\n        return {};\n      }\n    }\n    DEBUG_BUILD && debug.error(\"Transport disabled\");\n    return {};\n  }\n  /**\n   * Register a cleanup function to be called when the client is disposed.\n   * This is useful for integrations that need to clean up global state.\n   *\n   * NOTE: This is a no-op in the base `Client` class. Subclasses like `ServerRuntimeClient`\n   * override this method to actually register and execute cleanup callbacks.\n   */\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\n  registerCleanup(callback) {\n  }\n  /**\n   * Disposes of the client and releases all resources.\n   *\n   * Subclasses should override this method to clean up their own resources, including invoking\n   * any callbacks registered via {@link Client.registerCleanup}. The base implementation is a\n   * no-op and does NOT execute registered cleanup callbacks.\n   *\n   * After calling dispose(), the client should not be used anymore.\n   */\n  dispose() {\n  }\n  /* eslint-enable @typescript-eslint/unified-signatures */\n  /** Setup integrations for this client. */\n  _setupIntegrations() {\n    const { integrations } = this._options;\n    this._integrations = setupIntegrations(this, integrations);\n    afterSetupIntegrations(this, integrations);\n  }\n  /** Updates existing session based on the provided event */\n  _updateSessionFromEvent(session, event) {\n    let unhandled = event.level === \"fatal\";\n    let errored = false;\n    const exceptions = event.exception?.values;\n    if (exceptions) {\n      errored = true;\n      unhandled = false;\n      for (const ex of exceptions) {\n        if (ex.mechanism?.handled === false) {\n          unhandled = true;\n          break;\n        }\n      }\n    }\n    const sessionNonTerminal = session.status === \"ok\";\n    const shouldUpdateAndSend = sessionNonTerminal && session.errors === 0 || sessionNonTerminal && unhandled;\n    if (shouldUpdateAndSend) {\n      updateSession(session, {\n        ...unhandled && { status: this._unhandledSessionStatus },\n        errors: session.errors || Number(errored || unhandled)\n      });\n      this.captureSession(session);\n    }\n  }\n  /**\n   * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n   * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n   *\n   * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n   * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n   * `true`.\n   * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n   * `false` otherwise\n   */\n  async _isClientDoneProcessing(timeout) {\n    let ticked = 0;\n    while (!timeout || ticked < timeout) {\n      await new Promise((resolve) => setTimeout(resolve, 1));\n      if (!this._numProcessing) {\n        return true;\n      }\n      ticked++;\n    }\n    return false;\n  }\n  /** Determines whether this SDK is enabled and a transport is present. */\n  _isEnabled() {\n    return this.getOptions().enabled !== false && this._transport !== void 0;\n  }\n  /**\n   * Adds common information to events.\n   *\n   * The information includes release and environment from `options`,\n   * breadcrumbs and context (extra, tags and user) from the scope.\n   *\n   * Information that is already present in the event is never overwritten. For\n   * nested objects, such as the context, keys are merged.\n   *\n   * @param event The original event.\n   * @param hint May contain additional information about the original exception.\n   * @param currentScope A scope containing event metadata.\n   * @returns A new event with more information.\n   */\n  _prepareEvent(event, hint, currentScope, isolationScope) {\n    const options = this.getOptions();\n    const integrations = this.getIntegrationNames();\n    if (!hint.integrations && integrations.length) {\n      hint.integrations = integrations;\n    }\n    this.emit(\"preprocessEvent\", event, hint);\n    if (!event.type) {\n      isolationScope.setLastEventId(event.event_id || hint.event_id);\n    }\n    return prepareEvent(options, event, hint, currentScope, this, isolationScope).then((evt) => {\n      if (evt === null) {\n        return evt;\n      }\n      this.emit(\"postprocessEvent\", evt, hint);\n      evt.contexts = {\n        trace: { ...evt.contexts?.trace, ...getTraceContextFromScope(currentScope) },\n        ...evt.contexts\n      };\n      const dynamicSamplingContext = getDynamicSamplingContextFromScope(this, currentScope);\n      evt.sdkProcessingMetadata = {\n        dynamicSamplingContext,\n        ...evt.sdkProcessingMetadata\n      };\n      return evt;\n    });\n  }\n  /**\n   * Processes the event and logs an error in case of rejection\n   * @param event\n   * @param hint\n   * @param scope\n   */\n  _captureEvent(event, hint = {}, currentScope = getCurrentScope(), isolationScope = getIsolationScope()) {\n    if (DEBUG_BUILD && isErrorEvent(event)) {\n      debug.log(`Captured error event \\`${getPossibleEventMessages(event)[0] || \"<unknown>\"}\\``);\n    }\n    return this._processEvent(event, hint, currentScope, isolationScope).then(\n      (finalEvent) => {\n        return finalEvent.event_id;\n      },\n      (reason) => {\n        if (DEBUG_BUILD) {\n          if (_isDoNotSendEventError(reason)) {\n            debug.log(reason.message);\n          } else if (_isInternalError(reason)) {\n            debug.warn(reason.message);\n          } else {\n            debug.warn(reason);\n          }\n        }\n        return void 0;\n      }\n    );\n  }\n  /**\n   * Processes an event (either error or message) and sends it to Sentry.\n   *\n   * This also adds breadcrumbs and context information to the event. However,\n   * platform specific meta data (such as the User's IP address) must be added\n   * by the SDK implementor.\n   *\n   *\n   * @param event The event to send to Sentry.\n   * @param hint May contain additional information about the original exception.\n   * @param currentScope A scope containing event metadata.\n   * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n   */\n  _processEvent(event, hint, currentScope, isolationScope) {\n    const options = this.getOptions();\n    const { sampleRate } = options;\n    const isTransaction = isTransactionEvent(event);\n    const isError = isErrorEvent(event);\n    const eventType = event.type || \"error\";\n    const beforeSendLabel = `before send for type \\`${eventType}\\``;\n    let beforeSendDropReason = \"before_send\";\n    const parsedSampleRate = typeof sampleRate === \"undefined\" ? void 0 : parseSampleRate(sampleRate);\n    const dataCategory = getDataCategoryByType(event.type);\n    return this._prepareEvent(event, hint, currentScope, isolationScope).then((prepared) => {\n      if (prepared === null) {\n        throw _makeDoNotSendEventError(\"An event processor returned `null`, will not send event.\");\n      }\n      const isInternalException = hint.data?.__sentry__ === true;\n      if (isInternalException) {\n        return prepared;\n      }\n      const result = processBeforeSend(this, options, prepared, hint, () => {\n        beforeSendDropReason = \"callback_error\";\n      });\n      return _validateBeforeSendResult(result, beforeSendLabel);\n    }).then((processedEvent) => {\n      if (processedEvent === null) {\n        this.recordDroppedEvent(beforeSendDropReason, dataCategory);\n        if (isTransaction) {\n          const spans = event.spans || [];\n          this.recordDroppedEvent(beforeSendDropReason, \"span\", 1 + spans.length);\n        }\n        const dropMessage = beforeSendDropReason === \"callback_error\" ? \"threw an error\" : \"returned `null`\";\n        throw _makeDoNotSendEventError(`${beforeSendLabel} ${dropMessage}, will not send event.`);\n      }\n      const session = currentScope.getSession() || isolationScope.getSession();\n      if (isError && session) {\n        this._updateSessionFromEvent(session, processedEvent);\n      }\n      if (isError && typeof parsedSampleRate === \"number\" && safeMathRandom() > parsedSampleRate) {\n        this.recordDroppedEvent(\"sample_rate\", \"error\");\n        throw _makeDoNotSendEventError(\n          `Discarding event because it's not included in the random sample (sampling rate = ${sampleRate})`\n        );\n      }\n      if (isTransaction) {\n        const spanCountBefore = processedEvent.sdkProcessingMetadata?.spanCountBeforeProcessing || 0;\n        const spanCountAfter = processedEvent.spans ? processedEvent.spans.length : 0;\n        const droppedSpanCount = spanCountBefore - spanCountAfter;\n        if (droppedSpanCount > 0) {\n          this.recordDroppedEvent(\"before_send\", \"span\", droppedSpanCount);\n        }\n      }\n      const transactionInfo = processedEvent.transaction_info;\n      if (isTransaction && transactionInfo && processedEvent.transaction !== event.transaction) {\n        const source = \"custom\";\n        processedEvent.transaction_info = {\n          ...transactionInfo,\n          source\n        };\n      }\n      this.sendEvent(processedEvent, hint);\n      return processedEvent;\n    }).then(null, (reason) => {\n      if (_isDoNotSendEventError(reason) || _isInternalError(reason)) {\n        throw reason;\n      }\n      this.captureException(reason, {\n        mechanism: {\n          handled: false,\n          type: \"internal\"\n        },\n        data: {\n          __sentry__: true\n        },\n        originalException: reason\n      });\n      throw _makeInternalError(\n        `Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\nReason: ${reason}`\n      );\n    });\n  }\n  /**\n   * Occupies the client with processing and event\n   */\n  _process(taskProducer, dataCategory) {\n    this._numProcessing++;\n    void this._promiseBuffer.add(taskProducer).then(\n      (value) => {\n        this._numProcessing--;\n        return value;\n      },\n      (reason) => {\n        this._numProcessing--;\n        if (reason === SENTRY_BUFFER_FULL_ERROR) {\n          this.recordDroppedEvent(\"queue_overflow\", dataCategory);\n        }\n        return reason;\n      }\n    );\n  }\n  /**\n   * Clears outcomes on this client and returns them.\n   */\n  _clearOutcomes() {\n    const outcomes = this._outcomes;\n    this._outcomes = {};\n    return Object.entries(outcomes).map(([key, quantity]) => {\n      const [reason, category] = key.split(\":\");\n      return {\n        reason,\n        category,\n        quantity\n      };\n    });\n  }\n  /**\n   * Sends client reports as an envelope.\n   */\n  _flushOutcomes() {\n    DEBUG_BUILD && debug.log(\"Flushing outcomes...\");\n    const outcomes = this._clearOutcomes();\n    if (outcomes.length === 0) {\n      DEBUG_BUILD && debug.log(\"No outcomes to send\");\n      return;\n    }\n    if (!this._dsn) {\n      DEBUG_BUILD && debug.log(\"No dsn provided, will not send outcomes\");\n      return;\n    }\n    DEBUG_BUILD && debug.log(\"Sending outcomes:\", outcomes);\n    const envelope = createClientReportEnvelope(outcomes, this._options.tunnel && dsnToString(this._dsn));\n    this.sendEnvelope(envelope);\n  }\n}\nfunction _validateBeforeSendResult(beforeSendResult, beforeSendLabel) {\n  const invalidValueError = `${beforeSendLabel} must return \\`null\\` or a valid event.`;\n  if (isThenable(beforeSendResult)) {\n    return beforeSendResult.then(\n      (event) => {\n        if (!isPlainObject(event) && event !== null) {\n          throw _makeInternalError(invalidValueError);\n        }\n        return event;\n      },\n      (e) => {\n        throw _makeInternalError(`${beforeSendLabel} rejected with ${e}`);\n      }\n    );\n  } else if (!isPlainObject(beforeSendResult) && beforeSendResult !== null) {\n    throw _makeInternalError(invalidValueError);\n  }\n  return beforeSendResult;\n}\nfunction processBeforeSend(client, options, event, hint, onCallbackError) {\n  const {\n    beforeSend,\n    ignoreSpans,\n    // oxlint-disable-next-line typescript/no-deprecated\n    beforeSendTransaction\n  } = options;\n  const beforeSendSpan = isStaticBeforeSendSpanCallback(options.beforeSendSpan) && options.beforeSendSpan;\n  let processedEvent = event;\n  if (isErrorEvent(processedEvent) && beforeSend) {\n    const errorEvent = processedEvent;\n    return safeCallback(\n      DEBUG_BUILD ? \"The `beforeSend` callback threw an error, dropping the event:\" : \"\",\n      () => beforeSend(errorEvent, hint),\n      () => {\n        onCallbackError();\n        return null;\n      }\n    );\n  }\n  if (isTransactionEvent(processedEvent)) {\n    if (beforeSendSpan || ignoreSpans) {\n      const rootSpanJson = convertTransactionEventToSpanJson(processedEvent);\n      if (ignoreSpans?.length && shouldIgnoreSpan(\n        { description: rootSpanJson.description, op: rootSpanJson.op, attributes: rootSpanJson.data },\n        ignoreSpans\n      )) {\n        return null;\n      }\n      if (beforeSendSpan) {\n        const processedRootSpanJson = applyBeforeSendSpanCallback(rootSpanJson, beforeSendSpan);\n        processedEvent = merge(event, convertSpanJsonToTransactionEvent(processedRootSpanJson));\n      }\n      if (processedEvent.spans) {\n        const processedSpans = [];\n        const initialSpans = processedEvent.spans;\n        for (const span of initialSpans) {\n          if (ignoreSpans?.length && shouldIgnoreSpan({ description: span.description, op: span.op, attributes: span.data }, ignoreSpans)) {\n            reparentChildSpans(initialSpans, span);\n            continue;\n          }\n          if (beforeSendSpan) {\n            processedSpans.push(applyBeforeSendSpanCallback(span, beforeSendSpan));\n          } else {\n            processedSpans.push(span);\n          }\n        }\n        const droppedSpans = processedEvent.spans.length - processedSpans.length;\n        if (droppedSpans) {\n          client.recordDroppedEvent(\"before_send\", \"span\", droppedSpans);\n        }\n        processedEvent.spans = processedSpans;\n      }\n    }\n    if (beforeSendTransaction) {\n      if (processedEvent.spans) {\n        const spanCountBefore = processedEvent.spans.length;\n        processedEvent.sdkProcessingMetadata = {\n          ...event.sdkProcessingMetadata,\n          spanCountBeforeProcessing: spanCountBefore\n        };\n      }\n      return safeCallback(\n        DEBUG_BUILD ? \"The `beforeSendTransaction` callback threw an error, dropping the event:\" : \"\",\n        () => beforeSendTransaction(processedEvent, hint),\n        () => {\n          onCallbackError();\n          return null;\n        }\n      );\n    }\n  }\n  return processedEvent;\n}\nfunction isErrorEvent(event) {\n  return event.type === void 0;\n}\nfunction isTransactionEvent(event) {\n  return event.type === \"transaction\";\n}\nfunction estimateMetricSizeInBytes(metric) {\n  let weight = 0;\n  if (metric.name) {\n    weight += metric.name.length * 2;\n  }\n  weight += 8;\n  return weight + estimateAttributesSizeInBytes(metric.attributes);\n}\nfunction estimateLogSizeInBytes(log) {\n  let weight = 0;\n  if (log.message) {\n    weight += log.message.length * 2;\n  }\n  return weight + estimateAttributesSizeInBytes(log.attributes);\n}\nfunction estimateAttributesSizeInBytes(attributes) {\n  if (!attributes) {\n    return 0;\n  }\n  let weight = 0;\n  Object.values(attributes).forEach((value) => {\n    if (Array.isArray(value)) {\n      weight += value.length * estimatePrimitiveSizeInBytes(value[0]);\n    } else if (isPrimitive(value)) {\n      weight += estimatePrimitiveSizeInBytes(value);\n    } else {\n      weight += 100;\n    }\n  });\n  return weight;\n}\nfunction estimatePrimitiveSizeInBytes(value) {\n  if (typeof value === \"string\") {\n    return value.length * 2;\n  } else if (typeof value === \"number\") {\n    return 8;\n  } else if (typeof value === \"boolean\") {\n    return 4;\n  }\n  return 0;\n}\n\nexport { Client };\n//# sourceMappingURL=client.js.map\n","import { consoleSandbox } from './debug-logger.js';\n\nfunction maybeWarnAboutIgnoredTransactionOptions(options) {\n  if (options.traceLifecycle !== \"stream\" || // oxlint-disable-next-line typescript/no-deprecated\n  !(options.beforeSendTransaction || options.ignoreTransactions?.length)) {\n    return;\n  }\n  consoleSandbox(() => {\n    console.warn(\n      \"[Sentry] `beforeSendTransaction` and `ignoreTransactions` are ignored with `traceLifecycle: 'stream'` (enabled by default). Use `beforeSendSpan` and `ignoreSpans` instead, or set `traceLifecycle: 'static'`.\"\n    );\n  });\n}\n\nexport { maybeWarnAboutIgnoredTransactionOptions };\n//# sourceMappingURL=warnAboutIgnoredTransactionOptions.js.map\n","import { SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME, SEMANTIC_ATTRIBUTE_PROFILE_ID } from '../semanticAttributes.js';\n\nfunction convertTransactionEventToSpanJson(event) {\n  const { trace_id, parent_span_id, span_id, status, origin, data, op } = event.contexts?.trace ?? {};\n  return {\n    data: data ?? {},\n    description: event.transaction,\n    op,\n    parent_span_id,\n    span_id: span_id ?? \"\",\n    start_timestamp: event.start_timestamp ?? 0,\n    status: status ?? \"ok\",\n    timestamp: event.timestamp,\n    trace_id: trace_id ?? \"\",\n    origin,\n    profile_id: data?.[SEMANTIC_ATTRIBUTE_PROFILE_ID],\n    exclusive_time: data?.[SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME],\n    measurements: event.measurements,\n    is_segment: true\n  };\n}\nfunction convertSpanJsonToTransactionEvent(span) {\n  return {\n    type: \"transaction\",\n    timestamp: span.timestamp,\n    start_timestamp: span.start_timestamp,\n    transaction: span.description,\n    contexts: {\n      trace: {\n        trace_id: span.trace_id,\n        span_id: span.span_id,\n        parent_span_id: span.parent_span_id,\n        op: span.op,\n        status: span.status,\n        origin: span.origin,\n        data: {\n          ...span.data,\n          ...span.profile_id && { [SEMANTIC_ATTRIBUTE_PROFILE_ID]: span.profile_id },\n          ...span.exclusive_time && { [SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME]: span.exclusive_time }\n        }\n      }\n    },\n    measurements: span.measurements\n  };\n}\n\nexport { convertSpanJsonToTransactionEvent, convertTransactionEventToSpanJson };\n//# sourceMappingURL=transactionEvent.js.map\n","import { createEnvelope } from './envelope.js';\nimport { dateTimestampInSeconds } from './time.js';\n\nfunction createClientReportEnvelope(discarded_events, dsn, timestamp) {\n  const clientReportItem = [\n    { type: \"client_report\" },\n    {\n      timestamp: timestamp || dateTimestampInSeconds(),\n      discarded_events\n    }\n  ];\n  return createEnvelope(dsn ? { dsn } : {}, [clientReportItem]);\n}\n\nexport { createClientReportEnvelope };\n//# sourceMappingURL=clientreport.js.map\n","import { getCurrentScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { debug, consoleSandbox } from './utils/debug-logger.js';\n\nfunction initAndBind(clientClass, options) {\n  if (options.debug === true) {\n    if (DEBUG_BUILD) {\n      debug.enable();\n    } else {\n      consoleSandbox(() => {\n        console.warn(\"[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.\");\n      });\n    }\n  }\n  const scope = getCurrentScope();\n  scope.update(options.initialScope);\n  const client = new clientClass(options);\n  setCurrentClient(client);\n  client.init();\n  return client;\n}\nfunction setCurrentClient(client) {\n  getCurrentScope().setClient(client);\n}\n\nexport { initAndBind, setCurrentClient };\n//# sourceMappingURL=sdk.js.map\n","const FILTERED_VALUE = \"[Filtered]\";\nconst SENSITIVE_KEY_SNIPPETS = [\n  \"auth\",\n  \"token\",\n  \"secret\",\n  \"session\",\n  // for the user_session cookie\n  \"password\",\n  \"passwd\",\n  \"pwd\",\n  \"key\",\n  \"jwt\",\n  \"bearer\",\n  \"sso\",\n  \"saml\",\n  \"csrf\",\n  \"xsrf\",\n  \"credentials\",\n  \"sid\",\n  \"identity\",\n  // Always treat cookie headers as sensitive in case individual key-value cookie pairs cannot properly be extracted\n  \"set-cookie\",\n  \"cookie\"\n];\nconst SENSITIVE_COOKIE_NAME_SNIPPETS = [\n  // Express / Connect default session cookie\n  \".sid\",\n  // Opaque session ids (PHPSESSID, ASPSESSIONID*, BIGipServer*, *sessid*, …)\n  \"sessid\",\n  // Laravel etc. \"remember me\" tokens\n  \"remember\",\n  // OIDC / OAuth auxiliary (`oauth*` covered by header snippet `auth`)\n  \"oidc\",\n  \"pkce\",\n  \"nonce\",\n  // RFC 6265bis high-security cookie name prefixes\n  \"__secure-\",\n  \"__host-\",\n  // Load balancer / CDN sticky-session cookies (opaque routing tokens)\n  \"awsalb\",\n  \"awselb\",\n  \"akamai\",\n  // BaaS / IdP session cookies (names often omit \"session\")\n  \"__stripe\",\n  \"cognito\",\n  \"firebase\",\n  \"supabase\",\n  \"sb-\",\n  // Step-up / MFA cookies\n  \"mfa\",\n  \"2fa\"\n];\n\nexport { FILTERED_VALUE, SENSITIVE_COOKIE_NAME_SNIPPETS, SENSITIVE_KEY_SNIPPETS };\n//# sourceMappingURL=filtering-snippets.js.map\n","import { FILTERED_VALUE, SENSITIVE_KEY_SNIPPETS } from './filtering-snippets.js';\n\nfunction isSensitiveKey(lower, denySnippets) {\n  return denySnippets.some((snippet) => lower.includes(snippet));\n}\nfunction shouldFilterDataKey(key, behavior, additionalDenyTerms) {\n  if (behavior === false) {\n    return true;\n  }\n  const lowerKey = key.toLowerCase();\n  const denySnippets = additionalDenyTerms != null ? [...SENSITIVE_KEY_SNIPPETS, ...additionalDenyTerms] : SENSITIVE_KEY_SNIPPETS;\n  if (isSensitiveKey(lowerKey, denySnippets)) {\n    return true;\n  }\n  if (behavior === true) {\n    return false;\n  }\n  const terms = \"deny\" in behavior ? behavior.deny : behavior.allow;\n  const matchesConfiguredTerm = terms.some((term) => lowerKey.includes(term.toLowerCase()));\n  return \"deny\" in behavior ? matchesConfiguredTerm : !matchesConfiguredTerm;\n}\nfunction filterKeyValueData(data, behavior, additionalDenyTerms) {\n  if (behavior === false) {\n    return {};\n  }\n  const result = {};\n  for (const key of Object.keys(data)) {\n    result[key] = shouldFilterDataKey(key, behavior, additionalDenyTerms) ? FILTERED_VALUE : data[key];\n  }\n  return result;\n}\n\nexport { filterKeyValueData, shouldFilterDataKey };\n//# sourceMappingURL=filterKeyValueData.js.map\n","import { filterQueryParams } from './filterQueryParams.js';\n\nfunction filterUrlQuery(url, behavior) {\n  const fragmentStart = url.indexOf(\"#\");\n  const queryEnd = fragmentStart === -1 ? url.length : fragmentStart;\n  const queryStart = url.indexOf(\"?\");\n  if (queryStart === -1 || queryStart > queryEnd) {\n    return url;\n  }\n  const prefix = url.slice(0, queryStart);\n  const query = url.slice(queryStart + 1, queryEnd);\n  const suffix = url.slice(queryEnd);\n  const filtered = filterQueryParams(query, behavior);\n  return filtered ? `${prefix}?${filtered}${suffix}` : `${prefix}${suffix}`;\n}\n\nexport { filterUrlQuery };\n//# sourceMappingURL=filterUrlQuery.js.map\n","import { FILTERED_VALUE } from './filtering-snippets.js';\nimport { shouldFilterDataKey } from './filterKeyValueData.js';\n\nfunction filterQueryParams(queryString, behavior) {\n  if (!queryString || behavior === false) {\n    return void 0;\n  }\n  return queryString.split(\"&\").map((pair) => {\n    const separatorIndex = pair.indexOf(\"=\");\n    const encodedKey = separatorIndex === -1 ? pair : pair.slice(0, separatorIndex);\n    const key = new URLSearchParams(`${encodedKey}=`).keys().next().value;\n    return key !== void 0 && shouldFilterDataKey(key, behavior) ? `${encodedKey}=${FILTERED_VALUE}` : pair;\n  }).join(\"&\");\n}\n\nexport { filterQueryParams };\n//# sourceMappingURL=filterQueryParams.js.map\n","import { getClient } from '../../currentScopes.js';\nimport { filterQueryParams } from './filterQueryParams.js';\nimport { filterUrlQuery } from './filterUrlQuery.js';\n\nfunction urlQueryParamsBehavior(client) {\n  return (client ?? getClient())?.getDataCollectionOptions().urlQueryParams ?? true;\n}\nfunction filterCollectedUrl(url, client) {\n  return url === void 0 ? void 0 : filterUrlQuery(url, urlQueryParamsBehavior(client));\n}\nfunction filterCollectedUrlQuery(query, client) {\n  return query ? filterQueryParams(query, urlQueryParamsBehavior(client)) : void 0;\n}\n\nexport { filterCollectedUrl, filterCollectedUrlQuery };\n//# sourceMappingURL=filterCollectedUrl.js.map\n","import { HTTP_ROUTE, URL_TEMPLATE, URL_FULL, URL_QUERY, URL_FRAGMENT, URL_PATH, URL_PORT, URL_SCHEME, SERVER_ADDRESS, URL_DOMAIN, SENTRY_SEGMENT_NAME_SOURCE } from '@sentry/conventions/attributes';\nimport { SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD, SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN } from '../semanticAttributes.js';\nimport { filterCollectedUrl, filterCollectedUrlQuery } from './data-collection/filterCollectedUrl.js';\n\nconst DEFAULT_BASE_URL = \"thismessage:/\";\nfunction isURLObjectRelative(url) {\n  return \"isRelative\" in url;\n}\nfunction parseStringToURLObject(url, urlBase) {\n  const isRelative = url.indexOf(\"://\") <= 0 && url.indexOf(\"//\") !== 0;\n  const base = urlBase ?? (isRelative ? DEFAULT_BASE_URL : void 0);\n  try {\n    if (\"canParse\" in URL && !URL.canParse(url, base)) {\n      return void 0;\n    }\n    const fullUrlObject = new URL(url, base);\n    if (isRelative) {\n      return {\n        isRelative,\n        pathname: fullUrlObject.pathname,\n        search: fullUrlObject.search,\n        hash: fullUrlObject.hash\n      };\n    }\n    return fullUrlObject;\n  } catch {\n  }\n  return void 0;\n}\nfunction getSanitizedUrlStringFromUrlObject(url) {\n  if (isURLObjectRelative(url)) {\n    return url.pathname;\n  }\n  const newUrl = new URL(url);\n  newUrl.search = \"\";\n  newUrl.hash = \"\";\n  if ([\"80\", \"443\"].includes(newUrl.port)) {\n    newUrl.port = \"\";\n  }\n  if (newUrl.password) {\n    newUrl.password = \"%filtered%\";\n  }\n  if (newUrl.username) {\n    newUrl.username = \"%filtered%\";\n  }\n  return newUrl.toString();\n}\nfunction getUrlQuery(query) {\n  return query?.replace(/^\\?/, \"\") || void 0;\n}\nfunction getUrlFragment(fragment) {\n  return fragment?.replace(/^#/, \"\") || void 0;\n}\nfunction getUrlDomain(url, base) {\n  try {\n    return new URL(url, base).hostname || void 0;\n  } catch {\n    return void 0;\n  }\n}\nfunction getHttpSpanNameFromUrlObject(urlObject, kind, request, routeName) {\n  const method = request?.method?.toUpperCase() ?? \"GET\";\n  const route = routeName ? routeName : urlObject ? kind === \"client\" ? getSanitizedUrlStringFromUrlObject(urlObject) : urlObject.pathname : \"/\";\n  return `${method} ${route}`;\n}\nfunction getHttpSpanDetailsFromUrlObject(urlObject, kind, spanOrigin, request, routeName, client) {\n  const attributes = {\n    [SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN]: spanOrigin\n  };\n  let nameSource = \"url\";\n  if (routeName) {\n    attributes[kind === \"server\" ? HTTP_ROUTE : URL_TEMPLATE] = routeName;\n    nameSource = \"route\";\n  }\n  if (request?.method) {\n    attributes[SEMANTIC_ATTRIBUTE_HTTP_REQUEST_METHOD] = request.method.toUpperCase();\n  }\n  if (urlObject) {\n    attributes[URL_FULL] = filterCollectedUrl(\n      isURLObjectRelative(urlObject) ? getSanitizedUrlStringFromUrlObject(urlObject) : urlObject.href,\n      client\n    );\n    attributes[URL_QUERY] = filterCollectedUrlQuery(getUrlQuery(urlObject.search), client);\n    attributes[URL_FRAGMENT] = getUrlFragment(urlObject.hash);\n    if (urlObject.pathname) {\n      attributes[URL_PATH] = urlObject.pathname;\n      if (urlObject.pathname === \"/\") {\n        nameSource = \"route\";\n      }\n    }\n    if (!isURLObjectRelative(urlObject)) {\n      if (urlObject.port) {\n        attributes[URL_PORT] = urlObject.port;\n      }\n      if (urlObject.protocol) {\n        attributes[URL_SCHEME] = urlObject.protocol;\n      }\n      if (urlObject.hostname) {\n        attributes[kind === \"server\" ? SERVER_ADDRESS : URL_DOMAIN] = urlObject.hostname;\n      }\n    }\n  }\n  if (kind === \"server\") {\n    attributes[SENTRY_SEGMENT_NAME_SOURCE] = nameSource;\n  }\n  return [getHttpSpanNameFromUrlObject(urlObject, kind, request, routeName), attributes];\n}\nfunction parseUrl(url) {\n  if (!url) {\n    return {};\n  }\n  const match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n  if (!match) {\n    return {};\n  }\n  const query = match[6] || \"\";\n  const fragment = match[8] || \"\";\n  return {\n    host: match[4],\n    path: match[5],\n    protocol: match[2],\n    search: query,\n    hash: fragment,\n    relative: match[5] + query + fragment\n    // everything minus origin\n  };\n}\nfunction stripUrlQueryAndFragment(urlPath) {\n  return urlPath.split(/[?#]/, 1)[0];\n}\nfunction getSanitizedUrlString(url) {\n  const { protocol, host, path } = url;\n  const filteredHost = host?.replace(/^.*@/, \"[filtered]:[filtered]@\").replace(/(:80)$/, \"\").replace(/(:443)$/, \"\") || \"\";\n  return `${protocol ? `${protocol}://` : \"\"}${filteredHost}${path || \"\"}`;\n}\nfunction stripDataUrlContent(url, includeDataPrefix = true) {\n  if (url.startsWith(\"data:\")) {\n    const match = url.match(/^data:([^;,]+)/);\n    const mimeType = match ? match[1] : \"text/plain\";\n    const isBase64 = url.includes(\";base64,\");\n    const dataStart = url.indexOf(\",\");\n    let dataPrefix = \"\";\n    if (includeDataPrefix && dataStart !== -1) {\n      const data = url.slice(dataStart + 1);\n      dataPrefix = data.length > 10 ? `${data.slice(0, 10)}... [truncated]` : data;\n    }\n    return `data:${mimeType}${isBase64 ? \",base64\" : \"\"}${dataPrefix ? `,${dataPrefix}` : \"\"}`;\n  }\n  return url;\n}\n\nexport { getHttpSpanDetailsFromUrlObject, getSanitizedUrlString, getSanitizedUrlStringFromUrlObject, getUrlDomain, getUrlFragment, getUrlQuery, isURLObjectRelative, parseStringToURLObject, parseUrl, stripDataUrlContent, stripUrlQueryAndFragment };\n//# sourceMappingURL=url.js.map\n","function addAutoIpAddressToSession(session) {\n  if (\"aggregates\" in session) {\n    if (session.attrs?.[\"ip_address\"] === void 0) {\n      session.attrs = {\n        ...session.attrs,\n        ip_address: \"{{auto}}\"\n      };\n    }\n  } else {\n    if (session.ipAddress === void 0) {\n      session.ipAddress = \"{{auto}}\";\n    }\n  }\n}\n\nexport { addAutoIpAddressToSession };\n//# sourceMappingURL=ipAddress.js.map\n","import { getClient, getIsolationScope } from './currentScopes.js';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { consoleSandbox } from './utils/debug-logger.js';\nimport { safeCallback } from './utils/safeCallback.js';\nimport { dateTimestampInSeconds } from './utils/time.js';\n\nconst DEFAULT_BREADCRUMBS = 100;\nfunction addBreadcrumb(breadcrumb, hint) {\n  const client = getClient();\n  const isolationScope = getIsolationScope();\n  if (!client) return;\n  const { beforeBreadcrumb = null, maxBreadcrumbs = DEFAULT_BREADCRUMBS } = client.getOptions();\n  if (maxBreadcrumbs <= 0) return;\n  const timestamp = dateTimestampInSeconds();\n  const mergedBreadcrumb = { timestamp, ...breadcrumb };\n  const finalBreadcrumb = beforeBreadcrumb ? safeCallback(\n    DEBUG_BUILD ? \"The `beforeBreadcrumb` callback threw an error, dropping the breadcrumb:\" : \"\",\n    () => consoleSandbox(() => beforeBreadcrumb(mergedBreadcrumb, hint)),\n    () => null\n  ) : mergedBreadcrumb;\n  if (finalBreadcrumb === null) return;\n  if (client.emit) {\n    client.emit(\"beforeAddBreadcrumb\", finalBreadcrumb, hint);\n  }\n  isolationScope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n}\n\nexport { addBreadcrumb };\n//# sourceMappingURL=breadcrumbs.js.map\n","import { getClient } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\nimport { getOriginalFunction } from '../utils/object.js';\n\nconst INTEGRATION_NAME = \"FunctionToString\";\nconst SETUP_CLIENTS = /* @__PURE__ */ new WeakMap();\nconst _functionToStringIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      const originalFunctionToString = Function.prototype.toString;\n      try {\n        Function.prototype.toString = function(...args) {\n          const originalFunction = getOriginalFunction(this);\n          let unwrappedFunction;\n          try {\n            if (SETUP_CLIENTS.has(getClient()) && originalFunction !== void 0) {\n              unwrappedFunction = originalFunction;\n            }\n          } catch {\n          }\n          return originalFunctionToString.apply(unwrappedFunction ?? this, args);\n        };\n      } catch {\n      }\n    },\n    setup(client) {\n      SETUP_CLIENTS.set(client, true);\n    }\n  };\n});\nconst functionToStringIntegration = defineIntegration(_functionToStringIntegration);\n\nexport { functionToStringIntegration };\n//# sourceMappingURL=functiontostring.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { defineIntegration } from '../integration.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getPossibleEventMessages } from '../utils/eventUtils.js';\nimport { getEventDescription } from '../utils/misc.js';\nimport { stringMatchesSomePattern } from '../utils/string.js';\n\nconst DEFAULT_IGNORE_ERRORS = [\n  /^Script error\\.?$/,\n  /^Javascript error: Script error\\.? on line 0$/,\n  /^ResizeObserver loop completed with undelivered notifications.$/,\n  // The browser logs this when a ResizeObserver handler takes a bit longer. Usually this is not an actual issue though. It indicates slowness.\n  /^Cannot redefine property: googletag$/,\n  // This is thrown when google tag manager is used in combination with an ad blocker\n  /^Can't find variable: gmo$/,\n  // Error from Google Search App https://issuetracker.google.com/issues/396043331\n  /^undefined is not an object \\(evaluating 'a\\.[A-Z]'\\)$/,\n  // Random error that happens but not actionable or noticeable to end-users.\n  /can't redefine non-configurable property \"solana\"/,\n  // Probably a browser extension or custom browser (Brave) throwing this error\n  /vv\\(\\)\\.getRestrictions is not a function/,\n  // Error thrown by GTM, seemingly not affecting end-users\n  /Can't find variable: _AutofillCallbackHandler/,\n  // Unactionable error in instagram webview https://developers.facebook.com/community/threads/320013549791141/\n  /Object Not Found Matching Id:\\d+, MethodName:simulateEvent/,\n  // unactionable error from CEFSharp, a .NET library that embeds chromium in .NET apps\n  /Java exception was raised during method invocation$/,\n  // error from Facebook Mobile browser (https://github.com/getsentry/sentry-javascript/issues/15065, https://github.com/getsentry/sentry-javascript/issues/23733)\n  /Java object is gone$/\n  // error from Facebook Mobile browser (https://github.com/getsentry/sentry-javascript/issues/15065, https://github.com/getsentry/sentry-javascript/issues/23733)\n];\nconst INTEGRATION_NAME = \"EventFilters\";\nconst eventFiltersIntegration = defineIntegration((options = {}) => {\n  let mergedOptions;\n  return {\n    name: INTEGRATION_NAME,\n    setup(client) {\n      const clientOptions = client.getOptions();\n      mergedOptions = _mergeOptions(options, clientOptions);\n    },\n    processEvent(event, _hint, client) {\n      if (!mergedOptions) {\n        const clientOptions = client.getOptions();\n        mergedOptions = _mergeOptions(options, clientOptions);\n      }\n      return _shouldDropEvent(event, mergedOptions) ? null : event;\n    }\n  };\n});\nfunction _mergeOptions(internalOptions = {}, clientOptions = {}) {\n  return {\n    allowUrls: [...internalOptions.allowUrls || [], ...clientOptions.allowUrls || []],\n    denyUrls: [...internalOptions.denyUrls || [], ...clientOptions.denyUrls || []],\n    ignoreErrors: [\n      ...internalOptions.ignoreErrors || [],\n      ...clientOptions.ignoreErrors || [],\n      ...internalOptions.disableErrorDefaults ? [] : DEFAULT_IGNORE_ERRORS\n    ],\n    ignoreTransactions: [...internalOptions.ignoreTransactions || [], ...clientOptions.ignoreTransactions || []]\n  };\n}\nfunction _shouldDropEvent(event, options) {\n  if (!event.type) {\n    if (_isIgnoredError(event, options.ignoreErrors)) {\n      DEBUG_BUILD && debug.warn(\n        `Event dropped due to being matched by \\`ignoreErrors\\` option.\nEvent: ${getEventDescription(event)}`\n      );\n      return true;\n    }\n    if (_isUselessError(event)) {\n      DEBUG_BUILD && debug.warn(\n        `Event dropped due to not having an error message, error type or stacktrace.\nEvent: ${getEventDescription(\n          event\n        )}`\n      );\n      return true;\n    }\n    if (_isDeniedUrl(event, options.denyUrls)) {\n      DEBUG_BUILD && debug.warn(\n        `Event dropped due to being matched by \\`denyUrls\\` option.\nEvent: ${getEventDescription(\n          event\n        )}.\nUrl: ${_getEventFilterUrl(event)}`\n      );\n      return true;\n    }\n    if (!_isAllowedUrl(event, options.allowUrls)) {\n      DEBUG_BUILD && debug.warn(\n        `Event dropped due to not being matched by \\`allowUrls\\` option.\nEvent: ${getEventDescription(\n          event\n        )}.\nUrl: ${_getEventFilterUrl(event)}`\n      );\n      return true;\n    }\n  } else if (event.type === \"transaction\") {\n    if (_isIgnoredTransaction(event, options.ignoreTransactions)) {\n      DEBUG_BUILD && debug.warn(\n        `Event dropped due to being matched by \\`ignoreTransactions\\` option.\nEvent: ${getEventDescription(event)}`\n      );\n      return true;\n    }\n  }\n  return false;\n}\nfunction _isIgnoredError(event, ignoreErrors) {\n  if (!ignoreErrors?.length) {\n    return false;\n  }\n  return getPossibleEventMessages(event).some((message) => stringMatchesSomePattern(message, ignoreErrors));\n}\nfunction _isIgnoredTransaction(event, ignoreTransactions) {\n  if (!ignoreTransactions?.length) {\n    return false;\n  }\n  const name = event.transaction;\n  return name ? stringMatchesSomePattern(name, ignoreTransactions) : false;\n}\nfunction _isDeniedUrl(event, denyUrls) {\n  if (!denyUrls?.length) {\n    return false;\n  }\n  const url = _getEventFilterUrl(event);\n  return !url ? false : stringMatchesSomePattern(url, denyUrls);\n}\nfunction _isAllowedUrl(event, allowUrls) {\n  if (!allowUrls?.length) {\n    return true;\n  }\n  const url = _getEventFilterUrl(event);\n  return !url ? true : stringMatchesSomePattern(url, allowUrls);\n}\nfunction _getLastValidUrl(frames = []) {\n  for (let i = frames.length - 1; i >= 0; i--) {\n    const frame = frames[i];\n    if (frame && frame.filename !== \"<anonymous>\" && frame.filename !== \"[native code]\") {\n      return frame.filename || null;\n    }\n  }\n  return null;\n}\nfunction _getEventFilterUrl(event) {\n  try {\n    const rootException = [...event.exception?.values ?? []].reverse().find((value) => value.mechanism?.parent_id === void 0 && value.stacktrace?.frames?.length);\n    const frames = rootException?.stacktrace?.frames;\n    return frames ? _getLastValidUrl(frames) : null;\n  } catch {\n    DEBUG_BUILD && debug.error(`Cannot extract url for event ${getEventDescription(event)}`);\n    return null;\n  }\n}\nfunction _isUselessError(event) {\n  if (!event.exception?.values?.length) {\n    return false;\n  }\n  return (\n    // No top-level message\n    !event.message && // There are no exception values that have a stacktrace, a non-generic-Error type or value\n    !event.exception.values.some((value) => value.stacktrace || value.type && value.type !== \"Error\" || value.value)\n  );\n}\n\nexport { eventFiltersIntegration };\n//# sourceMappingURL=eventFilters.js.map\n","function getPossibleEventMessages(event) {\n  const possibleMessages = [];\n  if (event.message) {\n    possibleMessages.push(event.message);\n  }\n  try {\n    const lastException = event.exception.values[event.exception.values.length - 1];\n    if (lastException?.value) {\n      possibleMessages.push(lastException.value);\n      if (lastException.type) {\n        possibleMessages.push(`${lastException.type}: ${lastException.value}`);\n      }\n    }\n  } catch {\n  }\n  return possibleMessages;\n}\n\nexport { getPossibleEventMessages };\n//# sourceMappingURL=eventUtils.js.map\n","import { isError } from './is.js';\n\nfunction applyAggregateErrorsToEvent(exceptionFromErrorImplementation, parser, key, limit, event, hint) {\n  if (!event.exception?.values || !hint || !isError(hint.originalException)) {\n    return;\n  }\n  const originalException = event.exception.values.length > 0 ? event.exception.values[event.exception.values.length - 1] : void 0;\n  if (originalException) {\n    event.exception.values = aggregateExceptionsFromError(\n      exceptionFromErrorImplementation,\n      parser,\n      limit,\n      hint.originalException,\n      key,\n      event.exception.values,\n      originalException,\n      0\n    );\n  }\n}\nfunction aggregateExceptionsFromError(exceptionFromErrorImplementation, parser, limit, error, key, prevExceptions, exception, exceptionId) {\n  if (prevExceptions.length >= limit + 1) {\n    return prevExceptions;\n  }\n  let newExceptions = [...prevExceptions];\n  if (isError(error[key])) {\n    applyExceptionGroupFieldsForParentException(exception, exceptionId, error);\n    const newException = exceptionFromErrorImplementation(parser, error[key]);\n    const newExceptionId = newExceptions.length;\n    applyExceptionGroupFieldsForChildException(newException, key, newExceptionId, exceptionId);\n    newExceptions = aggregateExceptionsFromError(\n      exceptionFromErrorImplementation,\n      parser,\n      limit,\n      error[key],\n      key,\n      [newException, ...newExceptions],\n      newException,\n      newExceptionId\n    );\n  }\n  if (isExceptionGroup(error)) {\n    error.errors.forEach((childError, i) => {\n      if (isError(childError)) {\n        applyExceptionGroupFieldsForParentException(exception, exceptionId, error);\n        const newException = exceptionFromErrorImplementation(parser, childError);\n        const newExceptionId = newExceptions.length;\n        applyExceptionGroupFieldsForChildException(newException, `errors[${i}]`, newExceptionId, exceptionId);\n        newExceptions = aggregateExceptionsFromError(\n          exceptionFromErrorImplementation,\n          parser,\n          limit,\n          childError,\n          key,\n          [newException, ...newExceptions],\n          newException,\n          newExceptionId\n        );\n      }\n    });\n  }\n  return newExceptions;\n}\nfunction isExceptionGroup(error) {\n  return Array.isArray(error.errors);\n}\nfunction applyExceptionGroupFieldsForParentException(exception, exceptionId, error) {\n  exception.mechanism = {\n    handled: true,\n    type: \"auto.core.linked_errors\",\n    ...isExceptionGroup(error) && { is_exception_group: true },\n    ...exception.mechanism,\n    exception_id: exceptionId\n  };\n}\nfunction applyExceptionGroupFieldsForChildException(exception, source, exceptionId, parentId) {\n  exception.mechanism = {\n    handled: true,\n    ...exception.mechanism,\n    type: \"chained\",\n    source,\n    exception_id: exceptionId,\n    parent_id: parentId\n  };\n}\n\nexport { applyAggregateErrorsToEvent };\n//# sourceMappingURL=aggregate-errors.js.map\n","import { isParameterizedString, isError, isPlainObject, isErrorEvent } from './is.js';\nimport { addExceptionMechanism, addExceptionTypeValue } from './misc.js';\nimport { normalizeToSize } from './normalize.js';\nimport { extractExceptionKeysForMessage } from './object.js';\n\nfunction parseStackFrames(stackParser, error) {\n  return stackParser(error.stack || \"\", 1);\n}\nfunction hasSentryFetchUrlHost(error) {\n  return isError(error) && \"__sentry_fetch_url_host__\" in error && typeof error.__sentry_fetch_url_host__ === \"string\";\n}\nfunction _enhanceErrorWithSentryInfo(error) {\n  if (hasSentryFetchUrlHost(error)) {\n    return `${error.message} (${error.__sentry_fetch_url_host__})`;\n  }\n  return error.message;\n}\nfunction exceptionFromError(stackParser, error) {\n  const exception = {\n    type: error.name || error.constructor.name,\n    value: _enhanceErrorWithSentryInfo(error)\n  };\n  const frames = parseStackFrames(stackParser, error);\n  if (frames.length) {\n    exception.stacktrace = { frames };\n  }\n  return exception;\n}\nfunction getErrorPropertyFromObject(obj) {\n  for (const prop in obj) {\n    if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n      const value = obj[prop];\n      if (isError(value)) {\n        return value;\n      }\n    }\n  }\n  return void 0;\n}\nfunction getMessageForObject(exception) {\n  if (\"name\" in exception && typeof exception.name === \"string\") {\n    let message = `'${exception.name}' captured as exception`;\n    if (\"message\" in exception && typeof exception.message === \"string\") {\n      message += ` with message '${exception.message}'`;\n    }\n    return message;\n  } else if (\"message\" in exception && typeof exception.message === \"string\") {\n    return exception.message;\n  }\n  const keys = extractExceptionKeysForMessage(exception);\n  if (isErrorEvent(exception)) {\n    return `Event \\`ErrorEvent\\` captured as exception with message \\`${exception.message}\\``;\n  }\n  const className = getObjectClassName(exception);\n  return `${className && className !== \"Object\" ? `'${className}'` : \"Object\"} captured as exception with keys: ${keys}`;\n}\nfunction getObjectClassName(obj) {\n  try {\n    const prototype = Object.getPrototypeOf(obj);\n    return prototype ? prototype.constructor.name : void 0;\n  } catch {\n  }\n}\nfunction getException(client, mechanism, exception, hint) {\n  if (isError(exception)) {\n    return [exception, void 0];\n  }\n  mechanism.synthetic = true;\n  if (isPlainObject(exception)) {\n    const normalizeDepth = client?.getOptions().normalizeDepth;\n    const extras = { [\"__serialized__\"]: normalizeToSize(exception, normalizeDepth) };\n    const errorFromProp = getErrorPropertyFromObject(exception);\n    if (errorFromProp) {\n      return [errorFromProp, extras];\n    }\n    const message = getMessageForObject(exception);\n    const ex2 = hint?.syntheticException || new Error(message);\n    ex2.message = message;\n    return [ex2, extras];\n  }\n  const ex = hint?.syntheticException || new Error(exception);\n  ex.message = `${exception}`;\n  return [ex, void 0];\n}\nfunction eventFromUnknownInput(client, stackParser, exception, hint) {\n  const providedMechanism = hint?.data && hint.data.mechanism;\n  const mechanism = providedMechanism || {\n    handled: true,\n    type: \"generic\"\n  };\n  const [ex, extras] = getException(client, mechanism, exception, hint);\n  const event = {\n    exception: {\n      values: [exceptionFromError(stackParser, ex)]\n    }\n  };\n  if (extras) {\n    event.extra = extras;\n  }\n  addExceptionTypeValue(event, void 0, void 0);\n  addExceptionMechanism(event, mechanism);\n  return {\n    ...event,\n    event_id: hint?.event_id\n  };\n}\nfunction eventFromMessage(stackParser, message, level = \"info\", hint, attachStacktrace) {\n  const event = {\n    event_id: hint?.event_id,\n    level\n  };\n  if (attachStacktrace && hint?.syntheticException) {\n    const frames = parseStackFrames(stackParser, hint.syntheticException);\n    if (frames.length) {\n      event.exception = {\n        values: [\n          {\n            value: message,\n            stacktrace: { frames }\n          }\n        ]\n      };\n      addExceptionMechanism(event, { synthetic: true });\n    }\n  }\n  if (isParameterizedString(message)) {\n    const { __sentry_template_string__, __sentry_template_values__ } = message;\n    event.logentry = {\n      message: __sentry_template_string__,\n      params: __sentry_template_values__\n    };\n    return event;\n  }\n  event.message = message;\n  return event;\n}\n\nexport { _enhanceErrorWithSentryInfo, eventFromMessage, eventFromUnknownInput, exceptionFromError, parseStackFrames };\n//# sourceMappingURL=eventbuilder.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { CONSOLE_LEVELS, originalConsoleMethods, debug } from '../utils/debug-logger.js';\nimport { fill } from '../utils/object.js';\nimport { stringMatchesSomePattern } from '../utils/string.js';\nimport { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nconst _filter = /* @__PURE__ */ new Set([]);\nfunction addConsoleInstrumentationHandler(handler) {\n  const type = \"console\";\n  const removeHandler = addHandler(type, handler);\n  maybeInstrument(type, instrumentConsole);\n  return removeHandler;\n}\nfunction addConsoleInstrumentationFilter(filter) {\n  for (const f of filter) {\n    _filter.add(f);\n  }\n  return () => {\n    for (const f of filter) {\n      _filter.delete(f);\n    }\n  };\n}\nconst instrumentedLevels = /* @__PURE__ */ new Set();\nfunction instrumentConsole() {\n  if (!(\"console\" in GLOBAL_OBJ)) {\n    return;\n  }\n  CONSOLE_LEVELS.forEach(function(level) {\n    if (instrumentedLevels.has(level) || !(level in GLOBAL_OBJ.console)) {\n      return;\n    }\n    instrumentedLevels.add(level);\n    fill(GLOBAL_OBJ.console, level, function(originalConsoleMethod) {\n      originalConsoleMethods[level] = originalConsoleMethod;\n      return function(...args) {\n        const firstArg = args[0];\n        const log = originalConsoleMethods[level];\n        const isFiltered = _filter.size && typeof firstArg === \"string\" && stringMatchesSomePattern(firstArg, _filter);\n        if (!isFiltered) {\n          triggerHandlers(\"console\", { args, level });\n        }\n        if (!isFiltered || DEBUG_BUILD && debug.isEnabled()) {\n          log?.apply(GLOBAL_OBJ.console, args);\n        }\n      };\n    });\n  });\n}\n\nexport { addConsoleInstrumentationFilter, addConsoleInstrumentationHandler, instrumentConsole };\n//# sourceMappingURL=console.js.map\n","function severityLevelFromString(level) {\n  return level === \"warn\" ? \"warning\" : [\"fatal\", \"error\", \"warning\", \"log\", \"info\", \"debug\"].includes(level) ? level : \"log\";\n}\n\nexport { severityLevelFromString };\n//# sourceMappingURL=severity.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { defineIntegration } from '../integration.js';\nimport { debug } from '../utils/debug-logger.js';\nimport { getFramesFromEvent } from '../utils/stacktrace.js';\n\nconst INTEGRATION_NAME = \"Dedupe\";\nconst _dedupeIntegration = (() => {\n  let previousEvent;\n  return {\n    name: INTEGRATION_NAME,\n    processEvent(currentEvent) {\n      if (currentEvent.type) {\n        return currentEvent;\n      }\n      try {\n        if (_shouldDropEvent(currentEvent, previousEvent)) {\n          DEBUG_BUILD && debug.warn(\"Event dropped due to being a duplicate of previously captured event.\");\n          return null;\n        }\n      } catch {\n      }\n      return previousEvent = currentEvent;\n    }\n  };\n});\nconst dedupeIntegration = defineIntegration(_dedupeIntegration);\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n  if (!previousEvent) {\n    return false;\n  }\n  if (_isSameMessageEvent(currentEvent, previousEvent)) {\n    return true;\n  }\n  if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n    return true;\n  }\n  return false;\n}\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n  const currentMessage = currentEvent.message;\n  const previousMessage = previousEvent.message;\n  if (!currentMessage && !previousMessage) {\n    return false;\n  }\n  if (currentMessage && !previousMessage || !currentMessage && previousMessage) {\n    return false;\n  }\n  if (currentMessage !== previousMessage) {\n    return false;\n  }\n  if (!_isSameFingerprint(currentEvent, previousEvent)) {\n    return false;\n  }\n  if (!_isSameStacktrace(currentEvent, previousEvent)) {\n    return false;\n  }\n  return true;\n}\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n  const previousException = _getExceptionFromEvent(previousEvent);\n  const currentException = _getExceptionFromEvent(currentEvent);\n  if (!previousException || !currentException) {\n    return false;\n  }\n  if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n    return false;\n  }\n  if (!_isSameFingerprint(currentEvent, previousEvent)) {\n    return false;\n  }\n  if (!_isSameStacktrace(currentEvent, previousEvent)) {\n    return false;\n  }\n  return true;\n}\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n  const currentFrames = getFramesFromEvent(currentEvent);\n  const previousFrames = getFramesFromEvent(previousEvent);\n  if (!currentFrames || !previousFrames) {\n    return !currentFrames && !previousFrames;\n  }\n  if (previousFrames.length !== currentFrames.length) {\n    return false;\n  }\n  for (let i = 0; i < previousFrames.length; i++) {\n    const frameA = previousFrames[i];\n    const frameB = currentFrames[i];\n    if (frameA.filename !== frameB.filename || frameA.lineno !== frameB.lineno || frameA.colno !== frameB.colno || frameA.function !== frameB.function) {\n      return false;\n    }\n  }\n  return true;\n}\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n  const currentFingerprint = currentEvent.fingerprint;\n  const previousFingerprint = previousEvent.fingerprint;\n  if (!currentFingerprint || !previousFingerprint) {\n    return !currentFingerprint && !previousFingerprint;\n  }\n  try {\n    return !!(currentFingerprint.join(\"\") === previousFingerprint.join(\"\"));\n  } catch {\n    return false;\n  }\n}\nfunction _getExceptionFromEvent(event) {\n  return event.exception?.values?.[0];\n}\n\nexport { _shouldDropEvent, dedupeIntegration };\n//# sourceMappingURL=dedupe.js.map\n","import { addBreadcrumb } from '../breadcrumbs.js';\nimport { getClient } from '../currentScopes.js';\nimport { addConsoleInstrumentationHandler, addConsoleInstrumentationFilter } from '../instrument/console.js';\nimport { defineIntegration } from '../integration.js';\nimport { CONSOLE_LEVELS } from '../utils/debug-logger.js';\nimport { severityLevelFromString } from '../utils/severity.js';\nimport { safeJoin } from '../utils/string.js';\nimport { GLOBAL_OBJ } from '../utils/worldwide.js';\n\nconst INTEGRATION_NAME = \"Console\";\nconst consoleIntegration = defineIntegration((options = {}) => {\n  const levels = new Set(options.levels || CONSOLE_LEVELS);\n  return {\n    name: INTEGRATION_NAME,\n    setup(client) {\n      const unsubscribe = addConsoleInstrumentationHandler(({ args, level }) => {\n        if (getClient() !== client || !levels.has(level)) {\n          return;\n        }\n        addConsoleBreadcrumb(level, args);\n      });\n      client.registerCleanup(unsubscribe);\n      if (options.filter) {\n        const unsubscribe2 = addConsoleInstrumentationFilter(options.filter);\n        client.registerCleanup(unsubscribe2);\n      }\n    }\n  };\n});\nfunction addConsoleBreadcrumb(level, args) {\n  const breadcrumb = {\n    category: \"console\",\n    data: {\n      arguments: args,\n      logger: \"console\"\n    },\n    level: severityLevelFromString(level),\n    message: formatConsoleArgs(args)\n  };\n  if (level === \"assert\") {\n    if (args[0] === false) {\n      const assertionArgs = args.slice(1);\n      breadcrumb.message = assertionArgs.length > 0 ? `Assertion failed: ${formatConsoleArgs(assertionArgs)}` : \"Assertion failed\";\n      breadcrumb.data.arguments = assertionArgs;\n    } else {\n      return;\n    }\n  }\n  addBreadcrumb(breadcrumb, {\n    input: args,\n    level\n  });\n}\nfunction formatConsoleArgs(values) {\n  return \"util\" in GLOBAL_OBJ && typeof GLOBAL_OBJ.util.format === \"function\" ? GLOBAL_OBJ.util.format(...values) : safeJoin(values, \" \");\n}\n\nexport { addConsoleBreadcrumb, consoleIntegration };\n//# sourceMappingURL=console.js.map\n","import { getCurrentScope, getIsolationScope } from '../currentScopes.js';\nimport { defineIntegration } from '../integration.js';\nimport { GEN_AI_CONVERSATION_ID_ATTRIBUTE } from '../semanticAttributes.js';\nimport { spanToStaticSpanJSON } from '../utils/spanUtils.js';\n\nconst INTEGRATION_NAME = \"ConversationId\";\nconst _conversationIdIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    setup(client) {\n      client.on(\"spanStart\", (span) => {\n        const scopeData = getCurrentScope().getScopeData();\n        const isolationScopeData = getIsolationScope().getScopeData();\n        const conversationId = scopeData.conversationId || isolationScopeData.conversationId;\n        if (conversationId) {\n          const { op, data: attributes, description: name } = spanToStaticSpanJSON(span);\n          if (!op?.startsWith(\"gen_ai.\") && !attributes[\"ai.operationId\"] && !name?.startsWith(\"ai.\")) {\n            return;\n          }\n          span.setAttribute(GEN_AI_CONVERSATION_ID_ATTRIBUTE, conversationId);\n        }\n      });\n    }\n  };\n});\nconst conversationIdIntegration = defineIntegration(_conversationIdIntegration);\n\nexport { conversationIdIntegration };\n//# sourceMappingURL=conversationId.js.map\n","import { DEBUG_BUILD } from '../debug-build.js';\nimport { debug } from './debug-logger.js';\nimport { GLOBAL_OBJ } from './worldwide.js';\n\nconst WINDOW = GLOBAL_OBJ;\nfunction supportsErrorEvent() {\n  try {\n    new ErrorEvent(\"\");\n    return true;\n  } catch {\n    return false;\n  }\n}\nfunction supportsDOMException() {\n  try {\n    new DOMException(\"\");\n    return true;\n  } catch {\n    return false;\n  }\n}\nconst supportsFetch = _isFetchSupported;\nfunction _isFetchSupported() {\n  if (!(\"fetch\" in WINDOW)) {\n    return false;\n  }\n  try {\n    new Headers();\n    new Request(\"data:,\");\n    new Response();\n    return true;\n  } catch {\n    return false;\n  }\n}\nfunction isNativeFunction(func) {\n  return func && /^function\\s+\\w+\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\nfunction supportsNativeFetch() {\n  if (typeof EdgeRuntime === \"string\") {\n    return true;\n  }\n  if (!_isFetchSupported()) {\n    return false;\n  }\n  if (isNativeFunction(WINDOW.fetch)) {\n    return true;\n  }\n  let result = false;\n  const doc = WINDOW.document;\n  if (doc && typeof doc.createElement === \"function\") {\n    try {\n      const sandbox = doc.createElement(\"iframe\");\n      sandbox.hidden = true;\n      doc.head.appendChild(sandbox);\n      if (sandbox.contentWindow?.fetch) {\n        result = isNativeFunction(sandbox.contentWindow.fetch);\n      }\n      doc.head.removeChild(sandbox);\n    } catch (err) {\n      DEBUG_BUILD && debug.warn(\"Could not create sandbox iframe for pure fetch check, bailing to window.fetch: \", err);\n    }\n  }\n  return result;\n}\nfunction supportsReferrerPolicy() {\n  if (!_isFetchSupported()) {\n    return false;\n  }\n  try {\n    new Request(\"_\", {\n      referrerPolicy: \"origin\"\n    });\n    return true;\n  } catch {\n    return false;\n  }\n}\n\nexport { isNativeFunction, supportsDOMException, supportsErrorEvent, supportsFetch, supportsNativeFetch, supportsReferrerPolicy };\n//# sourceMappingURL=supports.js.map\n","import { getClient } from '../currentScopes.js';\nimport { isError, isRequest, isObjectLike } from '../utils/is.js';\nimport { isBrowser } from '../utils/isBrowser.js';\nimport { fill, addNonEnumerableProperty } from '../utils/object.js';\nimport { supportsNativeFetch } from '../utils/supports.js';\nimport { timestampInSeconds } from '../utils/time.js';\nimport { GLOBAL_OBJ } from '../utils/worldwide.js';\nimport { addHandler, maybeInstrument, triggerHandlers } from './handlers.js';\n\nfunction addFetchInstrumentationHandler(handler) {\n  const type = \"fetch\";\n  const removeHandler = addHandler(type, handler);\n  maybeInstrument(type, () => instrumentFetch());\n  return removeHandler;\n}\nfunction addFetchEndInstrumentationHandler(handler) {\n  const type = \"fetch-body-resolved\";\n  const removeHandler = addHandler(type, handler);\n  maybeInstrument(type, () => instrumentFetch(streamHandler));\n  return removeHandler;\n}\nfunction instrumentFetch(onFetchResolved) {\n  if (isBrowser() && !supportsNativeFetch()) {\n    return;\n  }\n  fill(GLOBAL_OBJ, \"fetch\", function(originalFetch) {\n    return new Proxy(originalFetch, {\n      apply(target, _thisArg, args) {\n        const virtualError = new Error();\n        const { method, url } = parseFetchArgs(args);\n        const handlerData = {\n          args,\n          fetchData: {\n            method,\n            url\n          },\n          startTimestamp: timestampInSeconds() * 1e3,\n          // // Adding the error to be able to fingerprint the failed fetch event in HttpClient instrumentation\n          virtualError,\n          headers: getHeadersFromFetchArgs(args)\n        };\n        if (!onFetchResolved) {\n          triggerHandlers(\"fetch\", {\n            ...handlerData\n          });\n        }\n        return Reflect.apply(target, GLOBAL_OBJ, args).then(\n          async (response) => {\n            if (onFetchResolved) {\n              onFetchResolved(response);\n            } else {\n              triggerHandlers(\"fetch\", {\n                ...handlerData,\n                endTimestamp: timestampInSeconds() * 1e3,\n                response\n              });\n            }\n            return response;\n          },\n          (error) => {\n            triggerHandlers(\"fetch\", {\n              ...handlerData,\n              endTimestamp: timestampInSeconds() * 1e3,\n              error\n            });\n            if (isError(error) && error.stack === void 0) {\n              error.stack = virtualError.stack;\n              addNonEnumerableProperty(error, \"framesToPop\", 1);\n            }\n            const client = getClient();\n            const enhanceOption = client?.getOptions().enhanceFetchErrorMessages ?? \"always\";\n            const shouldEnhance = enhanceOption !== false;\n            if (shouldEnhance && isError(error) && error.name === \"TypeError\" && (error.message === \"Failed to fetch\" || error.message === \"Load failed\" || error.message === \"NetworkError when attempting to fetch resource.\")) {\n              try {\n                const url2 = new URL(handlerData.fetchData.url);\n                const hostname = url2.host;\n                if (enhanceOption === \"always\") {\n                  error.message = `${error.message} (${hostname})`;\n                } else {\n                  addNonEnumerableProperty(error, \"__sentry_fetch_url_host__\", hostname);\n                }\n              } catch {\n              }\n            }\n            throw error;\n          }\n        );\n      }\n    });\n  });\n}\nasync function resolveResponse(res, onFinishedResolving) {\n  if (res?.body) {\n    const body = res.body;\n    const responseReader = body.getReader();\n    const maxFetchDurationTimeout = setTimeout(\n      () => {\n        body.cancel().then(null, () => {\n        });\n      },\n      90 * 1e3\n      // 90s\n    );\n    let readingActive = true;\n    while (readingActive) {\n      let chunkTimeout;\n      try {\n        chunkTimeout = setTimeout(() => {\n          body.cancel().then(null, () => {\n          });\n        }, 5e3);\n        const { done } = await responseReader.read();\n        clearTimeout(chunkTimeout);\n        if (done) {\n          onFinishedResolving();\n          readingActive = false;\n        }\n      } catch {\n        readingActive = false;\n      } finally {\n        clearTimeout(chunkTimeout);\n      }\n    }\n    clearTimeout(maxFetchDurationTimeout);\n    responseReader.releaseLock();\n    body.cancel().then(null, () => {\n    });\n  }\n}\nfunction streamHandler(response) {\n  let clonedResponseForResolving;\n  try {\n    clonedResponseForResolving = response.clone();\n  } catch {\n    return;\n  }\n  resolveResponse(clonedResponseForResolving, () => {\n    triggerHandlers(\"fetch-body-resolved\", {\n      endTimestamp: timestampInSeconds() * 1e3,\n      response\n    });\n  });\n}\nfunction hasProp(obj, prop) {\n  return isObjectLike(obj) && !!obj[prop];\n}\nfunction getUrlFromResource(resource) {\n  if (typeof resource === \"string\") {\n    return resource;\n  }\n  if (!resource) {\n    return \"\";\n  }\n  if (hasProp(resource, \"url\")) {\n    return resource.url;\n  }\n  if (resource.toString) {\n    return resource.toString();\n  }\n  return \"\";\n}\nfunction parseFetchArgs(fetchArgs) {\n  if (fetchArgs.length === 0) {\n    return { method: \"GET\", url: \"\" };\n  }\n  if (fetchArgs.length === 2) {\n    const [resource, options] = fetchArgs;\n    return {\n      url: getUrlFromResource(resource),\n      method: hasProp(options, \"method\") ? String(options.method).toUpperCase() : (\n        // Request object as first argument\n        isRequest(resource) && hasProp(resource, \"method\") ? String(resource.method).toUpperCase() : \"GET\"\n      )\n    };\n  }\n  const arg = fetchArgs[0];\n  return {\n    url: getUrlFromResource(arg),\n    method: hasProp(arg, \"method\") ? String(arg.method).toUpperCase() : \"GET\"\n  };\n}\nfunction getHeadersFromFetchArgs(fetchArgs) {\n  const [requestArgument, optionsArgument] = fetchArgs;\n  try {\n    if (typeof optionsArgument === \"object\" && optionsArgument !== null && \"headers\" in optionsArgument && optionsArgument.headers) {\n      return new Headers(optionsArgument.headers);\n    }\n    if (isRequest(requestArgument)) {\n      return new Headers(requestArgument.headers);\n    }\n  } catch {\n  }\n  return;\n}\n\nexport { addFetchEndInstrumentationHandler, addFetchInstrumentationHandler, parseFetchArgs };\n//# sourceMappingURL=fetch.js.map\n","function getBreadcrumbLogLevelFromHttpStatusCode(statusCode) {\n  if (statusCode === void 0) {\n    return void 0;\n  } else if (statusCode >= 400 && statusCode < 500) {\n    return \"warning\";\n  } else if (statusCode >= 500) {\n    return \"error\";\n  } else {\n    return void 0;\n  }\n}\n\nexport { getBreadcrumbLogLevelFromHttpStatusCode };\n//# sourceMappingURL=breadcrumb-log-level.js.map\n","const FAKE_FUNCTION = () => void 0;\n\nexport { FAKE_FUNCTION };\n//# sourceMappingURL=common.js.map\n","import { consoleSandbox } from '@sentry/core';\nimport { FAKE_FUNCTION } from './common.js';\n\nconst FEEDBACK_INTEGRATION_METHODS = [\"attachTo\", \"createForm\", \"createWidget\", \"remove\"];\nconst feedbackIntegrationShim = Object.assign(\n  (_options) => {\n    consoleSandbox(() => {\n      console.warn(\"You are using feedbackIntegration() even though this bundle does not include feedback.\");\n    });\n    return {\n      name: \"Feedback\",\n      ...FEEDBACK_INTEGRATION_METHODS.reduce((acc, method) => {\n        acc[method] = FAKE_FUNCTION;\n        return acc;\n      }, {})\n    };\n  },\n  {\n    _isShim: true\n  }\n);\n\nexport { feedbackIntegrationShim };\n//# sourceMappingURL=Feedback.js.map\n","import { consoleSandbox } from '@sentry/core';\nimport { FAKE_FUNCTION } from './common.js';\n\nconst REPLAY_INTEGRATION_METHODS = [\"start\", \"stop\", \"flush\"];\nfunction replayIntegrationShim(_options) {\n  consoleSandbox(() => {\n    console.warn(\"You are using replayIntegration() even though this bundle does not include replay.\");\n  });\n  return {\n    name: \"Replay\",\n    ...REPLAY_INTEGRATION_METHODS.reduce((acc, method) => {\n      acc[method] = FAKE_FUNCTION;\n      return acc;\n    }, {})\n  };\n}\n\nexport { replayIntegrationShim };\n//# sourceMappingURL=Replay.js.map\n","import { defineIntegration, consoleSandbox } from '@sentry/core';\n\nconst browserTracingIntegrationShim = defineIntegration((_options) => {\n  consoleSandbox(() => {\n    console.warn(\"You are using browserTracingIntegration() even though this bundle does not include tracing.\");\n  });\n  return {\n    name: \"BrowserTracing\"\n  };\n});\n\nexport { browserTracingIntegrationShim };\n//# sourceMappingURL=BrowserTracing.js.map\n","import { defineIntegration, consoleSandbox } from '@sentry/core';\n\nconst elementTimingIntegrationShim = defineIntegration(() => {\n  consoleSandbox(() => {\n    console.warn(\"You are using elementTimingIntegration() even though this bundle does not include element timing.\");\n  });\n  return {\n    name: \"ElementTiming\"\n  };\n});\n\nexport { elementTimingIntegrationShim };\n//# sourceMappingURL=ElementTiming.js.map\n","import { defineIntegration, consoleSandbox } from '@sentry/core';\nimport { FAKE_FUNCTION } from './common.js';\nimport { DEBUG_BUILD } from './debug-build.js';\n\nfunction logShim(_message, _attributes) {\n  DEBUG_BUILD && consoleSandbox(() => {\n    console.warn(\"You are using Sentry.logger.* even though this bundle does not include logs.\");\n  });\n}\nfunction fmtShim(_strings, ..._values) {\n  DEBUG_BUILD && consoleSandbox(() => {\n    console.warn(\"You are using Sentry.logger.fmt even though this bundle does not include logs.\");\n  });\n  return \"\";\n}\nconst loggerShim = {\n  trace: logShim,\n  debug: logShim,\n  info: logShim,\n  warn: logShim,\n  error: logShim,\n  fatal: logShim,\n  fmt: fmtShim\n};\nconst consoleLoggingIntegrationShim = defineIntegration((_options) => {\n  DEBUG_BUILD && consoleSandbox(() => {\n    console.warn(\"You are using consoleLoggingIntegration() even though this bundle does not include logs.\");\n  });\n  return {\n    name: \"ConsoleLogs\",\n    setup: FAKE_FUNCTION\n  };\n});\n\nexport { consoleLoggingIntegrationShim, loggerShim };\n//# sourceMappingURL=logs.js.map\n","import { consoleSandbox } from '@sentry/core';\nimport { DEBUG_BUILD } from './debug-build.js';\n\nfunction metricShim(_name, _value, _options) {\n  DEBUG_BUILD && consoleSandbox(() => {\n    console.warn(\"You are using Sentry.metrics.* even though this bundle does not include metrics.\");\n  });\n}\nconst metricsShim = {\n  count: metricShim,\n  gauge: metricShim,\n  distribution: metricShim\n};\n\nexport { metricsShim };\n//# sourceMappingURL=metrics.js.map\n","import { defineIntegration, consoleSandbox } from '@sentry/core';\n\nconst spanStreamingIntegrationShim = defineIntegration(() => {\n  consoleSandbox(() => {\n    console.warn(\"You are using spanStreamingIntegration() even though this bundle does not include tracing.\");\n  });\n  return {\n    name: \"SpanStreaming\"\n  };\n});\n\nexport { spanStreamingIntegrationShim };\n//# sourceMappingURL=SpanStreaming.js.map\n","import { defineIntegration, consoleSandbox } from '@sentry/core';\n\nconst fetchStreamPerformanceIntegrationShim = defineIntegration(() => {\n  consoleSandbox(() => {\n    console.warn(\"You are using fetchStreamPerformanceIntegration() even though this bundle does not include tracing.\");\n  });\n  return {\n    name: \"FetchStreamPerformance\"\n  };\n});\n\nexport { fetchStreamPerformanceIntegrationShim };\n//# sourceMappingURL=FetchStreamPerformance.js.map\n","import { GLOBAL_OBJ } from '@sentry/core';\n\nconst WINDOW = GLOBAL_OBJ;\n\nexport { WINDOW };\n//# sourceMappingURL=types.js.map\n","import { isString } from '@sentry/core';\n\nconst DEFAULT_MAX_STRING_LENGTH = 80;\nconst accessors = {};\ntry {\n  if (typeof Node !== \"undefined\") {\n    accessors.parentNode = Object.getOwnPropertyDescriptor(Node.prototype, \"parentNode\").get;\n  }\n  if (typeof Element !== \"undefined\") {\n    accessors.tagName = Object.getOwnPropertyDescriptor(Element.prototype, \"tagName\").get;\n    accessors.id = Object.getOwnPropertyDescriptor(Element.prototype, \"id\").get;\n    accessors.className = Object.getOwnPropertyDescriptor(Element.prototype, \"className\").get;\n    accessors.getAttribute = Element.prototype.getAttribute;\n  }\n  if (typeof HTMLElement !== \"undefined\") {\n    accessors.dataset = Object.getOwnPropertyDescriptor(HTMLElement.prototype, \"dataset\").get;\n  }\n} catch {\n}\nfunction _safeRead(el, prop, arg) {\n  const fn = accessors[prop];\n  if (fn) {\n    try {\n      return fn.call(el, arg);\n    } catch {\n    }\n  }\n  const val = el[prop];\n  return typeof val === \"function\" ? val.call(el, arg) : val;\n}\nfunction htmlTreeAsString(elem, options = {}) {\n  if (!elem) {\n    return \"<unknown>\";\n  }\n  try {\n    let currentElem = elem;\n    const MAX_TRAVERSE_HEIGHT = 5;\n    const out = [];\n    let height = 0;\n    let len = 0;\n    const separator = \" > \";\n    const sepLength = separator.length;\n    let nextStr;\n    const keyAttrs = Array.isArray(options) ? options : options.keyAttrs;\n    const maxStringLength = !Array.isArray(options) && options.maxStringLength || DEFAULT_MAX_STRING_LENGTH;\n    while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n      nextStr = _htmlElementAsString(currentElem, keyAttrs);\n      if (nextStr === \"html\" || height > 1 && len + out.length * sepLength + nextStr.length >= maxStringLength) {\n        break;\n      }\n      out.push(nextStr);\n      len += nextStr.length;\n      currentElem = _safeRead(currentElem, \"parentNode\");\n    }\n    return out.reverse().join(separator);\n  } catch {\n    return \"<unknown>\";\n  }\n}\nfunction _htmlElementAsString(el, keyAttrs) {\n  const out = [];\n  const tagName = _safeRead(el, \"tagName\");\n  if (!tagName) {\n    return \"\";\n  }\n  if (typeof HTMLElement !== \"undefined\") {\n    if (el instanceof HTMLElement) {\n      const dataset = _safeRead(el, \"dataset\");\n      if (dataset) {\n        if (dataset[\"sentryComponent\"]) {\n          return dataset[\"sentryComponent\"];\n        }\n        if (dataset[\"sentryElement\"]) {\n          return dataset[\"sentryElement\"];\n        }\n      }\n    }\n  }\n  out.push(tagName.toLowerCase());\n  const keyAttrPairs = keyAttrs?.length ? keyAttrs.filter((keyAttr) => _safeRead(el, \"getAttribute\", keyAttr)).map((keyAttr) => [keyAttr, _safeRead(el, \"getAttribute\", keyAttr)]) : null;\n  if (keyAttrPairs?.length) {\n    keyAttrPairs.forEach((keyAttrPair) => {\n      out.push(`[${keyAttrPair[0]}=\"${keyAttrPair[1]}\"]`);\n    });\n  } else {\n    const id = _safeRead(el, \"id\");\n    if (id) {\n      out.push(`#${id}`);\n    }\n    const className = _safeRead(el, \"className\");\n    if (className && isString(className)) {\n      const classes = className.split(/\\s+/);\n      for (const c of classes) {\n        out.push(`.${c}`);\n      }\n    }\n  }\n  for (const k of [\"aria-label\", \"type\", \"name\", \"title\", \"alt\"]) {\n    const attr = _safeRead(el, \"getAttribute\", k);\n    if (attr) {\n      out.push(`[${k}=\"${attr}\"]`);\n    }\n  }\n  return out.join(\"\");\n}\n\nexport { htmlTreeAsString };\n//# sourceMappingURL=htmlTreeAsString.js.map\n","import { WINDOW } from '../types.js';\n\nfunction addPageListener(type, listener, options) {\n  if (WINDOW.document) {\n    WINDOW.addEventListener(type, listener, options);\n  }\n}\nfunction removePageListener(type, listener, options) {\n  if (WINDOW.document) {\n    WINDOW.removeEventListener(type, listener, options);\n  }\n}\nconst getNavigationEntry = (checkResponseStart = true) => {\n  const navigationEntry = WINDOW.performance?.getEntriesByType?.(\"navigation\")[0];\n  if (\n    // sentry-specific change:\n    // We don't want to check for responseStart for our own use of `getNavigationEntry`\n    !checkResponseStart || navigationEntry && navigationEntry.responseStart > 0 && navigationEntry.responseStart < performance.now()\n  ) {\n    return navigationEntry;\n  }\n};\nconst getActivationStart = () => {\n  const navEntry = getNavigationEntry();\n  return navEntry?.activationStart ?? 0;\n};\nconst onHidden = (cb) => {\n  const onHiddenCallback = (event) => {\n    if (WINDOW.document?.visibilityState === \"hidden\") {\n      cb(event);\n    }\n  };\n  addPageListener(\"visibilitychange\", onHiddenCallback, { capture: true });\n};\nlet firstHiddenTime = -1;\nconst onHiddenFunctions = /* @__PURE__ */ new Set();\nconst initHiddenTime = () => {\n  return WINDOW.document?.visibilityState === \"hidden\" && !WINDOW.document?.prerendering ? 0 : Infinity;\n};\nconst onVisibilityUpdate = (event) => {\n  if (WINDOW.document?.visibilityState === \"hidden\" && firstHiddenTime > -1) {\n    if (event.type === \"visibilitychange\") {\n      for (const onHiddenFunction of onHiddenFunctions) {\n        onHiddenFunction();\n      }\n    }\n    if (!isFinite(firstHiddenTime)) {\n      firstHiddenTime = event.type === \"visibilitychange\" ? event.timeStamp : 0;\n      removePageListener(\"prerenderingchange\", onVisibilityUpdate, true);\n    }\n  }\n};\nconst getVisibilityWatcher = () => {\n  if (WINDOW.document && firstHiddenTime < 0) {\n    const activationStart = getActivationStart();\n    const firstVisibilityStateHiddenTime = !WINDOW.document.prerendering ? globalThis.performance.getEntriesByType(\"visibility-state\").filter((e) => e.name === \"hidden\" && e.startTime > activationStart)[0]?.startTime : void 0;\n    firstHiddenTime = firstVisibilityStateHiddenTime ?? initHiddenTime();\n    addPageListener(\"visibilitychange\", onVisibilityUpdate, true);\n    addPageListener(\"prerenderingchange\", onVisibilityUpdate, true);\n  }\n  return {\n    get firstHiddenTime() {\n      return firstHiddenTime;\n    },\n    onHidden(cb) {\n      onHiddenFunctions.add(cb);\n    }\n  };\n};\nconst whenIdleOrHidden = (cb) => {\n  const rIC = WINDOW.requestIdleCallback || WINDOW.setTimeout;\n  if (WINDOW.document?.visibilityState === \"hidden\") {\n    cb();\n  } else {\n    let called = false;\n    const runOnce = () => {\n      if (!called) {\n        cb();\n        called = true;\n      }\n    };\n    addPageListener(\"visibilitychange\", runOnce, { once: true, capture: true });\n    rIC(() => {\n      runOnce();\n      removePageListener(\"visibilitychange\", runOnce, { capture: true });\n    });\n  }\n};\n\nexport { addPageListener, getActivationStart, getNavigationEntry, getVisibilityWatcher, onHidden, removePageListener, whenIdleOrHidden };\n//# sourceMappingURL=utils.js.map\n","import { WINDOW } from './types.js';\n\nfunction getLocationHref() {\n  try {\n    return WINDOW.document?.location.href ?? \"\";\n  } catch {\n    return \"\";\n  }\n}\n\nexport { getLocationHref };\n//# sourceMappingURL=getLocationHref.js.map\n","import { addHandler, maybeInstrument, triggerHandlers, fill, addNonEnumerableProperty, uuid4 } from '@sentry/core';\nimport { WINDOW } from '../types.js';\n\nconst DEBOUNCE_DURATION = 1e3;\nlet debounceTimerID;\nlet lastCapturedEventType;\nlet lastCapturedEventTargetId;\nfunction addClickKeypressInstrumentationHandler(handler) {\n  const type = \"dom\";\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentDOM);\n}\nfunction instrumentDOM() {\n  if (!WINDOW.document) {\n    return;\n  }\n  const triggerDOMHandler = triggerHandlers.bind(null, \"dom\");\n  const globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n  WINDOW.document.addEventListener(\"click\", globalDOMEventHandler, false);\n  WINDOW.document.addEventListener(\"keypress\", globalDOMEventHandler, false);\n  [\"EventTarget\", \"Node\"].forEach((target) => {\n    const globalObject = WINDOW;\n    const proto = globalObject[target]?.prototype;\n    if (!proto?.hasOwnProperty?.(\"addEventListener\")) {\n      return;\n    }\n    fill(proto, \"addEventListener\", function(originalAddEventListener) {\n      return function(type, listener, options) {\n        if (type === \"click\" || type == \"keypress\") {\n          try {\n            const handlers = this.__sentry_instrumentation_handlers__ = this.__sentry_instrumentation_handlers__ || {};\n            const handlerForType = handlers[type] = handlers[type] || { refCount: 0 };\n            if (!handlerForType.handler) {\n              const handler = makeDOMEventHandler(triggerDOMHandler);\n              handlerForType.handler = handler;\n              originalAddEventListener.call(this, type, handler, options);\n            }\n            handlerForType.refCount++;\n          } catch {\n          }\n        }\n        return originalAddEventListener.call(this, type, listener, options);\n      };\n    });\n    fill(\n      proto,\n      \"removeEventListener\",\n      function(originalRemoveEventListener) {\n        return function(type, listener, options) {\n          if (type === \"click\" || type == \"keypress\") {\n            try {\n              const handlers = this.__sentry_instrumentation_handlers__ || {};\n              const handlerForType = handlers[type];\n              if (handlerForType) {\n                handlerForType.refCount--;\n                if (handlerForType.refCount <= 0) {\n                  originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n                  handlerForType.handler = void 0;\n                  delete handlers[type];\n                }\n                if (Object.keys(handlers).length === 0) {\n                  delete this.__sentry_instrumentation_handlers__;\n                }\n              }\n            } catch {\n            }\n          }\n          return originalRemoveEventListener.call(this, type, listener, options);\n        };\n      }\n    );\n  });\n}\nfunction isSimilarToLastCapturedEvent(event) {\n  if (event.type !== lastCapturedEventType) {\n    return false;\n  }\n  try {\n    if (!event.target || event.target._sentryId !== lastCapturedEventTargetId) {\n      return false;\n    }\n  } catch {\n  }\n  return true;\n}\nfunction shouldSkipDOMEvent(eventType, target) {\n  if (eventType !== \"keypress\") {\n    return false;\n  }\n  if (!target?.tagName) {\n    return true;\n  }\n  if (target.tagName === \"INPUT\" || target.tagName === \"TEXTAREA\" || target.isContentEditable) {\n    return false;\n  }\n  return true;\n}\nfunction makeDOMEventHandler(handler, globalListener = false) {\n  return (event) => {\n    if (!event || event[\"_sentryCaptured\"]) {\n      return;\n    }\n    const target = getEventTarget(event);\n    if (shouldSkipDOMEvent(event.type, target)) {\n      return;\n    }\n    addNonEnumerableProperty(event, \"_sentryCaptured\", true);\n    if (target && !target._sentryId) {\n      addNonEnumerableProperty(target, \"_sentryId\", uuid4());\n    }\n    const name = event.type === \"keypress\" ? \"input\" : event.type;\n    if (!isSimilarToLastCapturedEvent(event)) {\n      const handlerData = { event, name, global: globalListener };\n      handler(handlerData);\n      lastCapturedEventType = event.type;\n      lastCapturedEventTargetId = target ? target._sentryId : void 0;\n    }\n    clearTimeout(debounceTimerID);\n    debounceTimerID = WINDOW.setTimeout(() => {\n      lastCapturedEventTargetId = void 0;\n      lastCapturedEventType = void 0;\n    }, DEBOUNCE_DURATION);\n  };\n}\nfunction getEventTarget(event) {\n  try {\n    return event.target;\n  } catch {\n    return null;\n  }\n}\n\nexport { addClickKeypressInstrumentationHandler, instrumentDOM };\n//# sourceMappingURL=dom.js.map\n","import { addHandler, maybeInstrument, triggerHandlers, fill } from '@sentry/core';\nimport { WINDOW } from '../types.js';\n\nlet lastHref;\nfunction supportsHistory() {\n  return \"history\" in WINDOW && !!WINDOW.history;\n}\nfunction addHistoryInstrumentationHandler(handler) {\n  const type = \"history\";\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentHistory);\n}\nfunction instrumentHistory() {\n  WINDOW.addEventListener(\"popstate\", () => {\n    const to = WINDOW.location.href;\n    const from = lastHref;\n    lastHref = to;\n    if (from === to) {\n      return;\n    }\n    const handlerData = { from, to };\n    triggerHandlers(\"history\", handlerData);\n  });\n  if (!supportsHistory()) {\n    return;\n  }\n  function historyReplacementFunction(originalHistoryFunction) {\n    return function(...args) {\n      const url = args.length > 2 ? args[2] : void 0;\n      if (url) {\n        const from = lastHref;\n        const to = getAbsoluteUrl(String(url));\n        lastHref = to;\n        if (from === to) {\n          return originalHistoryFunction.apply(this, args);\n        }\n        const handlerData = { from, to };\n        triggerHandlers(\"history\", handlerData);\n      }\n      return originalHistoryFunction.apply(this, args);\n    };\n  }\n  fill(WINDOW.history, \"pushState\", historyReplacementFunction);\n  fill(WINDOW.history, \"replaceState\", historyReplacementFunction);\n}\nfunction getAbsoluteUrl(urlOrPath) {\n  try {\n    const url = new URL(urlOrPath, WINDOW.location.origin);\n    return url.toString();\n  } catch {\n    return urlOrPath;\n  }\n}\n\nexport { addHistoryInstrumentationHandler, instrumentHistory, supportsHistory };\n//# sourceMappingURL=history.js.map\n","import { isNativeFunction, debug } from '@sentry/core';\nimport { DEBUG_BUILD } from './debug-build.js';\nimport { WINDOW } from './types.js';\n\nconst cachedImplementations = {};\nfunction getNativeImplementation(name) {\n  const cached = cachedImplementations[name];\n  if (cached) {\n    return cached;\n  }\n  let impl = WINDOW[name];\n  if (isNativeFunction(impl)) {\n    return cachedImplementations[name] = impl.bind(WINDOW);\n  }\n  const document = WINDOW.document;\n  if (document && typeof document.createElement === \"function\") {\n    try {\n      const sandbox = document.createElement(\"iframe\");\n      sandbox.hidden = true;\n      document.head.appendChild(sandbox);\n      const contentWindow = sandbox.contentWindow;\n      if (contentWindow?.[name]) {\n        impl = contentWindow[name];\n      }\n      document.head.removeChild(sandbox);\n    } catch (e) {\n      DEBUG_BUILD && debug.warn(`Could not create sandbox iframe for ${name} check, bailing to window.${name}: `, e);\n    }\n  }\n  if (!impl) {\n    return impl;\n  }\n  return cachedImplementations[name] = impl.bind(WINDOW);\n}\nfunction clearCachedImplementation(name) {\n  cachedImplementations[name] = void 0;\n}\nfunction fetch(...rest) {\n  return getNativeImplementation(\"fetch\")(...rest);\n}\nfunction setTimeout(...rest) {\n  return getNativeImplementation(\"setTimeout\")(...rest);\n}\n\nexport { clearCachedImplementation, fetch, getNativeImplementation, setTimeout };\n//# sourceMappingURL=getNativeImplementation.js.map\n","import { addHandler, maybeInstrument, timestampInSeconds, isString, triggerHandlers } from '@sentry/core';\nimport { WINDOW } from '../types.js';\n\nconst SENTRY_XHR_DATA_KEY = \"__sentry_xhr_v3__\";\nfunction addXhrInstrumentationHandler(handler) {\n  const type = \"xhr\";\n  addHandler(type, handler);\n  maybeInstrument(type, instrumentXHR);\n}\nfunction instrumentXHR() {\n  if (!WINDOW.XMLHttpRequest) {\n    return;\n  }\n  const xhrproto = XMLHttpRequest.prototype;\n  xhrproto.open = new Proxy(xhrproto.open, {\n    apply(originalOpen, xhrOpenThisArg, xhrOpenArgArray) {\n      let virtualError = new Error();\n      const startTimestamp = timestampInSeconds() * 1e3;\n      const method = isString(xhrOpenArgArray[0]) ? xhrOpenArgArray[0].toUpperCase() : void 0;\n      const url = parseXhrUrlArg(xhrOpenArgArray[1]);\n      if (!method || !url) {\n        return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n      }\n      xhrOpenThisArg[SENTRY_XHR_DATA_KEY] = {\n        method,\n        url,\n        request_headers: {}\n      };\n      if (method === \"POST\" && url.match(/sentry_key/)) {\n        xhrOpenThisArg.__sentry_own_request__ = true;\n      }\n      const onreadystatechangeHandler = () => {\n        const xhrInfo = xhrOpenThisArg[SENTRY_XHR_DATA_KEY];\n        if (!xhrInfo) {\n          return;\n        }\n        if (xhrOpenThisArg.readyState === 4) {\n          try {\n            xhrInfo.status_code = xhrOpenThisArg.status;\n          } catch {\n          }\n          const handlerData = {\n            endTimestamp: timestampInSeconds() * 1e3,\n            startTimestamp,\n            xhr: xhrOpenThisArg,\n            virtualError\n          };\n          triggerHandlers(\"xhr\", handlerData);\n          virtualError = void 0;\n          xhrOpenThisArg.removeEventListener(\"readystatechange\", onreadystatechangeHandler);\n        }\n      };\n      if (\"onreadystatechange\" in xhrOpenThisArg && typeof xhrOpenThisArg.onreadystatechange === \"function\") {\n        xhrOpenThisArg.onreadystatechange = new Proxy(xhrOpenThisArg.onreadystatechange, {\n          apply(originalOnreadystatechange, onreadystatechangeThisArg, onreadystatechangeArgArray) {\n            onreadystatechangeHandler();\n            return originalOnreadystatechange.apply(onreadystatechangeThisArg, onreadystatechangeArgArray);\n          }\n        });\n      } else {\n        xhrOpenThisArg.addEventListener(\"readystatechange\", onreadystatechangeHandler);\n      }\n      xhrOpenThisArg.setRequestHeader = new Proxy(xhrOpenThisArg.setRequestHeader, {\n        apply(originalSetRequestHeader, setRequestHeaderThisArg, setRequestHeaderArgArray) {\n          const [header, value] = setRequestHeaderArgArray;\n          const xhrInfo = setRequestHeaderThisArg[SENTRY_XHR_DATA_KEY];\n          if (xhrInfo && isString(header) && isString(value)) {\n            xhrInfo.request_headers[header.toLowerCase()] = value;\n          }\n          return originalSetRequestHeader.apply(setRequestHeaderThisArg, setRequestHeaderArgArray);\n        }\n      });\n      return originalOpen.apply(xhrOpenThisArg, xhrOpenArgArray);\n    }\n  });\n  xhrproto.send = new Proxy(xhrproto.send, {\n    apply(originalSend, sendThisArg, sendArgArray) {\n      const sentryXhrData = sendThisArg[SENTRY_XHR_DATA_KEY];\n      if (!sentryXhrData) {\n        return originalSend.apply(sendThisArg, sendArgArray);\n      }\n      if (sendArgArray[0] !== void 0) {\n        sentryXhrData.body = sendArgArray[0];\n      }\n      const handlerData = {\n        startTimestamp: timestampInSeconds() * 1e3,\n        xhr: sendThisArg\n      };\n      triggerHandlers(\"xhr\", handlerData);\n      return originalSend.apply(sendThisArg, sendArgArray);\n    }\n  });\n}\nfunction parseXhrUrlArg(url) {\n  if (isString(url)) {\n    return url;\n  }\n  try {\n    return url.toString();\n  } catch {\n  }\n  return void 0;\n}\n\nexport { SENTRY_XHR_DATA_KEY, addXhrInstrumentationHandler, instrumentXHR };\n//# sourceMappingURL=xhr.js.map\n","import type { HandlerDataError, Mechanism, WrappedFunction } from '@sentry/core';\nimport {\n  addExceptionMechanism,\n  addExceptionTypeValue,\n  addNonEnumerableProperty,\n  captureException,\n  getOriginalFunction,\n  GLOBAL_OBJ,\n  markFunctionWrapped,\n  withScope,\n} from '@sentry/core';\nimport { getLocationHref } from '@sentry/browser-utils';\n\nexport const WINDOW = GLOBAL_OBJ as typeof GLOBAL_OBJ & Window;\n\nlet ignoreOnError: number = 0;\n\ntype ErrorReport = Pick<HandlerDataError, 'msg' | 'url' | 'line' | 'column'>;\n\nconst ignoredErrorReports: ErrorReport[] = [];\n\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError(data?: HandlerDataError): boolean {\n  if (ignoreOnError > 0) {\n    return true;\n  }\n\n  const index = data ? ignoredErrorReports.findIndex(report => isSameErrorReport(report, data)) : -1;\n  if (index === -1) {\n    return false;\n  }\n\n  ignoredErrorReports.splice(index, 1);\n  return true;\n}\n\n/**\n * Skips the next `onerror` report that matches `report`, once. A report that\n * never arrives is forgotten after the current task.\n *\n * @hidden\n */\nexport function ignoreNextOnErrorMatching(report: ErrorReport): void {\n  ignoredErrorReports.push(report);\n  setTimeout(() => {\n    const index = ignoredErrorReports.indexOf(report);\n    if (index !== -1) {\n      ignoredErrorReports.splice(index, 1);\n    }\n  });\n}\n\nfunction isSameErrorReport(a: ErrorReport, b: ErrorReport): boolean {\n  return a.msg === b.msg && a.url === b.url && a.line === b.line && a.column === b.column;\n}\n\n/**\n * @hidden\n */\nexport function ignoreNextOnError(): void {\n  // onerror should trigger before setTimeout\n  ignoreOnError++;\n  setTimeout(() => {\n    ignoreOnError--;\n  });\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\ntype WrappableFunction = Function;\n\nexport function wrap<T extends WrappableFunction>(\n  fn: T,\n  options?: {\n    mechanism?: Mechanism;\n  },\n): WrappedFunction<T>;\nexport function wrap<NonFunction>(\n  fn: NonFunction,\n  options?: {\n    mechanism?: Mechanism;\n  },\n): NonFunction;\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap. It is generally safe to pass an unbound function, because the returned wrapper always\n * has a correct `this` context.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap<T extends WrappableFunction, NonFunction>(\n  fn: T | NonFunction,\n  options: {\n    mechanism?: Mechanism;\n  } = {},\n): NonFunction | WrappedFunction<T> {\n  // for future readers what this does is wrap a function and then create\n  // a bi-directional wrapping between them.\n  //\n  // example: wrapped = wrap(original);\n  //  original.__sentry_wrapped__ -> wrapped\n  //  wrapped.__sentry_original__ -> original\n\n  function isFunction(fn: T | NonFunction): fn is T {\n    return typeof fn === 'function';\n  }\n\n  if (!isFunction(fn)) {\n    return fn;\n  }\n\n  try {\n    // If we're dealing with a function that was previously wrapped, return the original wrapper.\n    // Check via hasOwnProperty so a `__sentry_wrapped__` inherited from a wrapped `Function.prototype`\n    // is not mistaken for a real wrapper.\n    const hasOwnWrapper = Object.prototype.hasOwnProperty.call(fn, '__sentry_wrapped__');\n    if (hasOwnWrapper) {\n      const wrapper = (fn as WrappedFunction<T>).__sentry_wrapped__;\n      if (typeof wrapper === 'function') {\n        return wrapper;\n      } else {\n        // If we find that the `__sentry_wrapped__` function is not a function at the time of accessing it, it means\n        // that something messed with it. In that case we want to return the originally passed function.\n        return fn;\n      }\n    }\n\n    // We don't wanna wrap it twice\n    if (getOriginalFunction(fn)) {\n      return fn;\n    }\n  } catch {\n    // Just accessing custom props in some Selenium environments\n    // can cause a \"Permission denied\" exception (see raven-js#495).\n    // Bail on wrapping and return the function as-is (defers to window.onerror).\n    return fn;\n  }\n\n  // Wrap the function itself\n  // It is important that `sentryWrapped` is not an arrow function to preserve the context of `this`\n  const sentryWrapped = function (this: unknown, ...args: unknown[]): unknown {\n    // Track depth on GLOBAL_OBJ so the thirdPartyErrorFilterIntegration (in @sentry/core) can detect\n    // that processEvent is running inside a sentryWrapped call, even with minified/bundled code.\n    GLOBAL_OBJ._sentryWrappedDepth = (GLOBAL_OBJ._sentryWrappedDepth || 0) + 1;\n    try {\n      // Also wrap arguments that are themselves functions\n      const wrappedArguments = args.map(arg => wrap(arg, options));\n\n      // Attempt to invoke user-land function\n      // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n      //       means the sentry.javascript SDK caught an error invoking your application code. This\n      //       is expected behavior and NOT indicative of a bug with sentry.javascript.\n      return fn.apply(this, wrappedArguments);\n    } catch (ex) {\n      ignoreNextOnError();\n\n      withScope(scope => {\n        scope.addEventProcessor(event => {\n          if (options.mechanism) {\n            addExceptionTypeValue(event, undefined, undefined);\n            addExceptionMechanism(event, options.mechanism);\n          }\n\n          event.extra = {\n            ...event.extra,\n            arguments: args,\n          };\n\n          return event;\n        });\n\n        // no need to add a mechanism here, we already add it via an event processor above\n        captureException(ex);\n      });\n\n      throw ex;\n    } finally {\n      GLOBAL_OBJ._sentryWrappedDepth = (GLOBAL_OBJ._sentryWrappedDepth || 0) - 1;\n    }\n  } as unknown as WrappedFunction<T>;\n\n  // Wrap the wrapped function in a proxy, to ensure any other properties of the original function remain available\n  try {\n    for (const property in fn) {\n      if (Object.prototype.hasOwnProperty.call(fn, property)) {\n        sentryWrapped[property as keyof T] = fn[property as keyof T];\n      }\n    }\n  } catch {\n    // Accessing some objects may throw\n    // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n  }\n\n  // Signal that this function has been wrapped/filled already\n  // for both debugging and to prevent it to being wrapped/filled twice\n  markFunctionWrapped(sentryWrapped, fn);\n\n  addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n\n  // Restore original function name (not all browsers allow that)\n  try {\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    const descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name')!;\n    if (descriptor.configurable) {\n      Object.defineProperty(sentryWrapped, 'name', {\n        get(): string {\n          return fn.name;\n        },\n      });\n    }\n  } catch {\n    // This may throw if e.g. the descriptor does not exist, or a browser does not allow redefining `name`.\n    // to save some bytes we simply try-catch this\n  }\n\n  return sentryWrapped;\n}\n\n/**\n * Get HTTP request data from the current page.\n */\nexport function getHttpRequestData(): { url: string; headers: Record<string, string> } {\n  // grab as much info as exists and add it to the event\n  const url = getLocationHref();\n  const { referrer } = WINDOW.document || {};\n  const { userAgent } = WINDOW.navigator || {};\n\n  const headers = {\n    ...(referrer && { Referer: referrer }),\n    ...(userAgent && { 'User-Agent': userAgent }),\n  };\n  const request = {\n    url,\n    headers,\n  };\n\n  return request;\n}\n","import type {\n  Event,\n  EventHint,\n  Exception,\n  ParameterizedString,\n  SeverityLevel,\n  StackFrame,\n  StackParser,\n} from '@sentry/core';\nimport {\n  _INTERNAL_enhanceErrorWithSentryInfo,\n  addExceptionMechanism,\n  addExceptionTypeValue,\n  extractExceptionKeysForMessage,\n  getClient,\n  isDOMError,\n  isDOMException,\n  isError,\n  isErrorEvent,\n  isEvent,\n  isParameterizedString,\n  isPlainObject,\n  normalizeToSize,\n  resolvedSyncPromise,\n} from '@sentry/core';\n\ntype Prototype = { constructor: (...args: unknown[]) => unknown };\n\n/**\n * This function creates an exception from a JavaScript Error\n */\nexport function exceptionFromError(stackParser: StackParser, ex: Error): Exception {\n  // Get the frames first since Opera can lose the stack if we touch anything else first\n  const frames = parseStackFrames(stackParser, ex);\n\n  const exception: Exception = {\n    type: extractType(ex),\n    value: extractMessage(ex),\n  };\n\n  if (frames.length) {\n    exception.stacktrace = { frames };\n  }\n\n  if (exception.type === undefined && exception.value === '') {\n    exception.value = 'Unrecoverable error caught';\n  }\n\n  return exception;\n}\n\nfunction eventFromPlainObject(\n  stackParser: StackParser,\n  exception: Record<string, unknown>,\n  syntheticException?: Error,\n  isUnhandledRejection?: boolean,\n): Event {\n  const client = getClient();\n  const normalizeDepth = client?.getOptions().normalizeDepth;\n\n  // If we can, we extract an exception from the object properties\n  const errorFromProp = getErrorPropertyFromObject(exception);\n\n  const extra = {\n    __serialized__: normalizeToSize(exception, normalizeDepth),\n  };\n\n  if (errorFromProp) {\n    return {\n      exception: {\n        values: [exceptionFromError(stackParser, errorFromProp)],\n      },\n      extra,\n    };\n  }\n\n  const exceptionValue: Exception = {\n    type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n    value: getNonErrorObjectExceptionValue(exception, { isUnhandledRejection }),\n  };\n\n  const event = {\n    exception: {\n      values: [exceptionValue],\n    },\n    extra,\n  } satisfies Event;\n\n  if (syntheticException) {\n    const frames = parseStackFrames(stackParser, syntheticException);\n    if (frames.length) {\n      // event.exception.values[0] has been set above\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      event.exception.values[0]!.stacktrace = { frames };\n    }\n  }\n\n  return event;\n}\n\nfunction eventFromError(stackParser: StackParser, ex: Error): Event {\n  return {\n    exception: {\n      values: [exceptionFromError(stackParser, ex)],\n    },\n  };\n}\n\n/** Parses stack frames from an error */\nfunction parseStackFrames(\n  stackParser: StackParser,\n  ex: Error & { framesToPop?: number; stacktrace?: string },\n): StackFrame[] {\n  // Access and store the stacktrace property before doing ANYTHING\n  // else to it because Opera is not very good at providing it\n  // reliably in other circumstances.\n  const stacktrace = ex.stacktrace || ex.stack || '';\n\n  const skipLines = getSkipFirstStackStringLines(ex);\n  const framesToPop = getPopFirstTopFrames(ex);\n\n  try {\n    return stackParser(stacktrace, skipLines, framesToPop);\n  } catch {\n    // no-empty\n  }\n\n  return [];\n}\n\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nconst reactMinifiedRegexp = /Minified React error #\\d+;/i;\n\n/**\n * Certain known React errors contain links that would be falsely\n * parsed as frames. This function check for these errors and\n * returns number of the stack string lines to skip.\n */\nfunction getSkipFirstStackStringLines(ex: Error): number {\n  if (ex && reactMinifiedRegexp.test(ex.message)) {\n    return 1;\n  }\n\n  return 0;\n}\n\n/**\n * If error has `framesToPop` property, it means that the\n * creator tells us the first x frames will be useless\n * and should be discarded. Typically error from wrapper function\n * which don't point to the actual location in the developer's code.\n *\n * Example: https://github.com/zertosh/invariant/blob/master/invariant.js#L46\n */\nfunction getPopFirstTopFrames(ex: Error & { framesToPop?: unknown }): number {\n  if (typeof ex.framesToPop === 'number') {\n    return ex.framesToPop;\n  }\n\n  return 0;\n}\n\n// https://developer.mozilla.org/en-US/docs/WebAssembly/JavaScript_interface/Exception\nfunction isWebAssemblyException(exception: unknown): exception is WebAssembly.Exception {\n  // Check for support\n  // oxlint-disable-next-line typescript/prefer-optional-chain\n  if (typeof WebAssembly !== 'undefined' && typeof WebAssembly.Exception !== 'undefined') {\n    return exception instanceof WebAssembly.Exception;\n  } else {\n    return false;\n  }\n}\n\n/**\n * Extracts from errors what we use as the exception `type` in error events.\n *\n * Usually, this is the `name` property on Error objects but WASM errors need to be treated differently.\n */\nexport function extractType(ex: Error & { message: { error?: Error } }): string | undefined {\n  const name = ex?.name;\n\n  // The name for WebAssembly.Exception Errors needs to be extracted differently.\n  // Context: https://github.com/getsentry/sentry-javascript/issues/13787\n  if (!name && isWebAssemblyException(ex)) {\n    // Emscripten sets array[type, message] to the \"message\" property on the WebAssembly.Exception object\n    const hasTypeInMessage = ex.message && Array.isArray(ex.message) && ex.message.length == 2;\n    return hasTypeInMessage ? ex.message[0] : 'WebAssembly.Exception';\n  }\n\n  return name;\n}\n\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nexport function extractMessage(ex: Error & { message: { error?: Error } }): string {\n  const message = ex?.message;\n\n  if (isWebAssemblyException(ex)) {\n    // For Node 18, Emscripten sets array[type, message] to the \"message\" property on the WebAssembly.Exception object\n    if (Array.isArray(ex.message) && ex.message.length == 2) {\n      return ex.message[1];\n    }\n    return 'wasm exception';\n  }\n\n  if (!message) {\n    return 'No error message';\n  }\n\n  if (message.error && typeof message.error.message === 'string') {\n    return _INTERNAL_enhanceErrorWithSentryInfo(message.error);\n  }\n\n  return _INTERNAL_enhanceErrorWithSentryInfo(ex);\n}\n\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nexport function eventFromException(\n  stackParser: StackParser,\n  exception: unknown,\n  hint?: EventHint,\n  attachStacktrace?: boolean,\n): PromiseLike<Event> {\n  const syntheticException = hint?.syntheticException || undefined;\n  const event = eventFromUnknownInput(stackParser, exception, syntheticException, attachStacktrace);\n  addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n  event.level = 'error';\n  if (hint?.event_id) {\n    event.event_id = hint.event_id;\n  }\n  return resolvedSyncPromise(event);\n}\n\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(\n  stackParser: StackParser,\n  message: ParameterizedString,\n  level: SeverityLevel = 'info',\n  hint?: EventHint,\n  attachStacktrace?: boolean,\n): PromiseLike<Event> {\n  const syntheticException = hint?.syntheticException || undefined;\n  const event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n  event.level = level;\n  if (hint?.event_id) {\n    event.event_id = hint.event_id;\n  }\n  return resolvedSyncPromise(event);\n}\n\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(\n  stackParser: StackParser,\n  exception: unknown,\n  syntheticException?: Error,\n  attachStacktrace?: boolean,\n  isUnhandledRejection?: boolean,\n): Event {\n  let event: Event;\n\n  if (isErrorEvent(exception) && (exception as ErrorEvent).error) {\n    // If it is an ErrorEvent with `error` property, extract it to get actual Error\n    const errorEvent = exception as ErrorEvent;\n    return eventFromError(stackParser, errorEvent.error as Error);\n  }\n\n  // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n  // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n  // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n  //\n  // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n  // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n  // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n  if (isDOMError(exception) || isDOMException(exception)) {\n    const domException = exception as DOMException;\n\n    if ('stack' in (exception as Error)) {\n      event = eventFromError(stackParser, exception as Error);\n\n      const firstException = event.exception?.values?.[0];\n      if (attachStacktrace && syntheticException && firstException && !firstException.stacktrace) {\n        const frames = parseStackFrames(stackParser, syntheticException);\n        if (frames.length) {\n          firstException.stacktrace = { frames };\n          addExceptionMechanism(event, { synthetic: true });\n        }\n      }\n    } else {\n      const name = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n      const message = domException.message ? `${name}: ${domException.message}` : name;\n      event = eventFromString(stackParser, message, syntheticException, attachStacktrace);\n      addExceptionTypeValue(event, message);\n    }\n\n    return event;\n  }\n  if (isError(exception)) {\n    // we have a real Error object, do nothing\n    return eventFromError(stackParser, exception);\n  }\n  if (isPlainObject(exception) || isEvent(exception)) {\n    // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n    // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n    // group on any key/value change.\n    const objectException = exception;\n    event = eventFromPlainObject(stackParser, objectException, syntheticException, isUnhandledRejection);\n    addExceptionMechanism(event, {\n      synthetic: true,\n    });\n    return event;\n  }\n\n  // If none of previous checks were valid, then it means that it's not:\n  // - an instance of DOMError\n  // - an instance of DOMException\n  // - an instance of Event\n  // - an instance of Error\n  // - a valid ErrorEvent (one with an error property)\n  // - a plain Object\n  //\n  // So bail out and capture it as a simple message:\n  const stringifiedException = String(exception);\n  event = eventFromString(stackParser, stringifiedException, syntheticException, attachStacktrace);\n  addExceptionTypeValue(event, stringifiedException, undefined);\n  addExceptionMechanism(event, {\n    synthetic: true,\n  });\n\n  return event;\n}\n\nfunction eventFromString(\n  stackParser: StackParser,\n  message: ParameterizedString,\n  syntheticException?: Error,\n  attachStacktrace?: boolean,\n): Event {\n  const event: Event = {};\n\n  if (attachStacktrace && syntheticException) {\n    const frames = parseStackFrames(stackParser, syntheticException);\n    if (frames.length) {\n      event.exception = {\n        values: [{ value: message, stacktrace: { frames } }],\n      };\n    }\n    addExceptionMechanism(event, { synthetic: true });\n  }\n\n  if (isParameterizedString(message)) {\n    const { __sentry_template_string__, __sentry_template_values__ } = message;\n\n    event.logentry = {\n      message: __sentry_template_string__,\n      params: __sentry_template_values__,\n    };\n    return event;\n  }\n\n  event.message = message;\n  return event;\n}\n\nfunction getNonErrorObjectExceptionValue(\n  exception: Record<string, unknown>,\n  { isUnhandledRejection }: { isUnhandledRejection?: boolean },\n): string {\n  const keys = extractExceptionKeysForMessage(exception);\n  const captureType = isUnhandledRejection ? 'promise rejection' : 'exception';\n\n  // Some ErrorEvent instances do not have an `error` property, which is why they are not handled before\n  // We still want to try to get a decent message for these cases\n  if (isErrorEvent(exception)) {\n    return `Event \\`ErrorEvent\\` captured as ${captureType} with message \\`${exception.message}\\``;\n  }\n\n  if (isEvent(exception)) {\n    const className = getObjectClassName(exception);\n    return `Event \\`${className}\\` (type=${exception.type}) captured as ${captureType}`;\n  }\n\n  return `Object captured as ${captureType} with keys: ${keys}`;\n}\n\nfunction getObjectClassName(obj: unknown): string | undefined | void {\n  try {\n    const prototype: Prototype | null = Object.getPrototypeOf(obj);\n    return prototype ? prototype.constructor.name : undefined;\n  } catch {\n    // ignore errors here\n  }\n}\n\n/** If a plain object has a property that is an `Error`, return this error. */\nfunction getErrorPropertyFromObject(obj: Record<string, unknown>): Error | undefined {\n  return Object.values(obj).find(isError);\n}\n","import type {\n  ClientOptions,\n  Event,\n  EventHint,\n  Options as CoreOptions,\n  ParameterizedString,\n  Scope,\n  SeverityLevel,\n} from '@sentry/core';\nimport type { BrowserClientReplayOptions } from '@sentry/core/browser';\nimport { addAutoIpAddressToSession, applySdkMetadata, Client, getSDKSource } from '@sentry/core';\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { WINDOW } from './helpers';\nimport type { BrowserTransportOptions } from './transports/types';\n\n/**\n * A magic string that build tooling can leverage in order to inject a release value into the SDK.\n */\ndeclare const __SENTRY_RELEASE__: string | undefined;\n\nexport type BrowserClientProfilingOptions = {\n  /**\n   * Sets profiling session sample rate for the entire profiling session.\n   *\n   * A profiling session corresponds to a user session, meaning it is set once at integration initialization and\n   * persisted until the next page reload. This rate determines what percentage of user sessions will have profiling enabled.\n   * @default 0\n   */\n  profileSessionSampleRate?: number;\n\n  /**\n   * Set the lifecycle mode of the profiler.\n   * - **manual**: The profiler will be manually started and stopped via `startProfiler`/`stopProfiler`.\n   *    If a session is sampled, is dependent on the `profileSessionSampleRate`.\n   * - **trace**: The profiler will be automatically started when a root span exists and stopped when there are no\n   *    more sampled root spans. Whether a session is sampled, is dependent on the `profileSessionSampleRate` and the\n   *    existing sampling configuration for tracing (`tracesSampleRate`/`tracesSampler`).\n   *\n   * @default 'manual'\n   */\n  profileLifecycle?: 'manual' | 'trace';\n};\n\ntype BrowserSpecificOptions = BrowserClientReplayOptions &\n  BrowserClientProfilingOptions & {\n    /** If configured, this URL will be used as base URL for lazy loading integration. */\n    cdnBaseUrl?: string;\n\n    /**\n     * Important: Only set this option if you know what you are doing!\n     *\n     * By default, the SDK will check if `Sentry.init` is called in a browser extension.\n     * In case it is, it will stop initialization and log a warning\n     * because browser extensions require a different Sentry initialization process:\n     * https://docs.sentry.io/platforms/javascript/best-practices/shared-environments/\n     *\n     * Setting up the SDK in a browser extension with global error monitoring is not recommended\n     * and will likely flood you with errors from other web sites or extensions. This can heavily\n     * impact your quota and cause interference with your and other Sentry SDKs in shared environments.\n     *\n     * If this check wrongfully flags your setup as a browser extension, you can set this\n     * option to `true` to skip the check.\n     *\n     * @default false\n     */\n    skipBrowserExtensionCheck?: boolean;\n\n    /**\n     * If you use Spotlight by Sentry during development, use\n     * this option to forward captured Sentry events to Spotlight.\n     *\n     * Either set it to true, or provide a specific Spotlight Sidecar URL.\n     *\n     * More details: https://spotlightjs.com/\n     *\n     * IMPORTANT: Only set this option to `true` while developing, not in production!\n     */\n    spotlight?: boolean | string;\n  };\n/**\n * Configuration options for the Sentry Browser SDK.\n * @see @sentry/core Options for more information.\n */\nexport type BrowserOptions = CoreOptions<BrowserTransportOptions> & BrowserSpecificOptions;\n\n/**\n * Configuration options for the Sentry Browser SDK Client class\n * @see BrowserClient for more information.\n */\nexport type BrowserClientOptions = ClientOptions<BrowserTransportOptions> & BrowserSpecificOptions;\n\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nexport class BrowserClient extends Client<BrowserClientOptions> {\n  /**\n   * Creates a new Browser SDK instance.\n   *\n   * @param options Configuration options for this SDK.\n   */\n  public constructor(options: BrowserClientOptions) {\n    const opts = applyDefaultOptions(options);\n    const sdkSource = WINDOW.SENTRY_SDK_SOURCE || getSDKSource();\n    applySdkMetadata(opts, 'browser', ['browser'], sdkSource);\n\n    super(opts);\n\n    // Unhandled errors don't actually crash the browser, so we report `unhandled` rather than `crashed`.\n    this._unhandledSessionStatus = 'unhandled';\n\n    const { userInfo } = this.getDataCollectionOptions();\n\n    if (opts._metadata?.sdk) {\n      opts._metadata.sdk.settings = {\n        // Only allow IP inferral by Relay if the user opted in via dataCollection\n        infer_ip: userInfo ? 'auto' : 'never',\n        // purposefully allowing already passed settings to override the default\n        ...opts._metadata.sdk.settings,\n      };\n    }\n\n    const { sendClientReports } = this._options;\n\n    // Flush buffered data when the page becomes hidden (e.g. tab switch, navigation, or the page\n    // being discarded). `flush()` emits the `flush` hook, which drains the span (streaming), log and\n    // metric buffers and hands the resulting envelopes to the transport (which uses `keepalive`).\n    // Client report outcomes don't listen to the `flush` hook, so we flush them separately.\n    if (WINDOW.document) {\n      WINDOW.document.addEventListener('visibilitychange', () => {\n        if (WINDOW.document.visibilityState === 'hidden') {\n          if (sendClientReports) {\n            this._flushOutcomes();\n          }\n          // Defer the flush to a microtask so that visibilitychange listeners registered after this\n          // one have already run. In particular, browser tracing's background-tab detection ends the\n          // active pageload/navigation (segment) span when the page is hidden. Deferring ensures that\n          // segment span has been added to the streaming buffer before we flush, so it is sent\n          // together with its child spans instead of being orphaned.\n          queueMicrotask(() => {\n            void this.flush();\n          });\n        }\n      });\n    }\n\n    if (userInfo) {\n      this.on('beforeSendSession', addAutoIpAddressToSession);\n    }\n  }\n\n  /**\n   * @inheritDoc\n   */\n  public eventFromException(exception: unknown, hint?: EventHint): PromiseLike<Event> {\n    return eventFromException(this._options.stackParser, exception, hint, this._options.attachStacktrace);\n  }\n\n  /**\n   * @inheritDoc\n   */\n  public eventFromMessage(\n    message: ParameterizedString,\n    level: SeverityLevel = 'info',\n    hint?: EventHint,\n  ): PromiseLike<Event> {\n    return eventFromMessage(this._options.stackParser, message, level, hint, this._options.attachStacktrace);\n  }\n\n  /**\n   * @inheritDoc\n   */\n  protected _prepareEvent(\n    event: Event,\n    hint: EventHint,\n    currentScope: Scope,\n    isolationScope: Scope,\n  ): PromiseLike<Event | null> {\n    event.platform = event.platform || 'javascript';\n\n    return super._prepareEvent(event, hint, currentScope, isolationScope);\n  }\n}\n\n/** Exported only for tests. */\nexport function applyDefaultOptions<T extends Partial<BrowserClientOptions>>(optionsArg: T): T {\n  return {\n    release:\n      typeof __SENTRY_RELEASE__ === 'string' // This allows build tooling to find-and-replace __SENTRY_RELEASE__ to inject a release value\n        ? __SENTRY_RELEASE__\n        : WINDOW.SENTRY_RELEASE?.id, // This supports the variable that sentry-webpack-plugin injects\n    sendClientReports: true,\n    // We default this to true, as it is the safer scenario\n    parentSpanIsAlwaysRootSpan: true,\n    ...optionsArg,\n  };\n}\n","import { SDK_VERSION } from './version.js';\n\nfunction applySdkMetadata(options, name, names = [name], source = \"npm\") {\n  const sdk = (options._metadata = options._metadata || {}).sdk = options._metadata.sdk || {};\n  if (!sdk.name) {\n    sdk.name = `sentry.javascript.${name}`;\n    sdk.packages = names.map((name2) => ({\n      name: `${source}:@sentry/${name2}`,\n      version: SDK_VERSION\n    }));\n    sdk.version = SDK_VERSION;\n  }\n}\n\nexport { applySdkMetadata };\n//# sourceMappingURL=sdkMetadata.js.map\n","function isBrowserBundle() {\n  return typeof __SENTRY_BROWSER_BUNDLE__ !== \"undefined\" && !!__SENTRY_BROWSER_BUNDLE__;\n}\nfunction getSDKSource() {\n  /*! __SENTRY_SDK_SOURCE__ */\n  return \"npm\";\n}\n\nexport { getSDKSource, isBrowserBundle };\n//# sourceMappingURL=env.js.map\n","import type { Transport, TransportMakeRequestResponse, TransportRequest } from '@sentry/core';\nimport { createTransport, makePromiseBuffer } from '@sentry/core';\nimport { clearCachedImplementation, getNativeImplementation } from '@sentry/browser-utils';\nimport type { WINDOW } from '../helpers';\nimport type { BrowserTransportOptions } from './types';\n\nconst DEFAULT_BROWSER_TRANSPORT_BUFFER_SIZE = 40;\n\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nexport function makeFetchTransport(\n  options: BrowserTransportOptions,\n  nativeFetch: typeof WINDOW.fetch = getNativeImplementation('fetch'),\n): Transport {\n  let pendingBodySize = 0;\n  let pendingCount = 0;\n\n  async function makeRequest(request: TransportRequest): Promise<TransportMakeRequestResponse> {\n    const requestSize = request.body.length;\n    pendingBodySize += requestSize;\n    pendingCount++;\n\n    const requestOptions: RequestInit = {\n      body: request.body as BodyInit,\n      method: 'POST',\n      referrerPolicy: 'strict-origin',\n      headers: options.headers,\n      // Outgoing requests are usually cancelled when navigating to a different page, causing a \"TypeError: Failed to\n      // fetch\" error and sending a \"network_error\" client-outcome - in Chrome, the request status shows \"(cancelled)\".\n      // The `keepalive` flag keeps outgoing requests alive, even when switching pages. We want this since we're\n      // frequently sending events right before the user is switching pages (eg. when finishing navigation transactions).\n      // Gotchas:\n      // - `keepalive` isn't supported by Firefox\n      // - As per spec (https://fetch.spec.whatwg.org/#http-network-or-cache-fetch):\n      //   If the sum of contentLength and inflightKeepaliveBytes is greater than 64 kibibytes, then return a network error.\n      //   We will therefore only activate the flag when we're below that limit.\n      // There is also a limit of requests that can be open at the same time, so we also limit this to 15\n      // See https://github.com/getsentry/sentry-javascript/pull/7553 for details\n      keepalive: pendingBodySize <= 60_000 && pendingCount < 15,\n      ...options.fetchOptions,\n    };\n\n    try {\n      // Note: We do not need to suppress tracing here, because we are using the native fetch, instead of our wrapped one.\n      const response = await nativeFetch(options.url, requestOptions);\n\n      return {\n        statusCode: response.status,\n        headers: {\n          'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n          'retry-after': response.headers.get('Retry-After'),\n        },\n      };\n    } catch (e) {\n      clearCachedImplementation('fetch');\n      throw e;\n    } finally {\n      pendingBodySize -= requestSize;\n      pendingCount--;\n    }\n  }\n\n  return createTransport(\n    options,\n    makeRequest,\n    makePromiseBuffer(options.bufferSize || DEFAULT_BROWSER_TRANSPORT_BUFFER_SIZE),\n  );\n}\n","import type { Profiler } from '@sentry/core';\nimport { debug, getClient } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\n\n/**\n * Starts a manually controlled Sentry UI profiling session.\n *\n * Profiling starts only when the integration sampled the current session and `profileLifecycle` is `manual`.\n * While running, the profiler periodically sends profile chunks to Sentry until `stopProfiler()` is called.\n */\nfunction startProfiler(): void {\n  const client = getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn('No Sentry client available, profiling is not started');\n    return;\n  }\n\n  const integration = client.getIntegrationByName('BrowserProfiling');\n\n  if (!integration) {\n    DEBUG_BUILD && debug.warn('BrowserProfiling integration is not available');\n    return;\n  }\n\n  client.emit('startUIProfiler');\n}\n\n/**\n * Stops a manually controlled Sentry UI profiling session.\n *\n * Calls to stop will stop the profiler and flush the currently collected profile data to Sentry.\n */\nfunction stopProfiler(): void {\n  const client = getClient();\n  if (!client) {\n    DEBUG_BUILD && debug.warn('No Sentry client available, profiling is not started');\n    return;\n  }\n\n  const integration = client.getIntegrationByName('BrowserProfiling');\n  if (!integration) {\n    DEBUG_BUILD && debug.warn('ProfilingIntegration is not available');\n    return;\n  }\n\n  client.emit('stopUIProfiler');\n}\n\n/**\n * Profiler namespace for controlling the JS profiler in 'manual' mode.\n *\n * Requires the `browserProfilingIntegration` from the `@sentry/browser` package.\n */\nexport const uiProfiler: Profiler = {\n  startProfiler,\n  stopProfiler,\n};\n","// This was originally forked from https://github.com/csnover/TraceKit, and was largely\n// re - written as part of raven - js.\n//\n// This code was later copied to the JavaScript mono - repo and further modified and\n// refactored over the years.\n\n// Copyright (c) 2013 Onur Can Cakmak onur.cakmak@gmail.com and all TraceKit contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of this\n// software and associated documentation files(the 'Software'), to deal in the Software\n// without restriction, including without limitation the rights to use, copy, modify,\n// merge, publish, distribute, sublicense, and / or sell copies of the Software, and to\n// permit persons to whom the Software is furnished to do so, subject to the following\n// conditions:\n//\n// The above copyright notice and this permission notice shall be included in all copies\n// or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF\n// CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE\n// OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport type { StackFrame, StackLineParser, StackLineParserFn } from '@sentry/core';\nimport { createStackParser, UNKNOWN_FUNCTION } from '@sentry/core';\n\nconst OPERA10_PRIORITY = 10;\nconst OPERA11_PRIORITY = 20;\nconst CHROME_PRIORITY = 30;\nconst WINJS_PRIORITY = 40;\nconst GECKO_PRIORITY = 50;\n\nfunction createFrame(filename: string, func: string, lineno?: number, colno?: number): StackFrame {\n  const frame: StackFrame = {\n    filename,\n    function: func === '<anonymous>' ? UNKNOWN_FUNCTION : func,\n    in_app: true, // All browser frames are considered in_app\n  };\n\n  if (lineno !== undefined) {\n    frame.lineno = lineno;\n  }\n\n  if (colno !== undefined) {\n    frame.colno = colno;\n  }\n\n  return frame;\n}\n\n// This regex matches frames that have no function name (ie. are at the top level of a module).\n// For example \"at http://localhost:5000//script.js:1:126\"\n// Frames _with_ function names usually look as follows: \"at commitLayoutEffects (react-dom.development.js:23426:1)\"\nconst chromeRegexNoFnName = /^\\s*at (\\S+?)(?::(\\d+))(?::(\\d+))\\s*$/i;\n\n// This regex matches all the frames that have a function name.\nconst chromeRegex =\n  /^\\s*at (?:(.+?\\)(?: \\[.+\\])?|.*?) ?\\((?:address at )?)?(?:async )?((?:<anonymous>|[-a-z]+:|.*bundle|\\/)?.*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n\nconst chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n\n// Matches stack frames with data URIs instead of filename so we can still get the function name\n// Example: \"at dynamicFn (data:application/javascript,export function dynamicFn() {...\"\nconst chromeDataUriRegex = /at (.+?) ?\\(data:(.+?),/;\n\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\n// We cannot call this variable `chrome` because it can conflict with global `chrome` variable in certain environments\n// See: https://github.com/getsentry/sentry-javascript/issues/6880\nconst chromeStackParserFn: StackLineParserFn = line => {\n  const dataUriMatch = line.match(chromeDataUriRegex);\n  if (dataUriMatch) {\n    return {\n      filename: `<data:${dataUriMatch[2]}>`,\n      function: dataUriMatch[1],\n    };\n  }\n\n  // If the stack line has no function name, we need to parse it differently\n  const noFnParts = chromeRegexNoFnName.exec(line) as null | [string, string, string, string];\n\n  if (noFnParts) {\n    const [, filename, line, col] = noFnParts;\n    return createFrame(filename, UNKNOWN_FUNCTION, +line, +col);\n  }\n\n  const parts = chromeRegex.exec(line) as null | [string, string, string, string, string];\n\n  if (parts) {\n    const isEval = parts[2]?.indexOf('eval') === 0; // start of line\n\n    if (isEval) {\n      const subMatch = chromeEvalRegex.exec(parts[2]) as null | [string, string, string, string];\n\n      if (subMatch) {\n        // throw out eval line/column and use top-most line/column number\n        parts[2] = subMatch[1]; // url\n        parts[3] = subMatch[2]; // line\n        parts[4] = subMatch[3]; // column\n      }\n    }\n\n    // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n    // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n    const [func, filename] = extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]);\n\n    return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n  }\n\n  return;\n};\n\nexport const chromeStackLineParser: StackLineParser = [CHROME_PRIORITY, chromeStackParserFn];\n\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nconst geckoREgex =\n  /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:[-a-z]+)?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nconst geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\n\nconst gecko: StackLineParserFn = line => {\n  const parts = geckoREgex.exec(line) as null | [string, string, string, string, string, string];\n\n  if (parts) {\n    const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n    if (isEval) {\n      const subMatch = geckoEvalRegex.exec(parts[3]) as null | [string, string, string];\n\n      if (subMatch) {\n        // throw out eval line/column and use top-most line number\n        parts[1] = parts[1] || 'eval';\n        parts[3] = subMatch[1];\n        parts[4] = subMatch[2];\n        parts[5] = ''; // no column when eval\n      }\n    }\n\n    let filename = parts[3];\n    let func = parts[1] || UNKNOWN_FUNCTION;\n    [func, filename] = extractSafariExtensionDetails(func, filename);\n\n    return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n  }\n\n  return;\n};\n\nexport const geckoStackLineParser: StackLineParser = [GECKO_PRIORITY, gecko];\n\nconst winjsRegex = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:[-a-z]+):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\n\nconst winjs: StackLineParserFn = line => {\n  const parts = winjsRegex.exec(line) as null | [string, string, string, string, string];\n\n  return parts\n    ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n    : undefined;\n};\n\nexport const winjsStackLineParser: StackLineParser = [WINJS_PRIORITY, winjs];\n\nconst opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n\nconst opera10: StackLineParserFn = line => {\n  const parts = opera10Regex.exec(line) as null | [string, string, string, string];\n  return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\n\nexport const opera10StackLineParser: StackLineParser = [OPERA10_PRIORITY, opera10];\n\nconst opera11Regex =\n  / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\n\nconst opera11: StackLineParserFn = line => {\n  const parts = opera11Regex.exec(line) as null | [string, string, string, string, string, string];\n  return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\n\nexport const opera11StackLineParser: StackLineParser = [OPERA11_PRIORITY, opera11];\n\nexport const defaultStackLineParsers = [chromeStackLineParser, geckoStackLineParser];\n\nexport const defaultStackParser = createStackParser(...defaultStackLineParsers);\n\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n *   at function@url:row:col\n *   at function@url:row:col\n *   at function@url:row:col\n *\n * it produces something like:\n *\n *   function@url:row:col\n *   function@url:row:col\n *   function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nconst extractSafariExtensionDetails = (func: string, filename: string): [string, string] => {\n  const isSafariExtension = func.indexOf('safari-extension') !== -1;\n  const isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n\n  return isSafariExtension || isSafariWebExtension\n    ? [\n        func.indexOf('@') !== -1 ? (func.split('@')[0] as string) : UNKNOWN_FUNCTION,\n        isSafariExtension ? `safari-extension:${filename}` : `safari-web-extension:${filename}`,\n      ]\n    : [func, filename];\n};\n","/* eslint-disable max-lines */\n\nimport type {\n  Breadcrumb,\n  Client,\n  Event as SentryEvent,\n  FetchBreadcrumbData,\n  FetchBreadcrumbHint,\n  HandlerDataFetch,\n  IntegrationFn,\n} from '@sentry/core';\nimport {\n  addBreadcrumb,\n  addFetchInstrumentationHandler,\n  debug,\n  defineIntegration,\n  getBreadcrumbLogLevelFromHttpStatusCode,\n  getClient,\n  getEventDescription,\n  parseUrl,\n} from '@sentry/core';\nimport type { FetchHint, HandlerDataDom, HandlerDataHistory, HandlerDataXhr } from '@sentry/browser-utils';\nimport {\n  addClickKeypressInstrumentationHandler,\n  addHistoryInstrumentationHandler,\n  addXhrInstrumentationHandler,\n  htmlTreeAsString,\n  getComponentName,\n  SENTRY_XHR_DATA_KEY,\n} from '@sentry/browser-utils';\nimport type { XhrBreadcrumbData, XhrBreadcrumbHint } from '@sentry/core/browser';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../helpers';\n\ninterface BreadcrumbsOptions {\n  dom:\n    | boolean\n    | {\n        serializeAttribute?: string | string[];\n        maxStringLength?: number;\n      };\n  fetch: boolean;\n  history: boolean;\n  sentry: boolean;\n  xhr: boolean;\n}\n\n/** maxStringLength gets capped to prevent 100 breadcrumbs exceeding 1MB event payload size */\nconst MAX_ALLOWED_STRING_LENGTH = 1024;\n\nconst INTEGRATION_NAME = 'Breadcrumbs' as const;\n\nconst _breadcrumbsIntegration = ((options: Partial<BreadcrumbsOptions> = {}) => {\n  const _options = {\n    dom: true,\n    fetch: true,\n    history: true,\n    sentry: true,\n    xhr: true,\n    ...options,\n  };\n\n  return {\n    name: INTEGRATION_NAME,\n    setup(client) {\n      if (_options.dom) {\n        addClickKeypressInstrumentationHandler(_getDomBreadcrumbHandler(client, _options.dom));\n      }\n      if (_options.xhr) {\n        addXhrInstrumentationHandler(_getXhrBreadcrumbHandler(client));\n      }\n      if (_options.fetch) {\n        addFetchInstrumentationHandler(_getFetchBreadcrumbHandler(client));\n      }\n      if (_options.history) {\n        addHistoryInstrumentationHandler(_getHistoryBreadcrumbHandler(client));\n      }\n      if (_options.sentry) {\n        client.on('beforeSendEvent', _getSentryBreadcrumbHandler(client));\n      }\n    },\n  };\n}) satisfies IntegrationFn;\n\nexport const breadcrumbsIntegration = defineIntegration(_breadcrumbsIntegration);\n\n/**\n * Adds a breadcrumb for Sentry events or transactions if this option is enabled.\n */\nfunction _getSentryBreadcrumbHandler(client: Client): (event: SentryEvent) => void {\n  return function addSentryBreadcrumb(event: SentryEvent): void {\n    if (getClient() !== client) {\n      return;\n    }\n\n    addBreadcrumb(\n      {\n        category: `sentry.${event.type === 'transaction' ? 'transaction' : 'event'}`,\n        event_id: event.event_id,\n        level: event.level,\n        message: getEventDescription(event),\n      },\n      {\n        event,\n      },\n    );\n  };\n}\n\n/**\n * A HOC that creates a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\nfunction _getDomBreadcrumbHandler(\n  client: Client,\n  dom: BreadcrumbsOptions['dom'],\n): (handlerData: HandlerDataDom) => void {\n  return function _innerDomBreadcrumb(handlerData: HandlerDataDom): void {\n    if (getClient() !== client) {\n      return;\n    }\n\n    let target;\n    let componentName;\n    let keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n\n    let maxStringLength =\n      typeof dom === 'object' && typeof dom.maxStringLength === 'number' ? dom.maxStringLength : undefined;\n    if (maxStringLength && maxStringLength > MAX_ALLOWED_STRING_LENGTH) {\n      DEBUG_BUILD &&\n        debug.warn(\n          `\\`dom.maxStringLength\\` cannot exceed ${MAX_ALLOWED_STRING_LENGTH}, but a value of ${maxStringLength} was configured. Sentry will use ${MAX_ALLOWED_STRING_LENGTH} instead.`,\n        );\n      maxStringLength = MAX_ALLOWED_STRING_LENGTH;\n    }\n\n    if (typeof keyAttrs === 'string') {\n      keyAttrs = [keyAttrs];\n    }\n\n    // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n    try {\n      const event = handlerData.event as Event | Node;\n      const element = _isEvent(event) ? event.target : event;\n\n      target = htmlTreeAsString(element, { keyAttrs, maxStringLength });\n      componentName = getComponentName(element);\n    } catch {\n      target = '<unknown>';\n    }\n\n    if (target.length === 0) {\n      return;\n    }\n\n    const breadcrumb: Breadcrumb = {\n      category: `ui.${handlerData.name}`,\n      message: target,\n    };\n\n    if (componentName) {\n      breadcrumb.data = { 'ui.component_name': componentName };\n    }\n\n    addBreadcrumb(breadcrumb, {\n      event: handlerData.event,\n      name: handlerData.name,\n      global: handlerData.global,\n    });\n  };\n}\n\n/**\n * Creates breadcrumbs from XHR API calls\n */\nfunction _getXhrBreadcrumbHandler(client: Client): (handlerData: HandlerDataXhr) => void {\n  return function _xhrBreadcrumb(handlerData: HandlerDataXhr): void {\n    if (getClient() !== client) {\n      return;\n    }\n\n    const { startTimestamp, endTimestamp } = handlerData;\n\n    const sentryXhrData = handlerData.xhr[SENTRY_XHR_DATA_KEY];\n\n    // We only capture complete, non-sentry requests\n    if (!startTimestamp || !endTimestamp || !sentryXhrData) {\n      return;\n    }\n\n    const { method, url, status_code, body } = sentryXhrData;\n\n    const data: XhrBreadcrumbData = {\n      method,\n      url,\n      status_code,\n    };\n\n    const hint: XhrBreadcrumbHint = {\n      xhr: handlerData.xhr,\n      input: body,\n      startTimestamp,\n      endTimestamp,\n    };\n\n    const breadcrumb = {\n      category: 'xhr',\n      data,\n      type: 'http',\n      level: getBreadcrumbLogLevelFromHttpStatusCode(status_code),\n    };\n\n    client.emit('beforeOutgoingRequestBreadcrumb', breadcrumb, hint);\n\n    addBreadcrumb(breadcrumb, hint);\n  };\n}\n\n/**\n * Creates breadcrumbs from fetch API calls\n */\nfunction _getFetchBreadcrumbHandler(client: Client): (handlerData: HandlerDataFetch) => void {\n  return function _fetchBreadcrumb(handlerData: HandlerDataFetch): void {\n    if (getClient() !== client) {\n      return;\n    }\n\n    const { startTimestamp, endTimestamp } = handlerData;\n\n    // We only capture complete fetch requests\n    if (!endTimestamp) {\n      return;\n    }\n\n    if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n      // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n      return;\n    }\n\n    if (handlerData.error) {\n      const hint: FetchBreadcrumbHint = {\n        data: handlerData.error,\n        input: handlerData.args,\n        startTimestamp,\n        endTimestamp,\n      };\n\n      const breadcrumb = {\n        category: 'fetch',\n        data: handlerData.fetchData,\n        level: 'error',\n        type: 'http',\n      } satisfies Breadcrumb;\n\n      client.emit('beforeOutgoingRequestBreadcrumb', breadcrumb, hint as FetchHint);\n\n      addBreadcrumb(breadcrumb, hint);\n    } else {\n      const response = handlerData.response as Response | undefined;\n      const data: FetchBreadcrumbData = {\n        ...handlerData.fetchData,\n        status_code: response?.status,\n      };\n\n      const hint: FetchBreadcrumbHint = {\n        input: handlerData.args,\n        response,\n        startTimestamp,\n        endTimestamp,\n      };\n\n      const breadcrumb = {\n        category: 'fetch',\n        data,\n        type: 'http',\n        level: getBreadcrumbLogLevelFromHttpStatusCode(data.status_code),\n      };\n\n      client.emit('beforeOutgoingRequestBreadcrumb', breadcrumb, hint as FetchHint);\n\n      addBreadcrumb(breadcrumb, hint);\n    }\n  };\n}\n\n/**\n * Creates breadcrumbs from history API calls\n */\nfunction _getHistoryBreadcrumbHandler(client: Client): (handlerData: HandlerDataHistory) => void {\n  return function _historyBreadcrumb(handlerData: HandlerDataHistory): void {\n    if (getClient() !== client) {\n      return;\n    }\n\n    let from: string | undefined = handlerData.from;\n    let to: string | undefined = handlerData.to;\n    const parsedLoc = parseUrl(WINDOW.location.href);\n    let parsedFrom = from ? parseUrl(from) : undefined;\n    const parsedTo = parseUrl(to);\n\n    // Initial pushState doesn't provide `from` information\n    if (!parsedFrom?.path) {\n      parsedFrom = parsedLoc;\n    }\n\n    // Use only the path component of the URL if the URL matches the current\n    // document (almost all the time when using pushState)\n    if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n      to = parsedTo.relative;\n    }\n    if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n      from = parsedFrom.relative;\n    }\n\n    addBreadcrumb({\n      category: 'navigation',\n      data: {\n        from,\n        to,\n      },\n    });\n  };\n}\n\nfunction _isEvent(event: unknown): event is Event {\n  return !!event && !!(event as Record<string, unknown>).target;\n}\n","import { GLOBAL_OBJ } from '@sentry/core';\n\nfunction getComponentName(elem, maxTraverseHeight = 5) {\n  if (!GLOBAL_OBJ.HTMLElement) {\n    return null;\n  }\n  let currentElem = elem;\n  for (let i = 0; i < maxTraverseHeight; i++) {\n    if (!currentElem) {\n      return null;\n    }\n    if (currentElem instanceof HTMLElement) {\n      if (currentElem.dataset[\"sentryComponent\"]) {\n        return currentElem.dataset[\"sentryComponent\"];\n      }\n      if (currentElem.dataset[\"sentryElement\"]) {\n        return currentElem.dataset[\"sentryElement\"];\n      }\n    }\n    currentElem = currentElem.parentNode;\n  }\n  return null;\n}\n\nexport { getComponentName };\n//# sourceMappingURL=component-name.js.map\n","import type { IntegrationFn, WrappedFunction } from '@sentry/core';\nimport { defineIntegration, fill, getFunctionName, getOriginalFunction } from '@sentry/core';\nimport { WINDOW, wrap } from '../helpers';\n\n// Using a comma-separated string and split for smaller bundle size vs an array literal\nconst DEFAULT_EVENT_TARGET =\n  'EventTarget,Window,Node,ApplicationCache,AudioTrackList,BroadcastChannel,ChannelMergerNode,CryptoOperation,EventSource,FileReader,HTMLUnknownElement,IDBDatabase,IDBRequest,IDBTransaction,KeyOperation,MediaController,MessagePort,ModalWindow,Notification,SVGElementInstance,Screen,SharedWorker,TextTrack,TextTrackCue,TextTrackList,WebSocket,WebSocketWorker,Worker,XMLHttpRequest,XMLHttpRequestEventTarget,XMLHttpRequestUpload'.split(\n    ',',\n  );\n\nconst INTEGRATION_NAME = 'BrowserApiErrors' as const;\n\ntype XMLHttpRequestProp = 'onload' | 'onerror' | 'onprogress' | 'onreadystatechange';\n\ninterface BrowserApiErrorsOptions {\n  setTimeout: boolean;\n  setInterval: boolean;\n  requestAnimationFrame: boolean;\n  XMLHttpRequest: boolean;\n  eventTarget: boolean | string[];\n\n  /**\n   * If you experience issues with this integration causing double-invocations of event listeners,\n   * try setting this option to `true`. It will unregister the original callbacks from the event targets\n   * before adding the instrumented callback.\n   *\n   * @default false\n   */\n  unregisterOriginalCallbacks: boolean;\n}\n\nconst _browserApiErrorsIntegration = ((options: Partial<BrowserApiErrorsOptions> = {}) => {\n  const _options = {\n    XMLHttpRequest: true,\n    eventTarget: true,\n    requestAnimationFrame: true,\n    setInterval: true,\n    setTimeout: true,\n    unregisterOriginalCallbacks: false,\n    ...options,\n  };\n\n  return {\n    name: INTEGRATION_NAME,\n    // TODO: This currently only works for the first client this is setup\n    // We may want to adjust this to check for client etc.\n    setupOnce() {\n      if (_options.setTimeout) {\n        fill(WINDOW, 'setTimeout', _wrapTimeFunction);\n      }\n\n      if (_options.setInterval) {\n        fill(WINDOW, 'setInterval', _wrapTimeFunction);\n      }\n\n      if (_options.requestAnimationFrame) {\n        fill(WINDOW, 'requestAnimationFrame', _wrapRAF);\n      }\n\n      if (_options.XMLHttpRequest && 'XMLHttpRequest' in WINDOW) {\n        fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n      }\n\n      const eventTargetOption = _options.eventTarget;\n      if (eventTargetOption) {\n        const eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n        eventTarget.forEach(target => _wrapEventTarget(target, _options));\n      }\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Wrap timer functions and event targets to catch errors and provide better meta data.\n */\nexport const browserApiErrorsIntegration = defineIntegration(_browserApiErrorsIntegration);\n\nfunction _wrapTimeFunction(original: () => void): () => number {\n  return function (this: unknown, ...args: unknown[]): number {\n    const originalCallback = args[0];\n    args[0] = wrap(originalCallback, {\n      mechanism: {\n        handled: false,\n        type: `auto.browser.browserapierrors.${getFunctionName(original)}`,\n      },\n    });\n    return original.apply(this, args);\n  };\n}\n\nfunction _wrapRAF(original: () => void): (callback: () => void) => unknown {\n  return function (this: unknown, callback: () => void): () => void {\n    return original.apply(this, [\n      wrap(callback, {\n        mechanism: {\n          data: {\n            handler: getFunctionName(original),\n          },\n          handled: false,\n          type: 'auto.browser.browserapierrors.requestAnimationFrame',\n        },\n      }),\n    ]);\n  };\n}\n\nfunction _wrapXHR(originalSend: () => void): () => void {\n  return function (this: XMLHttpRequest, ...args: unknown[]): void {\n    // eslint-disable-next-line @typescript-eslint/no-this-alias\n    const xhr = this;\n    const xmlHttpRequestProps: XMLHttpRequestProp[] = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n\n    xmlHttpRequestProps.forEach(prop => {\n      if (prop in xhr && typeof xhr[prop] === 'function') {\n        fill(xhr, prop, function (original) {\n          const wrapOptions = {\n            mechanism: {\n              data: {\n                handler: getFunctionName(original),\n              },\n              handled: false,\n              type: `auto.browser.browserapierrors.xhr.${prop}`,\n            },\n          };\n\n          // If Instrument integration has been called before BrowserApiErrors, get the name of original function\n          const originalFunction = getOriginalFunction(original);\n          if (originalFunction) {\n            wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n          }\n\n          // Otherwise wrap directly\n          return wrap(original, wrapOptions);\n        });\n      }\n    });\n\n    return originalSend.apply(this, args);\n  };\n}\n\nfunction _wrapEventTarget(target: string, integrationOptions: BrowserApiErrorsOptions): void {\n  const globalObject = WINDOW as unknown as Record<string, { prototype?: object }>;\n  const proto = globalObject[target]?.prototype;\n\n  // eslint-disable-next-line no-prototype-builtins\n  if (!proto?.hasOwnProperty?.('addEventListener')) {\n    return;\n  }\n\n  fill(proto, 'addEventListener', function (original: VoidFunction): (\n    ...args: Parameters<typeof WINDOW.addEventListener>\n  ) => ReturnType<typeof WINDOW.addEventListener> {\n    return function (this: unknown, eventName, fn, options): VoidFunction {\n      try {\n        if (isEventListenerObject(fn)) {\n          // ESlint disable explanation:\n          //  First, it is generally safe to call `wrap` with an unbound function. Furthermore, using `.bind()` would\n          //  introduce a bug here, because bind returns a new function that doesn't have our\n          //  flags(like __sentry_original__) attached. `wrap` checks for those flags to avoid unnecessary wrapping.\n          //  Without those flags, every call to addEventListener wraps the function again, causing a memory leak.\n          // eslint-disable-next-line @typescript-eslint/unbound-method\n          fn.handleEvent = wrap(fn.handleEvent, {\n            mechanism: {\n              data: {\n                handler: getFunctionName(fn),\n                target,\n              },\n              handled: false,\n              type: 'auto.browser.browserapierrors.handleEvent',\n            },\n          });\n        }\n      } catch {\n        // can sometimes get 'Permission denied to access property \"handle Event'\n      }\n\n      if (integrationOptions.unregisterOriginalCallbacks) {\n        unregisterOriginalCallback(this, eventName, fn);\n      }\n\n      return original.apply(this, [\n        eventName,\n        wrap(fn, {\n          mechanism: {\n            data: {\n              handler: getFunctionName(fn),\n              target,\n            },\n            handled: false,\n            type: 'auto.browser.browserapierrors.addEventListener',\n          },\n        }),\n        options,\n      ]);\n    };\n  });\n\n  fill(proto, 'removeEventListener', function (originalRemoveEventListener: VoidFunction): (\n    this: unknown,\n    ...args: Parameters<typeof WINDOW.removeEventListener>\n  ) => ReturnType<typeof WINDOW.removeEventListener> {\n    return function (this: unknown, eventName, fn, options): VoidFunction {\n      /**\n       * There are 2 possible scenarios here:\n       *\n       * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n       * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n       * as a pass-through, and call original `removeEventListener` with it.\n       *\n       * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n       * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n       * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n       * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n       * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n       *\n       * When someone adds a handler prior to initialization, and then do it again, but after,\n       * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n       * to get rid of the initial handler and it'd stick there forever.\n       */\n      try {\n        // Check via hasOwnProperty so a `__sentry_wrapped__` inherited from a wrapped\n        // `Function.prototype` doesn't cause removal of the wrong handler.\n        if (Object.prototype.hasOwnProperty.call(fn, '__sentry_wrapped__')) {\n          const originalEventHandler = (fn as WrappedFunction).__sentry_wrapped__;\n          if (originalEventHandler) {\n            originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n          }\n        }\n      } catch {\n        // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n      }\n      return originalRemoveEventListener.call(this, eventName, fn, options);\n    };\n  });\n}\n\nfunction isEventListenerObject(obj: unknown): obj is EventListenerObject {\n  return typeof (obj as EventListenerObject).handleEvent === 'function';\n}\n\nfunction unregisterOriginalCallback(target: unknown, eventName: string, fn: EventListenerOrEventListenerObject): void {\n  if (\n    target &&\n    typeof target === 'object' &&\n    'removeEventListener' in target &&\n    typeof target.removeEventListener === 'function'\n  ) {\n    target.removeEventListener(eventName, fn);\n  }\n}\n","import { captureSession, debug, defineIntegration, getIsolationScope, startSession } from '@sentry/core';\nimport { addHistoryInstrumentationHandler, whenIdleOrHidden } from '@sentry/browser-utils';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../helpers';\n\ninterface BrowserSessionOptions {\n  /**\n   * Controls the session lifecycle - when new sessions are created.\n   *\n   * - `'page'`: A session is created once when the page is loaded. Session is not\n   *   updated on navigation. This is the default behavior.\n   * - `'route'`: A session is created on page load and on every navigation.\n   *\n   * @default 'page'\n   */\n  lifecycle?: 'route' | 'page';\n}\n\n/**\n * When added, automatically creates sessions which allow you to track adoption and crashes (crash free rate) in your Releases in Sentry.\n * More information: https://docs.sentry.io/product/releases/health/\n *\n * Note: In order for session tracking to work, you need to set up Releases: https://docs.sentry.io/product/releases/\n */\nexport const browserSessionIntegration = defineIntegration((options: BrowserSessionOptions = {}) => {\n  const lifecycle = options.lifecycle ?? 'page';\n\n  return {\n    name: 'BrowserSession' as const,\n    setupOnce() {\n      if (typeof WINDOW.document === 'undefined') {\n        DEBUG_BUILD &&\n          debug.warn('Using the `browserSessionIntegration` in non-browser environments is not supported.');\n        return;\n      }\n\n      // The session duration for browser sessions does not track a meaningful\n      // concept that can be used as a metric.\n      // Automatically captured sessions are akin to page views, and thus we\n      // discard their duration.\n      startSession({ ignoreDuration: true });\n\n      // Sending the session envelope synchronously in `init()` runs the full send\n      // pipeline during page load, competing with critical resources for the network and\n      // adding overhead that measurably hurts LCP. We defer the initial send until the\n      // browser is idle; `whenIdleOrHidden` flushes it on page-hide so we don't lose short\n      // (page-view-like) sessions.\n      let initialSessionSent = false;\n      whenIdleOrHidden(() => {\n        // A navigation (in `'route'` lifecycle) may start and send a new session before this\n        // deferred callback fires. In that case the current session was already sent, so\n        // re-capturing here would send it a second time - guard against that.\n        if (!initialSessionSent) {\n          captureSession();\n          initialSessionSent = true;\n        }\n      });\n\n      // User data can be set at any time, for example async after Sentry.init has run and the initial session\n      // envelope was already sent, but still on the initial page.\n      // Therefore, we have to update the ongoing session with the new user data if it exists, to send the `did`.\n      // In theory, sessions, as well as user data is always put onto the isolation scope. So we listen to the\n      // isolation scope for changes and update the session with the new user data if it exists.\n      // This will not catch users set onto other scopes, like the current scope. For now, we'll accept this limitation.\n      // The alternative is to update and capture the session from within the scope. This could be too costly or would not\n      // play well with session aggregates on the server side. Since this happens in the scope class, we'd need change\n      // scope behaviour in the browser.\n      const isolationScope = getIsolationScope();\n      let previousUser = isolationScope.getUser();\n      isolationScope.addScopeListener(scope => {\n        const maybeNewUser = scope.getUser();\n        // sessions only care about user id and ip address, so we only need to capture the session if the user has changed\n        if (previousUser?.id !== maybeNewUser?.id || previousUser?.ip_address !== maybeNewUser?.ip_address) {\n          previousUser = maybeNewUser;\n          // Only emit a dedicated update envelope for user data that arrives _after_ the\n          // deferred initial session was sent. User data set during page load is already\n          // reflected in that session (the scope writes it onto the session), so capturing\n          // here would send a redundant envelope - and do so during page load, which is\n          // exactly the overhead we're deferring away from.\n          if (initialSessionSent) {\n            captureSession();\n          }\n        }\n      });\n\n      if (lifecycle === 'route') {\n        // We want to create a session for every navigation as well\n        addHistoryInstrumentationHandler(({ from, to }) => {\n          // Don't create an additional session for the initial route or if the location did not change\n          if (from !== to) {\n            startSession({ ignoreDuration: true });\n            captureSession();\n            // A session has now been sent, so the deferred initial capture (if still pending)\n            // must not re-send this navigation session.\n            initialSessionSent = true;\n          }\n        });\n      }\n    },\n  };\n});\n","import type { CultureContext, IntegrationFn } from '@sentry/core';\nimport { defineIntegration, safeSetSpanJSONAttributes } from '@sentry/core';\nimport { WINDOW } from '../helpers';\n\nconst INTEGRATION_NAME = 'CultureContext' as const;\n\nconst _cultureContextIntegration = (() => {\n  return {\n    name: INTEGRATION_NAME,\n    preprocessEvent(event) {\n      const culture = getCultureContext();\n\n      if (culture) {\n        event.contexts = {\n          ...event.contexts,\n          culture: { ...culture, ...event.contexts?.culture },\n        };\n      }\n    },\n    processSegmentSpan(span) {\n      const culture = getCultureContext();\n\n      if (culture) {\n        safeSetSpanJSONAttributes(span, {\n          'culture.locale': culture.locale,\n          'culture.timezone': culture.timezone,\n          'culture.calendar': culture.calendar,\n        });\n      }\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Captures culture context from the browser.\n *\n * Enabled by default.\n *\n * @example\n * ```js\n * import * as Sentry from '@sentry/browser';\n *\n * Sentry.init({\n *   integrations: [Sentry.cultureContextIntegration()],\n * });\n * ```\n */\nexport const cultureContextIntegration = defineIntegration(_cultureContextIntegration);\n\n/**\n * Returns the culture context from the browser's Intl API.\n */\nfunction getCultureContext(): CultureContext | undefined {\n  try {\n    const intl = (WINDOW as { Intl?: typeof Intl }).Intl;\n    if (!intl) {\n      return undefined;\n    }\n\n    const options = intl.DateTimeFormat().resolvedOptions();\n\n    return {\n      locale: options.locale,\n      timezone: options.timeZone,\n      calendar: options.calendar,\n    };\n  } catch {\n    // Ignore errors\n    return undefined;\n  }\n}\n","import type { Client, Event, IntegrationFn, Primitive, StackParser } from '@sentry/core';\nimport {\n  addGlobalErrorInstrumentationHandler,\n  addGlobalUnhandledRejectionInstrumentationHandler,\n  captureEvent,\n  debug,\n  defineIntegration,\n  getClient,\n  isPrimitive,\n  isString,\n  stripDataUrlContent,\n  UNKNOWN_FUNCTION,\n} from '@sentry/core';\nimport type { BrowserClient } from '../client';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { getLocationHref } from '@sentry/browser-utils';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n\ntype GlobalHandlersIntegrationsOptionKeys = 'onerror' | 'onunhandledrejection';\n\ntype GlobalHandlersIntegrations = Record<GlobalHandlersIntegrationsOptionKeys, boolean>;\n\nconst INTEGRATION_NAME = 'GlobalHandlers' as const;\n\nconst _globalHandlersIntegration = ((options: Partial<GlobalHandlersIntegrations> = {}) => {\n  const _options = {\n    onerror: true,\n    onunhandledrejection: true,\n    ...options,\n  };\n\n  return {\n    name: INTEGRATION_NAME,\n    setupOnce() {\n      Error.stackTraceLimit = 50;\n    },\n    setup(client) {\n      if (_options.onerror) {\n        _installGlobalOnErrorHandler(client);\n        globalHandlerLog('onerror');\n      }\n      if (_options.onunhandledrejection) {\n        _installGlobalOnUnhandledRejectionHandler(client);\n        globalHandlerLog('onunhandledrejection');\n      }\n    },\n  };\n}) satisfies IntegrationFn;\n\nexport const globalHandlersIntegration = defineIntegration(_globalHandlersIntegration);\n\nfunction _installGlobalOnErrorHandler(client: Client): void {\n  addGlobalErrorInstrumentationHandler(data => {\n    const { stackParser, attachStacktrace } = getOptions();\n\n    if (getClient() !== client || shouldIgnoreOnError(data)) {\n      return;\n    }\n\n    const { msg, url, line, column, error } = data;\n\n    const event = _enhanceEventWithInitialFrame(\n      eventFromUnknownInput(stackParser, error || msg, undefined, attachStacktrace, false),\n      url,\n      line,\n      column,\n    );\n\n    event.level = 'error';\n\n    captureEvent(event, {\n      originalException: error,\n      mechanism: {\n        handled: false,\n        type: 'auto.browser.global_handlers.onerror',\n      },\n    });\n  });\n}\n\nfunction _installGlobalOnUnhandledRejectionHandler(client: Client): void {\n  addGlobalUnhandledRejectionInstrumentationHandler(e => {\n    const { stackParser, attachStacktrace } = getOptions();\n\n    if (getClient() !== client || shouldIgnoreOnError()) {\n      return;\n    }\n\n    const error = _getUnhandledRejectionError(e);\n\n    const event = isPrimitive(error)\n      ? _eventFromRejectionWithPrimitive(error)\n      : eventFromUnknownInput(stackParser, error, undefined, attachStacktrace, true);\n\n    event.level = 'error';\n\n    captureEvent(event, {\n      originalException: error,\n      mechanism: {\n        handled: false,\n        type: 'auto.browser.global_handlers.onunhandledrejection',\n      },\n    });\n  });\n}\n\n/**\n *\n */\nexport function _getUnhandledRejectionError(error: unknown): unknown {\n  if (isPrimitive(error)) {\n    return error;\n  }\n\n  // dig the object of the rejection out of known event types\n  try {\n    type ErrorWithReason = { reason: unknown };\n    // PromiseRejectionEvents store the object of the rejection under 'reason'\n    // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n    if ('reason' in (error as ErrorWithReason)) {\n      return (error as ErrorWithReason).reason;\n    }\n\n    type CustomEventWithDetail = { detail: { reason: unknown } };\n    // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n    // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n    // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n    // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n    // https://github.com/getsentry/sentry-javascript/issues/2380\n    if ('detail' in (error as CustomEventWithDetail) && 'reason' in (error as CustomEventWithDetail).detail) {\n      return (error as CustomEventWithDetail).detail.reason;\n    }\n  } catch {} // eslint-disable-line no-empty\n\n  return error;\n}\n\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nexport function _eventFromRejectionWithPrimitive(reason: Primitive): Event {\n  return {\n    exception: {\n      values: [\n        {\n          type: 'UnhandledRejection',\n          // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n          value: `Non-Error promise rejection captured with value: ${String(reason)}`,\n        },\n      ],\n    },\n  };\n}\n\n/**\n * Adds a frame built from the error location when the event has none.\n */\nexport function _enhanceEventWithInitialFrame(\n  event: Event,\n  url: string | undefined,\n  lineno: number | undefined,\n  colno: number | undefined,\n): Event {\n  // event.exception\n  const e = (event.exception = event.exception || {});\n  // event.exception.values\n  const ev = (e.values = e.values || []);\n  // event.exception.values[0]\n  const ev0 = (ev[0] = ev[0] || {});\n  // event.exception.values[0].stacktrace\n  const ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n  // event.exception.values[0].stacktrace.frames\n  const ev0sf = (ev0s.frames = ev0s.frames || []);\n\n  if (ev0sf.length === 0) {\n    ev0sf.push({\n      colno,\n      lineno,\n      filename: getFilenameFromUrl(url) ?? getLocationHref(),\n      function: UNKNOWN_FUNCTION,\n      in_app: true,\n    });\n  }\n\n  return event;\n}\n\nfunction globalHandlerLog(type: string): void {\n  DEBUG_BUILD && debug.log(`Global Handler attached: ${type}`);\n}\n\nfunction getOptions(): { stackParser: StackParser; attachStacktrace?: boolean } {\n  const client = getClient<BrowserClient>();\n  const options = client?.getOptions() || {\n    stackParser: () => [],\n    attachStacktrace: false,\n  };\n  return options;\n}\n\nfunction getFilenameFromUrl(url: string | undefined): string | undefined {\n  if (!isString(url) || url.length === 0) {\n    return undefined;\n  }\n\n  // Strip data URL content to avoid long base64 strings in stack frames\n  // (e.g. when initializing a Worker with a base64 encoded script)\n  // Don't include data prefix for filenames as it's not useful for stack traces\n  // Wrap with < > to indicate it's a placeholder\n  if (url.startsWith('data:')) {\n    return `<${stripDataUrlContent(url, false)}>`;\n  }\n\n  return url;\n}\n","import { _INTERNAL_filterKeyValueData, defineIntegration, safeSetSpanJSONAttributes } from '@sentry/core';\nimport { getHttpRequestData, WINDOW } from '../helpers';\nimport { filterCollectedUrl } from '@sentry/core';\nimport {\n  HTTP_REQUEST_HEADER_KEY_BASE,\n  SENTRY_IS_LOCALHOST,\n  SENTRY_OP,\n  URL_FULL,\n  USER_AGENT_ORIGINAL,\n} from '@sentry/conventions/attributes';\n\n/**\n * Collects information about HTTP request headers and\n * attaches them to the event.\n */\nexport const httpContextIntegration = defineIntegration(() => {\n  return {\n    name: 'HttpContext' as const,\n    preprocessEvent(event, _hint, client) {\n      // if none of the information we want exists, don't bother\n      if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n        return;\n      }\n\n      const { url, headers: collectedHeaders } = getHttpRequestData();\n\n      // We only filter the headers we collected ourselves, so headers the user set are left alone. Going by key\n      // means we also catch these headers when `browserTracingIntegration` already put them on the event.\n      const behavior = client.getDataCollectionOptions().httpHeaders.request;\n      const userHeaders = Object.entries(event.request?.headers ?? {}).filter(([key]) => !(key in collectedHeaders));\n\n      const headers = {\n        ..._INTERNAL_filterKeyValueData(collectedHeaders, behavior),\n        ...Object.fromEntries(userHeaders),\n      };\n\n      event.request = {\n        // The URL isn't gated by `dataCollection`, same as on the server.\n        url,\n        ...event.request,\n        ...(Object.keys(headers).length > 0 ? { headers } : { headers: undefined }),\n      };\n    },\n\n    processSpan(span, client) {\n      // if none of the information we want exists, don't bother\n      if (!WINDOW.navigator && !WINDOW.location && !WINDOW.document) {\n        return;\n      }\n\n      const reqData = getHttpRequestData();\n\n      // `httpHeadersToSpanAttributes` would also work here, but its cookie and array handling never runs for these\n      // two headers and costs every browser bundle ~400B gzip.\n      const headers = _INTERNAL_filterKeyValueData(\n        reqData.headers,\n        client.getDataCollectionOptions().httpHeaders.request,\n      );\n      const referer = headers['Referer'];\n      const { hostname, protocol } = WINDOW.location || {};\n\n      safeSetSpanJSONAttributes(span, {\n        // This attribute is used by the \"Filter out events from legacy browsers and crawlers\" features on the Sentry backend.\n        // Therefore, it's set on every span.\n        [USER_AGENT_ORIGINAL]: headers['User-Agent'],\n\n        // Likewise for the \"Filter out localhost events\" feature. Deliberately inlined rather than\n        // sharing the server-side helper, which costs bundle size for request headers and IPs that\n        // don't exist here. Mirrors Relay's localhost filter (relay-filter/src/localhost.rs).\n        [SENTRY_IS_LOCALHOST]:\n          protocol === 'file:' ||\n          hostname === 'localhost' ||\n          hostname === '127.0.0.1' ||\n          // `location.hostname` keeps the brackets for IPv6 hosts, so this is `[::1]`, not `::1`.\n          hostname === '[::1]' ||\n          !!hostname?.endsWith('.localhost'),\n\n        // These attributes, we only need on the segment span (analogous to the `request` context for events)\n        ...(span.is_segment && {\n          // Coerce empty string to undefined so the helper's nullish check drops it,\n          // rather than writing an empty `url.full` attribute onto the span.\n          [URL_FULL]: span.attributes?.[SENTRY_OP] !== 'http.client' ? filterCollectedUrl(reqData.url) : undefined,\n          [`${HTTP_REQUEST_HEADER_KEY_BASE}.referer`]: referer ? [referer] : undefined,\n        }),\n      });\n    },\n  };\n});\n","import type { IntegrationFn } from '@sentry/core';\nimport { applyAggregateErrorsToEvent, defineIntegration } from '@sentry/core';\nimport { exceptionFromError } from '../eventbuilder';\n\ninterface LinkedErrorsOptions {\n  key?: string;\n  limit?: number;\n}\n\nconst DEFAULT_KEY = 'cause';\nconst DEFAULT_LIMIT = 5;\n\nconst INTEGRATION_NAME = 'LinkedErrors' as const;\n\nconst _linkedErrorsIntegration = ((options: LinkedErrorsOptions = {}) => {\n  const limit = options.limit || DEFAULT_LIMIT;\n  const key = options.key || DEFAULT_KEY;\n\n  return {\n    name: INTEGRATION_NAME,\n    preprocessEvent(event, hint, client) {\n      const options = client.getOptions();\n\n      applyAggregateErrorsToEvent(\n        // This differs from the LinkedErrors integration in core by using a different exceptionFromError function\n        exceptionFromError,\n        options.stackParser,\n        key,\n        limit,\n        event,\n        hint,\n      );\n    },\n  };\n}) satisfies IntegrationFn;\n\n/**\n * Aggregrate linked errors in an event.\n */\nexport const linkedErrorsIntegration = defineIntegration(_linkedErrorsIntegration);\n","import { htmlTreeAsString, isElement } from '@sentry/browser-utils';\n\ntype Prototype = { constructor?: (...args: unknown[]) => unknown };\n\nconst HTML_ELEMENT_CONSTRUCTOR_NAME_REGEX = /^HTML(\\w*)Element$/;\n\n/**\n * Browser-specific contributions to `normalize()`'s `stringifyValue`. Plug into\n * `setNormalizeStringifier` from the browser SDK so DOM values get a useful string\n * representation without forcing core to carry the DOM-specific code.\n *\n * Handles:\n * - `window` → `[Window]`\n * - `document` → `[Document]`\n * - `HTMLElement` subclasses → `[HTMLElement: <css-selector-path>]` (via `htmlTreeAsString`)\n *\n * Vue ViewModels and React SyntheticEvents are not handled here — the Vue and React\n * SDKs wrap this function in their `init` and add their own checks on top.\n */\nexport function normalizeStringifyValue(value: Exclude<unknown, string | number | boolean | null>): string | undefined {\n  // oxlint-disable-next-line no-restricted-globals\n  if (typeof window !== 'undefined' && value === window) {\n    return '[Window]';\n  }\n  // oxlint-disable-next-line no-restricted-globals\n  if (typeof document !== 'undefined' && value === document) {\n    return '[Document]';\n  }\n\n  if (isElement(value)) {\n    const objName = getConstructorName(value);\n    if (HTML_ELEMENT_CONSTRUCTOR_NAME_REGEX.test(objName)) {\n      return `[HTMLElement: ${htmlTreeAsString(value)}]`;\n    }\n  }\n\n  return undefined;\n}\n\nfunction getConstructorName(value: unknown): string {\n  const prototype: Prototype | null = Object.getPrototypeOf(value);\n\n  return prototype?.constructor ? prototype.constructor.name : 'null prototype';\n}\n","function isElement(wat) {\n  if (typeof Element === \"undefined\") {\n    return false;\n  }\n  try {\n    return wat instanceof Element;\n  } catch {\n    return false;\n  }\n}\n\nexport { isElement };\n//# sourceMappingURL=is.js.map\n","import { getLocationHref } from '@sentry/browser-utils';\nimport { consoleSandbox } from '@sentry/core';\nimport { DEBUG_BUILD } from '../debug-build';\nimport { WINDOW } from '../helpers';\n\ntype ExtensionRuntime = {\n  runtime?: {\n    id?: string;\n  };\n};\ntype ExtensionProperties = {\n  chrome?: ExtensionRuntime;\n  browser?: ExtensionRuntime;\n  nw?: unknown;\n};\n\n/**\n * Returns true if the SDK is running in an embedded browser extension.\n * Stand-alone browser extensions (which do not share the same data as the main browser page) are fine.\n */\nexport function checkAndWarnIfIsEmbeddedBrowserExtension(): boolean {\n  if (_isEmbeddedBrowserExtension()) {\n    if (DEBUG_BUILD) {\n      consoleSandbox(() => {\n        // eslint-disable-next-line no-console\n        console.error(\n          '[Sentry] You cannot use Sentry.init() in a browser extension, see: https://docs.sentry.io/platforms/javascript/best-practices/browser-extensions/',\n        );\n      });\n    }\n\n    return true;\n  }\n\n  return false;\n}\n\nfunction _isEmbeddedBrowserExtension(): boolean {\n  if (typeof WINDOW.window === 'undefined') {\n    // No need to show the error if we're not in a browser window environment (e.g. service workers)\n    return false;\n  }\n\n  const _window = WINDOW as typeof WINDOW & ExtensionProperties;\n\n  // Running the SDK in NW.js, which appears like a browser extension but isn't, is also fine\n  // see: https://github.com/getsentry/sentry-javascript/issues/12668\n  if (_window.nw) {\n    return false;\n  }\n\n  const extensionObject = _window['chrome'] || _window['browser'];\n\n  if (!extensionObject?.runtime?.id) {\n    return false;\n  }\n\n  const href = getLocationHref();\n\n  // Running the SDK in a dedicated extension page and calling Sentry.init is fine; no risk of data leakage\n  const isDedicatedExtensionPage =\n    WINDOW === WINDOW.top &&\n    /^(?:chrome-extension|moz-extension|ms-browser-extension|safari-web-extension):\\/\\//.test(href);\n\n  return !isDedicatedExtensionPage;\n}\n","import type { Client, Integration, Options } from '@sentry/core';\nimport {\n  consoleIntegration,\n  conversationIdIntegration,\n  dedupeIntegration,\n  eventFiltersIntegration,\n  functionToStringIntegration,\n  getIntegrationsToSetup,\n  initAndBind,\n  setNormalizeStringifier,\n  stackParserFromStackParserOptions,\n} from '@sentry/core';\nimport type { BrowserClientOptions, BrowserOptions } from './client';\nimport { BrowserClient } from './client';\nimport { breadcrumbsIntegration } from './integrations/breadcrumbs';\nimport { browserApiErrorsIntegration } from './integrations/browserapierrors';\nimport { browserSessionIntegration } from './integrations/browsersession';\nimport { cultureContextIntegration } from './integrations/culturecontext';\nimport { globalHandlersIntegration } from './integrations/globalhandlers';\nimport { httpContextIntegration } from './integrations/httpcontext';\nimport { linkedErrorsIntegration } from './integrations/linkederrors';\nimport { spotlightBrowserIntegration } from './integrations/spotlight';\nimport { defaultStackParser } from './stack-parsers';\nimport { makeFetchTransport } from './transports/fetch';\nimport { normalizeStringifyValue } from './normalizeStringifyValue';\nimport { checkAndWarnIfIsEmbeddedBrowserExtension } from './utils/detectBrowserExtension';\n\n/** Get the default integrations for the browser SDK. */\nexport function getDefaultIntegrations(_options: Options): Integration[] {\n  /**\n   * Note: Please make sure this stays in sync with Angular SDK, which re-exports\n   * `getDefaultIntegrations` but with an adjusted set of integrations.\n   */\n  return [\n    eventFiltersIntegration(),\n    functionToStringIntegration(),\n    conversationIdIntegration(),\n    browserApiErrorsIntegration(),\n    breadcrumbsIntegration(),\n    consoleIntegration(),\n    globalHandlersIntegration(),\n    linkedErrorsIntegration(),\n    dedupeIntegration(),\n    httpContextIntegration(),\n    cultureContextIntegration(),\n    browserSessionIntegration(),\n  ];\n}\n\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n *   dsn: '__DSN__',\n *   // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n *   message: 'My Breadcrumb',\n *   // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n *   message: 'Manual',\n *   stacktrace: [\n *     // ...\n *   ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options: BrowserOptions = {}): Client | undefined {\n  const shouldDisableBecauseIsBrowserExtenstion =\n    !options.skipBrowserExtensionCheck && checkAndWarnIfIsEmbeddedBrowserExtension();\n\n  let defaultIntegrations =\n    options.defaultIntegrations == null ? getDefaultIntegrations(options) : options.defaultIntegrations;\n\n  /*! rollup-include-development-only */\n  if (options.spotlight) {\n    if (!defaultIntegrations) {\n      defaultIntegrations = [];\n    }\n    const args = typeof options.spotlight === 'string' ? { sidecarUrl: options.spotlight } : undefined;\n    defaultIntegrations.push(spotlightBrowserIntegration(args));\n  }\n  /*! rollup-include-development-only-end */\n\n  const integrations = getIntegrationsToSetup({\n    integrations: options.integrations,\n    defaultIntegrations,\n  });\n\n  const clientOptions: BrowserClientOptions = {\n    ...options,\n    enabled: shouldDisableBecauseIsBrowserExtenstion ? false : options.enabled,\n    stackParser: stackParserFromStackParserOptions(options.stackParser || defaultStackParser),\n    integrations,\n    transport: options.transport || makeFetchTransport,\n  };\n\n  setNormalizeStringifier(normalizeStringifyValue);\n\n  return initAndBind(BrowserClient, clientOptions);\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad(): void {\n  // Noop\n}\n\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback: () => void): void {\n  callback();\n}\n","import type { IntegrationFn } from '@sentry/core';\nimport { getClient, SDK_VERSION } from '@sentry/core';\nimport type { BrowserClient } from '../client';\nimport { WINDOW } from '../helpers';\n\n// Single source of truth: as const array provides both the runtime list and the type.\n// Bundle file names are derived: strip 'Integration' suffix, lowercase.\n// Exceptions (hyphenated bundle names) are listed in HYPHENATED_BUNDLES.\nconst LAZY_LOADABLE_NAMES = [\n  'replayIntegration',\n  'replayCanvasIntegration',\n  'feedbackIntegration',\n  'feedbackModalIntegration',\n  'feedbackScreenshotIntegration',\n  'captureConsoleIntegration',\n  'contextLinesIntegration',\n  'linkedErrorsIntegration',\n  'dedupeIntegration',\n  'extraErrorDataIntegration',\n  'graphqlClientIntegration',\n  'httpClientIntegration',\n  'reportingObserverIntegration',\n  'rewriteFramesIntegration',\n  'browserProfilingIntegration',\n  'userTimingIntegration',\n  'interactionsIntegration',\n  'moduleMetadataIntegration',\n] as const;\n\ntype ElementOf<T extends readonly unknown[]> = T[number];\ntype LazyLoadableIntegrationName = ElementOf<typeof LAZY_LOADABLE_NAMES>;\n\nconst HYPHENATED_BUNDLES: Partial<Record<LazyLoadableIntegrationName, string>> = {\n  replayCanvasIntegration: 'replay-canvas',\n  feedbackModalIntegration: 'feedback-modal',\n  feedbackScreenshotIntegration: 'feedback-screenshot',\n};\n\nfunction getBundleName(name: string): string {\n  return HYPHENATED_BUNDLES[name as LazyLoadableIntegrationName] || name.replace('Integration', '').toLowerCase();\n}\n\nconst WindowWithMaybeIntegration = WINDOW as {\n  Sentry?: Partial<Record<LazyLoadableIntegrationName, IntegrationFn>>;\n};\n\n/**\n * Lazy load an integration from the CDN.\n * Rejects if the integration cannot be loaded.\n */\nexport async function lazyLoadIntegration(\n  name: LazyLoadableIntegrationName,\n  scriptNonce?: string,\n): Promise<IntegrationFn> {\n  const bundle = LAZY_LOADABLE_NAMES.includes(name) ? getBundleName(name) : undefined;\n\n  // `window.Sentry` is only set when using a CDN bundle, but this method can also be used via the NPM package\n  const sentryOnWindow = (WindowWithMaybeIntegration.Sentry = WindowWithMaybeIntegration.Sentry || {});\n\n  if (!bundle) {\n    throw new Error(`Cannot lazy load integration: ${name}`);\n  }\n\n  // Bail if the integration already exists\n  const existing = sentryOnWindow[name];\n  // The `feedbackIntegration` is loaded by default in the CDN bundles,\n  // so we need to differentiate between the real integration and the shim.\n  // if only the shim exists, we still want to lazy load the real integration.\n  if (typeof existing === 'function' && !('_isShim' in existing)) {\n    return existing;\n  }\n\n  const url = getScriptURL(bundle);\n  const script = WINDOW.document.createElement('script');\n  script.src = url;\n  script.crossOrigin = 'anonymous';\n  script.referrerPolicy = 'strict-origin';\n\n  if (scriptNonce) {\n    script.setAttribute('nonce', scriptNonce);\n  }\n\n  const waitForLoad = new Promise<void>((resolve, reject) => {\n    script.addEventListener('load', () => resolve());\n    script.addEventListener('error', reject);\n  });\n\n  const currentScript = WINDOW.document.currentScript;\n  const parent = WINDOW.document.body || WINDOW.document.head || currentScript?.parentElement;\n\n  if (parent) {\n    parent.appendChild(script);\n  } else {\n    throw new Error(`Could not find parent element to insert lazy-loaded ${name} script`);\n  }\n\n  try {\n    await waitForLoad;\n  } catch {\n    throw new Error(`Error when loading integration: ${name}`);\n  }\n\n  const integrationFn = sentryOnWindow[name];\n\n  if (typeof integrationFn !== 'function') {\n    throw new Error(`Could not load integration: ${name}`);\n  }\n\n  return integrationFn;\n}\n\nfunction getScriptURL(bundle: string): string {\n  const client = getClient<BrowserClient>();\n  const baseURL = client?.getOptions()?.cdnBaseUrl || 'https://browser.sentry-cdn.com';\n\n  return new URL(`/${SDK_VERSION}/${bundle}.min.js`, baseURL).toString();\n}\n","import { getClient, getCurrentScope } from './currentScopes.js';\n\nfunction captureFeedback(params, hint = {}, scope = getCurrentScope()) {\n  const { message, name, email, url, source, associatedEventId, tags } = params;\n  const feedbackEvent = {\n    contexts: {\n      feedback: {\n        contact_email: email,\n        name,\n        message,\n        url,\n        source,\n        associated_event_id: associatedEventId\n      }\n    },\n    type: \"feedback\",\n    level: \"info\",\n    tags\n  };\n  const client = scope?.getClient() || getClient();\n  if (client) {\n    client.emit(\"beforeSendFeedback\", feedbackEvent, hint);\n  }\n  const eventId = scope.captureEvent(feedbackEvent, hint);\n  return eventId;\n}\n\nexport { captureFeedback };\n//# sourceMappingURL=feedback.js.map\n","import type { DsnComponents, EventEnvelope, SdkMetadata, UserFeedback, UserFeedbackItem } from '@sentry/core';\nimport { createEnvelope, dsnToString } from '@sentry/core';\n\n/**\n * Creates an envelope from a user feedback.\n */\nexport function createUserFeedbackEnvelope(\n  feedback: UserFeedback,\n  {\n    metadata,\n    tunnel,\n    dsn,\n  }: {\n    metadata: SdkMetadata | undefined;\n    tunnel: string | undefined;\n    dsn: DsnComponents | undefined;\n  },\n): EventEnvelope {\n  const headers: EventEnvelope[0] = {\n    event_id: feedback.event_id,\n    sent_at: new Date().toISOString(),\n    ...(metadata?.sdk && {\n      sdk: {\n        name: metadata.sdk.name,\n        version: metadata.sdk.version,\n      },\n    }),\n    ...(!!tunnel && !!dsn && { dsn: dsnToString(dsn) }),\n  };\n  const item = createUserFeedbackEnvelopeItem(feedback);\n\n  return createEnvelope(headers, [item]);\n}\n\nfunction createUserFeedbackEnvelopeItem(feedback: UserFeedback): UserFeedbackItem {\n  const feedbackHeaders: UserFeedbackItem[0] = {\n    type: 'user_report',\n  };\n  return [feedbackHeaders, feedback];\n}\n","import { getAsyncContextStrategy } from '../asyncContext/index.js';\nimport { getMainCarrier } from '../carrier.js';\nimport { getClient, getCurrentScope, hasExternalPropagationContext } from '../currentScopes.js';\nimport { isEnabled } from '../exports.js';\nimport { debug } from './debug-logger.js';\nimport { getActiveSpan, spanToTraceHeader, spanToTraceparentHeader } from './spanUtils.js';\nimport { hasSpansEnabled } from './hasSpansEnabled.js';\nimport { getDynamicSamplingContextFromSpan, getDynamicSamplingContextFromScope } from '../tracing/dynamicSamplingContext.js';\nimport { dynamicSamplingContextToSentryBaggageHeader } from './baggage.js';\nimport { TRACEPARENT_REGEXP, generateSentryTraceHeader, generateTraceparentHeader } from './tracing.js';\nimport { spanIsNonRecordingSpan } from '../tracing/sentryNonRecordingSpan.js';\n\nfunction getTraceData(options = {}) {\n  const client = options.client || getClient();\n  if (!isEnabled() || !client) {\n    return {};\n  }\n  const carrier = getMainCarrier();\n  const acs = getAsyncContextStrategy(carrier);\n  if (acs.getTraceData) {\n    return acs.getTraceData(options);\n  }\n  const scope = options.scope || getCurrentScope();\n  const span = options.span || getActiveSpan();\n  const isTwpPlaceholder = spanIsNonRecordingSpan(span) && !hasSpansEnabled(client.getOptions());\n  if (!span && hasExternalPropagationContext()) {\n    return {};\n  }\n  const sentryTrace = span && !isTwpPlaceholder ? spanToTraceHeader(span) : scopeToTraceHeader(scope);\n  const dsc = span ? getDynamicSamplingContextFromSpan(span) : getDynamicSamplingContextFromScope(client, scope);\n  const baggage = dynamicSamplingContextToSentryBaggageHeader(dsc);\n  const isValidSentryTraceHeader = TRACEPARENT_REGEXP.test(sentryTrace);\n  if (!isValidSentryTraceHeader) {\n    debug.warn(\"Invalid sentry-trace data. Cannot generate trace data\");\n    return {};\n  }\n  const traceData = {\n    \"sentry-trace\": sentryTrace,\n    baggage\n  };\n  if (options.propagateTraceparent) {\n    traceData.traceparent = span && !isTwpPlaceholder ? spanToTraceparentHeader(span) : scopeToTraceparentHeader(scope);\n  }\n  return traceData;\n}\nfunction scopeToTraceHeader(scope) {\n  const { traceId, sampled, propagationSpanId } = scope.getPropagationContext();\n  return generateSentryTraceHeader(traceId, propagationSpanId, sampled);\n}\nfunction scopeToTraceparentHeader(scope) {\n  const { traceId, sampled, propagationSpanId } = scope.getPropagationContext();\n  return generateTraceparentHeader(traceId, propagationSpanId, sampled);\n}\n\nexport { getTraceData };\n//# sourceMappingURL=traceData.js.map\n","function parameterize(strings, ...values) {\n  const formatted = new String(String.raw(strings, ...values));\n  formatted.__sentry_template_string__ = strings.join(\"\\0\").replace(/%/g, \"%%\").replace(/\\0/g, \"%s\");\n  formatted.__sentry_template_values__ = values;\n  return formatted;\n}\nconst fmt = parameterize;\n\nexport { fmt, parameterize };\n//# sourceMappingURL=parameterize.js.map\n","import type { ReportDialogOptions } from '@sentry/core';\nimport { debug, getClient, getCurrentScope, getReportDialogEndpoint, lastEventId } from '@sentry/core';\nimport { DEBUG_BUILD } from './debug-build';\nimport { WINDOW } from './helpers';\n\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the current scope.\n */\nexport function showReportDialog(options: ReportDialogOptions = {}): void {\n  const optionalDocument = WINDOW.document as Document | undefined;\n  const injectionPoint = optionalDocument?.head || optionalDocument?.body;\n\n  // doesn't work without a document (React Native)\n  if (!injectionPoint) {\n    DEBUG_BUILD && debug.error('[showReportDialog] Global document not defined');\n    return;\n  }\n\n  const scope = getCurrentScope();\n  const client = getClient();\n  const dsn = client?.getDsn();\n\n  if (!dsn) {\n    DEBUG_BUILD && debug.error('[showReportDialog] DSN not configured');\n    return;\n  }\n\n  const mergedOptions = {\n    ...options,\n    user: {\n      ...scope.getUser(),\n      ...options.user,\n    },\n    eventId: options.eventId || lastEventId(),\n  };\n\n  const { onLoad, onClose, onError } = mergedOptions;\n\n  // The endpoint rejects requests without an event ID, and a failed script load hides the reason\n  if (!mergedOptions.eventId) {\n    DEBUG_BUILD && debug.error('[showReportDialog] No event ID');\n    onError?.(new Error('No event ID to show the report dialog for'));\n    return;\n  }\n\n  const script = WINDOW.document.createElement('script');\n  script.async = true;\n  script.crossOrigin = 'anonymous';\n  script.src = getReportDialogEndpoint(dsn, mergedOptions);\n\n  if (onLoad) {\n    script.onload = onLoad;\n  }\n\n  if (onError) {\n    script.onerror = () => {\n      onError(new Error('Failed to load the report dialog script'));\n    };\n  }\n\n  if (onClose) {\n    const reportDialogClosedMessageHandler = (event: MessageEvent): void => {\n      if (event.data === '__sentry_reportdialog_closed__') {\n        try {\n          onClose();\n        } finally {\n          WINDOW.removeEventListener('message', reportDialogClosedMessageHandler);\n        }\n      }\n    };\n    WINDOW.addEventListener('message', reportDialogClosedMessageHandler);\n    // A dialog that never loads never closes, so the listener would stay forever\n    script.addEventListener('error', () => {\n      WINDOW.removeEventListener('message', reportDialogClosedMessageHandler);\n    });\n  }\n\n  injectionPoint.appendChild(script);\n}\n"],"names":["GLOBAL_OBJ","globalThis","SDK_VERSION","getMainCarrier","getSentryCarrier","carrier","__SENTRY__","version","getGlobalSingleton","name","creator","obj","CONSOLE_LEVELS","originalConsoleMethods","consoleSandbox","callback","console","wrappedFuncs","wrappedLevels","Object","keys","forEach","level","originalConsoleMethod","UNKNOWN_FUNCTION","WEBPACK_ERROR_REGEXP","STRIP_FRAME_REGEXP","createStackParser","parsers","sortedParsers","sort","a","b","map","p","stack","skipFirstLines","framesToPop","frames","lines","split","i","length","line","slice","cleanedLine","test","replace","includes","parser","frame","push","localStack","Array","from","getLastStackFrame","function","pop","reverse","filename","stripSentryFramesAndReverse","arr","defaultFunctionName","getFunctionName","fn","getFramesFromEvent","event","exception","values","value","stacktrace","handlers","instrumented","addHandler","type","handler","typeHandlers","index","indexOf","splice","maybeInstrument","instrumentFn","e","triggerHandlers","data","_oldOnErrorHandler","instrumentError","onerror","msg","url","column","error","apply","this","arguments","__SENTRY_INSTRUMENTED__","_oldOnUnhandledRejectionHandler","instrumentUnhandledRejection","onunhandledrejection","objectToString","prototype","toString","isError","wat","call","isInstanceOf","Error","isBuiltin","className","isErrorEvent","isDOMError","isString","isParameterizedString","isPrimitive","isPlainObject","isObjectLike","isEvent","Event","isThenable","Boolean","then","base","isRequest","request","Request","fill","source","replacementFactory","original","wrapped","markFunctionWrapped","addNonEnumerableProperty","defineProperty","writable","configurable","proto","getOriginalFunction","func","__sentry_original__","convertToPlainObject","message","getOwnProperties","target","currentTarget","detail","fromEntries","entries","RESOLVED_RUNNER","withRandomSafeContext","cb","sym","Symbol","for","globalWithSymbol","safeMathRandom","Math","random","safeDateNow","Date","now","SENTRY_SKIP_NORMALIZATION","SENTRY_OVERRIDE_NORMALIZATION_DEPTH","stringifier","emptyUuid","normalize","input","depth","maxProperties","Infinity","visit","err","ERROR","normalizeToSize","object","maxSize","normalized","encodeURI","utf8Length","JSON","stringify","key","memo","inner","WeakSet","memoize","has","add","unmemoize","delete","memoBuilder","Number","isFinite","stringified","stringifyValue","startsWith","hasSkipNormalizationHint","overrideDepth","v","getNormalizationDepthOverrideHint","remainingDepth","valueWithToJSON","toJSON","isArray","numAdded","visitable","visitKey","hasOwnProperty","visitValue","global","String","objName","getPrototypeOf","constructor","getConstructorName","truncate","str","max","isMatchingPattern","pattern","requireExactStringMatch","stringMatchesSomePattern","testString","patterns","uuid4","crypto","gbl","msCrypto","getCrypto","randomUUID","c","getFirstException","getEventDescription","event_id","eventId","firstException","addExceptionTypeValue","addExceptionMechanism","newMechanism","applyExceptionMechanism","currentMechanism","mechanism","handled","checkOrSetAlreadyCaught","__sentry_captured__","isAlreadyCaptured","dateTimestampInSeconds","_cachedTimestampInSeconds","timestampInSeconds","performance","timeOrigin","createUnixTimestampInSecondsFunc","makeSession","context","startingTime","session","sid","init","timestamp","started","duration","status","errors","ignoreDuration","toISOString","did","abnormal_mechanism","attrs","release","environment","ip_address","ipAddress","user_agent","userAgent","sessionToJSON","updateSession","user","id","email","username","merge","initialObj","mergeObj","levels","output","generateTraceId","generateSpanId","substring","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_attachments","_user","_tags","_attributes","_extra","_contexts","_sdkProcessingMetadata","_propagationContext","traceId","sampleRand","clone","newScope","flags","_level","_session","_transactionName","_fingerprint","_client","_lastEventId","_conversationId","refs","setClient","client","setLastEventId","lastEventId","getClient","addScopeListener","addEventProcessor","setUser","_notifyScopeListeners","getUser","setConversationId","conversationId","setTags","tags","setTag","setAttributes","newAttributes","setAttribute","removeAttribute","setExtras","extras","setExtra","extra","setFingerprint","fingerprint","setLevel","setTransactionName","setContext","setSession","getSession","update","captureContext","scopeToMerge","scopeInstance","getScopeData","attributes","contexts","propagationContext","addBreadcrumb","breadcrumb","maxBreadcrumbs","maxCrumbs","mergedBreadcrumb","getLastBreadcrumb","clearBreadcrumbs","addAttachment","attachment","clearAttachments","breadcrumbs","attachments","eventProcessors","sdkProcessingMetadata","transactionName","setSDKProcessingMetadata","newData","setPropagationContext","getPropagationContext","captureException","hint","syntheticException","originalException","captureMessage","captureEvent","SUPPRESS_TRACING_KEY","isActualPromise","Promise","kChainedCopy","copyProps","chained","mutated","args","enumerable","assign","AsyncContextStack","scope","isolationScope","assignedScope","assignedIsolationScope","_stack","_isolationScope","withScope","_pushScope","maybePromiseResult","_popScope","onSuccess","onError","chainAndCopyPromiseLike","getStackTop","getScope","getIsolationScope","getAsyncContextStack","sentry","withSetScope","withIsolationScope","suppressTracingInStack","res","getAsyncContextStrategy","acs","suppressTracing","withSetIsolationScope","getCurrentScope","attributeValueToTypedAttributeValue","rawValue","useFallback","unit","maybeObj","attributeValue","primitiveType","isNaN","isInteger","getTypedAttributeValue","checkedUnit","stringValue","serializeAttributes","fallback","serializedAttributes","typedValue","getExternalPropagationContext","externalPropagationContextProvider","getGlobalScope","rest","getTraceContextFromScope","externalContext","trace_id","span_id","spanId","parentSpanId","propagationSpanId","traceContext","parent_span_id","ud","Wd","yb","Ab","SEMANTIC_ATTRIBUTE_SENTRY_SAMPLE_RATE","SEMANTIC_ATTRIBUTE_SENTRY_OP","SEMANTIC_ATTRIBUTE_SENTRY_ORIGIN","SEMANTIC_ATTRIBUTE_SENTRY_STATUS_MESSAGE","SEMANTIC_ATTRIBUTE_SENTRY_CUSTOM_SPAN_NAME","SEMANTIC_ATTRIBUTE_PROFILE_ID","SEMANTIC_ATTRIBUTE_EXCLUSIVE_TIME","SPAN_STATUS_TYPES","derefWeakRef","ref","deref","getCapturedScopesOnSpan","span","spanWithScopes","SENTRY_BAGGAGE_KEY_PREFIX","baggageHeaderToDynamicSamplingContext","baggageHeader","baggageObject","reduce","acc","curr","currBaggageObject","baggageHeaderToObject","parseBaggageHeader","dynamicSamplingContext","dynamicSamplingContextToSentryBaggageHeader","objectKey","objectValue","currentIndex","baggageEntry","encodeURIComponent","newBaggageHeader","objectToBaggageHeader","dscKey","dscValue","eqIdx","keyOrValue","decodeURIComponent","trim","ORG_ID_REGEX","DSN_REGEX","dsnToString","dsn","withPassword","host","path","pass","port","projectId","protocol","publicKey","dsnFromComponents","components","extractOrgIdFromClient","options","getOptions","getDsn","org_id","orgId","match","extractOrgIdFromDsnHost","makeDsn","exec","lastPath","join","projectMatch","dsnFromString","parseSampleRate","sampleRate","rate","parseFloat","TRACEPARENT_REGEXP","RegExp","propagationContextFromHeaders","sentryTrace","baggage","traceparentData","traceparent","matches","parentSampled","extractTraceparentData","dsc","parsedSampleRand","sample_rand","parsedSampleRate","sample_rate","getSampleRandFromTraceparentAndDsc","sampled","generateSentryTraceHeader","sampledString","generateTraceparentHeader","SCOPE_SPAN_FIELD","spanToTraceContext","isRemote","spanContext","spanToStaticSpanJSON","spanToTraceHeader","spanIsSampled","convertSpanLinksForEnvelope","links","traceFlags","restContext","getStreamedSpanLinks","spanTimeInputToSeconds","ensureTimestampInSeconds","getTime","spanIsSentrySpan","getStaticSpanJSON","spanIsOpenTelemetrySdkTraceBaseSpan","startTime","endTime","description","getOtelParentSpanId","start_timestamp","getStatusMessage","op","origin","parentSpanContext","castSpan","getSpanJSON","code","getSimpleStatus","addStatusMessageAttribute","statusMessage","ROOT_SPAN_FIELD","getRootSpan","INTERNAL_getSegmentSpan","spanIsSegment","getActiveSpan","_getSpanForScope","hasSpansEnabled","maybeOptions","__SENTRY_TRACING__","tracesSampleRate","tracesSampler","shouldIgnoreSpan","ignoreSpans","isStringOrRegExp","hasAttributes","nameMatches","opMatches","attrsMatch","every","valuePattern","_matchesAttributeValue","actual","pat","reparentChildSpans","spans","dropSpan","droppedSpanParentId","droppedSpanId","installedIntegrations","getIntegrationsToSetup","defaultIntegrations","userIntegrations","integrations","integration","isDefaultInstance","resolvedUserIntegrations","integrationsByName","currentInstance","existingInstance","filterDuplicates","afterSetupIntegrations","afterAllSetup","setupIntegration","integrationIndex","setupOnce","setup","preprocessEvent","bind","on","processEvent","processor","hook","DEFAULT_ENVIRONMENT","NON_RECORDING_SPAN_FIELD","spanIsNonRecordingSpan","getDynamicSamplingContextFromClient","public_key","emit","getDynamicSamplingContextFromScope","getDynamicSamplingContextFromSpan","rootSpan","rootSpanJson","rootSpanAttributes","traceState","rootSpanSampleRate","get","applyLocalSampleRateToDsc","dsc2","frozenDsc","isNonRecordingRoot","isIgnoredRoot","dropReason","capturedScope","scopeDsc","traceStateDsc","dscOnTraceState","SENTRY_SEGMENT_NAME_SOURCE","transaction","applyScopeDataToEvent","applyDataToEvent","concat","applyFingerprintToEvent","mergedBreadcrumbs","applyBreadcrumbsToEvent","applySdkMetadataToEvent","mergeScopeData","mergeData","mergeAndOverwriteScopeData","prop","mergeVal","getCombinedScopeData","currentScope","scopeData","safeCallback","result","recover","hasShownSpanDropWarning","applyBeforeSendSpanCallback","beforeSendSpan","modifiedSpan","warn","spanJsonToSerializedStreamedSpan","streamedSpan","end_timestamp","is_segment","spanJson","link","safeSetSpanJSONAttributes","spanJSON","originalAttributes","safeUnref","timer","unref","createEnvelope","headers","items","addItemToEnvelope","envelope","newItem","forEachEnvelopeItem","envelopeItems","envelopeItem","encodeUTF8","encodePolyfill","TextEncoder","encode","serializeEnvelope","envHeaders","parts","append","next","item","itemHeaders","payload","Uint8Array","stringifiedPayload","buffers","totalLength","buf","merged","offset","buffer","set","concatBuffers","createAttachmentEnvelopeItem","content_type","contentType","attachment_type","attachmentType","DATA_CATEGORY_OVERRIDES","sessions","client_report","user_report","profile_chunk","replay_event","replay_recording","check_in","raw_security","log","trace_metric","envelopeItemTypeToDataCategory","_isOverriddenType","getSdkMetadataForEnvelopeHeader","metadataOrEvent","sdk","getDataCategoryByType","isBrowser","window","escapedSpanTraceContexts","WeakMap","applyEscapedErrorSpanToEvent","eventTraceContext","trace","withActiveSpan","getAcs","_setSpanForScope","createEventEnvelope","metadata","tunnel","sdkInfo","eventType","newSdkInfo","eventSdkInfo","packages","settings","_enhanceEventWithSdkInfo","envelopeHeaders","sent_at","createEventEnvelopeHeaders","resolvedSyncPromise","SyncPromise","resolve","rejectedSyncPromise","reason","_","reject","executor","_state","_handlers","_runExecutor","onfulfilled","onrejected","_executeHandlers","val","onfinally","isRejected","cachedHandlers","_value","setResult","state","notifyEventProcessors","processors","onDrop","_notifyEventProcessors","callbackError","final","parsedStackResults","lastSentryKeysCount","lastNativeKeysCount","cachedFilenameDebugIds","prepareEvent","normalizeDepth","normalizeMaxBreadth","prepared","dist","maxValueLength","applyClientOptions","integrationNames","applyIntegrationsMetadata","stackParser","filenameDebugIdMap","sentryDebugIdMap","_sentryDebugIds","nativeDebugIdMap","_debugIds","sentryDebugIdKeys","nativeDebugIdKeys","processDebugIds","debugIdKeys","debugIdMap","debugId","parsedStack","stackFrame","getFilenameToDebugIdMap","debug_id","applyDebugIds","finalScope","getFinalScope","exceptions","capturedException","find","exception_id","addExceptionMechanismToCapturedException","clientEventProcessors","getEventProcessors","applySpanToEvent","__sentry__","recordDroppedEvent","evt","abs_path","debug_meta","images","code_file","applyDebugMeta","maxBreadth","normalizeEvent","parseEventHintOrCaptureContext","hintIsScopeOrFunction","some","captureContextKeys","hintIsScopeContext","isEnabled","enabled","getTransport","startSession","navigator","currentSession","endSession","closeSession","_sendSessionUpdate","captureSession","end","getBaseApiEndpoint","getEnvelopeEndpointWithUrlEncodedAuth","_getIngestEndpoint","params","sentry_version","sentry_key","sentry_client","URLSearchParams","_encodedAuth","createLogContainerEnvelopeItem","inferUserData","inferSetting","item_count","ingest_settings","infer_ip","infer_user_agent","_INTERNAL_flushLogsBuffer","maybeLogBuffer","logBuffer","_getBufferMap","_INTERNAL_getLogBuffer","clientOptions","logs","createLogEnvelope","_metadata","getDataCollectionOptions","userInfo","sendEnvelope","createMetricContainerEnvelopeItem","_INTERNAL_flushMetricsBuffer","maybeMetricBuffer","metricBuffer","_INTERNAL_getMetricBuffer","metrics","createMetricEnvelope","extractGenAiSpansFromEvent","hasGenAiSpans","traceLifecycle","hasSpanStreamingEnabled","genAiSpans","remainingSpans","serializedSpans","createSpanContainerItem","SENTRY_BUFFER_FULL_ERROR","makePromiseBuffer","limit","Set","remove","task","$","taskProducer","size","drain","timeout","drainPromise","allSettled","promises","setTimeout","race","updateRateLimits","limits","statusCode","updatedRateLimits","rateLimitHeader","retryAfterHeader","retryAfter","categories","namespaces","headerDelay","parseInt","delay","category","all","header","headerDate","parse","parseRetryAfterHeader","createTransport","makeRequest","bufferSize","rateLimits","send","filteredEnvelopeItems","dataCategory","disabledUntil","isRateLimited","filteredEnvelope","recordEnvelopeLoss","types","envelopeContainsItemType","body","response","flush","DEFAULTS","cookies","httpHeaders","httpBodies","urlQueryParams","graphQL","document","variables","genAI","inputs","outputs","databaseQueryData","queues","stackFrameVariables","frameContextLines","INTERNAL_ERROR_SYMBOL","DO_NOT_SEND_EVENT_SYMBOL","_makeInternalError","_makeDoNotSendEventError","setupWeightBasedFlushing","afterCaptureHook","flushHook","estimateSizeFn","flushFn","flushTimeout","weight","isTimerActive","clearTimeout","flushInterval","_flushInterval","Client","_options","attachStacktrace","_integrations","_numProcessing","_outcomes","_hooks","_promiseBuffer","transportOptions","_dataCollection","dc","dataCollection","resolveDataCollectionOptions","_unhandledSessionStatus","_dsn","_transport","transport","estimateLogSizeInBytes","estimateMetricSizeInBytes","hintWithEventId","_process","eventFromException","_captureEvent","eventMessage","isMessage","promisedEvent","eventFromMessage","capturedSpanScope","capturedSpanIsolationScope","sendSession","getSdkMetadata","clientFinished","_isClientDoneProcessing","transportFlushed","close","eventProcessor","_isEnabled","_setupIntegrations","beforeSendTransaction","ignoreTransactions","getIntegrationByName","integrationName","getIntegrationNames","addIntegration","isAlreadyInstalled","beforeSetup","sendEvent","genAiSpanItem","env","sendResponse","clientReleaseOption","clientEnvironmentOption","sessionAttrs","createSessionEnvelope","count","sendClientReports","hookCallbacks","uniqueCallback","callbacks","registerCleanup","dispose","setupIntegrations","_updateSessionFromEvent","unhandled","errored","ex","sessionNonTerminal","ticked","_prepareEvent","_processEvent","finalEvent","isTransaction","isTransactionEvent","beforeSendLabel","beforeSendDropReason","onCallbackError","beforeSend","_static","processedEvent","errorEvent","profile_id","exclusive_time","measurements","convertTransactionEventToSpanJson","processedRootSpanJson","processedSpans","initialSpans","droppedSpans","spanCountBefore","spanCountBeforeProcessing","processBeforeSend","beforeSendResult","invalidValueError","_validateBeforeSendResult","droppedSpanCount","transactionInfo","transaction_info","_isInternalError","_clearOutcomes","outcomes","quantity","_flushOutcomes","discarded_events","metric","estimateAttributesSizeInBytes","estimatePrimitiveSizeInBytes","setCurrentClient","FILTERED_VALUE","SENSITIVE_KEY_SNIPPETS","shouldFilterDataKey","behavior","additionalDenyTerms","lowerKey","toLowerCase","lower","denySnippets","snippet","isSensitiveKey","matchesConfiguredTerm","deny","allow","term","filterKeyValueData","filterUrlQuery","fragmentStart","queryEnd","queryStart","prefix","query","suffix","filtered","queryString","pair","separatorIndex","encodedKey","filterQueryParams","filterCollectedUrl","urlQueryParamsBehavior","parseUrl","fragment","search","hash","relative","addAutoIpAddressToSession","DEFAULT_BREADCRUMBS","beforeBreadcrumb","finalBreadcrumb","SETUP_CLIENTS","functionToStringIntegration","originalFunctionToString","Function","originalFunction","unwrappedFunction","DEFAULT_IGNORE_ERRORS","eventFiltersIntegration","mergedOptions","_mergeOptions","_hint","_isIgnoredTransaction","ignoreErrors","possibleMessages","lastException","getPossibleEventMessages","_isIgnoredError","_isUselessError","denyUrls","_getEventFilterUrl","_isDeniedUrl","allowUrls","_isAllowedUrl","_shouldDropEvent","internalOptions","disableErrorDefaults","rootException","parent_id","_getLastValidUrl","applyAggregateErrorsToEvent","exceptionFromErrorImplementation","aggregateExceptionsFromError","prevExceptions","exceptionId","newExceptions","applyExceptionGroupFieldsForParentException","newException","newExceptionId","applyExceptionGroupFieldsForChildException","isExceptionGroup","childError","is_exception_group","parentId","_enhanceErrorWithSentryInfo","__sentry_fetch_url_host__","hasSentryFetchUrlHost","_filter","instrumentedLevels","instrumentConsole","firstArg","isFiltered","severityLevelFromString","dedupeIntegration","previousEvent","currentEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","_isSameMessageEvent","previousException","_getExceptionFromEvent","currentException","_isSameExceptionEvent","currentFrames","previousFrames","frameA","frameB","lineno","colno","currentFingerprint","previousFingerprint","consoleIntegration","unsubscribe","removeHandler","addConsoleInstrumentationHandler","logger","formatConsoleArgs","assertionArgs","addConsoleBreadcrumb","filter","unsubscribe2","f","addConsoleInstrumentationFilter","util","format","delimiter","safeJoin","conversationIdIntegration","isolationScopeData","WINDOW","isNativeFunction","supportsNativeFetch","EdgeRuntime","Headers","Response","_isFetchSupported","fetch","doc","createElement","sandbox","hidden","head","appendChild","contentWindow","removeChild","addFetchInstrumentationHandler","originalFetch","Proxy","_thisArg","virtualError","method","fetchArgs","resource","getUrlFromResource","hasProp","toUpperCase","arg","parseFetchArgs","handlerData","fetchData","startTimestamp","getHeadersFromFetchArgs","Reflect","async","endTimestamp","enhanceOption","enhanceFetchErrorMessages","hostname","URL","instrumentFetch","requestArgument","optionsArgument","getBreadcrumbLogLevelFromHttpStatusCode","FAKE_FUNCTION","FEEDBACK_INTEGRATION_METHODS","feedbackIntegrationShim","_isShim","REPLAY_INTEGRATION_METHODS","browserTracingIntegrationShim","elementTimingIntegrationShim","logShim","_message","loggerShim","debug","info","fatal","fmt","_strings","_values","consoleLoggingIntegrationShim","metricShim","_name","metricsShim","gauge","distribution","spanStreamingIntegrationShim","fetchStreamPerformanceIntegrationShim","accessors","Node","parentNode","getOwnPropertyDescriptor","Element","tagName","getAttribute","HTMLElement","dataset","_safeRead","el","htmlTreeAsString","elem","currentElem","MAX_TRAVERSE_HEIGHT","out","height","len","separator","sepLength","nextStr","keyAttrs","maxStringLength","_htmlElementAsString","keyAttrPairs","keyAttr","keyAttrPair","classes","k","attr","whenIdleOrHidden","rIC","requestIdleCallback","visibilityState","called","runOnce","listener","once","capture","addEventListener","removeEventListener","removePageListener","getLocationHref","location","href","debounceTimerID","lastCapturedEventType","lastCapturedEventTargetId","lastHref","instrumentDOM","triggerDOMHandler","globalDOMEventHandler","makeDOMEventHandler","globalObject","originalAddEventListener","__sentry_instrumentation_handlers__","handlerForType","refCount","originalRemoveEventListener","globalListener","getEventTarget","isContentEditable","shouldSkipDOMEvent","_sentryId","isSimilarToLastCapturedEvent","addHistoryInstrumentationHandler","instrumentHistory","historyReplacementFunction","originalHistoryFunction","to","urlOrPath","getAbsoluteUrl","history","cachedImplementations","SENTRY_XHR_DATA_KEY","instrumentXHR","XMLHttpRequest","xhrproto","open","originalOpen","xhrOpenThisArg","xhrOpenArgArray","parseXhrUrlArg","request_headers","__sentry_own_request__","onreadystatechangeHandler","xhrInfo","readyState","status_code","xhr","onreadystatechange","originalOnreadystatechange","onreadystatechangeThisArg","onreadystatechangeArgArray","setRequestHeader","originalSetRequestHeader","setRequestHeaderThisArg","setRequestHeaderArgArray","originalSend","sendThisArg","sendArgArray","sentryXhrData","ignoreOnError","ignoredErrorReports","shouldIgnoreOnError","findIndex","isSameErrorReport","report","wrap","wrapper","__sentry_wrapped__","sentryWrapped","_sentryWrappedDepth","wrappedArguments","property","getHttpRequestData","referrer","Referer","exceptionFromError","parseStackFrames","extractType","extractMessage","eventFromPlainObject","isUnhandledRejection","errorFromProp","__serialized__","getNonErrorObjectExceptionValue","eventFromError","skipLines","reactMinifiedRegexp","getSkipFirstStackStringLines","getPopFirstTopFrames","isWebAssemblyException","WebAssembly","Exception","_INTERNAL_enhanceErrorWithSentryInfo","eventFromUnknownInput","eventFromString","domException","synthetic","stringifiedException","__sentry_template_string__","__sentry_template_values__","logentry","extractExceptionKeysForMessage","captureType","getObjectClassName","BrowserClient","opts","optionsArg","__SENTRY_RELEASE__","SENTRY_RELEASE","parentSpanIsAlwaysRootSpan","names","name2","applySdkMetadata","SENTRY_SDK_SOURCE","super","queueMicrotask","platform","makeFetchTransport","nativeFetch","cached","impl","getNativeImplementation","pendingBodySize","pendingCount","requestSize","requestOptions","referrerPolicy","keepalive","fetchOptions","uiProfiler","startProfiler","stopProfiler","createFrame","in_app","chromeRegexNoFnName","chromeRegex","chromeEvalRegex","chromeDataUriRegex","chromeStackLineParser","dataUriMatch","noFnParts","col","subMatch","extractSafariExtensionDetails","geckoREgex","geckoEvalRegex","geckoStackLineParser","winjsRegex","winjsStackLineParser","opera10Regex","opera10StackLineParser","opera11Regex","opera11StackLineParser","defaultStackLineParsers","defaultStackParser","isSafariExtension","isSafariWebExtension","MAX_ALLOWED_STRING_LENGTH","breadcrumbsIntegration","dom","componentName","serializeAttribute","element","_isEvent","maxTraverseHeight","getComponentName","_getDomBreadcrumbHandler","addXhrInstrumentationHandler","_getXhrBreadcrumbHandler","_getFetchBreadcrumbHandler","parsedLoc","parsedFrom","parsedTo","_getHistoryBreadcrumbHandler","_getSentryBreadcrumbHandler","DEFAULT_EVENT_TARGET","browserApiErrorsIntegration","eventTarget","requestAnimationFrame","setInterval","unregisterOriginalCallbacks","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","integrationOptions","eventName","handleEvent","unregisterOriginalCallback","originalEventHandler","_wrapEventTarget","originalCallback","wrapOptions","browserSessionIntegration","lifecycle","initialSessionSent","previousUser","maybeNewUser","cultureContextIntegration","culture","getCultureContext","processSegmentSpan","locale","timezone","calendar","intl","Intl","DateTimeFormat","resolvedOptions","timeZone","globalHandlersIntegration","stackTraceLimit","addGlobalErrorInstrumentationHandler","ev","ev0","ev0s","ev0sf","getFilenameFromUrl","_enhanceEventWithInitialFrame","_installGlobalOnErrorHandler","addGlobalUnhandledRejectionInstrumentationHandler","_getUnhandledRejectionError","_installGlobalOnUnhandledRejectionHandler","includeDataPrefix","mimeType","isBase64","dataStart","dataPrefix","stripDataUrlContent","httpContextIntegration","collectedHeaders","userHeaders","_INTERNAL_filterKeyValueData","processSpan","reqData","referer","USER_AGENT_ORIGINAL","SENTRY_IS_LOCALHOST","endsWith","URL_FULL","linkedErrorsIntegration","HTML_ELEMENT_CONSTRUCTOR_NAME_REGEX","normalizeStringifyValue","isElement","checkAndWarnIfIsEmbeddedBrowserExtension","_window","nw","extensionObject","runtime","top","_isEmbeddedBrowserExtension","getDefaultIntegrations","LAZY_LOADABLE_NAMES","HYPHENATED_BUNDLES","replayCanvasIntegration","feedbackModalIntegration","feedbackScreenshotIntegration","WindowWithMaybeIntegration","associatedEventId","feedbackEvent","feedback","contact_email","associated_event_id","continueTrace","incomingDsc","baggageOrgId","clientOrgId","strictTraceContinuation","shouldContinueTrace","startNewTrace","createUserFeedbackEnvelopeItem","getTraceData","isTwpPlaceholder","scopeToTraceHeader","traceData","propagateTraceparent","spanToTraceparentHeader","scopeToTraceparentHeader","shouldDisableBecauseIsBrowserExtenstion","skipBrowserExtensionCheck","clientClass","initialScope","initAndBind","scriptNonce","bundle","getBundleName","sentryOnWindow","Sentry","existing","baseURL","cdnBaseUrl","getScriptURL","script","src","crossOrigin","waitForLoad","currentScript","parent","parentElement","integrationFn","strings","formatted","raw","optionalDocument","injectionPoint","onLoad","onClose","dsnLike","dialogOptions","endpoint","encodedOptions","getReportDialogEndpoint","onload","reportDialogClosedMessageHandler","updateName","INTERNAL_setSegmentNameSourceIfSegment"],"mappings":";2CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CCAMA,CAAAA,CAAaC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CCAbC,CAAAA,CAAc,SCGpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAAA,CAEP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADAC,CAAAA,CAAiBJ,CAAAA,CAAAA,CACVA,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASI,CAAAA,CAAiBC,CAAAA,CAAAA,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAaD,CAAAA,CAAQC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaD,CAAAA,CAAQC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CAE9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADAA,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUD,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWL,CAAAA,CACpCI,CAAAA,CAAWJ,CAAAA,CAAAA,CAAeI,CAAAA,CAAWJ,CAAAA,CAAAA,CAAAA,CAAgB,CAAA,CAC9D,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASM,CAAAA,CAAmBC,EAAMC,CAAAA,CAASC,CAAAA,CAAMX,CAAAA,CAAAA,CAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMM,CAAAA,CAAaK,CAAAA,CAAIL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaK,CAAAA,CAAIL,YAAc,CAAA,CAAA,CAChDD,CAAAA,CAAUC,CAAAA,CAAWJ,CAAAA,CAAAA,CAAeI,CAAAA,CAAWJ,CAAAA,CAAAA,CAAAA,CAAgB,CAAA,EACrE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOG,CAAAA,CAAQI,CAAAA,CAAAA,CAAAA,CAAAA,CAAUJ,CAAAA,CAAQI,CAAAA,CAAAA,CAAQC,CAAAA,CAAAA,CAAAA,CAC3C,CCZA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAME,CAAAA,CAAiB,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,SAGIC,CAAAA,CAAyB,CAAA,CAAA,CAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAeC,CAAAA,CAAAA,CACtB,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAaf,CAAAA,CAAAA,CACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOe,CAAAA,CAAAA,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAUhB,CAAAA,CAAWgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrBC,CAAAA,CAAe,CAAA,CAAA,CACfC,CAAAA,CAAgBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKP,CAAAA,CAAAA,CAClCK,CAAAA,CAAcG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAAA,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAwBV,CAAAA,CAAuBS,CAAAA,CAAAA,CACrDL,CAAAA,CAAaK,CAAAA,CAAAA,CAASN,CAAAA,CAAQM,CAAAA,CAAAA,CAC9BN,EAAQM,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAAA,CAEnB,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOR,CAAAA,CAAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACEG,CAAAA,CAAcG,QAASC,CAAAA,CAAAA,CAAAA,CACrBN,CAAAA,CAAQM,CAAAA,CAAAA,CAASL,CAAAA,CAAaK,CAAAA,CAAAA,CAAAA,CAElC,CACF,CClCA,CAAA,CAAA,CAAA,CAAA,CAAA,CACME,EAAmB,CAAA,CAAA,CAAA,CACnBC,CAAAA,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACvBC,CAAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAqBC,CAAAA,CAAAA,CAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAgBD,CAAAA,CAAQE,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAACC,CAAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAMD,CAAAA,CAAE,GAAKC,CAAAA,CAAE,CAAA,CAAA,CAAA,CAAIC,CAAAA,CAAAA,CAAAA,CAAKC,CAAAA,CAAAA,CAAMA,CAAAA,CAAE,CAAA,CAAA,CAAA,CACvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAACC,CAAAA,CAAOC,CAAAA,CAAiB,CAAA,CAAGC,CAAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAS,CAAA,CAAA,CACTC,EAAQJ,CAAAA,CAAMK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAIL,CAAAA,CAAgBK,CAAAA,CAAIF,CAAAA,CAAMG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQD,CAAAA,CAAAA,CAAAA,CAAK,CAClD,CAAA,CAAA,CAAA,CAAIE,CAAAA,CAAOJ,CAAAA,CAAME,CAAAA,CAAAA,CACbE,EAAKD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChBC,CAAAA,CAAOA,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,EAAcpB,CAAAA,CAAqBqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKH,CAAAA,CAAAA,CAAQA,CAAAA,CAAKI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQtB,CAAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQkB,CAAAA,CACjG,IAAIE,CAAAA,CAAYG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAzB,CAGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAUpB,CAAAA,CAAe,CAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMqB,CAAAA,CAAQD,CAAAA,CAAOJ,CAAAA,CAAAA,CACrB,CAAA,CAAA,CAAIK,CAAAA,CAAO,CACTZ,EAAOa,CAAAA,CAAAA,CAAAA,CAAAA,CAAKD,CAAAA,CAAAA,CACZ,CAAA,CAAA,CAAA,CAAA,CACF,CACF,CACA,CAAA,CAAA,CAAIZ,CAAAA,CAAOI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAzBc,GAyBqBL,CAAAA,CAC5C,CAAA,CAAA,CAAA,CAAA,CATF,CAWF,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CASJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqCF,CAAAA,CAAAA,CACnC,CAAA,CAAA,CAAA,CAAKA,EAAMO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMU,CAAAA,CAAaC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKnB,CAAAA,CAAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgBW,CAAAA,CAAAA,CAAAA,CAAAA,CAAKS,CAAAA,CAAkBH,CAAAA,CAAAA,CAAYI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CACjEJ,CAAAA,CAAWK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEbL,EAAWM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACPhC,CAAAA,CAAmBoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKS,CAAAA,CAAkBH,CAAAA,CAAAA,CAAYI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CACpEJ,CAAAA,CAAWK,MACP/B,CAAAA,CAAmBoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKS,CAAAA,CAAkBH,CAAAA,CAAAA,CAAYI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CACpEJ,CAAAA,CAAWK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGf,OAAOL,CAAAA,CAAWR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CArDK,CAAA,CAAA,CAAA,CAqDsBX,CAAAA,CAAAA,CAAAA,CAAKiB,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CACnDA,CAAAA,CACHS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUT,CAAAA,CAAMS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYJ,CAAAA,CAAkBH,CAAAA,CAAAA,CAAYO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1DH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUN,CAAAA,CAAMM,UAAYhC,CAAAA,CAAAA,CAAAA,CAEhC,CA7BWoC,CAA4BtB,CAAAA,CAAOM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMP,CAAAA,CAAAA,CAAAA,CAEpD,CA4BA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASkB,CAAAA,CAAkBM,CAAAA,CAAAA,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAIA,CAAAA,CAAInB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAM,CAAA,CAChC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMoB,CAAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAgBC,CAAAA,CAAAA,CACvB,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKA,CAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAPA,CAAAA,CAAAA,CAGXA,CAAAA,CAAGvD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAFDqD,CAGX,CAAA,MACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CACT,CACF,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASG,CAAAA,CAAmBC,CAAAA,CAAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,EAAYD,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxB,CAAA,CAAA,CAAIA,CAAAA,CAAW,CACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM7B,CAAAA,CAAS,CAAA,CAAA,CACf,IAME,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CALA6B,CAAAA,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO/C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASgD,CAAAA,CAAAA,CAAAA,CACpBA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnBA,CAAAA,CAAOa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQkB,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAG7BA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,MACF,CACF,CAEF,CCrFA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMiC,CAAAA,CAAW,CAAA,CAAA,CACXC,CAAAA,CAAe,CAAA,CAAA,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAWC,CAAAA,CAAMC,CAAAA,CAAAA,CAGxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAFAJ,CAAAA,CAASG,GAAQH,CAAAA,CAASG,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CACnCH,CAAAA,CAASG,CAAAA,CAAAA,CAAMvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwB,CAAAA,CAAAA,CACb,CAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAeL,CAAAA,CAASG,CAAAA,CAAAA,CAC9B,CAAA,CAAA,CAAIE,CAAAA,CAAc,CAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,EAAQD,CAAAA,CAAaE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQH,CAAAA,CAAAA,CAAAA,CACrB,CAAA,CAAA,CAAA,CAAVE,CAAAA,CAAAA,CACFD,CAAAA,CAAaG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOF,CAAAA,CAAO,EAE/B,CAAA,CAEJ,CAMA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASG,CAAAA,CAAgBN,CAAAA,CAAMO,CAAAA,CAAAA,CAC7B,CAAA,CAAA,CAAA,CAAKT,CAAAA,CAAaE,GAAO,CACvBF,CAAAA,CAAaE,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CACrB,CAAA,CAAA,CAAA,CACEO,CAAAA,CAAAA,CACF,OAASC,CAAAA,CAAAA,CAET,CACF,CACF,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAgBT,CAAAA,CAAMU,CAAAA,CAAAA,CAC7B,MAAMR,CAAAA,CAAeF,CAAAA,CAAAA,CAAQH,CAAAA,CAASG,CAAAA,CAAAA,CACtC,CAAA,CAAA,CAAKE,CAAAA,CAGL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWD,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CACpB,CAAA,CAAA,CAAA,CACED,CAAAA,CAAQS,CAAAA,CACV,OAASF,CAAAA,CAAAA,CAQT,CAEJ,CCjDA,CAAA,CAAA,CAAA,CAAIG,CAAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAMzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAAA,CACPD,CAAAA,CAAqBrF,CAAAA,CAAWuF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChCvF,CAAAA,CAAWuF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAKC,CAAAA,CAAK9C,CAAAA,CAAM+C,CAAAA,CAAQC,GASpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADAR,CAAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAPI,CAClBO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAhD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACA6C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAC,UAGEJ,CAAAA,CAAAA,CACKA,CAAAA,CAAmBO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAG1C,CAAA,CACA9F,CAAAA,CAAWuF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQQ,yBAA0B,CAC/C,CCvBA,CAAA,CAAA,CAAA,CAAIC,CAAAA,CAAkC,CAAA,CAAA,CAAA,CAAA,CAMtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAAA,CACPD,CAAAA,CAAkChG,CAAAA,CAAWkG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7ClG,CAAAA,CAAWkG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAShB,CAAAA,CAAAA,CAGzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADAC,CAAAA,CAAgB,qBADID,CAAAA,CAAAA,CAAAA,CAEhBc,CAAAA,CAAAA,CACKA,CAAAA,CAAgCJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGvD,CAAA,CACA9F,CAAAA,CAAWkG,qBAAqBH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA0B,CAC5D,CCpBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMI,CAAAA,CAAiBhF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOiF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxC,SAASC,CAAAA,CAAQC,CAAAA,CAAAA,CACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQJ,CAAAA,CAAeK,CAAAA,CAAAA,CAAAA,CAAAA,CAAKD,CAAAA,CAAAA,CAAAA,CAC1B,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CACT,QACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOE,CAAAA,CAAaF,CAAAA,CAAKG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE/B,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAUJ,CAAAA,CAAKK,GACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOT,CAAAA,CAAeK,CAAAA,CAAAA,CAAAA,CAAAA,CAAKD,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWK,CAAAA,CAAAA,CAAAA,CACjD,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,EAAaN,CAAAA,CAAAA,CACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOI,CAAAA,CAAUJ,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACxB,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASO,CAAAA,CAAWP,CAAAA,CAAAA,CAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOI,CAAAA,CAAUJ,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACxB,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASQ,CAAAA,CAASR,GAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOI,CAAAA,CAAUJ,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACxB,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASS,CAAAA,CAAsBT,CAAAA,CAAAA,CAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAARA,CAAAA,CAAAA,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAARA,CAAAA,CAAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgCA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgCA,CAC3H,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASU,CAAAA,CAAYV,CAAAA,CAAAA,CACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAARA,CAAAA,CAAAA,CAAgBS,CAAAA,CAAsBT,CAAAA,CAAAA,CAAAA,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAARA,CAAAA,CAAAA,CAAmC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAARA,CACzF,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASW,CAAAA,CAAcX,GACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOI,CAAAA,CAAUJ,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACxB,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASY,CAAAA,CAAaZ,CAAAA,CAAAA,CACpB,MAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAARA,CAAAA,CAAAA,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAARA,CACpC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASa,CAAAA,CAAQb,CAAAA,CAAAA,CACf,MAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAyBZ,CAAAA,CAAaF,CAAAA,CAAKc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC3D,CAOA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAWf,CAAAA,CAAAA,CAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQhB,CAAAA,CAAAA,CAAKiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAbjB,CAAAA,CAAIiB,CAAAA,CAAAA,CAAAA,CAAAA,CACzC,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASf,CAAAA,CAAaF,CAAAA,CAAKkB,CAAAA,CAAAA,CACzB,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAekB,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACT,CACF,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAUC,GACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAZC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA2BnB,CAAAA,CAAakB,CAAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjE,CC9DA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAKC,CAAAA,CAAQrH,CAAAA,CAAMsH,CAAAA,CAAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAMtH,CAAAA,CAAAA,CAAAA,CAAAA,CAAQqH,CAAAA,CAAAA,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,MAAME,CAAAA,CAAWF,CAAAA,CAAOrH,CAAAA,CAAAA,CACxB,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAbuH,CAAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,EAAUF,CAAAA,CAAmBC,CAAAA,CAAAA,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAZC,CAAAA,CAAAA,CACTC,CAAAA,CAAoBD,CAAAA,CAASD,CAAAA,CAAAA,CAE/B,CAAA,CAAA,CAAA,CACEF,EAAOrH,CAAAA,CAAAA,CAAQwH,CACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CACF,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASE,CAAAA,CAAyBxH,CAAAA,CAAKF,CAAAA,CAAM4D,CAAAA,CAAAA,CAC3C,CAAA,CAAA,CAAA,CACElD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOiH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAezH,CAAAA,CAAKF,CAAAA,CAAM,CAE/B4D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAgE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CACVC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CAElB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CACF,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASJ,CAAAA,CAAoBD,CAAAA,CAASD,CAAAA,CAAAA,CACpC,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMO,CAAAA,CAAQP,EAAS5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAA,CAAA,CACpC6B,CAAAA,CAAQ7B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY4B,CAAAA,CAAS5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYmC,CAAAA,CACzCJ,CAAAA,CAAyBF,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuBD,CAAAA,CAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CACF,CAiBA,SAASQ,CAAAA,CAAoBC,CAAAA,CAAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACd,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAqBtE,GAC5B,CAAA,CAAA,CAAIiC,CAAAA,CAAQjC,CAAAA,CAAAA,CACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLuE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASvE,CAAAA,CAAMuE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACfnI,KAAM4D,CAAAA,CAAM5D,CAAAA,CAAAA,CAAAA,CAAAA,CACZ0B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOkC,CAAAA,CAAMlC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACV0G,CAAAA,CAAiBxE,CAAAA,CAAAA,CAAAA,CAGxB,CAAA,CAAA,CAAI+C,CAAAA,CAAQ/C,CAAAA,CAAAA,CAAQ,CAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMK,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAAoE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMA,CAAAA,CAAAC,cAAQA,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeA,CAAAA,CAAAA,CAAW3E,CAAAA,CAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAoE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAC,mBACGC,CAAAA,CAAS,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CACtBH,CAAAA,CAAiBxE,CAAAA,CAAAA,CAExB,CACA,OAAOA,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASwE,CAAAA,CAAiBlI,CAAAA,CAAAA,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIwG,CAAAA,CAAaxG,CAAAA,CAAAA,CACRQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO8H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY9H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO+H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQvI,CAAAA,CAAAA,CAAAA,CAEpC,CAAA,CACT,CCrFA,IAAIwI,CAAAA,CACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAsBC,CAAAA,CAAAA,CAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAApBF,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,EAAkBA,CAAAA,CAAgBE,CAAAA,CAAAA,CAAMA,CAAAA,CAAAA,CAAAA,CAEjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAsBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjCC,EAAmBzJ,CAAAA,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIsJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAOG,CAAAA,CAAAA,CAAqD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA1BA,CAAAA,CAAiBH,CAAAA,CAAAA,CAAAA,CACrDH,CAAAA,CAAkBM,CAAAA,CAAiBH,CAAAA,CAAAA,CAC5BH,CAAAA,CAAgBE,CAAAA,CAAAA,CAAAA,CAAAA,CAEzBF,CAAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CACXE,CAAAA,CAAAA,CAAAA,CACT,CACA,SAASK,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAON,CAAAA,CAAsB,CAAA,CAAA,CAAA,CAAMO,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1C,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOT,CAAAA,CAAsB,CAAA,CAAA,CAAA,CAAMU,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1C,CCnBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,EAA4CT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACvDS,CAAAA,CAAsDV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CCCvE,CAAA,CAAA,CAAA,CAAIU,CAAAA,CCKAC,CAAAA,CDDJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAUC,CAAAA,CAAOC,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAKC,CAAAA,CAAgBC,KACrD,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAIJ,CAAAA,CAAOC,CAAAA,CAAOC,CAAAA,CACjC,OAASG,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyBD,CAAAA,CAAAA,CAAAA,CAAAA,CAC3C,CACF,CACA,SAASE,CAAAA,CAAAA,CAAgBC,CAAAA,CAAQP,CAAAA,CAAQ,CAAA,CAAGQ,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAaX,CAAAA,CAAAA,CAAUS,CAAAA,CAAQP,CAAAA,CAAAA,CACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAwFgBjG,CAAAA,CAxFH0G,CAAAA,CAqFf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB1G,CAAAA,CAAAA,CAClB,QAAS2G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU3G,CAAAA,CAAAA,CAAO7B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC3C,CAESuI,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU9G,CAAAA,CAAAA,CAAAA,CAzFNyG,CAAAA,CAClBF,CAAAA,CAAAA,CAAgBC,CAAAA,CAAQP,CAAAA,CAAQ,CAAA,CAAGQ,CAAAA,CAAAA,CAErCC,EAqFT,CAAA,CAAA,CAAA,CAAkB1G,CApFlB,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASoG,CAAAA,CAAAA,CAAMW,CAAAA,CAAK/G,CAAAA,CAAOiG,CAAAA,CAAQE,CAAAA,CAAAA,CAAAA,CAAUD,CAAAA,CAAgBC,CAAAA,CAAAA,CAAAA,CAAUa,CAAAA,CA+FvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,KAA4BC,QAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAQ7K,CAAAA,CAAAA,CACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI2K,CAAAA,CAAMG,CAAAA,CAAAA,CAAAA,CAAI9K,CAAAA,CAAAA,CAAAA,CAAAA,CAGd2K,CAAAA,CAAMI,IAAI/K,CAAAA,CAAAA,CAAAA,CACH,CAAA,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASgL,CAAAA,CAAUhL,CAAAA,CAAAA,CACjB2K,CAAAA,CAAMM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOjL,EACf,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAC6K,CAAAA,CAASG,CAAAA,CACnB,CA5G8EE,CAAAA,CAAAA,CAAAA,CAC5E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOL,CAAAA,CAASG,CAAAA,CAAAA,CAAaN,CAAAA,CAC7B,CAAA,CAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAThH,CAAAA,CAAAA,CACJ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,UAAUrB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBqB,CAAAA,CAAAA,CAAAA,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVA,CAAAA,CAAAA,CAAsByH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS1H,CAAAA,CAAAA,CAC3F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM2H,CAAAA,CAAcC,CAAAA,CAAAA,CAAeb,CAAAA,CAAK/G,CAAAA,CAAAA,CACxC,CAAA,CAAA,CAAA,CAAK2H,CAAAA,CAAYE,WAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOF,CAAAA,CAET,CAAA,CAAA,CDtBF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkC3H,CAAAA,CAAAA,CAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOkD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQlD,CAAAA,CAAM2F,CAAAA,CAAAA,CACvB,CCoBMmC,CAAyB9H,CAAAA,CAAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM+H,EDtBR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2C/H,CAAAA,CAAAA,CACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMgI,CAAAA,CAAIhI,CAAAA,CAAM4F,CAAAA,CAAAA,CAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAANoC,EAAiBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CACrC,CCmBwBC,CAAkCjI,CAAAA,CAAAA,CAClDkI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmC,CAAA,CAAA,CAAA,CAAlBH,CAAAA,CAA2BA,EAAgB9B,CAAAA,CAClE,CAAA,CAAA,CAAuB,CAAA,CAAA,CAAA,CAAnBiC,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOP,CAAAA,CAAYjJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAExC,CAAA,CAAA,CAAIyI,CAAAA,CAAQnH,CAAAA,CAAAA,CACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMmI,CAAAA,CAAkBnI,EACxB,CAAA,CAAA,CAAImI,CAAAA,CAAAA,CAAqD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA3BA,CAAAA,CAAgBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5C,CAAA,CAAA,CAAA,CAEE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOhC,CAAAA,CAAAA,CAAM,GADK+B,CAAAA,CAAgBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACNF,CAAAA,CAAiB,CAAA,CAAGhC,CAAAA,CAAec,CAAAA,CACjE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMN,CAAAA,CAAa1H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQrI,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAK,CAAA,CAAA,CAC/C,CAAA,CAAA,CAAA,CAAIsI,CAAAA,CAAW,CAAA,CACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAYjE,CAAAA,CAAqBtE,CAAAA,CAAAA,CACvC,CAAA,CAAA,CAAA,CAAA,MAAWwI,CAAAA,CAAAA,CAAAA,CAAAA,CAAYD,CAAAA,CAAW,CAChC,CAAA,CAAA,CAAA,CAAKzL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOiF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU0G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAetG,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoG,EAAWC,CAAAA,CAAAA,CACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,CAAA,CAAA,CAAIF,CAAAA,CAAAA,CAAYpC,CAAAA,CAAe,CAC7BQ,CAAAA,CAAW8B,CAAAA,CAAAA,CAAY,oBACvB,CAAA,CAAA,CAAA,CAAA,CACF,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAME,CAAAA,CAAaH,CAAAA,CAAUC,CAAAA,CAAAA,CAC7B9B,CAAAA,CAAW8B,CAAAA,CAAAA,CAAYpC,CAAAA,CAAAA,CAAMoC,CAAAA,CAAUE,CAAAA,CAAYR,CAAAA,CAAiB,CAAA,CAAGhC,CAAAA,CAAec,CAAAA,CAAAA,CACtFsB,CAAAA,CAAAA,CACF,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADAhB,CAAAA,CAAUtH,CAAAA,CAAAA,CACH0G,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASkB,CAAAA,CAAAA,CAAeb,CAAAA,CAAK/G,CAAAA,CAAAA,CAC3B,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAI6F,CAAAA,CAAa,CACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM8B,CAAAA,CAAc9B,CAAAA,CAAY7F,GAChC,CAAA,CAAA,CAAI2H,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAEX,CACA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAXgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA0B3I,CAAAA,CAAAA,CAAAA,CAAU2I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAET,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAV3I,CAAAA,CAAAA,CAAAA,CAAuByH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,SAAS1H,CAAAA,CAAAA,CAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAAAA,CAAAA,CAEb,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVA,CAAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,cAAcN,CAAAA,CAAgBM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEvC,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVA,CAAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAI4I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO5I,MAEpB,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVA,CAAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY4I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO5I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM6I,CAAAA,CAMV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B7I,CAAAA,CAAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM+B,CAAAA,CAAYjF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOgM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe9I,CAAAA,CAAAA,CACxC,OAAO+B,CAAAA,CAAAA,CAAWgH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAchH,CAAAA,CAAUgH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY3M,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC/D,CAToB4M,CAAmBhJ,CAAAA,CAAAA,CACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW6I,CAAAA,CAAAA,CAAAA,CACpB,OAASxC,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,yBAAyBA,CAAAA,CAAAA,CAAAA,CAClC,CACF,CEpFA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS4C,CAAAA,CAAAA,CAASC,CAAAA,CAAKC,CAAAA,CAAM,CAAA,CAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAARD,CAAAA,CAAAA,CAA4B,CAAA,CAAA,CAAA,CAARC,CAAAA,CAAAA,CAGxBD,CAAAA,CAAI7K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU8K,CAAAA,CAFZD,EAEwB,CAAA,CAAA,CAAGA,CAAAA,CAAI3K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAG4K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnD,CA+CA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAkBpJ,EAAOqJ,CAAAA,CAASC,CAAAA,CAAAA,CAA0B,CAAA,CAAA,CACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK5G,CAAAA,CAAS1C,CAAAA,CAAAA,CAAAA,CAAAA,CNpBPsC,CAAAA,CMuBM+G,CAAAA,CNvBS,UMwBbA,CAAAA,CAAQ5K,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuB,CAAAA,CAAAA,CAElB0C,CAAAA,CAAS2G,CAAAA,CAAAA,CACJC,CAAAA,CAA0BtJ,CAAAA,CAAAA,CAAAA,CAAUqJ,CAAAA,CAAUrJ,CAAAA,CAAMrB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS0K,CAAAA,CAAAA,CAE/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAZA,CAAAA,CAAAA,CACFA,CAAAA,CAAQrJ,CAAAA,CAAAA,CAGnB,CACA,SAASuJ,CAAAA,CAAAA,CAAyBC,CAAAA,CAAYC,CAAAA,CAAW,CAAA,CAAA,CAAIH,CAAAA,CAAAA,CAA0B,CAAA,CAAA,CACrF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWD,CAAAA,CAAAA,CAAAA,CAAAA,CAAWI,CAAAA,CACpB,CAAA,CAAA,CAAIL,CAAAA,CAAAA,CAAkBI,CAAAA,CAAYH,CAAAA,CAASC,CAAAA,CAAAA,CACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,EAGX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACT,CD1EA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASI,CAAAA,CAAAA,CAAMC,CAAAA,CARf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAMjO,CAAAA,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOiO,CAAAA,CAAID,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,CAAAA,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC3B,CAKwBC,IACtB,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAIH,CAAAA,CAAAA,CAAQI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOhF,CAAAA,CAAsB,CAAA,CAAA,CAAA,CAAM4E,CAAAA,CAAOI,cAAcrL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAE1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAHKoH,CAAAA,CAAAA,CAAAA,CACHA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEPA,CAAAA,CAAUpH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACCsL,CAAAA,CAAAA,CAAAA,CAEEA,CAAAA,CAAAA,CAhBqB,CAAA,CAAA,CAAnB3E,CAAAA,CAAAA,CAAAA,CAgBqB,CAAA,CAAA,CAAA,CAAA,CAAO2E,CAAAA,CAAI,CAAA,CAAA,CAAGhI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAGrD,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASiI,CAAAA,CAAAA,CAAkBpK,GACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CACnC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASmK,CAAAA,CAAAA,CAAoBrK,GAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM0E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAS4F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,CAAAA,CAAAA,CAAYvK,CAAAA,CACvC,CAAA,CAAA,CAAI0E,CAAAA,CACF,OAAOA,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM8F,CAAAA,CAAiBJ,CAAAA,CAAAA,CAAkBpK,CAAAA,CAAAA,CACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIwK,CAAAA,CACEA,CAAAA,CAAehK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQgK,CAAAA,CAAerK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjC,CAAA,CAAA,CAAGqK,CAAAA,CAAehK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASgK,CAAAA,CAAerK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE5CqK,EAAehK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQgK,CAAAA,CAAerK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASoK,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAE5DA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpB,CACA,SAASE,CAAAA,CAAAA,CAAsBzK,CAAAA,CAAOG,CAAAA,CAAOK,CAAAA,CAAAA,CAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMP,CAAAA,CAAYD,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYD,EAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAA,CAAA,CACjDC,CAAAA,CAASD,CAAAA,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASD,CAAAA,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAChDsK,CAAAA,CAAiBtK,CAAAA,CAAO,CAAA,CAAA,CAAKA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAC3CsK,EAAerK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClBqK,CAAAA,CAAerK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAE7BqK,CAAAA,CAAehK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClBgK,CAAAA,CAAehK,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAElC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASkK,CAAAA,CAAAA,CAAsB1K,CAAAA,CAAO2K,CAAAA,CAAAA,CACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMH,EAAiBJ,CAAAA,CAAAA,CAAkBpK,CAAAA,CAAAA,CACpCwK,CAAAA,CAAAA,CAGLI,CAAAA,CAAAA,CAAwBJ,CAAAA,CAAgBG,CAAAA,CAC1C,CASA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAwB3K,CAAAA,CAAW0K,CAAAA,CAAAA,CAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CACME,CAAAA,CAAmB5K,CAAAA,CAAU6K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnC7K,CAAAA,CAAU6K,UAAY,CAFKtK,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWuK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAELF,CAAAA,CAAAA,CAAAA,CAAAA,CAAqBF,CAAAA,CAAAA,CACjEA,CAAAA,CAAAA,CAAgB,SAAUA,CAAAA,CAAAA,CAAAA,CAC5B1K,CAAAA,CAAU6K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU5J,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAK2J,CAAAA,CAAAA,CAAkB3J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASyJ,CAAAA,CAAazJ,MAE5E,CA6BA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS8J,CAAAA,CAAAA,CAAwB/K,CAAAA,CAAAA,CAC/B,CAAA,CAAA,CASF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2BA,CAAAA,CAAAA,CACzB,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAUgL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CACF,CAdMC,CAAkBjL,GACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAET,CAAA,CAAA,CAAA,CACEgE,CAAAA,CAAyBhE,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAA,CAC7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACT,CEnHA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASkL,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOxF,IAFgB,CAAA,CAAA,CAGzB,CAWA,CAAA,CAAA,CAAA,CAAIyF,CAAAA,CAAAA,CACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAEP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADaD,CAAAA,CAAAA,CAAAA,CAAAA,CAA8BA,CAAAA,CAAAA,CAZ7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAME,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAAA,CAAgBxP,CAAAA,CACxB,CAAA,CAAA,CAAA,CAAKwP,CAAAA,CAAAA,CAAazF,MAAQyF,CAAAA,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOJ,CAAAA,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMI,CAAAA,CAAaD,CAAAA,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC/B,MAAO,CAAA,CAAA,CAAA,CAAA,CACGA,CAAAA,CAAarG,CAAAA,CAAsB,CAAA,CAAA,CAAA,CAAMoG,CAAAA,CAAYzF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAXxC,CAAA,CAAA,CAazB,CAGyE2F,MAEzE,CClBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAYC,CAAAA,CAAAA,CACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAeN,CAAAA,CAAAA,CAAAA,CAAAA,CACfO,CAAAA,CAAU,CACdC,CAAAA,CAAAA,CAAAA,CAAKhC,CAAAA,CAAAA,CAAAA,CAAAA,CACLiC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CACNC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWJ,CAAAA,CACXK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASL,EACTM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CACVC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CACRC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CACRC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAA,CAChB7D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAuEZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuBqD,CAAAA,CAAAA,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLC,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAGD,EAAQC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAMF,CAAAA,CAAQE,CAAAA,CAAAA,CAAAA,CAAAA,CAEdE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAIpG,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,CAAA,CAAA,CAAA,CAAlBgG,CAAAA,CAAQI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACzCN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAInG,CAAAA,CAAAA,CAAAA,CAAAA,CAAyB,CAAA,CAAA,CAAA,CAApBgG,CAAAA,CAAQG,WAAiBM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7CH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQN,CAAAA,CAAQM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQP,CAAAA,CAAQO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChBG,CAAAA,CAAAA,CAAAA,CAA4B,iBAAhBV,CAAAA,CAAQU,CAAAA,CAAAA,CAAAA,CAAAA,CAA2C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAhBV,CAAAA,CAAQU,CAAAA,CAAAA,CAAAA,CAAmB,CAAA,CAAA,CAAGV,CAAAA,CAAQU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,EAC7FL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUL,CAAAA,CAAQK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClBM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoBX,CAAAA,CAAQW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACLC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASb,CAAAA,CAAQa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAad,CAAAA,CAAQc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYf,CAAAA,CAAQgB,UACpBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYjB,CAAAA,CAAQkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAG1B,CA1FkBC,CAAcnB,CAAAA,CAAAA,CAAAA,CAK9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAHIF,CAAAA,CAAAA,CACFsB,GAAcpB,CAAAA,CAASF,CAAAA,CAAAA,CAElBE,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASoB,CAAAA,CAAAA,CAAcpB,CAAAA,CAASF,CAAAA,CAAU,IA4BxC,CAAA,CAAA,CA3BIA,CAAAA,CAAQuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACLrB,CAAAA,CAAQgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAalB,CAAAA,CAAQuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrCf,CAAAA,CAAQgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYlB,CAAAA,CAAQuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE9Bf,CAAAA,CAAQU,CAAAA,CAAAA,CAAAA,CAAAA,CAAQZ,EAAQY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC3BV,CAAAA,CAAQU,CAAAA,CAAAA,CAAAA,CAAMZ,CAAAA,CAAQuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAMxB,CAAAA,CAAQuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKE,OAASzB,CAAAA,CAAQuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGxExB,CAAAA,CAAQG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYL,CAAAA,CAAQK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaV,CAAAA,CAAAA,CAAAA,CAAAA,CACrCK,EAAQa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACVX,CAAAA,CAAQW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqBb,CAAAA,CAAQa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEnCb,CAAAA,CAAQU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACVR,CAAAA,CAAQQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBV,CAAAA,CAAQU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE/BV,CAAAA,CAAQG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACVD,CAAAA,CAAQC,CAAAA,CAAAA,CAAAA,CAA6B,CAAA,CAAA,CAAA,CAAA,CAAvBH,EAAQG,CAAAA,CAAAA,CAAAA,CAAIrN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBkN,CAAAA,CAAQG,CAAAA,CAAAA,CAAAA,CAAMhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAErC,CAAA,CAAA,CAAA,CAAjB6B,CAAAA,CAAQI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACVF,CAAAA,CAAQE,CAAAA,CAAAA,CAAAA,CAAAA,CAAOJ,CAAAA,CAAQI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEpBF,CAAAA,CAAQU,CAAAA,CAAAA,CAAAA,CAAAA,CAAOZ,CAAAA,CAAQY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1BV,EAAQU,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAGZ,CAAAA,CAAQY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAApBZ,CAAAA,CAAQM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjBJ,CAAAA,CAAQI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUN,CAAAA,CAAQM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAExBJ,CAAAA,CAAQQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACVR,CAAAA,CAAQK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrB,GAAuC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAArBP,CAAAA,CAAQO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxBL,CAAAA,CAAQK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWP,CAAAA,CAAQO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtB,CACL,MAAMA,CAAAA,CAAWL,CAAAA,CAAQG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYH,CAAAA,CAAQI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7CJ,CAAAA,CAAQK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWA,CAAAA,CAAAA,CAAY,EAAIA,CAAAA,CAAW,CAChD,CACIP,CAAAA,CAAQe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACVb,CAAAA,CAAQa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUf,CAAAA,CAAQe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAExBf,CAAAA,CAAQgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACVd,CAAAA,CAAQc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAchB,CAAAA,CAAQgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE3Bd,CAAAA,CAAQgB,WAAalB,CAAAA,CAAQkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChChB,CAAAA,CAAQgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYlB,CAAAA,CAAQkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEzBhB,CAAAA,CAAQkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAapB,CAAAA,CAAQoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChClB,CAAAA,CAAQkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYpB,CAAAA,CAAQoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAnBpB,CAAAA,CAAQS,SACjBP,CAAAA,CAAQO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAST,CAAAA,CAAQS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEvBT,CAAAA,CAAQQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACVN,CAAAA,CAAQM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASR,CAAAA,CAAQQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE7B,CC3EA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASmB,CAAAA,CAAAA,CAAMC,CAAAA,CAAYC,CAAAA,CAAUC,CAAAA,CAAS,GAC5C,CAAA,CAAA,CAAA,CAAKD,CAAAA,CAAAA,CAAgC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAbA,CAAAA,CAAAA,CAAyBC,CAAAA,CAAAA,CAAU,CAAA,CACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOD,CAAAA,CAET,GAAID,CAAAA,CAAAA,CAA+C,CAAA,CAAA,CAAA,CAAjCrQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqQ,CAAAA,CAAAA,CAAU/O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO8O,CAAAA,CAET,MAAMG,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAKH,CAAAA,CAAAA,CACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWpG,CAAAA,CAAAA,CAAAA,CAAAA,CAAOqG,CAAAA,CACZtQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOiF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU0G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAetG,CAAAA,CAAAA,CAAAA,CAAAA,CAAKiL,CAAAA,CAAUrG,CAAAA,CAAAA,CAAAA,CAAAA,CACjDuG,CAAAA,CAAOvG,CAAAA,CAAAA,CAAOmG,CAAAA,CAAAA,CAAMI,EAAOvG,CAAAA,CAAAA,CAAMqG,CAAAA,CAASrG,CAAAA,CAAAA,CAAMsG,CAAAA,CAAS,CAAA,CAAA,CAAA,CAG7D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CACT,CCZA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO7D,CAAAA,CAAAA,CAAAA,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS8D,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO9D,KAAQ+D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAC3B,CCMA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAAA,CAEJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA3E,CAAAA,CAAAA,CACEvH,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmM,CAAAA,CAAAA,CAAsB,CAAA,CAC3BnM,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoM,CAAAA,CAAkB,CAAA,CAAA,CACvBpM,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqM,CAAAA,CAAmB,CAAA,CAAA,CACxBrM,KAAKsM,CAAAA,CAAe,CAAA,CAAA,CACpBtM,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuM,CAAAA,CAAe,CAAA,CAAA,CACpBvM,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwM,CAAAA,CAAQ,CAAA,EACbxM,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyM,CAAAA,CAAQ,CAAA,CAAA,CACbzM,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0M,CAAAA,CAAc,CAAA,CAAA,CACnB1M,KAAK2M,CAAAA,CAAS,CAAA,CAAA,CACd3M,CAAAA,CAAAA,CAAAA,CAAAA,CAAK4M,CAAAA,CAAY,CAAA,CAAA,CACjB5M,CAAAA,CAAAA,CAAAA,CAAAA,CAAK6M,CAAAA,CAAyB,CAAA,CAAA,CAC9BvK,CAAAA,CAAyBtC,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,IACvCA,KAAK8M,CAAAA,CAAsB,CACzBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAShB,CAAAA,CAAAA,CAAAA,CAAAA,CACTiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYnJ,CAAAA,CAAAA,CAAAA,CAEhB,CAIA,CAAA,CAAA,CAAA,CAAA,CAAAoJ,GACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAIhB,CAAAA,CAAAA,CAwBrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAvBAgB,CAAAA,CAASZ,CAAAA,CAAe,CAAA,CAAA,CAAA,CAAItM,KAAKsM,CAAAA,CAAAA,CACjCY,CAAAA,CAAST,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAKzM,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyM,CAAAA,CAAAA,CAC3BS,CAAAA,CAASR,CAAAA,CAAc,CAAA,CAAA,CAAA,CAAK1M,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0M,CAAAA,CAAAA,CACjCQ,CAAAA,CAASP,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAK3M,CAAAA,CAAAA,CAAAA,CAAAA,CAAK2M,CAAAA,CAAAA,CAC5BO,EAASN,CAAAA,CAAY,CAAA,CAAA,CAAA,CAAK5M,CAAAA,CAAAA,CAAAA,CAAAA,CAAK4M,CAAAA,CAAAA,CAC3B5M,CAAAA,CAAAA,CAAAA,CAAAA,CAAK4M,CAAAA,CAAUO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjBD,CAAAA,CAASN,EAAUO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CACzB5O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAIyB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK4M,CAAAA,CAAUO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM5O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGrC2O,EAASV,CAAAA,CAAQxM,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwM,CAAAA,CACtBU,CAAAA,CAASE,CAAAA,CAASpN,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoN,CAAAA,CACvBF,CAAAA,CAASG,CAAAA,CAAWrN,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqN,CAAAA,CACzBH,CAAAA,CAASI,CAAAA,CAAmBtN,CAAAA,CAAAA,CAAAA,CAAAA,CAAKsN,CAAAA,CACjCJ,CAAAA,CAASK,EAAevN,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuN,CAAAA,CAC7BL,CAAAA,CAASb,CAAAA,CAAmB,CAAA,CAAA,CAAA,CAAIrM,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqM,CAAAA,CAAAA,CACrCa,CAAAA,CAASX,CAAAA,CAAe,CAAA,CAAA,CAAA,CAAIvM,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuM,CAAAA,CAAAA,CACjCW,CAAAA,CAASL,CAAAA,CAAyB,CAAA,CAAA,CAAA,CAAK7M,CAAAA,CAAAA,CAAAA,CAAAA,CAAK6M,GAC5CK,CAAAA,CAASJ,CAAAA,CAAsB,CAAA,CAAA,CAAA,CAAK9M,CAAAA,CAAAA,CAAAA,CAAAA,CAAK8M,CAAAA,CAAAA,CACzCI,CAAAA,CAASM,CAAAA,CAAUxN,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwN,CAAAA,CACxBN,CAAAA,CAASO,CAAAA,CAAezN,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyN,CAAAA,CAC7BP,CAAAA,CAASQ,CAAAA,CAAkB1N,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0N,EAChCR,CAAAA,CAASS,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAK3N,CAAAA,CAAAA,CAAAA,CAAAA,CAAK2N,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnBT,CACT,CAMA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAU,CAAUC,CAAAA,CAAAA,CACR7N,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwN,CAAAA,CAAUK,CACjB,CAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,CAAeC,CAAAA,CAAAA,CACb/N,KAAKyN,CAAAA,CAAeM,CACtB,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOhO,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwN,CACd,CAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAO,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO/N,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyN,CACd,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAQ,CAAiB/S,CAAAA,CAAAA,CACf8E,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoM,CAAAA,CAAgB9O,CAAAA,CAAAA,CAAAA,CAAAA,CAAKpC,CAAAA,CAC5B,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAgT,CAAkBhT,CAAAA,CAAAA,CAEhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADA8E,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqM,CAAAA,CAAiB/O,CAAAA,CAAAA,CAAAA,CAAAA,CAAKpC,CAAAA,CAAAA,CACpB8E,CAAAA,CAAAA,CAAAA,CACT,CAKA,OAAAmO,CAAQ7C,CAAAA,CAAAA,CAWN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAVAtL,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwM,CAAAA,CAAQlB,CAAAA,CAAAA,CAAQ,CACnBE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CACPD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CACJP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CACZS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAERzL,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqN,GACPhC,CAAAA,CAAAA,CAAcrL,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqN,CAAAA,CAAU,CAAE/B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEjCtL,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoO,CAAAA,CAAAA,CAAAA,CACEpO,CAAAA,CAAAA,CAAAA,CACT,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAqO,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOrO,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwM,CACd,CAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA8B,CAAkBC,GAGhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAFAvO,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0N,CAAAA,CAAkBa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,CAAA,CACzCvO,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoO,CAAAA,CAAAA,CAAAA,CACEpO,CAAAA,CAAAA,CAAAA,CACT,CAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAwO,CAAQC,CAAAA,CAAAA,CAMN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CALAzO,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyM,CAAAA,CAAQ,CAAA,CAAA,CAAA,CACRzM,KAAKyM,CAAAA,CAAAA,CAAAA,CAAAA,CACLgC,CAAAA,CAAAA,CAELzO,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoO,CAAAA,CAAAA,CAAAA,CACEpO,CAAAA,CAAAA,CAAAA,CACT,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA0O,CAAOnJ,CAAAA,CAAK/G,CAAAA,CAAAA,CACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAEjJ,CAACA,CAAAA,CAAAA,CAAM/G,GAC/B,CAmBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAmQ,CAAcC,CAAAA,CAAAA,CAMZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CALA5O,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0M,CAAAA,CAAc,CAAA,CAAA,CAAA,CACd1M,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0M,CAAAA,CAAAA,CAAAA,CAAAA,CACLkC,CAAAA,CAAAA,CAEL5O,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoO,CAAAA,CAAAA,CAAAA,CACEpO,CAAAA,CAAAA,CAAAA,CACT,CAkBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA6O,CAAatJ,CAAAA,CAAK/G,CAAAA,CAAAA,CAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK2O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAEpJ,CAACA,CAAAA,CAAAA,CAAM/G,GACrC,CAWA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAsQ,CAAgBvJ,CAAAA,CAAAA,CAKd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAJIA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOvF,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0M,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACP1M,KAAK0M,CAAAA,CAAYnH,CAAAA,CAAAA,CACxBvF,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoO,CAAAA,CAAAA,CAAAA,CAAAA,CAEApO,CAAAA,CAAAA,CAAAA,CACT,CAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA+O,CAAUC,CAAAA,CAAAA,CAMR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CALAhP,CAAAA,CAAAA,CAAAA,CAAAA,CAAK2M,CAAAA,CAAS,CAAA,CAAA,CAAA,CACT3M,CAAAA,CAAAA,CAAAA,CAAAA,CAAK2M,CAAAA,CAAAA,CAAAA,CAAAA,CACLqC,CAAAA,CAAAA,CAELhP,KAAKoO,CAAAA,CAAAA,CAAAA,CACEpO,CAAAA,CAAAA,CAAAA,CACT,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAiP,CAAS1J,CAAAA,CAAK2J,CAAAA,CAAAA,CAGZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAFAlP,KAAK2M,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAK3M,CAAAA,CAAAA,CAAAA,CAAAA,CAAK2M,CAAAA,CAAQpH,CAACA,CAAAA,CAAAA,CAAM2J,CAAAA,CAAAA,CACvClP,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoO,IACEpO,CAAAA,CAAAA,CAAAA,CACT,CAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAmP,CAAeC,CAAAA,CAAAA,CAGb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAFApP,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuN,CAAAA,CAAe6B,CAAAA,CACpBpP,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoO,CAAAA,CAAAA,CAAAA,CACEpO,CAAAA,CAAAA,CAAAA,CACT,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAqP,CAAS5T,CAAAA,CAAAA,CAGP,OAFAuE,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoN,CAAAA,CAAS3R,CAAAA,CACduE,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoO,CAAAA,CAAAA,CAAAA,CACEpO,CAAAA,CAAAA,CAAAA,CACT,CAYA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAsP,CAAmB1U,CAAAA,CAAAA,CAGjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAFAoF,CAAAA,CAAAA,CAAAA,CAAAA,CAAKsN,CAAAA,CAAmB1S,CAAAA,CACxBoF,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoO,CAAAA,CAAAA,CAAAA,CACEpO,CAAAA,CAAAA,CAAAA,CACT,CAMA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAuP,CAAWhK,CAAAA,CAAKwE,CAAAA,CAAAA,CAOd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CANgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAZA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACK/J,CAAAA,CAAAA,CAAAA,CAAAA,CAAK4M,CAAAA,CAAUrH,CAAAA,CAAAA,CAEtBvF,CAAAA,CAAAA,CAAAA,CAAAA,CAAK4M,CAAAA,CAAUrH,CAAAA,CAAAA,CAAOwE,CAAAA,CAExB/J,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoO,CAAAA,CAAAA,CAAAA,CACEpO,IACT,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAwP,CAAWvF,CAAAA,CAAAA,CAOT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CANKA,CAAAA,CAGHjK,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqN,CAAAA,CAAWpD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAFTjK,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqN,CAAAA,CAIdrN,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoO,CAAAA,CAAAA,CAAAA,CACEpO,CAAAA,CAAAA,CAAAA,CACT,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAyP,GACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOzP,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqN,CACd,CAOA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAqC,CAAOC,CAAAA,CAAAA,CACL,CAAA,CAAA,CAAA,CAAKA,CAAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO3P,CAAAA,CAAAA,CAAAA,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM4P,CAAAA,CAAyC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAnBD,CAAAA,CAAgCA,CAAAA,CAAe3P,MAAQ2P,CAAAA,CAC7EE,CAAAA,CAAgBD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB1D,CAAAA,CAAAA,CAAQ0D,CAAAA,CAAaE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBzO,CAAAA,CAAcuO,CAAAA,CAAAA,CAAgBD,OAAiB,CAAA,CAAA,CAC7HlB,CAAAA,CAAAA,CAAAA,CAAAA,CACJA,CAAAA,CAAAsB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAAb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAA5D,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,EAAA0E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAAvU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAA2T,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAc,CAAA,CAAA,CAACa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACfA,CAAAA,CAAA1B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAAA,CACEsB,CAAAA,CAAAA,CAAiB,CAAA,CAAA,CAoBrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAnBA7P,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyM,EAAQ,CAAA,CAAA,CAAA,CAAKzM,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyM,CAAAA,CAAAA,CAAAA,CAAAA,CAAUgC,CAAAA,CAAAA,CACjCzO,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0M,CAAAA,CAAc,CAAA,CAAA,CAAA,CAAK1M,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0M,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBqD,CAAAA,CAAAA,CAC7C/P,CAAAA,CAAAA,CAAAA,CAAAA,CAAK2M,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAK3M,CAAAA,CAAAA,CAAAA,CAAAA,CAAK2M,CAAAA,CAAAA,CAAAA,CAAAA,CAAWuC,CAAAA,CAAAA,CACnClP,KAAK4M,CAAAA,CAAY,CAAA,CAAA,CAAA,CAAK5M,CAAAA,CAAAA,CAAAA,CAAAA,CAAK4M,CAAAA,CAAAA,CAAAA,CAAAA,CAAcoD,CAAAA,CAAAA,CACrC1E,CAAAA,CAAAA,CAAQhQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAK+P,CAAAA,CAAAA,CAAMzO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5BmD,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwM,CAAAA,CAAQlB,CAAAA,CAAAA,CAEX7P,CAAAA,CAAAA,CAAAA,CACFuE,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoN,CAAAA,CAAS3R,GAEZ2T,CAAAA,CAAYvS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACdmD,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuN,CAAAA,CAAe6B,CAAAA,CAAAA,CAElBa,CAAAA,CAAAA,CAAAA,CACFjQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAK8M,CAAAA,CAAsBmD,GAEzB1B,CAAAA,CAAAA,CAAAA,CACFvO,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0N,CAAAA,CAAkBa,CAAAA,CAAAA,CAElBvO,CAAAA,CAAAA,CAAAA,CACT,CAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAkQ,CAAcC,EAAYC,CAAAA,CAAAA,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAsC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAnBD,CAAAA,CAA8BA,CAAAA,CAnV3B,CAAA,CAAA,CAAA,CAoV5B,CAAA,CAAA,CAAIC,CAAAA,CAAAA,CAAa,CAAA,CACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOrQ,CAAAA,CAAAA,CAAAA,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMsQ,CAAAA,CAAmB,CACvBlG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWZ,QACR2G,CAAAA,CAEHpN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASoN,CAAAA,CAAWpN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU0E,CAAAA,CAAAA,CAAS0I,CAAAA,CAAWpN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQoN,CAAAA,CAAWpN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAOhF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CALA/C,CAAAA,CAAAA,CAAAA,CAAAA,CAAKsM,CAAAA,CAAahP,CAAAA,CAAAA,CAAAA,CAAAA,CAAKgT,CAAAA,CAAAA,CACnBtQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAKsM,EAAazP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASwT,CAAAA,CAAAA,CAAAA,CAC7BrQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAKsM,CAAAA,CAAetM,CAAAA,CAAAA,CAAAA,CAAAA,CAAKsM,CAAAA,CAAavP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOsT,CAAAA,CAAAA,CAAAA,CAE/CrQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoO,CAAAA,CAAAA,CAAAA,CACEpO,CAAAA,CAAAA,CAAAA,CACT,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAuQ,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOvQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAKsM,EAAatM,CAAAA,CAAAA,CAAAA,CAAAA,CAAKsM,CAAAA,CAAazP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CACtD,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA2T,CAAAA,CAAAA,CAGE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAFAxQ,KAAKsM,CAAAA,CAAe,CAAA,CAAA,CACpBtM,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoO,CAAAA,CAAAA,CAAAA,CACEpO,CAAAA,CAAAA,CAAAA,CACT,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAyQ,CAAcC,GAEZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADA1Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuM,CAAAA,CAAajP,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoT,CAAAA,CAAAA,CAChB1Q,CAAAA,CAAAA,CAAAA,CACT,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA2Q,CAAAA,CAAAA,CAEE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADA3Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuM,CAAAA,CAAe,CAAA,CAAA,CACbvM,CAAAA,CAAAA,CAAAA,CACT,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA8P,GACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa5Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAKsM,CAAAA,CAClBuE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa7Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuM,CAAAA,CAClByD,SAAUhQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAK4M,CAAAA,CACf6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAMzO,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyM,CAAAA,CACXsD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY/P,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0M,CAAAA,CACjBwC,MAAOlP,CAAAA,CAAAA,CAAAA,CAAAA,CAAK2M,CAAAA,CACZrB,CAAAA,CAAAA,CAAAA,CAAAA,CAAMtL,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwM,CAAAA,CACX/Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOuE,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoN,CAAAA,CACZgC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAapP,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuN,CAAAA,CAAAA,CAAgB,CAAA,CAAA,CAClCuD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB9Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqM,CAAAA,CACtB4D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoBjQ,KAAK8M,CAAAA,CACzBiE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB/Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAK6M,CAAAA,CAC5BmE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBhR,CAAAA,CAAAA,CAAAA,CAAAA,CAAKsN,CAAAA,CACtBiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBvO,KAAK0N,CAAAA,CAEzB,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAuD,CAAyBC,CAAAA,CAAAA,CAEvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADAlR,CAAAA,CAAAA,CAAAA,CAAAA,CAAK6M,CAAAA,CAAyBnB,GAAM1L,CAAAA,CAAAA,CAAAA,CAAAA,CAAK6M,CAAAA,CAAwBqE,CAAAA,CAAS,CAAA,CAAA,CACnElR,CAAAA,CAAAA,CAAAA,CACT,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAmR,CAAsBpH,CAAAA,CAAAA,CAEpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADA/J,CAAAA,CAAAA,CAAAA,CAAAA,CAAK8M,CAAAA,CAAsB/C,CAAAA,CACpB/J,CAAAA,CAAAA,CAAAA,CACT,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAoR,GACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOpR,CAAAA,CAAAA,CAAAA,CAAAA,CAAK8M,CACd,CAMA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAuE,CAAiB/S,CAAAA,CAAWgT,CAAAA,CAAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM1I,CAAAA,CAAU0I,CAAAA,CAAAA,CAAM3I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYT,CAAAA,CAAAA,CAAAA,CAAAA,CAClC,CAAA,CAAA,CAAA,CAAKlI,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwN,CAAAA,CAER,OAAO5E,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM2I,CAAAA,CAAqB,CAAA,CAAA,CAAA,CAAI1Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAWrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAVAb,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwN,CAAAA,CAAQ6D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACX/S,CAAAA,CACA,CACEkT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBlT,CAAAA,CACnBiT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACGD,CAAAA,CACH3I,SAAUC,CAAAA,CAAAA,CAEZ5I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEK4I,CACT,CAMA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA6I,CAAe1O,CAAAA,CAAStH,CAAAA,CAAO6V,GAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM1I,CAAAA,CAAU0I,CAAAA,CAAAA,CAAM3I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYT,CAAAA,CAAAA,CAAAA,CAAAA,CAClC,CAAA,CAAA,CAAA,CAAKlI,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwN,CAAAA,CAER,OAAO5E,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM2I,CAAAA,CAAqBD,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsB,CAAA,CAAA,CAAA,CAAI1Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMkC,CAAAA,CAAAA,CAYjE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAXA/C,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwN,CAAAA,CAAQiE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACX1O,CAAAA,CACAtH,CAAAA,CACA,CACE+V,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBzO,EACnBwO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACGD,CAAAA,CACH3I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,CAAAA,CAAAA,CAEZ5I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEK4I,CACT,CAMA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA8I,CAAarT,CAAAA,CAAOiT,CAAAA,CAAAA,CAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM1I,CAAAA,CAAUvK,CAAAA,CAAMsK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY2I,CAAAA,CAAAA,CAAM3I,UAAYT,CAAAA,CAAAA,CAAAA,CAAAA,CACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKlI,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwN,CAAAA,CAAAA,CAIVxN,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwN,CAAAA,CAAQkE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAarT,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAKiT,CAAAA,CAAM3I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,CAAAA,CAAAA,CAAW5I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1D4I,CAAAA,CAAAA,CAHEA,CAIX,CAIA,CAAAwF,CAAAA,CAAAA,CACOpO,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmM,CAAAA,CAAAA,CAAAA,CACRnM,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmM,CAAAA,CAAAA,CAAsB,CAAA,CAC3BnM,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoM,CAAAA,CAAgB5Q,QAASN,CAAAA,CAAAA,CAAAA,CAC5BA,CAAAA,CAAS8E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEXA,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmM,CAAAA,CAAAA,CAAsB,CAAA,CAE/B,CAAA,CC/fF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMwF,GAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CCAvBC,CAAAA,CAAAA,CAAmBvV,CAAAA,CAAAA,CAAMA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAawV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYxV,CAAAA,CAAEyV,CAAAA,CAAAA,CAAAA,CACpDA,CAAAA,CAAAA,QAAsC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CActCC,CAAAA,CAAAA,CAAY,CAAC5P,CAAAA,CAAU6P,CAAAA,CAAAA,CAAAA,CAAAA,CAC3B,CAAA,CAAA,CAAA,CAAKA,CAAAA,CAAS,OAAO7P,CAAAA,CACrB,CAAA,CAAA,CAAA,CAAI8P,CAAAA,CAAAA,CAAU,CAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW1M,CAAAA,CAAAA,CAAAA,CAAAA,CAAOpD,CAAAA,CAAU,CAC1B,CAAA,CAAA,CAAIoD,CAAAA,CAAAA,CAAAA,CAAAA,CAAOyM,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACpBC,CAAAA,CAAAA,CAAU,CAAA,CACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMzT,EAAQ2D,CAAAA,CAASoD,CAAAA,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAV/G,CAAAA,CACTlD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOiH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeyP,CAAAA,CAASzM,CAAAA,CAAK,CAClC/G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAI0T,CAAAA,CAAAA,CAAAA,CAAS1T,CAAAA,CAAMuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMoC,CAAAA,CAAU+P,CAAAA,CAAAA,CAC1CC,YAAY,CAAA,CACZ1P,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CACdD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAGZwP,CAAAA,CAAQzM,CAAAA,CAAAA,CAAO/G,CAEnB,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADIyT,CAAAA,CAAAA,QAAgBG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOJ,CAAAA,CAAS,CAAEF,CAACA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,IAC/CE,CAAAA,CAAAA,CC3BT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMK,CAAAA,CAAAA,CACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA9K,CAAY+K,CAAAA,CAAOC,CAAAA,CAAAA,CACjB,CAAA,CAAA,CAAA,CAAIC,CAAAA,CAMAC,CAAAA,CAFFD,CAAAA,CAHGF,CAAAA,CAAAA,CACa,CAAA,CAAA,CAAA,CAAIpG,CAAAA,CAAAA,CAQpBuG,CAAAA,CAHGF,CAAAA,CAAAA,CACsB,IAAIrG,CAAAA,CAAAA,CAI/BlM,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0S,CAAAA,CAAS,CAAC,CAAEJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOE,CAAAA,CAAAA,CAAAA,CACxBxS,CAAAA,CAAAA,CAAAA,CAAAA,CAAK2S,EAAkBF,CACzB,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAG,CAAU1X,CAAAA,CAAAA,CACR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMoX,CAAAA,CAAQtS,CAAAA,CAAAA,CAAAA,CAAAA,CAAK6S,IACnB,CAAA,CAAA,CAAA,CAAIC,CAAAA,CACJ,CAAA,CAAA,CAAA,CACEA,CAAAA,CAAqB5X,CAAAA,CAASoX,CAAAA,CAChC,OAASjT,CAAAA,CAAAA,CAEP,CAAA,CAAA,CAAA,CAAA,CAAA,CADAW,CAAAA,CAAAA,CAAAA,CAAAA,CAAK+S,CAAAA,CAAAA,CAAAA,CACC1T,CACR,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIoC,CAAAA,CAAWqR,GDlCa,CAAA,CAAC3Q,CAAAA,CAAU6Q,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CACpD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMjB,CAAAA,CAAU7P,CAAAA,CAASR,CAAAA,CAAAA,CAAAA,CAAAA,CACtBnD,IACCwU,CAAAA,CAAUxU,CAAAA,CAAAA,CACHA,CAAAA,CAAAA,CAERqG,CAAAA,CAAAA,CAAAA,CAEC,CAAA,CAAA,CAAA,CAAA,CAAA,CADAoO,CAAAA,CAAQpO,CAAAA,CAAAA,CACFA,CAAAA,CAAAA,CAAAA,CAGV,OAAO+M,CAAAA,CAAAA,CAAgBI,CAAAA,CAAAA,CAAAA,CAAYJ,CAAAA,CAAAA,CAAgBzP,CAAAA,CAAAA,CAAY6P,CAAAA,CAAUD,CAAAA,CAAAA,CAAU5P,CAAAA,CAAU6P,CAAAA,CAAAA,CAAAA,CCwBlFkB,CACLJ,CAAAA,CACA,CAAA,CAAA,CAAA,CAAM9S,CAAAA,CAAAA,CAAAA,CAAAA,CAAK+S,CAAAA,CAAAA,CAAAA,CACX,CAAA,CAAA,CAAA,CAAM/S,CAAAA,CAAAA,CAAAA,CAAAA,CAAK+S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGf/S,KAAK+S,CAAAA,CAAAA,CAAAA,CACED,CAAAA,CACT,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA9E,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOhO,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAActF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5B,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAuF,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOpT,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcb,CAAAA,CAAAA,CAAAA,CAAAA,CAC5B,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAe,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOrT,CAAAA,CAAAA,CAAAA,CAAAA,CAAK2S,CACd,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAQ,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOnT,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0S,CAAAA,CAAO1S,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0S,CAAAA,CAAO7V,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAC1C,CAIA,CAAAgW,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMP,CAAAA,CAAQtS,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWnG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAK9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAJAjN,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0S,EAAOpV,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CACfuQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ7N,CAAAA,CAAAA,CAAAA,CAAAA,CAAKgO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACbsE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEKA,CACT,CAIA,CAAAS,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI/S,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0S,CAAAA,CAAO7V,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CACjBmD,CAAAA,CAAAA,CAAAA,CAAAA,CAAK0S,CAAAA,CAAO9U,CAAAA,CAAAA,CAAAA,CAAAA,CACvB,CAAA,CAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS0V,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CACMC,CAAAA,CAAShZ,CAAAA,CADED,CAAAA,CAAAA,CAAAA,CAAAA,CAEjB,OAAOiZ,CAAAA,CAAOjX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQiX,CAAAA,CAAOjX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAI+V,CAAAA,CAAAA,CCxFnC1X,CAAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAIuR,CAAAA,CAAAA,CAAAA,CAGpDvR,CAAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAIuR,CAAAA,CAAAA,CAAAA,CDsF/D,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS0G,CAAAA,CAAAA,CAAU1X,CAAAA,CAAAA,CACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOoY,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU1X,CAAAA,CAC1C,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASsY,CAAAA,CAAAA,CAAalB,CAAAA,CAAOpX,CAAAA,CAAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMoB,CAAAA,CAAQgX,CAAAA,CAAAA,CAAAA,CAAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOhX,EAAMsW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CACrBtW,CAAAA,CAAM6W,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQA,CAAAA,CACrBpX,CAAAA,CAASoX,CAAAA,CAAAA,CAAAA,CAEpB,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASmB,CAAAA,CAAAA,CAAmBvY,CAAAA,CAAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOoY,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAC/B1X,CAAAA,CAASoY,KAAuBD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE3C,CAcA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASK,CAAAA,CAAAA,CAAuBxY,CAAAA,CAAAA,CAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO0X,CAAAA,CAAAA,CAAWN,CAAAA,CAAAA,CAAAA,CAChBA,CAAAA,CAAMrB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAyB,CAAEU,CAACA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,CAAA,CAAA,CAAA,CACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMgC,CAAAA,CAAMzY,IAEZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADAoX,CAAAA,CAAMrB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAyB,CAAEU,CAACA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,CAAA,CAAA,CAAA,CAClDgC,CAAAA,CAAAA,CAEX,CEzHA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAwBpZ,CAAAA,CAAAA,CAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM+Y,CAAAA,CAAShZ,CAAAA,CAAiBC,CAAAA,CAAAA,CAChC,OAAI+Y,CAAAA,CAAOM,CAAAA,CAAAA,CAAAA,CACFN,CAAAA,CAAOM,CAAAA,CAAAA,CAAAA,CFmGT,CACLC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBJ,CAAAA,CAAAA,CAAAD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjBA,CAAAA,CAAAA,CAAAb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAAA,CACAY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,CAACpB,CAAAA,CAAiBzX,CAAAA,CAAAA,CAAAA,CAChCuY,GAAmBvY,CAAAA,CAAAA,CAE5B8Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAAA,CAAA,CAAA,CAAMV,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9CC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBD,oBEzGpD,CCTA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASY,CAAAA,CAAAA,CAAoCC,CAAAA,CAAUC,CAAAA,CAAAA,CACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM3V,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAA4V,KAAOA,CAAAA,CAAAA,CAHY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADFC,CAAAA,CAIiBH,CAAAA,CAAAA,CAAAA,CAHS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAZG,CAAAA,CAAAA,CAAAA,CAAqB7W,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQwN,CAAAA,CAAAA,CAAAA,CAAa/Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAK8Y,CAAAA,CAAAA,CAAUlX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGhE+W,CAAAA,CAAW,CAAE1V,MAAO0V,CAAAA,CAAUE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAJ5F,CAAA,CAAA,CAAA,CAA2BC,CAAAA,CAKzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CA2DR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC9V,GAC9B,CAAA,CAAA,CAAIhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQrI,CAAAA,CAAAA,CAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOK,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,SAExB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM0V,CAAAA,CAAiC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAV/V,CAAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVA,CAAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVA,CAAAA,CAAAA,CAAuByH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOuO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMhW,CAAAA,CAAAA,CAA0D,CAAA,CAAA,CAAA,CAAA,CAAjDyH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOwO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUjW,GAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChM,CAAA,CAAA,CAAI+V,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAE/V,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOK,CAAAA,CAAAA,CAAAA,CAAAA,CAAM0V,EAE1B,CAnEyBG,CAAuBlW,CAAAA,CAAAA,CACxCmW,CAAAA,CAAcP,CAAAA,CAAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAATA,CAAAA,CAAoB,CAAEA,QAAS,CAAA,CAAA,CAClE,CAAA,CAAA,CAAIE,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAKA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBK,CAAAA,CAAAA,CAEjC,CAAA,CAAA,CAAA,CAAKR,CAAAA,CAAAA,CAA+B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAhBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA8C,CAAA,CAAA,CAAA,CAAV3V,CAAAA,CACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,CAAA,CAAA,CAAA,CAAIoW,EAAc,CAAA,CAAA,CAClB,CAAA,CAAA,CAAA,CACEA,CAAAA,CAAcvP,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU9G,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOoW,CAAAA,CACP/V,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACH8V,EAEP,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASE,CAAAA,CAAAA,CAAoB9E,CAAAA,CAAY+E,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAuB,CAAA,CAAA,CAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAYxP,CAAAA,CAAK/G,CAAAA,CAAAA,CAAAA,CAAAA,CAAUlD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO+H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ0M,GAAc,CAAA,CAAA,CAAA,CAAK,CAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMiF,CAAAA,CAAaf,CAAAA,CAAAA,CAAoCzV,CAAAA,CAAOsW,CAAAA,CAAAA,CAC1DE,IACFD,CAAAA,CAAqBxP,CAAAA,CAAAA,CAAOyP,CAAAA,CAEhC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOD,CACT,CC3BA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASE,KACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO1a,CAAAA,CAAiBD,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB4a,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5C,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASlB,CAAAA,CAAAA,CAAAA,CAAAA,CAGP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADYJ,CAAAA,CAAAA,CADItZ,CAAAA,CAAAA,CAAAA,CAAAA,CAEL0Z,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACb,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASX,CAAAA,CAAAA,CAAAA,CAAAA,CAGP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADYO,CAAAA,CAAAA,CADItZ,KAEL+Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACb,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS8B,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOxa,CAAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAIuR,CAAAA,CAAAA,CACrD,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS0G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAawC,CAAAA,CAAAA,CACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CACMvB,CAAAA,CAAMD,GADItZ,CAAAA,CAAAA,CAAAA,CAAAA,CAEhB,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAhB8a,CAAAA,CAAKvY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOyV,CAAAA,CAAOpX,CAAAA,CAAAA,CAAYka,CAAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAK9C,CAAAA,CAGEuB,CAAAA,CAAIL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAalB,CAAAA,CAAOpX,CAAAA,CAAAA,CAFtB2Y,EAAIjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU1X,CAAAA,CAGzB,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO2Y,CAAAA,CAAIjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUwC,CAAAA,CAAK,CAAA,CAAA,CAC5B,CAaA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASpH,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOgG,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBhG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC3B,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASqH,CAAAA,CAAAA,CAAyB/C,GAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMgD,CAAAA,CAAkBL,CAAAA,CAAAA,CAAAA,CAAAA,CACxB,CAAA,CAAA,CAAIK,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUD,CAAAA,CAAgBvI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASyI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASF,CAAAA,CAAgBG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMxF,CAAAA,CAAqBqC,CAAAA,CAAMlB,yBAC3BrE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAA2I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASA,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcA,CAAAA,CAAAA,CAAsB1F,CAAAA,CAC/C2F,CAAAA,CAAe,CACnBL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUxI,CAAAA,CACVyI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASG,CAAAA,CAAAA,CAAqB3J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAKhC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAHI0J,CAAAA,CAAAA,CAAAA,CACFE,EAAaC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBH,CAAAA,CAAAA,CAEzBE,CACT,CCrEK,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4ukBE,CAAAA,CAAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAm3BC,CAAAA,CAAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAu9DC,CAAAA,CAAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmNC,CAAAA,CAAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CCApxqBC,CAAAA,CAAAA,CAAwC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAExCC,CAAAA,CAAAA,CAA+B,YAC/BC,CAAAA,CAAAA,CAAmC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACnCC,CAAAA,CAAAA,CAA2C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAe3CC,CAAAA,CAAAA,CAA6C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC7CC,CAAAA,CAAAA,CAAgC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChCC,GAAoC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CCrBpCC,CAAAA,CAAAA,CAAoB,CAExB,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,qBAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CCtBF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAaC,CAAAA,CAAAA,CACpB,CAAA,CAAA,CAAKA,CAAAA,CAAL,CAGA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAARA,CAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWA,CAAAA,CAAAA,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAdA,CAAAA,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1D,IACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOD,CAAAA,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CACF,CAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOD,CARP,CASF,CCZA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASE,CAAAA,CAAAA,CAAwBC,CAAAA,CAAAA,CAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAiBD,CAAAA,CACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLxE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOyE,CAAAA,CAAwC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC/CxE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBmE,CAAAA,CAAAA,CAAaK,CAAAA,CAAkD,uBAEnF,CCdA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAAA,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGlC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAsCC,CAAAA,CAAAA,CAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,EAgCR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4BD,CAAAA,CAAAA,CAC1B,CAAA,CAAA,CAAA,CAAKA,CAAAA,CAAAA,CAAAA,CAAkBhW,CAAAA,CAASgW,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB1Z,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQqQ,GAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,CAAA,CAAA,CAAI1Z,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQqQ,CAAAA,CAAAA,CAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAcE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAACC,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAoBC,CAAAA,CAAAA,CAAsBF,CAAAA,CAAAA,CAIhD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAHAhc,OAAO+H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQkU,CAAAA,CAAAA,CAAmB/b,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAE+J,CAAAA,CAAK/G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC/C6Y,CAAAA,CAAI9R,CAAAA,CAAAA,CAAO/G,CAAAA,CAAAA,CAAAA,CAEN6Y,CAAAA,CAAAA,CACN,CAAA,CAAA,CAAA,CAEL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOG,CAAAA,CAAAA,CAAsBN,CAAAA,CAC/B,CA9CwBO,CAAmBP,CAAAA,CAAAA,CACzC,CAAA,CAAA,CAAA,CAAKC,CAAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMO,CAAAA,CAAyBpc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO+H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ8T,CAAAA,CAAAA,CAAeC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAACC,CAAAA,CAAAA,CAAM9R,CAAAA,CAAK/G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9E,CAAA,CAAA,CAAI+G,CAAAA,CAAIc,WAAW2Q,CAAAA,CAAAA,CAAAA,CAA4B,CAE7CK,CAAAA,CADuB9R,CAAAA,CAAIxI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMia,CAAAA,CAAAA,CAAAA,CACXxY,CACxB,CACA,OAAO6Y,CAAAA,CAAAA,CACN,CAAA,CAAA,CAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI/b,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmc,CAAAA,CAAAA,CAAwB7a,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,EACxC6a,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEP,CAEJ,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAA4CD,CAAAA,CAAAA,CACnD,CAAA,CAAA,CAAA,CAAKA,CAAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAWF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAuCF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+B1S,CAAAA,CAAAA,CAC7B,CAAA,CAAA,CAAmC,CAAA,CAAA,CAAA,CAA/B1J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyJ,GAAQnI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO+H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ2B,CAAAA,CAAAA,CAAQoS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAACF,CAAAA,CAAAA,CAAgBU,CAAAA,CAAWC,CAAAA,CAAAA,CAAcC,CAAAA,CAAAA,CAAAA,CAAAA,CAC7E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAe,CAAA,CAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBJ,MAAcI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBH,CAAAA,CAAAA,CAAAA,CAAAA,CACtEI,CAAAA,CAAoC,CAAA,CAAA,CAAA,CAAjBH,CAAAA,CAAqBC,CAAAA,CAAe,CAAA,CAAA,CAAGb,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBa,CAAAA,CAAAA,CAAAA,CACjF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIE,CAAAA,CAAiBpb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CA9ES,CAAA,CAAA,CAAA,CAAA,CAkFrBqa,CAAAA,CAEAe,CAAAA,CAAAA,CAER,CAAA,CAAA,CACL,CAvDSC,CATmB5c,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO+H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQqU,CAAAA,CAAAA,CAAwBN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC/D,CAACC,CAAAA,CAAAA,CAAMc,CAAAA,CAAQC,MACTA,CAAAA,CAAAA,CAAAA,CACFf,CAAAA,CAAI,CAAA,CAAA,CAAGL,CAAAA,CAAAA,CAAAA,CAAAA,CAA4BmB,CAAAA,CAAAA,CAAAA,CAAAA,CAAYC,CAAAA,CAAAA,CAE1Cf,CAAAA,CAAAA,CAET,CAAA,GAGJ,CAgBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASG,CAAAA,CAAAA,CAAsBN,CAAAA,CAAAA,CAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAcva,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAKP,CAAAA,CAAAA,CAAAA,CAAK2b,CAAAA,CAAAA,CAAAA,CACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMM,CAAAA,CAAQN,CAAAA,CAAa9Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CACnC,CAAA,CAAA,CAAA,CAAc,IAAVoZ,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAIT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAFKN,CAAAA,CAAahb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAGsb,CAAAA,CAAAA,CACpBN,CAAAA,CAAahb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMsb,CAAAA,CAAQ,CAAA,CAAA,CAAA,CACrBjc,CAAAA,CAAAA,CAAAA,CAAKkc,CAAAA,CAAAA,CAAAA,CACvB,CAAA,CAAA,CAAA,CACE,OAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBD,CAAAA,CAAWE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAEDpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAACC,CAAAA,CAAAA,CAAM9R,CAAAA,CAAK/G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChB+G,CAAAA,CAAAA,CAAO/G,CAAAA,CAAAA,CAAAA,CACT6Y,CAAAA,CAAI9R,CAAAA,CAAAA,CAAO/G,GAEN6Y,CAAAA,CAAAA,CACN,CAAA,CAAA,CACL,CCzEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMoB,CAAAA,CAAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACfC,CAAAA,CAAAA,CAAY,mFAIlB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAYC,CAAAA,CAAKC,CAAAA,CAAAA,CAAe,CAAA,CAAA,CACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,MAAMC,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAMA,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAMA,CAAAA,WAAMC,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWA,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUA,CAAAA,CAAAA,CAAcR,CAAAA,CACnE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAGO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcC,CAAAA,CAAAA,CAAAA,CAAYP,GAAgBG,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMF,CAAAA,CAAAA,CAAAA,CAAOG,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAAAA,CAAS,MAAMF,CAAAA,CAAO,CAAA,CAAA,CAAGA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUA,CAAAA,CAAAA,CAAAA,CAAOG,CAAAA,CAAAA,CAC5I,CAyBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASG,CAAAA,CAAAA,CAAkBC,GACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUG,CAAAA,CAAWH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWE,CAAAA,CAAWF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAA,CAAA,CACnCJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAMM,CAAAA,CAAWN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CACzBF,CAAAA,CAAAA,CAAAA,CAAAA,CAAMQ,CAAAA,CAAWR,CAAAA,CAAAA,CAAAA,CAAAA,CACjBG,KAAMK,CAAAA,CAAWL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CACzBF,CAAAA,CAAAA,CAAAA,CAAAA,CAAMO,CAAAA,CAAWP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CACzBG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWI,EAAWJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE1B,CAmCA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASK,CAAAA,CAAAA,CAAuB1L,CAAAA,CAAAA,CAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM2L,CAAAA,CAAU3L,CAAAA,CAAO4L,cACjBX,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAAA,CAASjL,CAAAA,CAAO6L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAAA,CACpC,CAAA,CAAA,CAAA,CAAIC,CAAAA,CAMJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CALIH,CAAAA,CAAQI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACVD,CAAAA,CAASvS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOoS,CAAAA,CAAQI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACfd,CAAAA,CAAAA,CAAAA,CACTa,EAXJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiCb,CAAAA,CAAAA,CAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMe,CAAAA,CAAQf,CAAAA,CAAKe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMpB,CAAAA,CAAAA,CAAAA,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOoB,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CACjB,CAQaC,CAAwBhB,CAAAA,CAAAA,CAAAA,CAE5Ba,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASI,GAAQtc,CAAAA,CAAAA,CACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM6b,CAAAA,CAA6B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAT7b,CAAAA,CAjF5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuBiK,CAAAA,CAAAA,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMmS,CAAAA,CAAQnB,CAAAA,CAAAA,CAAUsB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKtS,CAAAA,CAAAA,CAC7B,CAAA,CAAA,CAAA,CAAKmS,CAAAA,CAIH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAHA5e,CAAAA,CAAe,KACbE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ2E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB4H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAIzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOyR,CAAAA,CAAUC,CAAAA,CAAWJ,CAAAA,CAAO,GAAIF,CAAAA,CAAO,CAAA,CAAA,CAAIG,CAAAA,CAAO,CAAA,CAAA,CAAIgB,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAMJ,CAAAA,CAAM9c,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,GAC1F,CAAA,CAAA,CAAA,CAAIgc,CAAAA,CAAO,CAAA,CAAA,CACPG,CAAAA,CAAYe,CAAAA,CAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMtd,CAAAA,CAAQuc,CAAAA,CAAUvc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAK9B,CAAA,CAAA,CAJIA,CAAAA,CAAME,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CACjBkc,CAAAA,CAAOpc,CAAAA,CAAMI,MAAM,CAAA,CAAA,CAAG,CAAA,CAAA,CAAImd,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAC/BhB,CAAAA,CAAYvc,CAAAA,CAAMiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEhBsb,CAAAA,CAAW,CACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMiB,CAAAA,CAAejB,CAAAA,CAAUW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjCM,CAAAA,CAAAA,CAAAA,CACFjB,CAAAA,CAAYiB,EAAa,CAAA,CAAA,CAE7B,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOd,CAAAA,CAAAA,CAAkB,CAAEP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAME,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAME,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1E,CA0DgDgB,CAAc3c,CAAAA,CAAAA,CAAQ4b,CAAAA,CAAAA,CAAkB5b,GACtF,CAAA,CAAA,CAAK6b,CAAAA,CAGL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CACT,CClGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASe,CAAAA,CAAAA,CAAgBC,CAAAA,CAAAA,CACvB,GAA0B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAfA,CAAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOrU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOqU,CAAAA,CAAAA,CAEhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAA6B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAfD,EAA0BE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWF,CAAAA,CAAAA,CAAcA,CAAAA,CACvE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAATC,CAAAA,CAAAA,CAAqB/F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM+F,CAAAA,CAAAA,CAAAA,CAASA,CAAAA,CAAO,CAAA,CAAA,CAAKA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAlE,CAAA,CAGOA,CACT,CCFA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAME,GAAqB,CAAA,CAAA,CAAA,CAAIC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA0BF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAA8BC,CAAAA,CAAaC,CAAAA,CAAAA,CAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAxBR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgCC,CAAAA,CAAAA,CAC9B,CAAA,CAAA,CAAA,CAAKA,CAAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAUD,EAAYlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMY,CAAAA,CAAAA,CAAAA,CAClC,CAAA,CAAA,CAAA,CAAKO,CAAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,CAAA,CAAA,CAAA,CAAIC,CAAAA,CAMJ,CAAA,CAAA,CAAA,CAAA,CAAA,CALmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAfD,CAAAA,CAAQ,CAAA,CAAA,CACVC,CAAAA,CAAAA,CAAgB,CAAA,CACQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAfD,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CACjBC,GAAgB,CAAA,CAAA,CAEX,CACLlO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASiO,CAAAA,CAAQ,CAAA,CAAA,CACjBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAvF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcsF,CAAAA,CAAQ,GAE1B,CAK0BE,CAAuBN,CAAAA,CAAAA,CACzClD,CAAAA,CAAyBT,CAAAA,CAAAA,CAAsC4D,CAAAA,CAAAA,CACrE,CAAA,CAAA,CAAA,CAAKC,CAAAA,CAAAA,CAAiB/N,QACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAShB,CAAAA,CAAAA,CAAAA,CAAAA,CACTiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYnJ,CAAAA,CAAAA,CAAAA,CAAAA,CAGhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMmJ,CAAAA,CAwBR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4C8N,CAAAA,CAAiBK,CAAAA,CAAAA,CAC3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAmBf,CAAAA,CAAAA,CAAgBc,CAAAA,CAAAA,CAAKE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9C,QAAyB,CAAA,CAAA,CAAA,CAArBD,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAME,CAAAA,CAAmBjB,CAAAA,CAAAA,CAAgBc,CAAAA,CAAAA,CAAKI,aAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAID,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuD,CAAA,CAAA,CAAA,CAAnCR,CAAAA,CAAAA,CAAiBG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChCH,CAAAA,CAAgBG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAErBpX,CAAAA,CAAAA,CAAAA,CAAmByX,EAGnBA,CAAAA,CAAmBzX,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,CAAA,CAAIyX,CAAAA,CAAAA,CAGtCzX,CAAAA,CAAAA,CAEX,CAzCqB2X,CAAmCV,CAAAA,CAAiBpD,CAAAA,CAAAA,CACnEA,CAAAA,CAAAA,CAAAA,CACFA,CAAAA,CAAuB2D,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcrO,CAAAA,CAAWxM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAElD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMuM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,EAAA2I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASA,CAAAA,CAAAuF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcA,CAAAA,CAAAA,CAAkBH,CAAAA,CACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACL/N,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACA2I,eACA+F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASR,CAAAA,CACTE,CAAAA,CAAAA,CAAAA,CAAKzD,CAAAA,CAAAA,CAA0B,CAAA,CAAA,CAE/B1K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEJ,CACA,SAAS0O,CAAAA,CAAAA,CAA0B3O,CAAAA,CAAUhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB0J,CAAAA,CAASzJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAkByP,CAAAA,CAAAA,CACzF,CAAA,CAAA,CAAA,CAAIE,CAAAA,CAAgB,CAAA,CAAA,CAIpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAHgB,CAAA,CAAA,CAAA,CAAZF,CAAAA,CAAAA,CAAAA,CACFE,CAAAA,CAAgBF,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAE5B,GAAG1O,CAAAA,CAAAA,CAAAA,CAAAA,CAAW0I,CAAAA,CAAAA,CAAAA,CAASkG,CAAAA,CAAAA,CAChC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAA0B7O,CAAAA,CAAUhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB0J,CAAAA,CAASzJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAkByP,CAAAA,CAAAA,CACzF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM1O,CAAAA,CAAAA,CAAAA,CAAAA,CAAW0I,CAAAA,CAAAA,CAAAA,CAAAA,CAAUgG,CAAAA,CAAU,KAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CACrD,CChEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMI,CAAAA,CAAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CC4BzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAmBhF,CAAAA,CAAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMrB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAQ1I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASwI,CAAAA,UAAUwG,CAAAA,CAAAA,CAAajF,CAAAA,CAAKkF,cAC/CnG,CAAAA,CAAiBkG,CAAAA,CAAWtG,CAAAA,CAASwG,CAAAA,CAAAA,CAAqBnF,CAAAA,CAAAA,CAAMjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChEvD,CAAAA,CAAQuE,CAAAA,CAAAA,CAAwBC,GAAMxE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLuD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAHcuG,CAAAA,CAAWzJ,CAAAA,CAAAA,CAAOlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwBuE,mBAAqB3J,CAAAA,CAAAA,CAAAA,CAAAA,CAAmByJ,CAAAA,CAIhGF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEJ,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS2G,CAAAA,CAAAA,CAAkBpF,CAAAA,CAAAA,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM/J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAA0I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASA,CAAAA,CAAAA,CAAWqB,CAAAA,CAAKkF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAON,CAAAA,CAAAA,CAA0B3O,EAAS0I,CAAAA,CAD1B0G,CAAAA,CAAAA,CAAcrF,CAAAA,CAAAA,CAEhC,CAMA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASsF,CAAAA,CAAAA,CAA4BC,CAAAA,CAAAA,CACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAASA,CAAAA,CAAMxf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CACnBwf,CAAAA,CAAMjgB,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CAAG2N,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW0L,SAAQ1I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASuP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeC,CAAAA,CAAAA,CAAexM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CACvFyF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAAA,CACTF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUxI,CAAAA,CACV0O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAzCqB,CAAA,CAAA,CAAA,CAyCZa,CAAAA,CACTvM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACGwM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGL,CAEJ,CACA,SAASC,CAAAA,CAAAA,CAAqBH,CAAAA,CAAAA,CAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAAOxf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACFwf,CAAAA,CAAMjgB,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CAAG2N,SAAW0L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ1I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASuP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcvM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CACvEyF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAAA,CACTF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUxI,EACV0O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAtDqB,CAAA,CAAA,CAAA,CAsDZa,CAAAA,CACTvM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGF,CAEJ,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS0M,CAAAA,CAAAA,CAAuBjY,CAAAA,CAAAA,CAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVA,CAAAA,CACFkY,CAAAA,CAAAA,CAAyBlY,CAAAA,CAAAA,CAE9BhH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQrC,GACTA,CAAAA,CAAM,CAAA,CAAA,CAAKA,CAAAA,CAAM,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAE3BA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBP,CAAAA,CAAAA,CAAAA,CAAAA,CACZyY,CAAAA,CAAAA,CAAyBlY,CAAAA,CAAMmY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEjCjT,CAAAA,CAAAA,CAAAA,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASgT,CAAAA,CAAAA,CAAyBtS,CAAAA,CAAAA,CAEhC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADaA,EAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACXA,CAAAA,CAAY,CAAA,CAAA,CAAA,CAAMA,CAClC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS6R,CAAAA,CAAAA,CAAqBnF,CAAAA,CAAAA,CAC5B,CAAA,CAAA,CAAI8F,CAAAA,CAAAA,CAAiB9F,CAAAA,CAAAA,CACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAK+F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQpH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQD,EAASzI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASwI,CAAAA,CAAAA,CAAauB,CAAAA,CAAKkF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpD,CAAA,CAAA,CAAIc,CAAAA,CAAAA,CAAoChG,CAAAA,CAAAA,CAAO,CAC7C,MAAM/G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAAgN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYA,CAAAA,CAAAniB,CAAAA,CAAAA,CAAAA,CAAAA,CAAWA,CAAAA,SAAMoiB,CAAAA,CAAAzS,OAASA,CAAAA,CAAA8R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQA,CAAAA,CAAAA,CAAUvF,CAAAA,CAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLtB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAhW,CAAAA,CAAAA,CAAAA,CAAAA,CAAMwQ,CAAAA,CACNkN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAariB,CAAAA,CACbib,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBqH,CAAAA,CAAAA,CAAoBpG,CAAAA,CAAAA,CACpCqG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBV,GAAuBM,CAAAA,CAAAA,CAExC3S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWqS,CAAAA,CAAAA,CAAuBO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAC9CzS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ6S,CAAAA,CAAAA,CAAiB7S,CAAAA,CAAAA,CACzB8S,GAAItN,CAAAA,CAAWoG,CAAAA,CAAAA,CAAAA,CACfmH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQvN,CAAAA,CAAWqG,CAAAA,CAAAA,CAAAA,CACnBiG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOD,CAAAA,CAAAA,CAA4BC,CAAAA,CAAAA,CAEvC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACL7G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACA4H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAAA,CACjB5S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CACRhL,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAEV,CAgCA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS2d,CAAAA,CAAAA,CAAoBpG,CAAAA,CAAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,iBAAkBA,CAAAA,CAAOA,CAAAA,CAAKpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuBoB,CAAAA,CAAOA,CAAAA,CAAKyG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB9H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CACrH,CAcA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASqH,CAAAA,CAAAA,CAAoChG,CAAAA,CAAAA,CAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM0G,CAAAA,CAAW1G,CAAAA,CACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS0G,EAASzN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgByN,CAAAA,CAAST,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeS,CAAAA,CAAS5iB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU4iB,CAAAA,CAASR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaQ,CAAAA,CAASjT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9G,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASqS,CAAAA,CAAAA,CAAiB9F,CAAAA,CAAAA,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAArBA,CAAAA,CAAK2G,WACrB,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAStB,CAAAA,CAAAA,CAAcrF,CAAAA,CAAAA,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMwF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAAA,CAAexF,CAAAA,CAAKkF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAnKyB,CAAA,CAAA,CAAA,CAmKlBM,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASc,CAAAA,CAAAA,CAAiB7S,CAAAA,CAAAA,CACxB,OAAKA,CAAAA,CAAAA,CCnLmB,CAAA,CAAA,CAAA,CDmLTA,CAAAA,CAAOmT,CAAAA,CAAAA,CAAAA,CAAAA,CClLD,CAAA,CAAA,CAAA,CDqLjBnT,CAAAA,CAAOmT,CAAAA,CAAAA,CAAAA,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAEFnT,CAAAA,CAAOxH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CCrLK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADcA,CAAAA,CDsLkBwH,CAAAA,CAAOxH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CCrL/B0T,CAAAA,CAAAA,CAAkBtZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS4F,IDqLewH,CAAAA,CAAOxH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAL7E,CAAA,CAAA,CAAA,CAAA,CCjLX,CAAA,CAAA,CAAA,CAAmCA,CDuLnC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS4a,GAAgBpT,CAAAA,CAAAA,CACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQA,CAAAA,CAAAA,CC3La,CAAA,CAAA,CAAA,CD2LHA,CAAAA,CAAOmT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CC5LD,CAAA,CAAA,CAAA,CD4L4BnT,CAAAA,CAAOmT,MAAiD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAnBnT,CAAAA,CAAOxH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAP,CAAA,CAAA,CAAA,CAC5H,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS6a,CAAAA,CAAAA,CAA0B7N,CAAAA,CAAYxF,CAAAA,CAAAA,CAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMsT,CAAAA,CAA4C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA5BF,CAAAA,CAAAA,CAAgBpT,CAAAA,CAAAA,CAAsBA,CAAAA,CAAAA,CAAQxH,aAAU,CAAA,CAC9E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CACF8a,CAAAA,CAAAA,CAAiB,CAAExH,CAACA,CAAAA,CAAAA,CAAAA,CAA2CwH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC/D9N,CAAAA,CAEP,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM+N,CAAAA,CAAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAsClBC,CAAAA,CAAAA,CAAcC,CAAAA,CAAAA,CACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASA,GAAwBlH,CAAAA,CAAAA,CAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAKgH,CAAAA,CAAAA,CAAAA,CAAAA,CAAoBhH,CAClC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASmH,CAAAA,CAAAA,CAAcnH,CAAAA,CAAAA,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAAA,CAAAA,CAASkH,CAAAA,CAAAA,CAAwBlH,CAAAA,CAC1C,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASoH,CAAAA,CAAAA,CAAc5L,GACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CACMuB,CAAAA,CAAMD,CAAAA,CAAAA,CADItZ,CAAAA,CAAAA,CAAAA,CAAAA,CAEhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIuZ,CAAAA,CAAIqK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACCrK,CAAAA,CAAIqK,cAAc5L,CAAAA,CAAAA,CD/O7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0BA,CAAAA,CAAAA,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOoE,CAAAA,CAAAA,CAAapE,CAAAA,CAAM3E,CAAAA,CAAAA,CAAAA,CAAAA,CAAKkO,CAAAA,CAAAA,CAAAA,CACjC,CC+OSsC,CAAiB7L,CAAAA,CAAAA,CAAS0B,CAAAA,CAAAA,CAAAA,CAAAA,CACnC,CE1PA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASoK,CAAAA,CAAAA,CAAgBC,CAAAA,CAAAA,CACvB,CAAA,CAAA,CAAkC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAvBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqCA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM9E,CAAAA,CAAU6E,CAAAA,CAAAA,CAAgBrQ,MAAayL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASD,CAAAA,CAAAA,CACoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAA5BA,CAAAA,CAAQ+E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA8B/E,CAAAA,CAAQgF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjD,CCFA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAiB3H,CAAAA,CAAM4H,CAAAA,CAAAA,CAC9B,CAAA,CAAA,CAAA,CAAKA,CAAAA,CAAAA,CAAa7hB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChB,OAAO,CAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWgL,CAAAA,CAAAA,CAAAA,CAAAA,CAAW6W,CAAAA,CAAa,CACjC,CAAA,CAAA,CAAIC,CAAAA,CAAAA,CAAiB9W,CAAAA,CAAAA,CAAU,CAC7B,CAAA,CAAA,CAAIiP,CAAAA,CAAKmG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAerV,CAAAA,CAAAA,CAAkBkP,CAAAA,CAAKmG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAapV,GAE1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACF,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM+W,CAAAA,CAAAA,CAAAA,CAAkB/W,CAAAA,CAAQkI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAczU,OAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKsM,CAAAA,CAAQkI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYlT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CACvF,CAAA,CAAA,CAAA,CAAKgL,CAAAA,CAAQjN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASiN,EAAQwV,CAAAA,CAAAA,CAAAA,CAAAA,CAAOuB,CAAAA,CACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAAA,CAAchX,CAAAA,CAAQjN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOkc,CAAAA,CAAKmG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAerV,CAAAA,CAAAA,CAAkBkP,CAAAA,CAAKmG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAapV,CAAAA,CAAQjN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7FkkB,CAAAA,CAAAA,CAAYjX,CAAAA,CAAQwV,IAAKvG,CAAAA,CAAKuG,CAAAA,CAAAA,CAAAA,CAAMzV,CAAAA,CAAAA,CAAkBkP,CAAAA,CAAKuG,CAAAA,CAAAA,CAAIxV,CAAAA,CAAQwV,CAAAA,CAAAA,CAAAA,CACvE0B,CAAAA,CAAAA,CAAalX,EAAQkI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAazU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO+H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQwE,CAAAA,CAAQkI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYiP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACzE,CAAA,CAAEzZ,CAAAA,CAAK0Z,KAAkBC,CAAAA,CAAAA,CAAuBpI,CAAAA,CAAK/G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaxK,CAAAA,CAAAA,CAAM0Z,CAAAA,CAAAA,CAAAA,CAE1E,CAAA,CAAA,CAAIJ,CAAAA,CAAAA,CAAeC,CAAAA,CAAAA,CAAaC,CAAAA,CAE9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAEX,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASG,GAAuBC,CAAAA,CAAQC,CAAAA,CAAAA,CACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAXD,CAAAA,CAAAA,CAAAA,CAAuC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAARC,CAAAA,CAAAA,CAAoBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe1E,QACpE9S,CAAAA,CAAAA,CAAkBuX,CAAAA,CAAQC,CAAAA,CAAAA,CAE/B5hB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQsY,CAAAA,CAAAA,CAAAA,CAAW3hB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQuY,GAClCD,CAAAA,CAAOtiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWuiB,CAAAA,CAAIviB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUsiB,CAAAA,CAAOH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAACxY,CAAAA,CAAG5J,CAAAA,CAAAA,CAAAA,CAAM4J,CAAAA,CAAAA,CAAAA,CAAM4Y,CAAAA,CAAIxiB,CAAAA,CAAAA,CAAAA,CAEnEuiB,CAAAA,CAAAA,CAAAA,CAAWC,CACpB,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,GAAmBC,CAAAA,CAAOC,CAAAA,CAAAA,CACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAsBD,CAAAA,CAAS1J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC/B4J,CAAAA,CAAgBF,CAAAA,CAAS/J,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC/B,CAAA,CAAA,CAAKgK,CAAAA,CAGL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW1I,CAAAA,CAAAA,CAAAA,CAAAA,CAAQwI,CAAAA,CACbxI,CAAAA,CAAKjB,iBAAmB4J,CAAAA,CAAAA,CAAAA,CAC1B3I,CAAAA,CAAKjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB2J,CAAAA,CAG5B,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASb,CAAAA,CAAAA,CAAiBngB,CAAAA,CAAAA,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVA,CAAAA,CAAAA,CAAsBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBkc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvD,CCtDA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMgF,CAAAA,CAAAA,CAAwB,GAa9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAuBnG,CAAAA,CAAAA,CAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMoG,CAAAA,CAAsBpG,CAAAA,CAAQoG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,CAAA,CAAA,CACrDC,EAAmBrG,CAAAA,CAAQsG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAIjC,CAAA,CAAA,CAAA,CAAIA,CAAAA,CACJ,CAAA,CAAA,CAJAF,CAAAA,CAAoBpkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASukB,CAAAA,CAAAA,CAAAA,CAC3BA,EAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAA,CAG9BxiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQgZ,CAAAA,CAAAA,CAChBC,CAAAA,CAAe,CAAA,CAAA,CAAA,CAAIF,CAAAA,CAAAA,CAAAA,CAAAA,CAAwBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7C,CAAA,CAAA,CAAuC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAArBA,CAAAA,CAAiC,CACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMI,CAAAA,CAA2BJ,CAAAA,CAAiBD,GAClDE,CAAAA,CAAetiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQoZ,CAAAA,CAAAA,CAA4BA,CAAAA,CAA2B,CAACA,CAAAA,CACvF,CAAA,CAAA,CAAA,CAAA,CAAA,CACEH,CAAAA,CAAeF,CAAAA,CAEjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA3BF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0BE,CAAAA,CAAAA,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMI,CAAAA,CAAqB,CAAA,EAS3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CARAJ,CAAAA,CAAatkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS2kB,CAAAA,CAAAA,CAAAA,CACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMvlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAAA,CAASulB,CAAAA,CACXC,CAAAA,CAAmBF,CAAAA,CAAmBtlB,CAAAA,CAAAA,CACxCwlB,CAAAA,CAAAA,CAAAA,CAAqBA,CAAAA,CAAiBJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqBG,CAAAA,CAAgBH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAG/EE,EAAmBtlB,CAAAA,CAAAA,CAAQulB,CAAAA,CAAAA,CAAAA,CAAAA,CAEtB7kB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO2hB,CAAAA,CACvB,CAgBSG,CAAiBP,CAAAA,CAC1B,CAeA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASQ,CAAAA,CAAAA,CAAuBzS,CAAAA,CAAQiS,CAAAA,CAAAA,CACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAeD,CAAAA,CACpBC,GAAaQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACfR,CAAAA,CAAYQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc1S,CAAAA,CAGhC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS2S,CAAAA,CAAAA,CAAiB3S,CAAAA,CAAQkS,CAAAA,CAAaU,CAAAA,CAAAA,CAC7C,CAAA,CAAA,CAAA,CAAIA,CAAAA,CAAiBV,CAAAA,CAAYnlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAjC,CAYA,CAAA,CAAA,CARA6lB,EAAiBV,CAAAA,CAAYnlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQmlB,CAAAA,CAChCL,CAAAA,CAAAA,CAAsBviB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS4iB,CAAAA,CAAYnlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA0C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA1BmlB,CAAAA,CAAYW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1EX,CAAAA,CAAYW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACZhB,CAAAA,CAAAA,CAAsBpiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyiB,CAAAA,CAAYnlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAErCmlB,EAAYY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAsC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAtBZ,CAAAA,CAAYY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1CZ,CAAAA,CAAYY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM9S,CAAAA,CAAAA,CAEuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAhCkS,CAAAA,CAAYa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgC,CACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM1lB,CAAAA,CAAW6kB,CAAAA,CAAYa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKd,GAClDlS,CAAAA,CAAOiT,CAAAA,CAAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAACziB,CAAAA,CAAOiT,CAAAA,CAAAA,CAAAA,CAASpW,CAAAA,CAASmD,CAAAA,CAAOiT,EAAMzD,CAAAA,CAAAA,CACtE,CACA,CAAA,CAAA,CAAwC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA7BkS,CAAAA,CAAYgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA6B,CAClD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM7lB,EAAW6kB,CAAAA,CAAYgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaF,CAAAA,CAAAA,CAAAA,CAAAA,CAAKd,CAAAA,CAAAA,CACzCiB,CAAAA,CAAY1lB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO8W,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAC/T,CAAAA,CAAOiT,CAAAA,CAAAA,CAAAA,CAASpW,CAAAA,CAASmD,CAAAA,CAAOiT,CAAAA,CAAMzD,CAAAA,CAAAA,CAAS,CAC9EtC,CAAAA,CAAAA,CAAIwU,EAAYnlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAElBiT,CAAAA,CAAOK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB8S,CAAAA,CAC3B,CACA,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsBxlB,QAASylB,CAAAA,CAAAA,CAAAA,CAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM/lB,CAAAA,CAAW6kB,CAAAA,CAAYkB,CAAAA,CAAAA,CACL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAb/lB,CAAAA,CAAAA,CACT2S,CAAAA,CAAOiT,GAAGG,CAAAA,CAAOnK,CAAAA,CAAAA,CAAS5b,CAAAA,CAASyF,CAAAA,CAAAA,CAAAA,CAAAA,CAAKof,CAAAA,CAAajJ,CAAAA,CAAMjJ,CAAAA,CAAAA,CAAAA,CAAAA,CAvB/D,CA2BF,CCtFA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMqT,CAAAA,CAAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CCItBC,CAAAA,CAAAA,CAA2Czd,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA6D5D,SAASyd,CAAAA,CAAAA,CAAuBtK,CAAAA,CAAAA,CAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASA,CAAAA,CAAAA,CAAAA,CAA2C,CAAA,CAAA,CAAA,CAAnCA,CAAAA,CAAKqK,CAAAA,CAAAA,CACxB,CClDA,SAASE,CAAAA,CAAAA,CAAoC9L,CAAAA,CAAU1H,CAAAA,CAAAA,CACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM2L,CAAAA,CAAU3L,CAAAA,CAAO4L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACfL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWkI,GAAezT,CAAAA,CAAO6L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAAA,CAC/CyB,CAAAA,CAAM,CACVpQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAayO,CAAAA,CAAQzO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAemW,CAAAA,CAAAA,CACpCpW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS0O,CAAAA,CAAQ1O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjBwW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACA/L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAoE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQJ,GAAuB1L,CAAAA,CAAAA,CAAAA,CAGjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADAA,CAAAA,CAAO0T,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAapG,CAAAA,CAAAA,CAClBA,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASqG,CAAAA,CAAAA,CAAmC3T,CAAAA,CAAQyE,CAAAA,CAAAA,CAClD,CAAA,CAAA,CAAI2C,CAAAA,CAAAA,CAAAA,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMhF,EAAqBqC,CAAAA,CAAMlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOnB,CAAAA,CAAmBkL,CAAAA,CAAAA,CAAAA,CAAAA,CAAOkG,CAAAA,CAAAA,CAAoCpR,CAAAA,CAAmBlD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASc,CAAAA,CACnG,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS4T,CAAAA,CAAAA,CAAkC3K,CAAAA,CAAAA,CACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMjJ,CAAAA,CAASG,CAAAA,CAAAA,CAAAA,CAAAA,CACf,IAAKH,CAAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM6T,CAAAA,CAAW3D,CAAAA,CAAAA,CAAYjH,CAAAA,CAAAA,CACvB6K,EAAe1F,CAAAA,CAAAA,CAAqByF,CAAAA,CAAAA,CACpCE,CAAAA,CAAqBD,CAAAA,CAAapiB,CAAAA,CAAAA,CAAAA,CAAAA,CAClCsiB,CAAAA,CAAaH,CAAAA,CAAS1F,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc6F,WACpCC,CAAAA,CAAqBD,CAAAA,CAAAA,CAAYE,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyBH,CAAAA,CAAmB1L,CAAAA,CAAAA,CAAAA,CAAAA,CAA0C0L,CAAAA,ChB7CtE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CgB8C3D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASI,CAAAA,CAA0BC,CAAAA,CAAAA,CAIjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAHkC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAvBH,CAAAA,CAAAA,CAAiE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAvBA,CAAAA,CAAAA,CAAAA,CACnDG,EAAK1G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CAAGuG,CAAAA,CAAAA,CAAAA,CAAAA,CAEjBG,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAYR,CAAAA,CAAyB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC3C,CAAA,CAAA,CAAIQ,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOF,CAAAA,CAA0BE,CAAAA,CAAAA,CAEnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAqBf,GAAuBM,CAAAA,CAAAA,CAC5CU,CAAAA,CAAgBD,CAAAA,CAAAA,CAA8C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAxBT,CAAAA,CAASW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrD,CAAA,CAAA,CAAIF,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB/D,CAAAA,CAAAA,CAAgBvQ,CAAAA,CAAO4L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB2I,CAAAA,CAAAA,CAAgB,CAClF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAME,CAAAA,CAAgBzL,CAAAA,CAAAA,CAAwB6K,GAAUpP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClDiQ,CAAAA,CAAWD,CAAAA,CAAAA,CAAiBd,CAAAA,CAAAA,CAAmC3T,CAAAA,CAAQyU,CAAAA,CAAAA,CAC7E,CAAA,CAAA,CAAIC,CAAAA,CAAU,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMN,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAKM,CAAAA,CAAAA,CAIlB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAHIH,CAAAA,CAAAA,CAAAA,CACFH,CAAAA,CAAKxG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,SAEVuG,CAAAA,CAA0BC,CAAAA,CACnC,CACF,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMO,CAAAA,CAAgBX,CAAAA,CAAAA,CAAYE,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChCU,CAAAA,CAAkBD,CAAAA,CAAAA,CAAiBvL,CAAAA,CAAAA,CAAsCuL,CAAAA,CAAAA,CAC/E,CAAA,CAAA,CAAIC,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOT,EAA0BS,CAAAA,CAAAA,CAEnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMtH,CAAAA,CAAMkG,CAAAA,CAAAA,CAAoCvK,CAAAA,CAAKkF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcjP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASc,CAAAA,CAAAA,CACtE5L,CAAAA,CAAS2f,CAAAA,CAAmBc,CAAAA,CAAAA,CAAAA,CAC5B9nB,CAAAA,CAAO+mB,CAAAA,CAAa1E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAa1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAZe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAXhb,GAAoBrH,CAAAA,CAAAA,CAAAA,CACtBugB,CAAAA,CAAIwH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc/nB,CAAAA,CAAAA,CAEhBwjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACFjD,CAAAA,CAAIM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUrU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO+U,CAAAA,CAAAA,CAAcuF,CAAAA,CAAAA,CAAAA,CACnCvG,CAAAA,CAAIE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEJwG,CAAAA,CAAAA,CAAYE,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAChBlL,CAAAA,CAAAA,CAAwB6K,GAAUpP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwBpE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWxM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE9EwhB,CAAAA,CAA0B7G,CAAAA,CAAAA,CAC1BtN,CAAAA,CAAO0T,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,YAAapG,CAAAA,CAAKuG,CAAAA,CAAAA,CACvBvG,CACT,CCtFA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASyH,CAAAA,CAAAA,CAAsBvkB,CAAAA,CAAOkB,CAAAA,CAAAA,CACpC,MAAM6P,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAAwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaA,CAAAA,CAAAG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaA,CAAAA,CAAAA,CAA0BxR,CAAAA,CAAAA,CAyD9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0BlB,CAAAA,CAAOkB,CAAAA,CAAAA,CAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM2P,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAAT,CAAAA,CAAAA,CAAAA,CAAAA,CAAOA,CAAAA,CAAAnD,CAAAA,CAAAA,CAAAA,CAAAA,CAAMA,WAAM0E,CAAAA,CAAAvU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUA,CAAAA,CAAAuV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOA,CAAAA,CAAAA,CAAoBzR,CAAAA,CAC5DjE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,KAAK2T,CAAAA,CAAAA,CAAOrS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrBwB,CAAAA,CAAM6Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAKA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU7Q,CAAAA,CAAM6Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEjC5T,OAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKkT,CAAAA,CAAAA,CAAM5R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpBwB,CAAAA,CAAMoQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAKA,CAAAA,CAAAA,CAAAA,CAAAA,CAASpQ,CAAAA,CAAMoQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE/BnT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAK+P,CAAAA,CAAAA,CAAMzO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpBwB,CAAAA,CAAMiN,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAKA,KAASjN,CAAAA,CAAMiN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE/BhQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyU,CAAAA,CAAAA,CAAUnT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxBwB,CAAAA,CAAM2R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,IAAKA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa3R,CAAAA,CAAM2R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEvCvU,CAAAA,CAAAA,CAAAA,CACF4C,CAAAA,CAAM5C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQA,CAAAA,CAAAA,CAEZuV,CAAAA,CAAAA,CAAkC,gBAAf3S,CAAAA,CAAMQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC3BR,CAAAA,CAAMskB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc3R,CAAAA,CAExB,CA5EE6R,CAAiBxkB,CAAAA,CAAOkB,CAAAA,CAAAA,CAsG1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiClB,CAAAA,CAAO+Q,CAAAA,CAAAA,CACtC/Q,CAAAA,CAAM+Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc/Q,CAAAA,CAAM+Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc5R,MAAMqJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQxI,CAAAA,CAAM+Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe/Q,CAAAA,CAAM+Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAC/Q,CAAAA,CAAM+Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAA,CAAA,CACjHA,CAAAA,CAAAA,CAAAA,CACF/Q,CAAAA,CAAM+Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc/Q,CAAAA,CAAM+Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY0T,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO1T,CAAAA,CAAAA,CAAAA,CAE1C/Q,EAAM+Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYvS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACdwB,CAAAA,CAAM+Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEjB,CA7GE2T,CAAwB1kB,CAAAA,CAAO+Q,CAAAA,CAAAA,CA4EjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC/Q,CAAAA,CAAOuS,CAAAA,CAAAA,CACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMoS,CAAAA,CAAoB,CAAA,CAAA,CAAA,CAAI3kB,CAAAA,CAAMuS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,MAAOA,CAAAA,CAAAA,CAC1DvS,CAAAA,CAAMuS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcoS,CAAAA,CAAkBnmB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASmmB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,CACrE,CA9EEC,CAAwB5kB,CAAAA,CAAOuS,CAAAA,CAAAA,CA+EjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiCvS,CAAAA,CAAO0S,CAAAA,CAAAA,CACtC1S,CAAAA,CAAM0S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB,CAAA,CAAA,CAAA,CACzB1S,EAAM0S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACNA,CAAAA,CAEP,CAnFEmS,CAAwB7kB,CAAAA,CAAO0S,CAAAA,CACjC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASoS,CAAAA,CAAAA,CAAe5jB,CAAAA,CAAM6jB,CAAAA,CAAAA,CAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMlU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACJA,CAAAA,CAAAT,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAAsB,WACAA,CAAAA,CAAAzE,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAA0E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAAvU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAAsV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAAH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAAxB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAA0B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAAD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,EAAAZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAAe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAAA,CACEoS,CAAAA,CACJC,CAAAA,CAAAA,CAA2B9jB,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS2P,CAAAA,CAAAA,CAC1CmU,CAAAA,CAAAA,CAA2B9jB,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQkP,CAAAA,CAAAA,CACzC4U,CAAAA,CAAAA,CAA2B9jB,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAcwQ,GAC/CsT,CAAAA,CAAAA,CAA2B9jB,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ+L,CAAAA,CAAAA,CACzC+X,CAAAA,CAAAA,CAA2B9jB,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAYyQ,CAAAA,CAAAA,CAC7CzQ,EAAKwR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwBrF,CAAAA,CAAAA,CAAMnM,CAAAA,CAAKwR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBA,CAAAA,CAAuB,CAAA,CAAA,CAClFtV,CAAAA,CAAAA,CAAAA,CACF8D,CAAAA,CAAK9D,MAAQA,CAAAA,CAAAA,CAEXuV,CAAAA,CAAAA,CAAAA,CACFzR,CAAAA,CAAKyR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBA,CAAAA,CAAAA,CAErBJ,CAAAA,CAAY/T,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACd0C,CAAAA,CAAKqR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CAAA,CAAIrR,CAAAA,CAAKqR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBA,CAAAA,CAAAA,CAAAA,CAE1CxB,CAAAA,CAAYvS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACd0C,CAAAA,CAAK6P,YAAc,CAAA,CAAA,CAAA,CAAI7P,CAAAA,CAAK6P,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBA,CAAAA,CAAAA,CAAAA,CAE1C0B,CAAAA,CAAgBjU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClB0C,CAAAA,CAAKuR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,CAAA,CAAA,CAAA,CAAIvR,CAAAA,CAAKuR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoBA,CAAAA,CAAAA,CAAAA,CAElDD,CAAAA,CAAYhU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACd0C,CAAAA,CAAKsR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,IAAItR,CAAAA,CAAKsR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBA,CAAAA,CAAAA,CAAAA,CAE9CtR,CAAAA,CAAK0Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqB,CAAA,CAAA,CAAA,CAAK1Q,CAAAA,CAAK0Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBA,CAAAA,CAC7D,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASoT,CAAAA,CAAAA,CAA2B9jB,CAAAA,CAAM+jB,CAAAA,CAAMC,CAAAA,CAAAA,CAC9ChkB,CAAAA,CAAK+jB,GAAQ5X,CAAAA,CAAAA,CAAMnM,CAAAA,CAAK+jB,CAAAA,CAAAA,CAAOC,CAAAA,CAAU,CAAA,CAC3C,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAqBjR,EAAgBkR,CAAAA,CAAAA,CAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAYvO,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBrF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAFAyC,CAAAA,CAAAA,CAAkB4Q,CAAAA,CAAAA,CAAeO,EAAWnR,CAAAA,CAAezC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC3D2T,CAAAA,CAAAA,CAAgBN,CAAAA,CAAAA,CAAeO,CAAAA,CAAWD,CAAAA,CAAa3T,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChD4T,CACT,CCzDA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAa5gB,CAAAA,CAAS5E,CAAAA,CAAI2W,CAAAA,CAAAA,CACjC,CAAA,CAAA,CAAA,CAAI8O,CAAAA,CACJ,IACEA,CAAAA,CAASzlB,CAAAA,CAAAA,CACX,OAAS2B,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO+jB,CAAAA,CAAAA,CAAQ9gB,CAAAA,CAASjD,EAAOgV,CAAAA,CACjC,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAIrT,CAAAA,CAAWmiB,CAAAA,CAAAA,CACNA,CAAAA,CAAOjiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAS7B,GAAU+jB,CAAAA,CAAAA,CAAQ9gB,CAAAA,CAASjD,CAAAA,CAAOgV,CAAAA,CAAAA,CAAAA,CAEzD8O,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAQ9gB,CAAAA,CAASjD,CAAAA,CAAOgV,CAAAA,CAAAA,CAE/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAShV,CAAAA,CAClB,CCLA,CAAA,CAAA,CAAA,CAAIgkB,IAA0B,CAAA,CAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAA4BjN,CAAAA,CAAMkN,CAAAA,CAAAA,CACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAeN,CAAAA,CAAAA,CAC0E,GAC7F,CAAA,CAAA,CAAA,CAAMK,CAAAA,CAAelN,CAAAA,CAAAA,CACrB,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAAAA,CAER,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAImN,CAAAA,CAAAA,CAAAA,CAGCH,CAAAA,CAAAA,CAAAA,CAAAA,CACH7oB,EAAe,CAAA,CAAA,CAAA,CAAA,CACbE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ+oB,CAAAA,CAAAA,CAAAA,CAAAA,CACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGJJ,CAAAA,CAAAA,CAAAA,CAA0B,CAAA,CAAA,CAErBhN,CAAAA,CACT,CChCA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASqN,CAAAA,CAAAA,CAAiCrN,CAAAA,CAAAA,CACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMsN,CAAAA,CAAe,CACnB7O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUuB,CAAAA,CAAKvB,SACfC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASsB,CAAAA,CAAKtB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACdK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBiB,CAAAA,CAAKjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrBjb,CAAAA,CAAAA,CAAAA,CAAAA,CAAMkc,CAAAA,CAAKmG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAA,CAAA,CAC1BE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBrG,CAAAA,CAAKqG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtBkH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAevN,CAAAA,CAAK1M,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpBG,OAASuM,CAAAA,CAAKvM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA0B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAhBuM,CAAAA,CAAKvM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAhBuM,CAAAA,CAAKvM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAP,CAAA,CAAA,CAAA,CAAA,CAC9E+Z,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CACZvU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAAA,CAAA,CAAK+G,CAAAA,CAAKvX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtB8c,MAAOvF,CAAAA,CAAKuF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CX6IwCkI,CAAAA,CW7IAH,CAAAA,CX8IjC,CAAA,CAAA,CAAA,CACFG,CAAAA,CAGHF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeE,EAASF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBE,CAAAA,CAASpH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClDpN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY8E,CAAAA,CAAAA,CAAoB0P,CAAAA,CAASxU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACzCsM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOkI,EAASlI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOjgB,CAAAA,CAAAA,CAAAA,CAAKooB,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CACvBA,CAAAA,CACHzU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY8E,CAAAA,CAAAA,CAAoB2P,CAAAA,CAAKzU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAT3C,CAAA,CAAA,CAAA,CAA0CwU,CW5I1C,CCwBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASE,CAAAA,CAAAA,CAA0BC,CAAAA,CAAU9V,CAAAA,CAAAA,CAC3C,MAAM+V,CAAAA,CAAqBD,CAAAA,CAAS3U,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe2U,CAAAA,CAAS3U,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAA,CAAA,CAAA,CACzEzU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO+H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQuL,CAAAA,CAAAA,CAAepT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAE+J,CAAAA,CAAK/G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAATA,CAAAA,CAAAA,CAAmB+G,KAAOof,CAAAA,CAAAA,CAAAA,CAC5BA,CAAAA,CAAmBpf,CAAAA,CAAAA,CAAO/G,CAAAA,CAAAA,CAAAA,CAGhC,CC/CA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASomB,CAAAA,CAAAA,CAAUC,CAAAA,CAAAA,CAIjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAHqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVA,CAAAA,CAAAA,CAA6C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAhBA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5CD,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEDD,CACT,CCCA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASE,CAAAA,CAAAA,CAAeC,CAAAA,CAASC,CAAAA,CAAQ,CAAA,CAAA,CAAA,CACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAACD,EAASC,CAAAA,CACnB,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAkBC,CAAAA,CAAUC,CAAAA,CAAAA,CACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOJ,CAAAA,CAASC,GAASE,CAAAA,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAACH,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAIC,CAAAA,CAAOG,CAAAA,CAAAA,CAC9B,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAoBF,CAAAA,CAAUjqB,CAAAA,CAAAA,CACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMoqB,CAAAA,CAAgBH,CAAAA,CAAS,CAAA,CAAA,CAC/B,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWI,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBD,CAAAA,CAAe,CAGxC,CAAA,CAAA,CADepqB,CAAAA,CAASqqB,CAAAA,CADCA,CAAAA,CAAa,CAAA,CAAA,CAAG1mB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAEX,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACT,CAIA,SAAS2mB,CAAAA,CAAAA,CAAWhhB,CAAAA,CAAAA,CAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMhK,CAAAA,CAAUD,CAAAA,CAAiBJ,CAAAA,CAAAA,CACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOK,CAAAA,CAAQirB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBjrB,CAAAA,CAAQirB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAejhB,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAIkhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOnhB,CAAAA,CAC3F,CAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASohB,CAAAA,CAAAA,CAAkBT,CAAAA,CAAAA,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOU,CAAAA,CAAYZ,CAAAA,CAAAA,CAASE,CAAAA,CAC5B,CAAA,CAAA,CAAA,CAAIW,EAAQzgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUugB,CAAAA,CAAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASE,CAAAA,CAAOC,CAAAA,CAAAA,CACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVF,CAAAA,CACTA,EAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAATE,CAAAA,CAAoBF,CAAAA,CAAQE,CAAAA,CAAO,CAACR,CAAAA,CAAAA,CAAWM,CAAAA,CAAAA,CAAQE,CAAAA,CAAAA,CAEtEF,CAAAA,CAAMxoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAT0oB,CAAAA,CAAoBR,CAAAA,CAAAA,CAAWQ,CAAAA,CAAAA,CAAQA,CAAAA,CAE7D,CACA,IAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAQhB,CAAAA,CAAO,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOiB,CAAAA,CAAaC,CAAAA,CAAAA,CAAWF,CAAAA,CAI/B,GAHAF,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CACT1gB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU4gB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAZC,CAAAA,CAAAA,CAAwBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBC,WACpDL,CAAAA,CAAOI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACF,CACL,CAAA,CAAA,CAAA,CAAIE,CAAAA,CACJ,CAAA,CAAA,CAAA,CACEA,CAAAA,CAAqBhhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU6gB,CAAAA,CACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACEE,CAAAA,CAAqBhhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUf,CAAAA,CAAAA,CAAU4hB,GAChD,CACAJ,CAAAA,CAAOM,CAAAA,CACT,CACF,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVP,CAAAA,CAAqBA,EAErC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuBQ,CAAAA,CAAAA,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAcD,CAAAA,CAAQlP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAACC,CAAAA,CAAKmP,IAAQnP,CAAAA,CAAMmP,CAAAA,CAAI3pB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAC7D4pB,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAIL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWG,CAAAA,CAAAA,CAC9B,CAAA,CAAA,CAAA,CAAIG,CAAAA,CAAS,CAAA,CACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAUL,CAAAA,CACnBG,CAAAA,CAAOG,IAAID,CAAAA,CAAQD,CAAAA,CAAAA,CACnBA,CAAAA,CAAAA,CAAUC,CAAAA,CAAO9pB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO4pB,CACT,CAX6CI,CAAcf,CAAAA,CAC3D,CAkCA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASgB,CAAAA,CAAAA,CAA6BpW,CAAAA,CAAAA,CACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMiW,CAAAA,CAAoC,iBAApBjW,CAAAA,CAAWnR,CAAAA,CAAAA,CAAAA,CAAAA,CAAoBimB,CAAAA,CAAAA,CAAW9U,CAAAA,CAAWnR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQmR,CAAAA,CAAWnR,CAAAA,CAAAA,CAAAA,CAAAA,CAC9F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACL,CACEV,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACNhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ8pB,CAAAA,CAAO9pB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACfiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU4S,EAAW5S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrBipB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcrW,CAAAA,CAAWsW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACzBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBvW,CAAAA,CAAWwW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE9BP,CAAAA,CAEJ,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMQ,CAAAA,CAAAA,CAA0B,CAC9BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACV/oB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACPgpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,WACfC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACbC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACfC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACdC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACVC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACdC,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACLC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKhB,SAASC,CAAAA,CAAAA,CAA+BjpB,CAAAA,CAAAA,CACtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAJF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2BA,CAAAA,CAAAA,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQsoB,CAAAA,CACjB,CAESY,CAAkBlpB,CAAAA,CAAAA,CAAQsoB,CAAAA,CAAAA,CAAwBtoB,CAAAA,CAAAA,CAAQA,CACnE,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASmpB,GAAgCC,CAAAA,CAAAA,CACvC,CAAA,CAAA,CAAA,CAAKA,CAAAA,CAAAA,CAAiBC,CAAAA,CAAAA,CAAAA,CACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMttB,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAAF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMA,CAAAA,CAAAA,CAAYutB,CAAAA,CAAgBC,CAAAA,CAAAA,CAAAA,CAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAEttB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjB,CAaA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASytB,CAAAA,CAAAA,CAAsBtpB,CAAAA,CAAAA,CAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAATA,CAAAA,CAA0B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWA,CAAAA,CAAAA,CAAQ,OACtD,CCnJA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASupB,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAyB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAXC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAC3B,CCDA,MAAMC,CAAAA,CAAAA,KAA+CC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAWrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAA6BnqB,CAAAA,CAAOiT,CAAAA,CAAMgB,CAAAA,CAAAA,CACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM/M,CAAAA,CAVCnE,CAAAA,CADatB,CAAAA,CAWKwR,CAAAA,CAAKE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAVF,CAAA,CAAS1R,CAAAA,CADvC,IAAsBA,CAAAA,CAYpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM8V,CAAAA,CAAerQ,CAAAA,CAAAA,CAAO+iB,CAAAA,CAAAA,CAAyBvG,CAAAA,CAAAA,CAAAA,CAAIxc,CAAAA,CAAAA,CACzD,CAAA,CAAA,CAAA,CAAKqQ,CAAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM6S,CAAAA,CAAoBpqB,CAAAA,CAAM2R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU0Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrBD,CAAAA,CAAAA,CAAmBlT,WAAajD,CAAAA,CAAAA,CAAS+C,CAAAA,CAAAA,CAAyB/C,CAAAA,CAAAA,CAAOiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACzEK,CAAAA,CAAaL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGlClX,CAAAA,CAAM2R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CACZ3R,CAAAA,CAAM2R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACT0Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CACFD,CAAAA,CAAAA,CAAAA,CAAAA,CACA7S,CAAAA,CAAAA,CAAAA,CAGT,CCiFA,SAAS+S,CAAAA,CAAAA,CAAe7R,CAAAA,CAAM5b,CAAAA,CAAAA,CAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM2Y,CAAAA,CAAM+U,CAAAA,CAAAA,CAAAA,CAAAA,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI/U,CAAAA,CAAI8U,eACC9U,CAAAA,CAAI8U,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe7R,CAAAA,CAAM5b,CAAAA,CAAAA,CAE3B0X,CAAAA,CAAAA,CAAWN,CAAAA,CAAAA,CAAAA,ClBpHpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0BA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAIfA,EAAM3E,CAAAA,CAAAA,CAAAA,CAAAA,CAAKkO,CAAAA,CAAAA,CAEtB,CkB+GIgN,CAAiBvW,CAAAA,CAAAA,CACVpX,CAAAA,CAASoX,CAAAA,CAAAA,CAAAA,CAEpB,CA0IA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASsW,CAAAA,CAAAA,CAAAA,CAAAA,CAEP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOhV,CAAAA,CAAAA,CADStZ,CAAAA,CAAAA,CAAAA,CAElB,CCxOA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASwuB,CAAAA,CAAAA,CAAoBzqB,EAAOua,CAAAA,CAAKmQ,CAAAA,CAAUC,CAAAA,CAAAA,CACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAUjB,CAAAA,CAAAA,CAAgCe,CAAAA,CAAAA,CAC1CG,CAAAA,CAAY7qB,EAAMQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAfR,CAAAA,CAAMQ,CAAAA,CAAAA,CAAAA,CAAAA,CAA0BR,CAAAA,CAAMQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CA9B/E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkCR,EAAO8qB,CAAAA,CAAAA,CACvC,CAAA,CAAA,CAAA,CAAKA,CAAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO9qB,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM+qB,CAAAA,CAAe/qB,CAAAA,CAAM6pB,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAClC7pB,CAAAA,CAAM6pB,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CACPkB,CAAAA,CACHxuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAMwuB,EAAaxuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQuuB,CAAAA,CAAWvuB,CAAAA,CAAAA,CAAAA,CAAAA,CACtCF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS0uB,CAAAA,CAAa1uB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWyuB,CAAAA,CAAWzuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5ColB,aAAc,CAAA,CAAA,CAAA,CAAIzhB,CAAAA,CAAM6pB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKpI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOqJ,CAAAA,CAAWrJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAA,CAAA,CAAA,CAC/EuJ,SAAU,CAAA,CAAA,CAAA,CAAIhrB,CAAAA,CAAM6pB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOF,CAAAA,CAAWE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAAA,CAAA,CACnEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUjrB,CAAAA,CAAM6pB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYH,CAAAA,CAAWG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAClDjrB,CAAAA,CAAM6pB,KAAKoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACXH,CAAAA,CAAWG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACZ,CAAA,CAGR,CAcEC,CAAyBlrB,CAAAA,CAAO0qB,CAAAA,CAAAA,CAAUb,CAAAA,CAAAA,CAAAA,CAAAA,CAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMsB,CAAAA,CJoGR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoCnrB,CAAAA,CAAO4qB,CAAAA,CAASD,CAAAA,CAAQpQ,CAAAA,CAAAA,CAC1D,MAAMlB,CAAAA,CAAyBrZ,CAAAA,CAAM0S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB2G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACL/O,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUtK,CAAAA,CAAMsK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChB8gB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAIxlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKD,CAAAA,CAAAA,CAAAA,CAAAA,CAAe0G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9Bue,CAAAA,CAAAA,CAAW,CAAEf,IAAKe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChBD,CAAAA,CAAAA,CAAUpQ,CAAAA,CAAAA,CAAO,CAAEA,CAAAA,CAAAA,CAAAA,CAAKD,CAAAA,CAAAA,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtClB,CAAAA,CAAAA,CAA0B,CAC3BgR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOhR,CAAAA,CAAAA,CAGb,CI/G0BgS,CAA2BrrB,CAAAA,CAAO4qB,CAAAA,CAASD,CAAAA,CAAQpQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpEva,EAAM0S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOgU,CAAAA,CAAAA,CAAeyE,CAAAA,CAAiB,CADrB,CAAC,CAAE3qB,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqqB,CAAAA,CAAAA,CAAa7qB,CAAAA,CAAAA,CAAAA,CAE1C,CCnCA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASsrB,CAAAA,CAAAA,CAAoBnrB,CAAAA,CAAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAIorB,GAAaC,CAAAA,CAAAA,CAAAA,CACtBA,CAAAA,CAAQrrB,CAAAA,CAAAA,CAAAA,CAEZ,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASsrB,CAAAA,CAAAA,CAAoBC,CAAAA,CAAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAIH,CAAAA,CAAAA,CAAY,CAACI,CAAAA,CAAGC,CAAAA,CAAAA,CAAAA,CAAAA,CACzBA,CAAAA,CAAOF,CAAAA,CAAAA,CAAAA,CAEX,CACA,MAAMH,CAAAA,CAAAA,CACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAriB,CAAY2iB,CAAAA,CAAAA,CACVlqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmqB,CAAAA,CAfa,CAAA,CAgBlBnqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoqB,CAAAA,CAAY,CAAA,CAAA,CACjBpqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqqB,CAAAA,CAAaH,CAAAA,CACpB,CAEA,CAAA,CAAA,CAAA,CAAAvoB,CAAK2oB,EAAaC,CAAAA,CAAAA,CAChB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAIX,CAAAA,CAAAA,CAAY,CAACC,CAAAA,CAASI,CAAAA,CAAAA,CAAAA,CAAAA,CAC/BjqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoqB,EAAU9sB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAClB,CAAA,CACCsmB,CAAAA,CAAAA,CAAAA,CACC,CAAA,CAAA,CAAK0G,CAAAA,CAGH,CAAA,CAAA,CAAA,CACET,CAAAA,CAAQS,EAAY1G,CAAAA,CAAAA,CACtB,OAASvkB,CAAAA,CAAAA,CACP4qB,CAAAA,CAAO5qB,CAAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CANAwqB,CAAAA,CAAQjG,CAAAA,CAAAA,CAAAA,CASXmG,CAAAA,CAAAA,CAAAA,CACC,CAAA,CAAA,CAAKQ,CAAAA,CAGH,CAAA,CAAA,CAAA,CACEV,CAAAA,CAAQU,CAAAA,CAAWR,CAAAA,CAAAA,CACrB,OAAS1qB,CAAAA,CAAAA,CACP4qB,CAAAA,CAAO5qB,CAAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CANA4qB,CAAAA,CAAOF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAUb/pB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwqB,CAAAA,CAAAA,CAAAA,CAAAA,CAET,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMD,CAAAA,CAAAA,CACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOvqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK2B,CAAAA,CAAAA,CAAAA,CAAAA,CAAM8oB,CAAAA,CAAAA,CAAQA,EAAKF,CAAAA,CACjC,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQG,CAAAA,CAAAA,CACN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAId,CAAAA,CAAAA,CAAY,CAACC,CAAAA,CAASI,CAAAA,CAAAA,CAAAA,CAAAA,CAC/B,CAAA,CAAA,CAAA,CAAIQ,CAAAA,CACAE,CAAAA,CACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO3qB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK2B,CAAAA,CAAAA,CAAAA,CAAAA,CACTnD,IACCmsB,CAAAA,CAAAA,CAAa,CAAA,CACbF,CAAAA,CAAMjsB,CAAAA,CACFksB,CAAAA,CAAAA,CACFA,CAAAA,CAAAA,CAAAA,CAAAA,CAGHX,CAAAA,CAAAA,CAAAA,CACCY,CAAAA,CAAAA,CAAa,EACbF,CAAAA,CAAMV,CAAAA,CACFW,CAAAA,CAAAA,CACFA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGJ/oB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CACDgpB,CAAAA,CACFV,CAAAA,CAAOQ,GAGTZ,CAAAA,CAAQY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGd,CAEA,CAAAD,CAAAA,CAAAA,CACE,CAAA,CAAA,CArFkB,CAAA,CAAA,CAAA,CAqFdxqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmqB,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMS,CAAAA,CAAiB5qB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoqB,CAAAA,CAAUrtB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtCiD,CAAAA,CAAAA,CAAAA,CAAAA,CAAKoqB,EAAY,CAAA,CAAA,CACjBQ,CAAAA,CAAepvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASsD,CAAAA,CAAAA,CAAAA,CAClBA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CA1FK,CAAA,CAAA,CAAA,CA6FbkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmqB,GACPrrB,CAAAA,CAAQ,CAAA,CAAA,CAAGkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK6qB,CAAAA,CAAAA,CA7FD,CAAA,CAAA,CAAA,CA+Fb7qB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmqB,CAAAA,CAAAA,CACPrrB,CAAAA,CAAQ,GAAGkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK6qB,CAAAA,CAAAA,CAElB/rB,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAAA,CAEjB,CAEA,CAAAurB,CAAaH,CAAAA,CAAAA,CACX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMY,CAAAA,CAAY,CAACC,CAAAA,CAAOvsB,CAAAA,CAAAA,CAAAA,CAAAA,CAzGR,CAAA,CAAA,CAAA,CA0GZwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmqB,IAGL1oB,CAAAA,CAAWjD,CAAAA,CAAAA,CACRA,CAAAA,CAAMmD,CAAAA,CAAAA,CAAAA,CAAAA,CAAKkoB,CAAAA,CAASI,CAAAA,CAAAA,CAAAA,CAG3BjqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmqB,CAAAA,CAASY,EACd/qB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK6qB,CAAAA,CAASrsB,CAAAA,CACdwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEDX,CAAAA,CAAWrrB,CAAAA,CAAAA,CAAAA,CACfssB,CAAAA,CArHiB,EAqHStsB,CAAAA,CAAAA,CAAAA,CAEtByrB,CAAAA,CAAUF,CAAAA,CAAAA,CAAAA,CACde,CAAAA,CAvHiB,CAAA,CAuHSf,CAAAA,CAAAA,CAAAA,CAE5B,CAAA,CAAA,CAAA,CACEG,CAAAA,CAASL,CAAAA,CAASI,CAAAA,CACpB,OAAS5qB,CAAAA,CAAAA,CACP4qB,CAAAA,CAAO5qB,CAAAA,CACT,CACF,EC5HF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS2rB,CAAAA,CAAAA,CAAsBC,CAAAA,CAAY5sB,CAAAA,CAAOiT,CAAAA,CAAMtS,CAAAA,CAAQ,CAAA,CAAGksB,CAAAA,CAAAA,CACjE,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMtH,CAAAA,CAASuH,CAAAA,CAAAA,CAAuB9sB,CAAAA,CAAOiT,CAAAA,CAAM2Z,CAAAA,CAAYjsB,CAAAA,CAAOksB,GACtE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOzpB,CAAAA,CAAWmiB,CAAAA,CAAAA,CAAUA,CAAAA,CAAS+F,CAAAA,CAAAA,CAAoB/F,CAAAA,CAC3D,OAAS9jB,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOgqB,CAAAA,CAAAA,CAAoBhqB,CAAAA,CAC7B,CACF,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASqrB,CAAAA,CAAAA,CAAuB9sB,EAAOiT,CAAAA,CAAM2Z,CAAAA,CAAYjsB,CAAAA,CAAOksB,CAAAA,CAAAA,CAC9D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMlK,CAAAA,CAAYiK,CAAAA,CAAWjsB,CAAAA,CAAAA,CAC7B,IAAKX,CAAAA,CAAAA,CAAAA,CAAU2iB,CAAAA,CACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO3iB,CAAAA,CAGT,CAAA,CAAA,CAAA,CAAI+sB,CAAAA,CAAAA,CAAgB,CAAA,CACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMxH,EAASD,CAAAA,CAAAA,CACsD,CAAA,CAAA,CACnE,CAAA,CAAA,CAAA,CAAM3C,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAK3iB,CAAAA,CAAAA,CAASiT,CAAAA,CAAAA,CAC9B,CAAA,CAAA,CAAA,CAAA,CACE8Z,CAAAA,CAAAA,CAAgB,CAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAIX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAI3pB,CAAAA,CAAWmiB,CAAAA,CAAAA,CACNA,CAAAA,CAAOjiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAM0pB,GACbA,CAAAA,CAIEF,CAAAA,CAAAA,CAAuBE,CAAAA,CAAO/Z,CAAAA,CAAM2Z,CAAAA,CAAYjsB,CAAAA,CAAQ,CAAA,CAAGksB,CAAAA,CAAAA,CAAAA,CAHhEA,CAAAA,CAAAA,CAAAA,CAASE,CAAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKRxH,CAAAA,CAIEuH,CAAAA,CAAAA,CAAuBvH,CAAAA,CAAQtS,EAAM2Z,CAAAA,CAAYjsB,CAAAA,CAAQ,CAAA,CAAGksB,CAAAA,CAAAA,CAAAA,CAHjEA,CAAAA,CAAAA,CAAAA,CAASE,CAAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACrC,CAAA,CAAA,CAAA,CAAA,CAGX,CCzCA,CAAA,CAAA,CAAA,CAAIE,CAAAA,CAAAA,CACAC,CAAAA,CAAAA,CACAC,CAAAA,CAAAA,CACAC,CAAAA,CAAAA,CCQJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,GAAalS,CAAAA,CAASnb,CAAAA,CAAOiT,CAAAA,CAAMgB,CAAAA,CAAOzE,CAAAA,CAAQ0E,CAAAA,CAAAA,CACzD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMoZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,EAAiB,CAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAGA,CAAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAQpS,CAAAA,CACpDqS,CAAAA,CAAW,CAAA,CAAA,CAAA,CACZxtB,CAAAA,CACHsK,SAAUtK,CAAAA,CAAMsK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY2I,CAAAA,CAAK3I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYT,CAAAA,CAAAA,CAAAA,CAAAA,CAC7CkC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW/L,CAAAA,CAAM+L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE1BsW,CAAAA,CAAexO,CAAAA,CAAKwO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBtG,CAAAA,CAAQsG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa1jB,CAAAA,CAAAA,CAAAA,CAAKQ,CAAAA,CAAAA,CAAMA,EAAEhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAmD9E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4ByD,CAAAA,CAAOmb,CAAAA,CAAAA,CACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMzO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAAD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaA,CAAAA,CAAAghB,CAAAA,CAAAA,CAAAA,CAAAA,CAASA,CAAAA,CAAAC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMA,CAAAA,CAAAA,CAAmBvS,CAAAA,CACvDnb,CAAAA,CAAM0M,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc1M,EAAM0M,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeA,CAAAA,CAAAA,CAAemW,CAAAA,CAAAA,CAAAA,CACnD7iB,CAAAA,CAAMyM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWA,CAAAA,CAAAA,CAAAA,CACpBzM,CAAAA,CAAMyM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUA,CAAAA,CAAAA,CAAAA,CAEbzM,CAAAA,CAAMytB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQA,CAAAA,CAAAA,CAAAA,CACjBztB,CAAAA,CAAMytB,CAAAA,CAAAA,CAAAA,CAAAA,CAAOA,CAAAA,CAAAA,CAEf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMhqB,EAAUzD,CAAAA,CAAMyD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClBA,CAAAA,CAAAA,CAASlC,CAAAA,CAAAA,CAAAA,CAAAA,CAAOmsB,CAAAA,CAAAA,CAAAA,CAClBjqB,CAAAA,CAAQlC,CAAAA,CAAAA,CAAAA,CAAM6H,CAAAA,CAAAA,CAAS3F,EAAQlC,CAAAA,CAAAA,CAAAA,CAAKmsB,CAAAA,CAAAA,CAAAA,CAElCA,CAAAA,CAAAA,CACF1tB,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ/C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS8C,CAAAA,CAAAA,CAAAA,CAC5BA,EAAUE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACZF,CAAAA,CAAUE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQiJ,CAAAA,CAAAA,CAASnJ,CAAAA,CAAUE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOutB,CAAAA,CAAAA,CAAAA,CAAAA,CAIpD,CAtEEC,CAAmBH,CAAAA,CAAUrS,CAAAA,CAAAA,CA6G/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmCnb,CAAAA,CAAO4tB,CAAAA,CAAAA,CACpCA,CAAAA,CAAiBpvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,IAC5BwB,CAAAA,CAAM6pB,CAAAA,CAAAA,CAAAA,CAAM7pB,CAAAA,CAAM6pB,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CACzB7pB,CAAAA,CAAM6pB,CAAAA,CAAAA,CAAAA,CAAIpI,aAAe,CAAA,CAAA,CAAA,CAAIzhB,CAAAA,CAAM6pB,CAAAA,CAAAA,CAAAA,CAAIpI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOmM,CAAAA,CAAAA,CAElE,CAjHEC,CAA0BL,EAAU/L,CAAAA,CAAAA,CAChCjS,CAAAA,CAAAA,CACFA,CAAAA,CAAO0T,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsBljB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEjB,CAAA,CAAA,CAAA,CAAfA,CAAAA,CAAMQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAkEZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuBR,CAAAA,CAAO8tB,CAAAA,CAAAA,CAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CDvFR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiCD,CAAAA,CAAAA,CAC/B,MAAME,CAAAA,CAAmBlyB,CAAAA,CAAWmyB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9BC,CAAAA,CAAmBpyB,CAAAA,CAAWqyB,CAAAA,CACpC,CAAA,CAAA,CAAA,CAAKH,CAAAA,CAAAA,CAAAA,CAAqBE,EACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAME,CAAAA,CAAoBJ,CAAAA,CAAmB/wB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAK8wB,GAAoB,CAAA,CAAA,CACvEK,CAAAA,CAAoBH,CAAAA,CAAmBjxB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKgxB,CAAAA,CAAAA,CAAoB,CAAA,CAAA,CAC7E,CAAA,CAAA,CAAId,CAAAA,CAAAA,CAAAA,CAA0BgB,CAAAA,CAAkB5vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW0uB,CAAAA,CAAAA,CAAAA,CAAuBmB,CAAAA,CAAkB7vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW2uB,CAAAA,CAAAA,CAC7G,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,GAETF,CAAAA,CAAAA,CAAsBkB,CAAAA,CAAkB5vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxC2uB,CAAAA,CAAAA,CAAsBkB,CAAAA,CAAkB7vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxC4uB,CAAAA,CAAAA,CAAyB,CAAA,CAAA,CACpBH,CAAAA,CAAAA,CAAAA,CAAAA,CACHA,CAAAA,CAAAA,CAAqB,CAAA,CAAA,CAAA,CAEvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMqB,CAAAA,CAAkB,CAACC,EAAaC,CAAAA,CAAAA,CAAAA,CAAAA,CACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWtnB,CAAAA,CAAAA,CAAAA,CAAAA,CAAOqnB,CAAAA,CAAa,CAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAME,CAAAA,CAAUD,CAAAA,CAAWtnB,CAAAA,CAAAA,CACrBqe,CAAAA,CAAS0H,CAAAA,CAAAA,CAAAA,CAAAA,CAAqB/lB,CAAAA,CAAAA,CACpC,CAAA,CAAA,CAAIqe,CAAAA,CAAAA,CAAU6H,CAAAA,CAAAA,CAAAA,CAA0BqB,EACtCrB,CAAAA,CAAAA,CAAuB7H,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAMkJ,CAAAA,CAChCxB,CAAAA,CAAAA,CAAAA,CAAAA,CACFA,CAAAA,CAAAA,CAAmB/lB,CAAAA,CAAAA,CAAO,CAACqe,EAAO,CAAA,CAAA,CAAIkJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,IAE/BA,CAAAA,CAAS,CAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAcZ,CAAAA,CAAY5mB,GAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS3I,CAAAA,CAAImwB,CAAAA,CAAYlwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAGD,CAAAA,CAAAA,CAAK,CAAA,CAAGA,CAAAA,CAAAA,CAAAA,CAAK,CAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMowB,CAAAA,CAAaD,CAAAA,CAAYnwB,CAAAA,CAAAA,CACzBkB,CAAAA,CAAWkvB,CAAAA,CAAAA,CAAYlvB,SAC7B,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAAY2tB,CAAAA,CAAAA,CAAAA,CAA0BH,CAAAA,CAAAA,CAAoB,CAC5DG,CAAAA,CAAAA,CAAuB3tB,CAAAA,CAAAA,CAAYgvB,CAAAA,CACnCxB,CAAAA,CAAAA,CAAmB/lB,CAAAA,CAAAA,CAAO,CAACzH,CAAAA,CAAUgvB,CAAAA,CAAAA,CACrC,CAAA,CAAA,CAAA,CAAA,CACF,CACF,CACF,CACF,CAAA,CAAA,CAQF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CANIT,CAAAA,CAAAA,CACFM,CAAAA,CAAgBF,CAAAA,CAAmBJ,CAAAA,CAAAA,CAEjCE,CAAAA,CAAAA,CACFI,CAAAA,CAAgBD,CAAAA,CAAmBH,CAAAA,CAAAA,CAE9Bd,CAAAA,CACT,CCwC6BwB,CAAwBd,CAAAA,CAAAA,CACnD9tB,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,QAAQ/C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS8C,CAAAA,CAAAA,CAAAA,CAChCA,CAAAA,CAAUG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS6B,CAAAA,CAAAA,CAAAA,CACjCA,CAAAA,CAAMS,WACRT,CAAAA,CAAM6vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWd,CAAAA,CAAmB/uB,CAAAA,CAAMS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAIlD,CA1EIqvB,CAActB,CAAAA,CAAUrS,EAAQ2S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAElC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMiB,CAAAA,CAwJR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuB9a,CAAAA,CAAO3C,CAAAA,CAAAA,CAC5B,CAAA,CAAA,CAAA,CAAKA,CAAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO2C,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM8a,CAAAA,CAAa9a,CAAAA,CAAQA,CAAAA,CAAMrF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAIf,GAE/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADAkhB,CAAAA,CAAW1d,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CACXyd,CACT,CA/JqBC,CAAc/a,CAAAA,CAAOhB,CAAAA,CAAK3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACzC2B,CAAAA,CAAKnI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,C9CmCX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkD9K,CAAAA,CAAO2K,CAAAA,CAAAA,CACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMskB,EAAajvB,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9BgvB,CAAAA,CAAoBD,CAAAA,CAAAA,CAAYE,CAAAA,CAAAA,CAAAA,CAAAA,CAAMlvB,CAAAA,CAAAA,CAAoD,CAAA,CAAA,CAAA,CAAtCA,CAAAA,CAAU6K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWskB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBH,CAAAA,CAAAA,CAAAA,CAAa,CAAA,CAAA,CAC9GC,CAAAA,CAAAA,CAGLtkB,CAAAA,CAAAA,CAAwBskB,CAAAA,CAAmBvkB,EAC7C,C8CzCI0kB,CAAyC7B,CAAAA,CAAUva,CAAAA,CAAKnI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMwkB,CAAAA,CAAwB9f,CAAAA,CAASA,EAAO+f,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB,CAAA,CAAA,CAC/DruB,CAAAA,CAAOikB,CAAAA,CAAAA,CAAqBjR,CAAAA,CAAgB6a,CAAAA,CAAAA,CAC5Cvc,CAAAA,CAAc,CAAA,CAAA,CAAA,CAAIS,EAAKT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOtR,CAAAA,CAAKsR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpDA,CAAAA,CAAYhU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACdyU,CAAAA,CAAKT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcA,CAAAA,CAAAA,CAErB+R,CAAAA,CAAAA,CAAsBiJ,CAAAA,CAAUtsB,CAAAA,CAAAA,CAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMuX,CAAAA,CAAOoH,CAAAA,CAAAA,CAAckP,CAAAA,CAAAA,CACvBtW,GdoDN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0BzY,CAAAA,CAAOyY,CAAAA,CAAAA,CAC/BzY,CAAAA,CAAM2R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CACf0Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO5M,CAAAA,CAAAA,CAAmBhF,MACvBzY,CAAAA,CAAM2R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEX3R,CAAAA,CAAM0S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB,CAC5B2G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB+J,CAAAA,CAAAA,CAAkC3K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvDzY,EAAM0S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEX,CAAA,CAAA,CAAA,CAAA,CAAA,CACMC,CAAAA,CAAkBiL,CAAAA,CAAAA,CADP8B,CAAAA,CAAAA,CAAYjH,CAAAA,CAAAA,CAAAA,CAC0BmG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnDjM,CAAAA,CAAAA,CAAAA,CAAoB3S,CAAAA,CAAMskB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA8B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAftkB,CAAAA,CAAMQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjDR,CAAAA,CAAMskB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc3R,CAAAA,CAExB,CcjEI6c,CAAiBhC,CAAAA,CAAU/U,CAAAA,CAAAA,CAE7B0R,CAAAA,CAAAA,CAA6BqD,CAAAA,CAAUva,CAAAA,CAAM8b,CAAAA,CAAAA,CAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMtc,EAAkB,CAAA,CAAA,CAAA,CACnB6c,CAAAA,CAAAA,CAAAA,CAAAA,CAEApuB,CAAAA,CAAKuR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAYV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAV4BQ,CAAAA,CAAK/R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiC,CAAA,CAAA,CAAA,CAAzB+R,EAAK/R,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACdnE,CAAAA,CAAAA,CAAoBkC,CAAAA,CAAAA,CAAYb,CAAAA,CAAAA,CAAsBla,CAAAA,CAAiB+a,CAAAA,CAAUva,CAAAA,CAAM,CAAA,CAAIyY,CAAAA,CAAAA,CAAAA,CACzHlc,CAAAA,CAAAA,CAAAA,CAGLA,CAAAA,CAAOkgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBhE,CAAAA,CAAQ5B,CAAAA,CAAAA,CAAsB9pB,CAAAA,CAAMQ,OAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAfR,CAAAA,CAAMQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACRgP,CAAAA,CAAOkgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBhE,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAA,CAAK1rB,CAAAA,CAAMihB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAIziB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGxD8E,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqsB,CAAAA,CAAAA,CACbA,CAAAA,CAAAA,CAyCT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB3vB,GACtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM+tB,CAAAA,CAAqB,CAAA,CAAA,CAa3B,CAAA,CAAA,CAZA/tB,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ/C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS8C,CAAAA,CAAAA,CAAAA,CAChCA,CAAAA,CAAUG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS6B,CAAAA,CAAAA,CAAAA,CACjCA,CAAAA,CAAM6vB,WACJ7vB,CAAAA,CAAM4wB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACR7B,CAAAA,CAAmB/uB,CAAAA,CAAM4wB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY5wB,CAAAA,CAAM6vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClC7vB,CAAAA,CAAMS,WACfsuB,CAAAA,CAAmB/uB,CAAAA,CAAMS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYT,CAAAA,CAAM6vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEtC7vB,CAAAA,CAAM6vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAI4B,CAAA,CAAA,CAAA,CAA3C5xB,OAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAK6wB,CAAAA,CAAAA,CAAoBvvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEFwB,CAAAA,CAAM6vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa7vB,CAAAA,CAAM6vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CACvC7vB,CAAAA,CAAM6vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS9vB,CAAAA,CAAM6vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,GACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAAS9vB,CAAAA,CAAM6vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChC7yB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO+H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ+oB,CAAAA,CAAAA,CAAoB5wB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAEsC,CAAAA,CAAUovB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrDiB,CAAAA,CAAO7wB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CACVuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,YACNuvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWtwB,CAAAA,CACXovB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGN,CAjEImB,CAAeL,CAAAA,CAAAA,CACe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAnBrC,CAAAA,CAAAA,CAA+BA,CAAAA,CAAiB,CAAA,CAuE/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwBttB,CAAAA,CAAOoG,CAAAA,CAAO6pB,CAAAA,CAAAA,CACpC,CAAA,CAAA,CAAA,CAAKjwB,CAAAA,CACH,OAAO,CAAA,CAAA,CAAA,CAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM6G,CAAAA,CAAa,CAAA,CAAA,CAAA,CACd7G,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAMuS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CACtBA,YAAavS,CAAAA,CAAMuS,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYxU,CAAAA,CAAAA,CAAAA,CAAKD,CAAAA,CAAAA,CAAAA,CAAA,CAAA,CAAA,CAAA,CAC/BA,CAAAA,CAAAA,CAAAA,CAAAA,CACAA,CAAAA,CAAEoD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CACXA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMgF,CAAAA,CAAAA,CAAUpI,CAAAA,CAAEoD,CAAAA,CAAAA,CAAAA,CAAAA,CAAMkF,CAAAA,CAAO6pB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAIlCjwB,CAAAA,CAAMiN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CACfA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM/G,CAAAA,CAAAA,CAAUlG,CAAAA,CAAMiN,CAAAA,CAAAA,CAAAA,CAAAA,CAAM7G,CAAAA,CAAO6pB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAElCjwB,CAAAA,CAAM2R,UAAY,CACnBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUzL,CAAAA,CAAAA,CAAUlG,CAAAA,CAAM2R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUvL,CAAAA,CAAO6pB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE1CjwB,CAAAA,CAAM6Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAChBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO3K,CAAAA,CAAAA,CAAUlG,CAAAA,CAAM6Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOzK,CAAAA,CAAO6pB,CAAAA,CAAAA,CAAAA,CAAAA,CAGrCjwB,EAAM2R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU0Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASxjB,CAAAA,CAAW8K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtC9K,CAAAA,CAAW8K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS0Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQrqB,CAAAA,CAAM2R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS0Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvCrqB,CAAAA,CAAM2R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS0Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMnpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvB2F,CAAAA,CAAW8K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS0Y,MAAMnpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAOgF,CAAAA,CAAAA,CAAUlG,CAAAA,CAAM2R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS0Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMnpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAMkF,CAAAA,CAAO6pB,CAAAA,CAAAA,CAAAA,CAAAA,CAG7EjwB,EAAMihB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACRpa,CAAAA,CAAWoa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQjhB,CAAAA,CAAMihB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMljB,CAAAA,CAAAA,CAAAA,CAAK0a,CAAAA,CAAAA,CAAAA,CAC3B,CAAA,CAAA,CAAA,CACFA,KACAA,CAAAA,CAAKvX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CACdA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMgF,CAAAA,CAAAA,CAAUuS,CAAAA,CAAKvX,CAAAA,CAAAA,CAAAA,CAAAA,CAAMkF,CAAAA,CAAO6pB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAKtCjwB,CAAAA,CAAM2R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU7C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASjI,CAAAA,CAAW8K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtC9K,CAAAA,CAAW8K,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS7C,MAAQ5I,CAAAA,CAAAA,CAAUlG,CAAAA,CAAM2R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS7C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAGmhB,CAAAA,CAAAA,CAAAA,CAEjE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOppB,CACT,CAlHaqpB,CAAeP,CAAAA,CAAKrC,CAAAA,CAAgBC,CAAAA,CAAAA,CAEtCoC,CAAAA,CAAAA,CANE,CAAA,CAAA,CAAA,CAAA,CAQb,CAuHA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASQ,GAA+Bld,CAAAA,CAAAA,CACtC,CAAA,CAAA,CAAKA,CAAAA,CAGL,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAUF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+BA,CAAAA,CAAAA,CAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBpF,CAAAA,CAAAA,CAAAA,CAAyB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAToF,CACzC,CAZMmd,CAAsBnd,CAAAA,CAAAA,CAAAA,CAsB5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA4BA,CAAAA,CAAAA,CAC1B,OAAOhW,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAK+V,CAAAA,CAAAA,CAAMod,CAAAA,CAAAA,CAAAA,CAAAA,CAAMnpB,CAAAA,CAAAA,CAAQopB,CAAAA,CAAAA,CAAmBxxB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASoI,CAAAA,CAAAA,CACrE,CArBMqpB,CAAmBtd,CAAAA,CAAAA,CAFd,CAAE3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB2B,CAAAA,CAAAA,CAOpBA,CACT,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMqd,GAAqB,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CC9MF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAStd,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB/S,CAAAA,CAAWgT,CAAAA,CAAAA,CACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO0C,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB3C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB/S,CAAAA,CAAWkwB,GAA+Bld,CAAAA,CAAAA,CACtF,CAMA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASI,CAAAA,CAAAA,CAAarT,CAAAA,CAAOiT,CAAAA,CAAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO0C,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBtC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAarT,CAAAA,CAAOiT,CAAAA,CAC/C,CA4BA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASvD,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOsF,CAAAA,CAAAA,CAAAA,CAAAA,CAAoBtF,aAC7B,CAoBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS8gB,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMhhB,CAAAA,CAASG,CAAAA,CAAAA,CAAAA,CAAAA,CACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwC,CAAA,CAAA,CAAA,CAAjCH,CAAAA,CAAAA,CAAQ4L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaqV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBjhB,CAAAA,CAAAA,CAAQkhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7D,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAajlB,GACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMwI,CAAAA,CAAiBc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjB/H,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAAA,CAASkY,CAAAA,CAAAA,CAAqBjR,CAAAA,CAAgByB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChD7I,UAAEA,CAAAA,CAAAA,CAAchR,CAAAA,CAAW80B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAA,CAAA,CACxChlB,CAAAA,CAAUH,CAAAA,CAAAA,CAAY,CAC1BwB,UACGH,CAAAA,CAAAA,CAAa,CAAEA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACfpB,CAAAA,CAAAA,CAAAA,CAECmlB,CAAAA,CAAiB3c,CAAAA,CAAe9C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAMtC,CAAA,CAAA,CAAA,CAAA,CAAA,CAL+B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA3Byf,CAAAA,CAAAA,CAAgB3kB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClBc,CAAAA,CAAAA,CAAc6jB,CAAAA,CAAgB,CAAE3kB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAE1C4kB,KACA5c,CAAAA,CAAe/C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWvF,CAAAA,CAAAA,CACnBA,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASklB,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM5c,CAAAA,CAAiBc,CAAAA,CAAAA,CAAAA,CAAAA,CAEjBpJ,CAAAA,CADe+J,CAAAA,CAAAA,CAAAA,CAAAA,CACQvE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB8C,CAAAA,CAAe9C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxDxF,CAAAA,CAAAA,C5CpBN,SAAsBA,CAAAA,CAAAA,CACpB,CAAA,CAAA,CAAA,CAAIF,CAAAA,CAAU,CAAA,CAAA,CAGgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAnBE,CAAAA,CAAQM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjBR,CAAAA,CAAU,CAAEQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEtBc,CAAAA,CAAAA,CAAcpB,CAAAA,CAASF,CAAAA,CACzB,C4CaIqlB,CAAanlB,CAAAA,CAAAA,CAEfolB,CAAAA,CAAAA,CAAAA,CAAAA,CACA9c,CAAAA,CAAe/C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjB,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS6f,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM9c,EAAiBc,CAAAA,CAAAA,CAAAA,CAAAA,CACjBxF,CAAAA,CAASG,CAAAA,CAAAA,CAAAA,CAAAA,CACT/D,CAAAA,CAAUsI,CAAAA,CAAe9C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC3BxF,CAAAA,CAAAA,CAAW4D,CAAAA,CAAAA,CACbA,EAAOyhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAerlB,CAAAA,CAE1B,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASqlB,CAAAA,CAAAA,CAAeC,CAAAA,CAAAA,CAAM,CAAA,CAAA,CACxBA,CAAAA,CACFJ,CAAAA,CAAAA,CAAAA,CAAAA,CAGFE,CAAAA,CAAAA,CAAAA,CACF,CCjHA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASG,CAAAA,CAAAA,CAAmB5W,CAAAA,CAAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMO,CAAAA,CAAWP,EAAIO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAGP,CAAAA,CAAIO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CAC/CF,CAAAA,CAAOL,CAAAA,CAAIK,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAIL,CAAAA,CAAIK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAGE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaP,CAAAA,CAAIE,OAAOG,CAAAA,CAAAA,CAAAA,CAAOL,CAAAA,CAAIG,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAIH,CAAAA,CAAIG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACvE,CAgBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS0W,CAAAA,CAAAA,CAAsC7W,CAAAA,CAAKoQ,CAAAA,CAAQC,CAAAA,CAAAA,CAC1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOD,CAAAA,CAAAA,CAAkB,CAAA,CAAA,CAhB3B,SAA4BpQ,CAAAA,CAAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAG4W,CAAAA,CAAAA,CAAmB5W,CAAAA,CAAAA,CAAAA,CAAAA,CAAOA,CAAAA,CAAIM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1C,CAc8BwW,CAAmB9W,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAbjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsBA,CAAAA,CAAKqQ,CAAAA,CAAAA,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM0G,CAAAA,CAAS,CACbC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAXuB,KAmBzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CANIhX,CAAAA,CAAIQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACNuW,CAAAA,CAAOE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAajX,CAAAA,CAAIQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEtB6P,CAAAA,CAAAA,CAAAA,CACF0G,CAAAA,CAAOG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAA,CAAA,CAAG7G,CAAAA,CAAQruB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQquB,CAAAA,CAAQvuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE7C,CAAA,CAAA,CAAA,CAAIq1B,gBAAgBJ,CAAAA,CAAAA,CAAQnvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrC,CAEyDwvB,CAAapX,CAAAA,CAAKqQ,CAAAA,CAAAA,CAAAA,CAC3E,CCrBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASgH,GAA+BhL,CAAAA,CAAOiL,CAAAA,CAAAA,CAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAeD,CAAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACL,CACErxB,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CACNuxB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYnL,CAAAA,CAAMpoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClBkqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEhB,CACErsB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CACN0tB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAChBiI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUH,EAAcI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBJ,CAAAA,CAAAA,CAAAA,CAE/DlL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGN,CC2FA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASuL,CAAAA,CAAAA,CAA0B3iB,CAAAA,CAAQ4iB,CAAAA,CAAAA,CACzC,MAAMC,CAAAA,CAAYD,CAAAA,CAAAA,CAgBpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgC5iB,CAAAA,CAAAA,CAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO8iB,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB5O,CAAAA,CAAAA,CAAAA,CAAIlU,CAAAA,CAC7B,CAlBsC+iB,CAAuB/iB,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CACtE,CAAA,CAAA,CAAyB,CAAA,CAAA,CAAA,CAArB6iB,CAAAA,CAAU7zB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMg0B,CAAAA,CAAgBhjB,CAAAA,CAAO4L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvB0L,CAAAA,CDhGR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B2L,CAAAA,CAAM/H,CAAAA,CAAUC,EAAQpQ,CAAAA,CAAKsX,CAAAA,CAAAA,CACtD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMlL,CAAAA,CAAU,CAAA,CAAA,CAUhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CATI+D,CAAAA,CAAAA,CAAUb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACZlD,CAAAA,CAAQkD,CAAAA,CAAAA,CAAAA,CAAM,CACZttB,CAAAA,CAAAA,CAAAA,CAAAA,CAAMmuB,CAAAA,CAASb,CAAAA,CAAAA,CAAAA,CAAIttB,CAAAA,CAAAA,CAAAA,CAAAA,CACnBF,QAASquB,CAAAA,CAASb,CAAAA,CAAAA,CAAAA,CAAIxtB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGpBsuB,CAAAA,CAAAA,CAAYpQ,CAAAA,CAAAA,CAAAA,CAChBoM,CAAAA,CAAQpM,CAAAA,CAAAA,CAAAA,CAAMD,CAAAA,CAAAA,CAAYC,CAAAA,CAAAA,CAAAA,CAErBmM,CAAAA,CAAAA,CAAeC,CAAAA,CAAS,CAACiL,CAAAA,CAAAA,CAA+Ba,CAAAA,CAAMZ,CAAAA,CAAAA,CAAAA,CACvE,CCoFmBa,CACfL,CAAAA,CACAG,CAAAA,CAAcG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACdH,CAAAA,CAAc7H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACdnb,CAAAA,CAAO6L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACP7L,CAAAA,CAAOojB,2BAA2BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEpCP,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB/J,CAAAA,CAAAA,CAAAA,CAAI/Y,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAC5BA,CAAAA,CAAO0T,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACZ1T,EAAOsjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAahM,CAAAA,CACtB,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASwL,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOh2B,CAAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAI4tB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9E,CCjIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS6I,CAAAA,CAAAA,CAAkCnM,CAAAA,CAAOiL,CAAAA,CAAAA,CAChD,MAAMC,CAAAA,CAAeD,CAAAA,CAAgB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACL,CACErxB,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACNuxB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYnL,CAAAA,CAAMpoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClBkqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEhB,CACErsB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,KACN0tB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAChBiI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUH,CAAAA,CAAcI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBJ,CAAAA,CAAAA,CAAAA,CAE/DlL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGN,CC0FA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASoM,CAAAA,CAAAA,CAA6BxjB,CAAAA,CAAQyjB,CAAAA,CAAAA,CAC5C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAeD,GAgBvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmCzjB,CAAAA,CAAAA,CACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO8iB,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB5O,CAAAA,CAAAA,CAAAA,CAAIlU,CAAAA,CAC7B,CAlB4C2jB,CAA0B3jB,IAAW,CAAA,CAAA,CAC/E,CAAA,CAAA,CAA4B,CAAA,CAAA,CAAA,CAAxB0jB,CAAAA,CAAa10B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMg0B,CAAAA,CAAgBhjB,EAAO4L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvB0L,CAAAA,CD/FR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8BsM,CAAAA,CAAS1I,CAAAA,CAAUC,CAAAA,CAAQpQ,CAAAA,CAAKsX,CAAAA,CAAAA,CAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMlL,CAAAA,CAAU,CAAA,CAAA,CAUhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CATI+D,CAAAA,CAAAA,CAAUb,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACZlD,CAAAA,CAAQkD,IAAM,CACZttB,CAAAA,CAAAA,CAAAA,CAAAA,CAAMmuB,CAAAA,CAASb,CAAAA,CAAAA,CAAAA,CAAIttB,CAAAA,CAAAA,CAAAA,CAAAA,CACnBF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASquB,CAAAA,CAASb,CAAAA,CAAAA,CAAAA,CAAIxtB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGpBsuB,CAAAA,CAAAA,CAAYpQ,CAAAA,CAAAA,CAAAA,CAChBoM,CAAAA,CAAQpM,CAAAA,CAAAA,CAAAA,CAAMD,CAAAA,CAAAA,CAAYC,CAAAA,CAAAA,CAAAA,CAErBmM,CAAAA,CAAAA,CAAeC,EAAS,CAACoM,CAAAA,CAAAA,CAAkCK,CAAAA,CAASvB,CAAAA,CAAAA,CAAAA,CAC7E,CCmFmBwB,CACfH,CAAAA,CACAV,CAAAA,CAAcG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACdH,CAAAA,CAAc7H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACdnb,CAAAA,CAAO6L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACP7L,CAAAA,CAAOojB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA2BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEpCP,KAAgB/J,CAAAA,CAAAA,CAAAA,CAAI/Y,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAC5BA,CAAAA,CAAO0T,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACZ1T,CAAAA,CAAOsjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAahM,EACtB,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASwL,CAAAA,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOh2B,CAAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAI4tB,QACjF,CChIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASoJ,CAAAA,CAAAA,CAA2BtzB,CAAAA,CAAOwP,CAAAA,CAAAA,CACzC,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAfxP,CAAAA,CAAMQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA2BR,CAAAA,CAAMihB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOziB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWwB,CAAAA,CAAM0S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB6gB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CCL5F,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiC/jB,GAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAA8C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAvCA,CAAAA,CAAO4L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaoY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7B,CDG6GC,CAAwBjkB,CAAAA,CAAAA,CACjI,OAEF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMkkB,CAAAA,CAAa,CAAA,CAAA,CACbC,CAAAA,CAAiB,CAAA,CAAA,CACvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWlb,CAAAA,CAAAA,CAAAA,CAAAA,CAAQzY,EAAMihB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnBxI,CAAAA,CAAKuG,CAAAA,CAAAA,CAAAA,CAAIhX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACtB0rB,CAAAA,CAAWz0B,CAAAA,CAAAA,CAAAA,CAAAA,CAAK6mB,CAAAA,CAAAA,CAAiCrN,CAAAA,CAAAA,CAAAA,CAEjDkb,CAAAA,CAAe10B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwZ,CAAAA,CAAAA,CAGxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0B,CAAA,CAAA,CAAA,CAAtBib,CAAAA,CAAWl1B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGfwB,EAAMihB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ0S,CAAAA,CEFhB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiCC,CAAAA,CAAiBpkB,CAAAA,CAAAA,CAChD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMsiB,CAAAA,CAAetiB,CAAAA,CAAOojB,2BAA2BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC3E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACL,CAAEryB,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQuxB,WAAY6B,CAAAA,CAAgBp1B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQkqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAClE,CACErsB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CACT21B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBjI,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAEkI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUH,CAAAA,CAAcI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,CAAA,CAC5FlL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOgN,GAGb,CFPSC,CAAwBH,CAAAA,CAAYlkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAJ3C,CAKF,CGnBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMskB,CAAAA,CAAAA,CAA2CzuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASyuB,CAAAA,CAAAA,CAAkBC,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM1L,MAA6B2L,CAAAA,CAAAA,CAAAA,CAInC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAOC,CAAAA,CAAAA,CACd7L,CAAAA,CAAO5gB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOysB,CAAAA,CAChB,CA2BA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACL,CAAA,CAAA,CAAA,CAAA,CAAIC,CAAAA,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOj1B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKkpB,EACpB,CAAA,CACA9gB,CAAAA,CAAAA,CAAAA,CA9BF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa6sB,CAAAA,CAAAA,CACX,CAAA,CAAA,CAAA,CAAA,CANO/L,CAAAA,CAAOgM,CAAAA,CAAAA,CAAAA,CAAAA,CAAON,CAAAA,CAAAA,CAOnB,OAAOvI,CAAAA,CAAAA,CAAoBqI,CAAAA,CAAAA,CAAAA,CAE7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMK,CAAAA,CAAOE,CAAAA,CAAAA,CAAAA,CAMb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CALA/L,CAAAA,CAAO9gB,CAAAA,CAAAA,CAAAA,CAAI2sB,GACNA,CAAAA,CAAK7wB,CAAAA,CAAAA,CAAAA,CAAAA,CACR,CAAA,CAAA,CAAA,CAAM4wB,CAAAA,CAAOC,CAAAA,CAAAA,CACb,CAAA,CAAA,CAAA,CAAMD,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAERA,CACT,CAAA,CAoBEI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAnBF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAeC,CAAAA,CAAAA,CACb,CAAA,CAAA,CAAA,CAAKlM,CAAAA,CAAOgM,CAAAA,CAAAA,CAAAA,CAAAA,CACV,OAAOhJ,CAAAA,CAAAA,CAAAA,CAAoB,CAAA,CAAA,CAE7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMmJ,CAAAA,CAAejhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQkhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWv1B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKkpB,CAAAA,CAAAA,CAAAA,CAAShlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CACvE,CAAA,CAAA,CAAA,CAAKkxB,CAAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOC,CAAAA,CAET,MAAME,CAAAA,CAAW,CACfF,CAAAA,CACA,CAAA,CAAA,CAAA,CAAIjhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASgY,CAAAA,CAAAA,CAAYjF,CAAAA,CAAAA,CAAUqO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAMpJ,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAQgJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEtE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOhhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQqhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKF,CAAAA,CACtB,EAQF,CCzBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASG,CAAAA,CAAAA,CAAiBC,CAAAA,CAAAA,CAAQC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAArO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYA,CAAAA,CAAAA,CAAW9gB,EAAMF,CAAAA,CAAAA,CAAAA,CAAAA,CAC/D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMsvB,CAAAA,CAAoB,CAAA,CAAA,CAAA,CACrBF,CAAAA,CAAAA,CAECG,CAAAA,CAAkBvO,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5BwO,EAAmBxO,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACnC,CAAA,CAAA,CAAIuO,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWlB,CAAAA,CAAAA,CAAAA,CAAAA,CAASkB,CAAAA,CAAgB/a,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO7b,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAM,CACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO82B,CAAAA,CAAYC,CAAAA,GAAgBC,CAAAA,CAAAA,CAActB,CAAAA,CAAM11B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAK,CAAA,CAAA,CAC5Di3B,CAAAA,CAAcC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASJ,CAAAA,CAAY,CAAA,CAAA,CAAA,CACnCK,CAAAA,CAAmD,CAAA,CAAA,CAAA,CAAA,CAAzCtf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMof,CAAAA,CAAAA,CAA6B,CAAA,CAAA,CAAdA,CAAAA,CAAAA,CACrC,CAAA,CAAA,CAAKF,EAGH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWK,CAAAA,CAAAA,CAAAA,CAAAA,CAAYL,CAAAA,CAAW/2B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CACrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAbo3B,CAAAA,CAAAA,CACGJ,CAAAA,CAAAA,CAAAA,CAAcA,CAAAA,CAAWh3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAKQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAIlDm2B,CAAAA,CAAkBS,CAAAA,CAAAA,CAAY7vB,EAAM4vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CARxCR,CAAAA,CAAkBU,CAAAA,CAAAA,CAAAA,CAAM9vB,CAAAA,CAAM4vB,CAYlC,CAAA,CAAA,CAAA,CAAA,CAAA,CACSN,CAAAA,CACTF,CAAAA,CAAkBU,IAAM9vB,CAAAA,CA3C5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+B+vB,CAAAA,CAAQ/vB,CAAAA,CAAMF,CAAAA,CAAAA,CAAAA,CAAAA,CAC3C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM4vB,CAAAA,CAAcC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,GAAGI,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAC1C,CAAA,CAAA,CAAA,CAAKzf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMof,CAAAA,CAAAA,CACT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAdA,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMM,CAAAA,CAAajwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKkwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAGF,CAAAA,CAAAA,CAAAA,CAAAA,CACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAKzf,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM0f,GAPe,CAAA,CAAA,CAAA,CAQjBA,CAAAA,CAAahwB,CAGxB,CAiCkCkwB,CAAsBZ,CAAAA,CAAkBtvB,CAAAA,CAAAA,CAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAfmvB,IACTC,CAAAA,CAAkBU,CAAAA,CAAAA,CAAAA,CAAM9vB,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAEhC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOovB,CACT,CC5CA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASe,GAAgB7a,CAAAA,CAAS8a,CAAAA,CAAa3N,CAAAA,CAASyL,CAAAA,CAAAA,CACtD5Y,CAAAA,CAAQ+a,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAF4B,CAAA,CAAA,CAAA,CAAA,CAIpC,CAAA,CAAA,CAAA,CAAIC,CAAAA,CAAa,CAAA,CAAA,CA2DjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLC,CAAAA,CAAAA,CAAAA,CAAAA,CA1DF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAActP,CAAAA,CAAAA,CACZ,MAAMuP,CAAAA,CAAwB,CAAA,CAAA,CAS9B,CAAA,CAAA,CARArP,CAAAA,CAAAA,CAAoBF,CAAAA,CAAU,CAACc,CAAAA,CAAMpnB,CAAAA,CAAAA,CAAAA,CAAAA,CACnC,MAAM81B,CAAAA,CAAe7M,CAAAA,CAAAA,CAA+BjpB,CAAAA,CAAAA,CAAAA,CDE1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuBu0B,CAAAA,CAAQuB,CAAAA,CAAczwB,CAAAA,CAAMF,CAAAA,CAAAA,CAAAA,CAAAA,CACjD,OAJF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAuBovB,CAAAA,CAAQuB,CAAAA,CAAAA,CAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOvB,CAAAA,CAAOuB,CAAAA,CAAAA,CAAAA,CAAiBvB,CAAAA,CAAOY,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAC/C,CAESY,CAAcxB,CAAAA,CAAQuB,CAAAA,CAAAA,CAAgBzwB,CAC/C,CCHU2wB,CAAcL,EAAYG,CAAAA,CAAAA,CAG5BD,CAAAA,CAAsBp3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAK2oB,CAAAA,CAAAA,CAF3BzM,CAAAA,CAAQuU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB4G,CAAAA,CAAAA,CAAAA,CAAAA,CAKf,CAAA,CAAA,CAAA,CAAjCD,CAAAA,CAAsB73B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOgV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQgY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,IAEzB,MAAMiL,CAAAA,CAAmB/P,CAAAA,CAAAA,CAAeI,CAAAA,CAAS,CAAA,CAAA,CAAIuP,CAAAA,CAAAA,CAC/CK,CAAAA,CAAsBhL,CAAAA,CAAAA,CAAAA,CAAAA,CpBFhC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkC5E,CAAAA,CAAU6P,CAAAA,CAAAA,CAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO3P,CAAAA,CAAAA,CAAoBF,CAAAA,CAAU,CAAC6E,CAAAA,CAAGnrB,CAAAA,CAAAA,CAAAA,CAASm2B,EAAM73B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS0B,CAAAA,CAAAA,CACnE,CAAA,CoBCUo2B,CAAyBH,CAAAA,CAAkB,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAIhDzP,CAAAA,CAAAA,CAAoByP,EAAkB,CAAC7O,CAAAA,CAAMpnB,CAAAA,CAAAA,CAAAA,CAAAA,CAC3C2a,CAAAA,CAAQuU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBhE,CAAAA,CAAQjC,CAAAA,CAAAA,CAA+BjpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAwBtE,OAAO8nB,CAAAA,CAAO9gB,CAAAA,CAAAA,CAAAA,CArBM,CAAA,CAAA,CAAA,CAAMyuB,CAAAA,CAAY,CAAEY,CAAAA,CAAAA,CAAAA,CAAAA,CAAMtP,CAAAA,CAAAA,CAAkBkP,CAAAA,CAAAA,CAAAA,CAAAA,CAAqBnzB,CAAAA,CAAAA,CAAAA,CAAAA,CAClFwzB,CAAAA,CAAAA,CAC6B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAxBA,CAAAA,CAAS9B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAIX0B,CAAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACZI,CAAAA,CAAAA,CAAAA,CAKTX,EAAarB,CAAAA,CAAAA,CAAiBqB,CAAAA,CAAYW,CAAAA,CAAAA,CACnCA,CAAAA,CAAAA,CAERr1B,CAAAA,CAAAA,CAAAA,CAGC,CAAA,CAAA,CAAA,CAAA,CAAA,CAFAi1B,CAAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEbj1B,CAAAA,CAAAA,CAAAA,CAAAA,CAGqB6B,CAAAA,CAAAA,CAAAA,CAAAA,CAC5BiiB,CAAAA,CAAAA,CAAWA,CAAAA,CACX9jB,CAAAA,CAAAA,CAAAA,CACC,CAAA,CAAA,CAAIA,CAAAA,CAAAA,CAAAA,CAAUqyB,CAAAA,CAAAA,CAGZ,OADA4C,CAAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACZljB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQgY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,IAEvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM/pB,CAAAA,CAAAA,CAId,CAAA,CAGEs1B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CA5DavC,CAAAA,CAAAA,CAAYlM,CAAAA,CAAOiM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CA8D1C,CCzEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMwC,GAAW,CACfnE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CACVoE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CACTC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CAAEzzB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,EAAMqzB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CACxCK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACvEC,gBAAgB,CAAA,CAChBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CACtCC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAEC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAChCC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,CAAA,CACnBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,EACRC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqB,CAAA,CACrBC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,CAAA,CAAA,CCuBrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAAA,CAAwC1yB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACnD0yB,CAAAA,CAAAA,CAA2C3yB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAE5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS2yB,CAAAA,CAAAA,CAAmBvzB,CAAAA,CAAAA,CAC1B,MAAO,CACLA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAqzB,CAACA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB,CAAA,CAE7B,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASG,CAAAA,CAAAA,CAAyBxzB,CAAAA,CAAAA,CAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAszB,CAACA,CAAAA,CAAAA,CAAAA,CAAAA,CAA2B,CAAA,CAEhC,CAOA,SAASG,CAAAA,CAAAA,CAAyB3oB,CAAAA,CAAQ4oB,CAAAA,CAAkBC,CAAAA,CAAWC,CAAAA,CAAgBC,CAAAA,CAAAA,CACrF,CAAA,CAAA,CAAA,CACIC,CAAAA,CADAC,EAAS,CAAA,CAETC,CAAAA,CAAAA,CAAgB,CAAA,CACpBlpB,CAAAA,CAAOiT,CAAAA,CAAAA,CAAG4V,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CACnBI,CAAAA,CAAS,EACTE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaH,CAAAA,CAAAA,CACbE,CAAAA,CAAAA,CAAgB,CAAA,CAAA,CAAA,CAElBlpB,CAAAA,CAAOiT,CAAAA,CAAAA,CAAG2V,CAAAA,CAAmBxQ,CAAAA,CAAAA,CAAAA,CAE3B,CAAA,CAAA,CADA6Q,CAAAA,CAAAA,CAAUH,CAAAA,CAAe1Q,CAAAA,CAAAA,CACrB6Q,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CACZF,CAAAA,CAAQ/oB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACV,IAAYkpB,CAAAA,CAAe,CACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAME,CAAAA,CAAgBppB,CAAAA,CAAO4L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAayd,CAAAA,CAAAA,CAjCjB,CAAA,CAAA,CAAA,CAkCrBD,EAAgB,CAAA,CAAA,CAAA,CAClBF,CAAAA,CAAAA,CAAgB,CAAA,CAChBF,CAAAA,CAAejS,CAAAA,CAAAA,CACbqO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CACT2D,CAAAA,CAAQ/oB,IACPopB,CAAAA,CAAAA,CAAAA,CAGT,CAAA,CAAA,CAAA,CAEFppB,CAAAA,CAAOiT,CAAAA,CAAAA,CAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CACjB8V,CAAAA,CAAQ/oB,CAAAA,CAAAA,CAAAA,CAEZ,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMspB,CAAAA,CAAAA,CAMJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA5vB,CAAYiS,CAAAA,CAAAA,CA2BV,CAAA,CAAA,CA1BAxZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAKo3B,EAAW,CACdC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,CAAA,CAAA,CAAA,CAAA,CACf7d,CAAAA,CACHqY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA2C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA3BrY,CAAAA,CAAQqY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA8B,SAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEnE7xB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKs3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAA,CAAA,CACrBt3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKu3B,CAAAA,CAAiB,CAAA,CACtBv3B,KAAKw3B,CAAAA,CAAY,CAAA,CAAA,CACjBx3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKy3B,CAAAA,CAAS,CAAA,CAAA,CACdz3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqM,CAAAA,CAAmB,CAAA,CAAA,CACxBrM,CAAAA,CAAAA,CAAAA,CAAAA,CAAK03B,CAAAA,CAAiBtF,CAAAA,CAAAA,CAAkB5Y,CAAAA,CAAQme,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBpD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CF/FhC,IEgGlCv0B,CAAAA,CAAAA,CAAAA,CAAAA,CAAK43B,CAAAA,CD1ET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsCpe,CAAAA,CAAAA,CACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMqe,CAAAA,CAAKre,CAAAA,CAAQse,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,CAAA,CAAA,CACrC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACL5G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU2G,CAAAA,CAAG3G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYmE,CAAAA,CAAAA,CAASnE,SAClCoE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASuC,CAAAA,CAAGvC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWD,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChCC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAjBwBA,CAAAA,CAiBQsC,CAAAA,CAAGtC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAhBjB,CAAA,CAAA,CAAA,CAAhBA,CAAAA,CACK,CAAA,CAAA,CAAA,CAAKF,CAAAA,CAAAA,CAASE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAJC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADC/2B,CAAAA,CAOH+2B,IANe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAW/2B,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAUA,CAAAA,CAO1D,CAAEsD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASyzB,CAAAA,CAAaJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUI,GAEpC,CACLzzB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASyzB,CAAAA,CAAYzzB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWuzB,CAAAA,CAAAA,CAASE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYzzB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrDqzB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUI,EAAYJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYE,CAAAA,CAAAA,CAASE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CASvDK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYqC,CAAAA,CAAGrC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcH,CAAAA,CAAAA,CAASG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtCC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBoC,CAAAA,CAAGpC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBJ,CAAAA,CAAAA,CAASI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9CC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CACPC,SAAUkC,CAAAA,CAAGnC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYN,CAAAA,CAAAA,CAASK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnDC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWiC,CAAAA,CAAGnC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaP,CAAAA,CAAAA,CAASK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEvDC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACLC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ+B,EAAGhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUT,CAAAA,CAAAA,CAASQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC3CC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS8B,CAAAA,CAAGhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWV,CAAAA,CAAAA,CAASQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAME,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE/CC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB6B,CAAAA,CAAG7B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqBX,CAAAA,CAAAA,CAASW,kBACpDC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ4B,CAAAA,CAAG5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUZ,CAAAA,CAAAA,CAASY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqB2B,CAAAA,CAAG3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBb,GAASa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxDC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB0B,CAAAA,CAAG1B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqBd,CAAAA,CAAAA,CAASc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CA/BxD,CAAA,CAAA,CAAA,CAA4BZ,CAAAA,CAHD/2B,CAoC3B,CCqD2Bu5B,CAA6Bve,CAAAA,CAAAA,CACpDxZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAKg4B,CAAAA,CAAAA,CAA0B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC3Bxe,CAAAA,CAAQZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACV5Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAKi4B,CAAAA,CAAAA,CAAOle,CAAAA,CAAAA,CAAQP,CAAAA,CAAQZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAY1B5Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAKi4B,CAAAA,CAAAA,CAAM,CACb,MAAMr4B,CAAAA,CAAM6vB,CAAAA,CAAAA,CACVzvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKi4B,CAAAA,CAAAA,CACLze,CAAAA,CAAQwP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACRxP,CAAAA,CAAQwX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYxX,CAAAA,CAAQwX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU9I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAE9CloB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKk4B,CAAAA,CAAAA,CAAa1e,CAAAA,CAAQ2e,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAClCnP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQhpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKo3B,CAAAA,CAASpO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtB+E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB/tB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK+tB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBlN,CAAAA,CAAAA,CAAAA,CAAAA,CAAK7gB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9CwZ,CAAAA,CAAQme,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACX/3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEJ,CACA42B,CAAAA,CAAAA,CAAyBx2B,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,YAAao4B,CAAAA,CAAAA,CAAwB5H,CAAAA,CAAAA,CAAAA,CACvFgG,CAAAA,CAAAA,CACEx2B,CAAAA,CAAAA,CAAAA,CAAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACAq4B,CAAAA,CAAAA,CACAhH,CAAAA,CAAAA,CAEJ,CAMA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAhgB,CAAiB/S,CAAAA,CAAWgT,CAAAA,CAAMgB,CAAAA,CAAAA,CAChC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM1J,CAAAA,CAAUV,CAAAA,CAAAA,CAAAA,CAAAA,CAChB,GAAImB,CAAAA,CAAAA,CAAwB/K,CAAAA,CAAAA,CAE1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOsK,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM0vB,CAAAA,CAAkB,CACtB3vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CACP0I,CAAAA,CAAAA,CAML,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAJAtR,CAAAA,CAAAA,CAAAA,CAAAA,CAAKu4B,CAAAA,CAAAA,CACH,CAAA,CAAA,CAAA,CAAMv4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKw4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBl6B,EAAWg6B,CAAAA,CAAAA,CAAiB32B,CAAAA,CAAAA,CAAAA,CAAAA,CAAMtD,CAAAA,CAAAA,CAAU2B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKy4B,CAAAA,CAAAA,CAAcp6B,CAAAA,CAAOi6B,CAAAA,CAAiBhmB,CAAAA,CAAAA,CAAAA,CAAQ3Q,KAAMgS,CAAAA,CAAAA,CAAQA,CAAAA,CAAAA,CAC3I,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEK2kB,CAAAA,CAAgB3vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACzB,CAMA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA8I,CAAe1O,EAAStH,CAAAA,CAAO6V,CAAAA,CAAMmS,CAAAA,CAAAA,CACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM6U,CAAAA,CAAkB,CACtB3vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACPoJ,CAAAA,CAAAA,CAEConB,CAAAA,CAAev3B,CAAAA,CAAsB4B,CAAAA,CAAAA,CAAWA,CAAAA,CAAUqE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOrE,CAAAA,CAAAA,CACjE41B,CAAAA,CAAYv3B,EAAY2B,CAAAA,CAAAA,CACxB61B,CAAAA,CAAgBD,CAAAA,CAAY34B,CAAAA,CAAAA,CAAAA,CAAAA,CAAK64B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBH,CAAAA,CAAcj9B,CAAAA,CAAO68B,CAAAA,CAAAA,CAAmBt4B,KAAKw4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBz1B,CAAAA,CAASu1B,CAAAA,CAAAA,CAKjI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAJAt4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKu4B,CAAAA,CAAAA,CACH,CAAA,CAAA,CAAA,CAAMK,CAAAA,CAAcj3B,KAAMtD,CAAAA,CAAAA,CAAU2B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKy4B,CAAAA,CAAAA,CAAcp6B,CAAAA,CAAOi6B,CAAAA,CAAiB7U,CAAAA,CAAAA,CAAAA,CAC/EkV,CAAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEnBL,CAAAA,CAAgB3vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACzB,CAMA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA+I,CAAarT,CAAAA,CAAOiT,CAAAA,CAAMmS,GACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM7a,CAAAA,CAAUV,CAAAA,CAAAA,CAAAA,CAAAA,CAChB,CAAA,CAAA,CAAIoJ,CAAAA,CAAAA,CAAME,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqBnI,CAAAA,CAAAA,CAAwBiI,CAAAA,CAAKE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE1D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO5I,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM0vB,CAAAA,CAAkB,CACtB3vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CACP0I,GAECP,CAAAA,CAAwB1S,CAAAA,CAAM0S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAyB,CAAA,CAAA,CACvD+nB,CAAAA,CAAoB/nB,CAAAA,CAAsB+nB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1CC,CAAAA,CAA6BhoB,CAAAA,CAAsBgoB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnDpE,CAAAA,CAAexM,CAAAA,CAAAA,CAAsB9pB,CAAAA,CAAMQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAKjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAJAmB,KAAKu4B,CAAAA,CAAAA,CACH,CAAA,CAAA,CAAA,CAAMv4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKy4B,CAAAA,CAAAA,CAAcp6B,CAAAA,CAAOi6B,CAAAA,CAAiBQ,CAAAA,CAAAA,CAAqBrV,CAAAA,CAAcsV,GACpFpE,CAAAA,CAAAA,CAEK2D,CAAAA,CAAgB3vB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACzB,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA2mB,CAAerlB,CAAAA,CAAAA,CACbjK,CAAAA,CAAAA,CAAAA,CAAAA,CAAKg5B,YAAY/uB,CAAAA,CAAAA,CACjBoB,CAAAA,CAAAA,CAAcpB,CAAAA,CAAS,CAAEE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CACjC,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAuP,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO1Z,CAAAA,CAAAA,CAAAA,CAAAA,CAAKi4B,CAAAA,CACd,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAxe,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOzZ,KAAKo3B,CACd,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAnG,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOjxB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK43B,CACd,CAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAqB,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOj5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKo3B,CAAAA,CAASpG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvB,CAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAjC,GACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO/uB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKk4B,CAAAA,CACd,CAUA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM9C,CAAMvC,CAAAA,CAAAA,CACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMsF,CAAAA,CAAYn4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKk4B,CAAAA,CAAAA,CAEvB,CAAA,CAAA,CADAl4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACL4W,CAAAA,CACH,OAAO,CAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuBl5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKm5B,CAAAA,CAAAA,CAAwBtG,CAAAA,CAAAA,CACpDuG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAyBjB,CAAAA,CAAU/C,MAAMvC,CAAAA,CAAAA,CAC/C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOqG,CAAAA,CAAAA,CAAkBE,CAC3B,CAUA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAMxG,CAAAA,CAAAA,CACV,MAAMjP,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe5jB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKo1B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMvC,CAAAA,CAAAA,CAGhC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAFA7yB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaqV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CAAA,CAC5B9uB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACHqC,CACT,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAgK,CAAAA,CAAAA,CACE,OAAO5tB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqM,CACd,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA6B,CAAkBorB,CAAAA,CAAAA,CAChBt5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKqM,CAAAA,CAAiB/O,CAAAA,CAAAA,CAAAA,CAAAA,CAAKg8B,CAAAA,CAC7B,CAKA,CAAA,CAAA,CAAA,CAAAnvB,CAAAA,CAAAA,CCnSF,CAAA,CAAA,CAAA,CAAiDqP,CAAAA,CAAAA,CDoSzCxZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAKu5B,MAKTv5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKo3B,CAAAA,CAAStX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa4O,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAG9zB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWA,CAAAA,CAAKyL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC5DrG,CAAAA,CAAAA,CAAAA,CAAAA,CAAKw5B,CAAAA,CAAAA,CAAAA,CAAAA,CCzSsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADgBhgB,CAAAA,CD2SHxZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAKo3B,CAAAA,CAAAA,CC1SrCvF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACVrY,EAAQigB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAyBjgB,CAAAA,CAAQkgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB78B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAG/D5B,CAAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CACbE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ+oB,CAAAA,CAAAA,CAAAA,CAAAA,CACN,oNDsSJ,CAMA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAyV,CAAqBC,CAAAA,CAAAA,CACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO55B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKs3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcsC,CAAAA,CAC5B,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAC,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOv+B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyE,CAAAA,CAAAA,CAAAA,CAAAA,CAAKs3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1B,CAQA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAAwC,CAAe/Z,CAAAA,CAAAA,CACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMga,CAAAA,CAAqB/5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKs3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcvX,CAAAA,CAAYnlB,OACrDm/B,CAAAA,CAAAA,CAAsBha,CAAAA,CAAYia,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrCja,CAAAA,CAAYia,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYh6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAE1BwgB,CAAAA,CAAAA,CAAiBxgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAM+f,EAAa/f,CAAAA,CAAAA,CAAAA,CAAAA,CAAKs3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpCyC,CAAAA,CAAAA,CACHzZ,CAAAA,CAAAA,CAAuBtgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAC+f,CAAAA,CAAAA,CAElC,CAIA,SAAAka,CAAU57B,CAAAA,CAAOiT,CAAAA,CAAO,IACtBtR,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmBljB,CAAAA,CAAOiT,CAAAA,CAAAA,CACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM4oB,CAAAA,CAAgBvI,CAAAA,CAAAA,CAA2BtzB,CAAAA,CAAO2B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxD,CAAA,CAAA,CAAA,CAAIm6B,EAAMrR,CAAAA,CAAAA,CAAoBzqB,CAAAA,CAAO2B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKi4B,CAAAA,CAAAA,CAAMj4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKo3B,CAAAA,CAASpG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWhxB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKo3B,EAASpO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWtY,CAAAA,CAAAA,CAAAA,CAAAA,CAAcY,CAAAA,CAAKT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe,CAAA,CAAA,CAC3CspB,CAAAA,CAAMjV,GAAkBiV,CAAAA,CAAKrT,CAAAA,CAAAA,CAA6BpW,CAAAA,CAAAA,CAAAA,CAExDwpB,CAAAA,CAAAA,CAAAA,CACFC,CAAAA,CAAMjV,CAAAA,CAAAA,CAAkBiV,CAAAA,CAAKD,CAAAA,CAAAA,CAAAA,CAE/Bl6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmxB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAagJ,CAAAA,CAAAA,CAAKx4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAMy4B,CAAAA,CAAAA,CAAiBp6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkBljB,EAAO+7B,CAAAA,CAAAA,CACnF,CAIA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAApB,CAAY/uB,CAAAA,CAAAA,CACV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASuvB,CAAAA,CAAqBtvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAauvB,CAAAA,CAA0BpZ,CAAAA,CAAAA,CAAAA,CAAwBlhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKo3B,CAAAA,CAC1G,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgBntB,CAAAA,CAAS,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMswB,CAAAA,CAAetwB,CAAAA,CAAQY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CACtC,CAAA,CAAA,CAAA,CAAK0vB,CAAAA,CAAazvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYuvB,CAAAA,CAE5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEFE,CAAAA,CAAazvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUyvB,CAAAA,CAAazvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWuvB,CAAAA,CAC/CE,EAAaxvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcwvB,CAAAA,CAAaxvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeuvB,CAAAA,CACvDrwB,CAAAA,CAAQY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ0vB,CAClB,CAAA,CAAA,CAAA,CAAA,CAAO,CACL,CAAA,CAAA,CAAA,CAAKtwB,CAAAA,CAAQa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYuvB,CAAAA,CAEvB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEFpwB,CAAAA,CAAQa,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUb,CAAAA,CAAQa,SAAWuvB,CAAAA,CACrCpwB,CAAAA,CAAQc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcd,CAAAA,CAAQc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeuvB,CAC/C,CACAt6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqBtX,CAAAA,CAAAA,CAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMkwB,CAAAA,ClB/VV,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+BlwB,CAAAA,CAAS2O,CAAAA,CAAKmQ,EAAUC,CAAAA,CAAAA,CACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAUjB,CAAAA,CAAAA,CAAgCe,CAAAA,CAAAA,CAOhD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOhE,CAAAA,CAAAA,CANiB,CACtB0E,QAAS,CAAA,CAAA,CAAA,CAAIxlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKD,CAAAA,CAAAA,CAAAA,CAAAA,CAAe0G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9Bue,CAAAA,CAAAA,CAAW,CAAEf,CAAAA,CAAAA,CAAAA,CAAKe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChBD,GAAUpQ,CAAAA,CAAAA,CAAO,CAAEA,CAAAA,CAAAA,CAAAA,CAAKD,CAAAA,CAAAA,CAAYC,CAAAA,CAAAA,CAAAA,CAAAA,CAGJ,CADlB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgB3O,CAAAA,CAAU,CAAC,CAAEpL,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAcoL,CAAAA,CAAAA,CAAW,CAAC,CAAEpL,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,WAAaoL,CAAAA,CAAQrD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEjH,CkBsVgB4zB,CAAsBvwB,CAAAA,CAASjK,CAAAA,CAAAA,CAAAA,CAAAA,CAAKi4B,CAAAA,CAAAA,CAAMj4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKo3B,EAASpG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWhxB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKo3B,CAAAA,CAASpO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7FhpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmxB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAagJ,CAAAA,CACpB,CAIA,kBAAApM,CAAmBhE,CAAAA,CAAQgK,CAAAA,CAAU0G,CAAAA,CAAQ,CAAA,CAAA,CAC3C,CAAA,CAAA,CAAIz6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKo3B,CAAAA,CAASsD,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,CACnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMn1B,CAAAA,CAAM,CAAA,CAAA,CAAGwkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAUgK,CAAAA,CAAAA,CAAAA,CAEzB/zB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKw3B,EAAUjyB,CAAAA,CAAAA,CAAAA,CAAQvF,CAAAA,CAAAA,CAAAA,CAAAA,CAAKw3B,CAAAA,CAAUjyB,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAKk1B,CACrD,CACF,CAIA,CAAA,CAAA3Z,CAAGG,CAAAA,CAAM/lB,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMy/B,CAAAA,CAAgB36B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKy3B,CAAAA,CAAOxW,GAAQjhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKy3B,CAAAA,CAAOxW,CAAAA,CAAAA,CAAAA,CAAyB,CAAA,CAAA,CAAA,CAAIqR,CAAAA,CAAAA,CAAAA,CAC7EsI,CAAAA,CAAiB,CAAA,CAAA,CAAA,CAAI1oB,CAAAA,CAAAA,CAAAA,CAAShX,CAAAA,CAAAA,CAAAA,CAAAA,CAAYgX,CAAAA,CAAAA,CAEhD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADAyoB,CAAAA,CAAc90B,CAAAA,CAAAA,CAAAA,CAAI+0B,CAAAA,CAAAA,CACX,CAAA,CAAA,CAAA,CAAA,CACLD,CAAAA,CAAc50B,OAAO60B,CAAAA,CAAAA,CAEzB,CAIA,CAAA,CAAA,CAAA,CAAArZ,CAAKN,CAAAA,CAAAA,CAAAA,CAAAA,CAAS7L,CAAAA,CAAAA,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMylB,CAAAA,CAAY76B,KAAKy3B,CAAAA,CAAOxW,CAAAA,CAAAA,CAC1B4Z,CAAAA,CAAAA,CACFA,CAAAA,CAAUr/B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASN,CAAAA,CAAAA,CAAaA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYka,CAAAA,CAAAA,CAEhD,CAKA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM+b,CAAahM,CAAAA,CAAAA,CAEjB,CAAA,CAAA,CADAnlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB4D,CAAAA,CAAAA,CACxBnlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKu5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBv5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKk4B,CAAAA,CAAAA,CAC5B,CAAA,CAAA,CAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMtU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAe5jB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKk4B,GAAWzD,CAAAA,CAAAA,CAAAA,CAAAA,CAAKtP,CAAAA,CAAAA,CAE1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADAnlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB4D,CAAAA,CAAAA,CACpBvB,CACT,OAASmG,CAAAA,CAAAA,CAEP,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CACT,CAGF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CACT,CASA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA+Q,CAAgB5/B,CAAAA,CAAAA,CAChB,CAUA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA6/B,CAAAA,CAAAA,CACA,CAGA,CAAA,CAAAvB,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM1Z,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAAA,CAAiB9f,CAAAA,CAAAA,CAAAA,CAAAA,CAAKo3B,CAAAA,CAC9Bp3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKs3B,chChaT,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2BzpB,CAAAA,CAAQiS,CAAAA,CAAAA,CACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMW,CAAAA,CAAmB,CAAA,CAAA,CAWzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAVAX,EAAatkB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASukB,CAAAA,CAAAA,CAAAA,CAChBA,CAAAA,CAAAA,CAAaia,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACfja,CAAAA,CAAYia,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAYnsB,CAAAA,CAAAA,CAAAA,CAAAA,CAG5BiS,CAAAA,CAAatkB,QAASukB,CAAAA,CAAAA,CAAAA,CAChBA,CAAAA,CAAAA,CACFS,CAAAA,CAAAA,CAAiB3S,CAAAA,CAAQkS,CAAAA,CAAaU,CAAAA,CAAAA,CAAAA,CAAAA,CAGnCA,CACT,CgCmZyBua,CAAkBh7B,CAAAA,CAAAA,CAAAA,CAAAA,CAAM8f,CAAAA,CAAAA,CAC7CQ,CAAAA,CAAAA,CAAuBtgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAM8f,CAAAA,CAC/B,CAEA,CAAA,CAAAmb,CAAwBhxB,CAAAA,CAAS5L,CAAAA,CAAAA,CAC/B,CAAA,CAAA,CAAA,CAAI68B,CAAAA,CAA4B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAhB78B,CAAAA,CAAM5C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClB0/B,CAAAA,CAAAA,CAAU,CAAA,CACd,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM7N,CAAAA,CAAajvB,CAAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpC,CAAA,CAAA,CAAI+uB,CAAAA,CAAY,CACd6N,CAAAA,CAAAA,CAAU,CAAA,CACVD,CAAAA,CAAAA,CAAY,CAAA,CACZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWE,CAAAA,CAAAA,CAAAA,CAAAA,CAAM9N,CAAAA,CACf,CAAA,CAAA,CAAA,CAA8B,CAAA,CAAA,CAAA,CAA1B8N,CAAAA,CAAGjyB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,CACnC8xB,CAAAA,CAAAA,CAAY,CAAA,CACZ,KACF,CAEJ,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMG,CAAAA,CAAwC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAnBpxB,CAAAA,CAAQM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACP8wB,CAAAA,CAAAA,CAAyC,IAAnBpxB,CAAAA,CAAQO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB6wB,CAAAA,CAAAA,CAAsBH,CAAAA,CAAAA,CAAAA,CAAAA,CAE9F7vB,CAAAA,CAAAA,CAAcpB,CAAAA,CAAS,CAAA,CAAA,CAAA,CAClBixB,CAAAA,CAAAA,CAAa,CAAE3wB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQvK,CAAAA,CAAAA,CAAAA,CAAAA,CAAKg4B,CAAAA,CAAAA,CAAAA,CAC/BxtB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQP,CAAAA,CAAQO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUvE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOk1B,CAAAA,CAAAA,CAAWD,CAAAA,CAAAA,CAAAA,CAAAA,CAE9Cl7B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKsvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAerlB,CAAAA,CAAAA,CAExB,CAWA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMkvB,CAAwBtG,CAAAA,CAAAA,CAC5B,IAAIyI,CAAAA,CAAS,CAAA,CACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQzI,CAAAA,CAAAA,CAAWyI,CAAAA,CAASzI,CAAAA,CAAAA,CAAS,CAEnC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADM,CAAA,CAAA,CAAA,CAAIhhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASgY,CAAAA,CAAAA,CAAYoJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAWpJ,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAC9C7pB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKu3B,CAAAA,CACR,OAAO,CAAA,CAET+D,CAAAA,CAAAA,CACF,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACT,CAEA,CAAA,CAAA/B,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqC,CAAA,CAAA,CAAA,CAA9Bv5B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaqV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAyC,CAAA,CAAA,CAAA,CAApB9uB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKk4B,CAAAA,CACrD,CAeA,CAAA,CAAAqD,CAAcl9B,CAAAA,CAAOiT,CAAAA,CAAMmS,CAAAA,CAAclR,CAAAA,CAAAA,CACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMiH,CAAAA,CAAUxZ,KAAKyZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACfqG,CAAAA,CAAe9f,CAAAA,CAAAA,CAAAA,CAAAA,CAAK65B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAQ1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAPKvoB,CAAAA,CAAKwO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBA,CAAAA,CAAajjB,SACrCyU,CAAAA,CAAKwO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAeA,CAAAA,CAAAA,CAEtB9f,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmBljB,CAAAA,CAAOiT,CAAAA,CAAAA,CAC/BjT,CAAAA,CAAMQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACT0T,CAAAA,CAAezE,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAezP,CAAAA,CAAMsK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY2I,CAAAA,CAAK3I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEhD+iB,GAAalS,CAAAA,CAASnb,CAAAA,CAAOiT,CAAAA,CAAMmS,CAAAA,CAAczjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAMuS,CAAAA,CAAAA,CAAgB5Q,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqsB,CAAAA,CAAAA,CAAAA,CAClF,CAAA,CAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAARA,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAEThuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKuhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoByM,EAAK1c,CAAAA,CAAAA,CACnC0c,CAAAA,CAAIhe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CACb0Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CAAA,CAAA,CAAA,CAAKsF,CAAAA,CAAIhe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU0Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUrT,CAAAA,CAAAA,CAAyBoO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1DuK,CAAAA,CAAIhe,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM0H,CAAAA,CAAyB8J,CAAAA,CAAAA,CAAmCxhB,KAAMyjB,CAAAA,CAAAA,CAKxE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAJAuK,CAAAA,CAAIjd,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB,CAC1B2G,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACGsW,CAAAA,CAAIjd,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEFid,GAEX,CAOA,CAAA,CAAAyK,CAAcp6B,CAAAA,CAAOiT,CAAAA,CAAO,CAAA,CAAA,CAAImS,CAAAA,CAAezP,KAAmBzB,CAAAA,CAAiBc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAIjF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOrT,CAAAA,CAAAA,CAAAA,CAAAA,CAAKw7B,CAAAA,CAAAA,CAAcn9B,CAAAA,CAAOiT,CAAAA,CAAMmS,CAAAA,CAAclR,CAAAA,CAAAA,CAAgB5Q,CAAAA,CAAAA,CAAAA,CAAAA,CAClE85B,CAAAA,CAAAA,CACQA,CAAAA,CAAW9yB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEnBohB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAaL,CAcA,CAAA,CAAAyR,CAAcn9B,CAAAA,CAAOiT,CAAAA,CAAMmS,CAAAA,CAAclR,CAAAA,CAAAA,CACvC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMiH,CAAAA,CAAUxZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAKyZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACfa,WAAEA,CAAAA,CAAAA,CAAed,CAAAA,CACjBkiB,CAAAA,CAAgBC,CAAAA,CAAAA,CAAmBt9B,CAAAA,CAAAA,CACnCoC,CAAAA,CAAUO,CAAAA,CAAAA,CAAa3C,CAAAA,CAAAA,CAEvBu9B,EAAkB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADNv9B,CAAAA,CAAMQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEhC,CAAA,CAAA,CAAA,CAAIg9B,CAAAA,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMvgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAyC,CAAA,CAAA,CAAA,CAAfhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA6B,CAAA,CAASD,CAAAA,CAAAA,CAAgBC,CAAAA,CAAAA,CAChFqa,CAAAA,CAAexM,CAAAA,CAAAA,CAAsB9pB,EAAMQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOmB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKu7B,CAAAA,CAAAA,CAAcl9B,CAAAA,CAAOiT,CAAAA,CAAMmS,CAAAA,CAAclR,CAAAA,CAAAA,CAAgB5Q,KAAMkqB,CAAAA,CAAAA,CAAAA,CACzE,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAbA,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM0K,CAAAA,CAAAA,CAAyB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGjC,CAAA,CAAA,CAAA,CADsD,IAA1BjlB,CAAAA,CAAK/R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMuuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAErC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOjC,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMjI,CAAAA,CAsIZ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2B/V,CAAAA,CAAQ2L,CAAAA,CAASnb,CAAAA,CAAOiT,CAAAA,CAAMwqB,CAAAA,CAAAA,CACvD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACJA,CAAAA,CAAArd,YACAA,CAAAA,CAAA+a,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEAA,CAAAA,CAAAA,CACEjgB,CAAAA,CACEwK,CAAAA,CAAAA,C1B5tBgC9oB,CAAAA,C0B4tBgBse,CAAAA,CAAQwK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,C1B3tBrD9oB,CAAAA,CAAAA,CAAgC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAbA,CAAAA,CAAAA,CAA2B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAaA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcA,CAAAA,CAAS8gC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,C0B2tBVxiB,CAAAA,CAAQwK,gB1B5tB3F,CAAA,CAAA,CAAA,CAAwC9oB,CAAAA,C0B6tBtC,CAAA,CAAA,CAAA,CAAI+gC,CAAAA,CAAiB59B,CAAAA,CACrB,CAAA,CAAA,CAAI2C,CAAAA,CAAAA,CAAai7B,CAAAA,CAAAA,CAAAA,CAAmBF,CAAAA,CAAY,CAC9C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMG,CAAAA,CAAaD,CAAAA,CACnB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOtY,CAAAA,CAAAA,CAC2E,CAAA,CAAA,CAChF,IAAMoY,CAAAA,CAAWG,CAAAA,CAAY5qB,CAAAA,CAAAA,CAC7B,CAAA,CAAA,CAAA,CAAA,CACEwqB,CAAAA,CAAAA,CAAAA,CACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAGb,CACA,CAAA,CAAA,CAAIH,GAAmBM,CAAAA,CAAAA,CAAiB,CACtC,CAAA,CAAA,CAAIjY,CAAAA,CAAAA,CAAkBtF,CAAAA,CAAa,CACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMiD,CAAAA,CErvBZ,SAA2CtjB,CAAAA,CAAAA,CACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMkX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAAM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUA,CAAAA,CAAAL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBA,CAAAA,CAAAjL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASA,CAAAA,CAAA+S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQA,CAAAA,CAAA/d,CAAAA,CAAAA,CAAAA,CAAAA,CAAQA,CAAAA,CAAA8d,CAAAA,CAAAA,CAAMA,CAAAA,CAAAA,CAAOhf,EAAM2R,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU0Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CACjG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLnpB,CAAAA,CAAAA,CAAAA,CAAAA,CAAMA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CACd0d,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa5e,CAAAA,CAAMskB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACnBtF,CAAAA,CAAAA,CAAAA,CAAAA,CACAxH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASA,GAAW,CAAA,CAAA,CACpB2H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB9e,CAAAA,CAAM8e,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,CAAA,CAC1C5S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQA,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAClBH,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW/L,CAAAA,CAAM+L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjBmL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUA,CAAAA,CAAAA,CAAY,CAAA,CAAA,CACtB+H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACA6e,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY58B,IAAOgX,CAAAA,CAAAA,CAAAA,CACnB6lB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB78B,CAAAA,CAAAA,CAAAA,CAAOiX,CAAAA,CAAAA,CAAAA,CACvB6lB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAch+B,CAAAA,CAAMg+B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpB/X,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,EAEhB,CFmuB2BgY,CAAkCL,CAAAA,CAAAA,CACvD,CAAA,CAAA,CAAIvd,CAAAA,CAAAA,CAAa7hB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU4hB,CAAAA,CAAAA,CACzB,CAAExB,YAAa0E,CAAAA,CAAa1E,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaI,CAAAA,CAAAA,CAAIsE,CAAAA,CAAatE,CAAAA,CAAAA,CAAItN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY4R,CAAAA,CAAapiB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvFmf,CAAAA,CAAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAAA,CAAA,CAET,CAAA,CAAA,CAAIsF,CAAAA,CAAgB,CAClB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMuY,CAAAA,CAAwBxY,GAA4BpC,CAAAA,CAAcqC,CAAAA,CAAAA,CACxEiY,CAAAA,CAAiBvwB,CAAAA,CAAAA,CAAMrN,CAAAA,CE1uBtB,CACLQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACNuL,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAHuC0M,CAAAA,CF2uB6BylB,CAAAA,CAAAA,CExuBpDnyB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChB+S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiBrG,CAAAA,CAAKqG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACtBwF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa7L,EAAKmG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClBjN,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAU,CACR0Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACLnT,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUuB,CAAAA,CAAKvB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACfC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASsB,CAAAA,CAAKtB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACdK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBiB,CAAAA,CAAKjB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACrBwH,CAAAA,CAAAA,CAAIvG,CAAAA,CAAKuG,GACT9S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQuM,CAAAA,CAAKvM,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACb+S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQxG,CAAAA,CAAKwG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACb/d,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CACDuX,EAAKvX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACLuX,CAAAA,CAAKqlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAc,CAAE5lB,CAACA,CAAAA,CAAAA,CAAAA,CAAgCO,CAAAA,CAAKqlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC3DrlB,EAAKslB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAkB,CAAE5lB,CAACA,CAAAA,CAAAA,CAAAA,CAAoCM,CAAAA,CAAKslB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAI5EC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcvlB,CAAAA,CAAKulB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CFutBjB,CACA,CAAA,CAAA,CAAIJ,CAAAA,CAAe3c,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMkd,CAAAA,CAAiB,GACjBC,CAAAA,CAAeR,CAAAA,CAAe3c,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWxI,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ2lB,CAAAA,CACb/d,CAAAA,CAAAA,CAAa7hB,QAAU4hB,CAAAA,CAAAA,CAAiB,CAAExB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAanG,CAAAA,CAAKmG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAaI,CAAAA,CAAAA,CAAIvG,CAAAA,CAAKuG,CAAAA,CAAAA,CAAItN,WAAY+G,CAAAA,CAAKvX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQmf,CAAAA,CAAAA,CACjHW,CAAAA,CAAAA,CAAmBod,CAAAA,CAAc3lB,CAAAA,CAAAA,CAG/BkN,CAAAA,CACFwY,CAAAA,CAAel/B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKymB,CAAAA,CAAAA,CAA4BjN,CAAAA,CAAMkN,CAAAA,CAAAA,CAAAA,CAEtDwY,CAAAA,CAAel/B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKwZ,CAAAA,CAAAA,CAGxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM4lB,EAAeT,CAAAA,CAAe3c,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMziB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS2/B,CAAAA,CAAe3/B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC9D6/B,CAAAA,CAAAA,CACF7uB,CAAAA,CAAOkgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,cAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ2O,CAAAA,CAAAA,CAEnDT,CAAAA,CAAe3c,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQkd,CACzB,CACF,CACA,CAAA,CAAA,CAAI/C,EAAuB,CACzB,CAAA,CAAA,CAAIwC,CAAAA,CAAe3c,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMqd,CAAAA,CAAkBV,CAAAA,CAAe3c,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMziB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7Co/B,CAAAA,CAAelrB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAwB,CAAA,CAAA,CAAA,CAClC1S,CAAAA,CAAM0S,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACT6rB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA2BD,EAE/B,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOhZ,CAAAA,CAAAA,CACsF,CAAA,CAAA,CAC3F,CAAA,CAAA,CAAA,CAAM8V,CAAAA,CAAsBwC,CAAAA,CAAgB3qB,CAAAA,CAAAA,CAC5C,CAAA,CAAA,CAAA,CAAA,CACEwqB,CAAAA,CAAAA,CAAAA,CACO,CAAA,CAAA,CAAA,CAAA,CAAA,CAGb,CACF,CEnxBF,CAAA,CAAA,CAAA,CAA2ChlB,CAAAA,CFoxBzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOmlB,CACT,CA/MqBY,CAAkB78B,CAAAA,CAAAA,CAAAA,CAAAA,CAAMwZ,CAAAA,CAASqS,CAAAA,CAAUva,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAC9DuqB,CAAAA,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEzB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAgHN,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmCiB,CAAAA,CAAkBlB,CAAAA,CAAAA,CACnD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMmB,CAAAA,CAAoB,CAAA,CAAA,CAAGnB,2CAC7B,CAAA,CAAA,CAAIn6B,CAAAA,CAAWq7B,CAAAA,CAAAA,CACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAiBn7B,CAAAA,CAAAA,CAAAA,CAAAA,CACrBtD,CAAAA,CAAAA,CAAAA,CACC,CAAA,CAAA,CAAA,CAAKgD,EAAchD,CAAAA,CAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVA,CAAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMi4B,CAAAA,CAAAA,CAAmByG,CAAAA,CAAAA,CAE3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO1+B,CAAAA,CAAAA,CAERgB,IACC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMi3B,CAAAA,CAAAA,CAAmB,CAAA,CAAA,CAAGsF,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiCv8B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,KAGvDgC,CAAAA,CAAcy7B,CAAAA,CAAAA,CAAAA,CAA0C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAArBA,CAAAA,CAC7C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMxG,CAAAA,CAAAA,CAAmByG,CAAAA,CAAAA,CAE3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOD,CACT,CAlIaE,CAA0BpZ,CAAAA,CAAQgY,CAAAA,CAAAA,CAAAA,CAAAA,CACxCj6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAMs6B,CAAAA,CAAAA,CAAAA,CACP,CAAA,CAAA,CAAuB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAnBA,CAAAA,CAAyB,CAE3B,CAAA,CAAA,CADAj8B,CAAAA,CAAAA,CAAAA,CAAAA,CAAK+tB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB8N,CAAAA,CAAsBlH,CAAAA,CAAAA,CAC1C+G,CAAAA,CAAe,CACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMpc,EAAQjhB,CAAAA,CAAMihB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAC7Btf,CAAAA,CAAAA,CAAAA,CAAAA,CAAK+tB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB8N,CAAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQ,CAAA,CAAIvc,CAAAA,CAAMziB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAClE,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM05B,CAAAA,CAAAA,CAAyB,CAAA,CAAA,CAAGqF,CAAAA,CAAAA,CAAAA,CAAAA,CADW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAzBC,EAA4C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAErF,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM5xB,CAAAA,CAAUwZ,CAAAA,CAAahU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB8C,CAAAA,CAAe9C,aAI5D,CAAA,CAAA,CAHIhP,CAAAA,CAAAA,CAAWwJ,CAAAA,CAAAA,CACbjK,CAAAA,CAAAA,CAAAA,CAAAA,CAAKi7B,CAAAA,CAAAA,CAAwBhxB,CAAAA,CAASgyB,CAAAA,CAAAA,CAEpCx7B,CAAAA,CAAAA,CAAuC,iBAArB6a,CAAAA,CAAAA,CAAiCzX,CAAAA,CAAAA,CAAAA,CAAmByX,CAAAA,CAExE,CAAA,CAAA,CAAA,CAAA,CAAA,CADAtb,CAAAA,CAAAA,CAAAA,CAAAA,CAAK+tB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjCwI,CAAAA,CAAAA,CACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAoFjc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGxF,CAAA,CAAA,CAAIohB,CAAAA,CAAe,CACjB,CAAA,CAAA,CAAA,CAAA,CAAA,CAEMuB,CAAAA,CAAAA,CAFkBhB,EAAelrB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAuB6rB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA6B,CAAA,CAAA,CAAA,CACpEX,CAAAA,CAAe3c,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ2c,CAAAA,CAAe3c,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMziB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CAAA,CAExEogC,CAAAA,CAAmB,CAAA,CAAA,CACrBj9B,CAAAA,CAAAA,CAAAA,CAAAA,CAAK+tB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQkP,CAAAA,CAEnD,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAkBjB,CAAAA,CAAekB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvC,CAAA,CAAA,CAAIzB,CAAAA,CAAAA,CAAiBwB,CAAAA,CAAAA,CAAmBjB,CAAAA,CAAetZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgBtkB,CAAAA,CAAMskB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAa,CACxF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM1gB,CAAAA,CAAS,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACfg6B,CAAAA,CAAekB,iBAAmB,CAAA,CAAA,CAAA,CAC7BD,CAAAA,CACHj7B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEJ,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADAjC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKi6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUgC,CAAAA,CAAgB3qB,GACxB2qB,CAAAA,CAAAA,CAAAA,CACNt6B,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CAAA,CAAOooB,CAAAA,CAAAA,CAAAA,CACb,CAAA,CAAA,CAjlBGzoB,CAAAA,CADuBxB,CAAAA,CAklBCiqB,CAAAA,CAAAA,CAAAA,CAjlBDsM,MAA4Bv2B,CAAAA,CAAAA,CAJ5D,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA0BA,CAAAA,CAAAA,CACxB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOwB,CAAAA,CAAaxB,CAAAA,CAAAA,CAAAA,CAAUs2B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAyBt2B,CACzD,CAmlB4Cs9B,CAAiBrT,CAAAA,CAAAA,CACrD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMA,CAAAA,CAnlBd,CAAA,CAAA,CAAA,CAAgCjqB,CAAAA,CA+lB1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAVAE,KAAKqR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB0Y,CAAAA,CAAQ,CAC5B5gB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CACTC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS,CAAA,CACTvK,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,YAERU,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CACJuuB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAAA,CAEdtc,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmBuY,CAAAA,CAAAA,CAAAA,CAEfuM,CAAAA,CAAAA,CACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACEvM,MAGR,CAIA,CAAA,CAAAwO,CAAS7F,CAAAA,CAAciC,CAAAA,CAAAA,CACrB30B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKu3B,CAAAA,CAAAA,CAAAA,CACAv3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAK03B,CAAAA,CAAe7xB,CAAAA,CAAAA,CAAAA,CAAI6sB,CAAAA,CAAAA,CAAc/wB,CAAAA,CAAAA,CAAAA,CAAAA,CACxCnD,CAAAA,CAAAA,CAAAA,CACCwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKu3B,CAAAA,CAAAA,CAAAA,CACE/4B,CAAAA,CAAAA,CAERurB,IACC/pB,CAAAA,CAAAA,CAAAA,CAAAA,CAAKu3B,CAAAA,CAAAA,CAAAA,CACDxN,CAAAA,CAAAA,CAAAA,CAAWoI,CAAAA,CAAAA,CAAAA,CACbnyB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK+tB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAmB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAkB4G,CAAAA,CAAAA,CAErC5K,GAGb,CAIA,CAAA,CAAAsT,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAWt9B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKw3B,CAAAA,CAEtB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CADAx3B,KAAKw3B,CAAAA,CAAY,CAAA,CAAA,CACVl8B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAO+H,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQi6B,CAAAA,CAAAA,CAAUlhC,CAAAA,CAAAA,CAAAA,CAAI,CAAA,CAAEmJ,CAAAA,CAAKg4B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACzC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOxT,CAAAA,CAAQgK,CAAAA,CAAAA,CAAYxuB,CAAAA,CAAI5I,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CACrC,MAAO,CACLotB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAgK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACAwJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAGN,CAIA,CAAA,CAAAC,CAAAA,CAAAA,CAEE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMF,CAAAA,CAAWt9B,CAAAA,CAAAA,CAAAA,CAAAA,CAAKq9B,CAAAA,CAAAA,CAAAA,CAAAA,CACtB,CAAA,CAAA,CAAwB,CAAA,CAAA,CAAA,CAApBC,CAAAA,CAASzgC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAEX,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEF,IAAKmD,CAAAA,CAAAA,CAAAA,CAAAA,CAAKi4B,CAAAA,CAAAA,CAER,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAGF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM9S,CAAAA,CAAAA,CGvsB0BsY,CAAAA,CHusBYH,CAAAA,CG/rBvCvY,CAAAA,CAAAA,CAAAA,CAR6CnM,CAAAA,CHusBI5Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAKo3B,CAAAA,CAASpO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUrQ,CAAAA,CAAAA,CAAY3Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAKi4B,CAAAA,CAAAA,CAAAA,CAAAA,CG/rBrE,CAAErf,OAAQ,CAAA,CAAA,CAAI,CAPjB,CACvB,CAAE/Z,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACR,CACEuL,UAAwBZ,CAAAA,CAAAA,CAAAA,CAAAA,CACxBi0B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CALN,CAAA,CAAA,CAAA,CAAoCA,CAAAA,CAAkB7kB,CAAAA,CHwsBlD5Y,CAAAA,CAAAA,CAAAA,CAAAA,CAAKmxB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAahM,CAAAA,CACpB,EA+FF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASnkB,CAAAA,CAAAA,CAAa3C,CAAAA,CAAAA,CACpB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAfA,CAAAA,CAAMQ,CAAAA,CAAAA,CAAAA,CACf,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS88B,CAAAA,CAAAA,CAAmBt9B,CAAAA,CAAAA,CAC1B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAsB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAfA,CAAAA,CAAMQ,CAAAA,CAAAA,CAAAA,CACf,CACA,SAASw5B,CAAAA,CAAAA,CAA0BqF,CAAAA,CAAAA,CACjC,CAAA,CAAA,CAAA,CAAI5G,CAAAA,CAAS,CAAA,CAKb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAJI4G,CAAAA,CAAO9iC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACTk8B,CAAAA,CAAAA,CAA+B,CAAA,CAArB4G,CAAAA,CAAO9iC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKiC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAExBi6B,CAAAA,CAAAA,CAAU,CAAA,CACHA,CAAAA,CAAS6G,GAA8BD,CAAAA,CAAO3tB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACvD,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASqoB,CAAAA,CAAAA,CAAuBxQ,CAAAA,CAAAA,CAC9B,CAAA,CAAA,CAAA,CAAIkP,CAAAA,CAAS,CAAA,CAIb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAHIlP,CAAAA,CAAI7kB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACN+zB,CAAAA,CAAAA,CAA+B,CAAA,CAArBlP,CAAAA,CAAI7kB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQlG,QAEjBi6B,CAAAA,CAAS6G,CAAAA,CAAAA,CAA8B/V,CAAAA,CAAI7X,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpD,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS4tB,CAAAA,CAAAA,CAA8B5tB,CAAAA,CAAAA,CACrC,IAAKA,CAAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAET,CAAA,CAAA,CAAA,CAAI+mB,CAAAA,CAAS,CAAA,CAUb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CATAx7B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOiD,OAAOwR,CAAAA,CAAAA,CAAYvU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASgD,CAAAA,CAAAA,CAAAA,CAC7BhB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMqJ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQrI,CAAAA,CAAAA,CAChBs4B,CAAAA,CAAAA,CAAUt4B,CAAAA,CAAM3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAS+gC,CAAAA,CAAAA,CAA6Bp/B,CAAAA,CAAM,CAAA,CAAA,CAAA,CACnD4C,CAAAA,CAAY5C,CAAAA,CAAAA,CACrBs4B,CAAAA,CAAAA,CAAU8G,CAAAA,CAAAA,CAA6Bp/B,GAEvCs4B,CAAAA,CAAAA,CAAU,CAAA,CAAA,CAAA,CAAA,CAAA,CAGPA,CACT,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAS8G,CAAAA,CAAAA,CAA6Bp/B,CAAAA,CAAAA,CACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAVA,CAAAA,CACa,CAAA,CAAfA,CAAAA,CAAM3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACa,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAV2B,CAAAA,CACT,CAAA,CACmB,kBAAVA,CAAAA,CACT,CAAA,CAEF,CACT,CIp0BA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASq/B,CAAAA,CAAAA,CAAiBhwB,CAAAA,CAAAA,CACxBmG,CAAAA,CAAAA,CAAAA,CAAAA,CAAkBpG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,CAAAA,CAC9B,CCvBA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMiwB,CAAAA,CAAAA,CAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACjBC,CAAAA,CAAAA,CAAyB,CAC7B,OACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,SACA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,UCjBF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASC,CAAAA,CAAAA,CAAoBz4B,CAAAA,CAAK04B,CAAAA,CAAUC,CAAAA,CAAAA,CAC1C,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAbD,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAME,CAAAA,CAAW54B,CAAAA,CAAI64B,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAErB,CAAA,CAAA,CATF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAwBC,EAAOC,CAAAA,CAAAA,CAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOA,CAAAA,CAAa5P,CAAAA,CAAAA,CAAAA,CAAAA,CAAM6P,CAAAA,CAAAA,CAAYF,CAAAA,CAAMlhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASohC,CAAAA,CAAAA,CACvD,CAOMC,CAAeL,CAAAA,CADsFJ,CAAAA,CAAAA,CAAAA,CAEvG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAET,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAbE,CAAAA,CACF,OAAO,CAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CACMQ,CAAAA,CAAAA,CADQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAUR,CAAAA,CAAWA,CAAAA,CAASS,CAAAA,CAAAA,CAAAA,CAAAA,CAAOT,CAAAA,CAASU,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACxBjQ,CAAAA,CAAAA,CAAAA,CAAAA,CAAMkQ,CAAAA,CAAAA,CAAST,CAAAA,CAAShhC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASyhC,CAAAA,CAAKR,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC1E,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,SAAUH,CAAAA,CAAWQ,CAAAA,CAAAA,CAAyBA,CACvD,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASI,CAAAA,CAAAA,CAAmBt/B,CAAAA,CAAM0+B,CAAAA,CAAUC,GAC1C,CAAA,CAAA,CAAA,CAAiB,CAAA,CAAA,CAAA,CAAbD,CAAAA,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMra,CAAAA,CAAS,CAAA,CAAA,CACf,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAWre,CAAAA,CAAAA,CAAAA,CAAAA,CAAOjK,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOC,CAAAA,CAAAA,CAAAA,CAAAA,CAAKgE,CAAAA,CAAAA,CAC5BqkB,CAAAA,CAAOre,CAAAA,CAAAA,CAAOy4B,CAAAA,CAAAA,CAAoBz4B,CAAAA,CAAK04B,CAAAA,CAAAA,CAAiCH,CAAAA,CAAAA,CAAiBv+B,CAAAA,CAAKgG,CAAAA,CAAAA,CAEhG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOqe,CACT,CC5BA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASkb,CAAAA,CAAAA,CAAel/B,CAAAA,CAAKq+B,CAAAA,CAAAA,CAC3B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMc,CAAAA,CAAgBn/B,CAAAA,CAAIX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAC5B+/B,CAAAA,CAAAA,CAA6B,CAAA,CAAA,CAAA,CAAlBD,CAAAA,CAAuBn/B,CAAAA,CAAI/C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASkiC,CAAAA,CAC/CE,EAAar/B,CAAAA,CAAIX,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAC/B,CAAA,CAAA,CAAA,CAAmB,CAAA,CAAA,CAAA,CAAfggC,CAAAA,CAAAA,CAAqBA,CAAAA,CAAaD,CAAAA,CACpC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOp/B,CAAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMs/B,CAAAA,CAASt/B,CAAAA,CAAI7C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAGkiC,CAAAA,CAAAA,CACtBE,EAAQv/B,CAAAA,CAAI7C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMkiC,CAAAA,CAAa,CAAA,CAAGD,CAAAA,CAAAA,CAClCI,CAAAA,CAASx/B,CAAAA,CAAI7C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMiiC,GACnBK,CAAAA,CCTR,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA2BC,CAAAA,CAAarB,CAAAA,CAAAA,CACtC,CAAA,CAAA,CAAKqB,CAAAA,CAAAA,CAAAA,CAA4B,CAAA,CAAA,CAAA,CAAbrB,CAAAA,CAGpB,OAAOqB,CAAAA,CAAY3iC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAA,CAAKP,CAAAA,CAAAA,CAAAA,CAAKmjC,CAAAA,CAAAA,CAAAA,CACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMC,CAAAA,CAAiBD,CAAAA,CAAKtgC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAC9BwgC,CAAAA,CAAAA,KAAaD,CAAAA,CAAwBD,CAAAA,CAAOA,CAAAA,CAAKxiC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM,EAAGyiC,CAAAA,CAAAA,CAC1Dj6B,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAIwqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAgB,CAAA,CAAA,CAAG0P,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAelkC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOyqB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAOxnB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAChE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAAR+G,CAAAA,CAAAA,CAAkBy4B,CAAAA,CAAAA,CAAoBz4B,CAAAA,CAAK04B,CAAAA,CAAAA,CAAY,CAAA,CAAA,CAAGwB,KAAc3B,CAAAA,CAAAA,CAAAA,CAAAA,CAAmByB,CAAAA,CAAAA,CAAAA,CACjGrlB,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,CAAA,CAAA,CAAA,CACV,CDDmBwlB,CAAkBP,CAAAA,CAAOlB,CAAAA,CAAAA,CAC1C,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOoB,CAAAA,CAAW,CAAA,CAAA,CAAGH,CAAAA,CAAAA,CAAAA,CAAAA,CAAUG,CAAAA,CAAAA,CAAAA,CAAWD,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAGF,CAAAA,CAAAA,CAAAA,CAASE,GACnE,CEPA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASO,CAAAA,CAAAA,CAAmB//B,CAAAA,CAAKiO,CAAAA,CAAAA,CAC/B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAe,CAAA,CAAA,CAAA,CAARjO,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAiB,EAASk/B,CAAAA,CAAAA,CAAel/B,CAAAA,CAJlD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgCiO,CAAAA,CAAAA,CAC9B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAQA,CAAAA,CAAAA,CAAUG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcijB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAA2BwE,iBAAkB,CAC/E,CAEuDmK,CAAuB/xB,CAAAA,CAAAA,CAC9E,CCkGA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASgyB,CAAAA,CAAAA,CAASjgC,CAAAA,CAAAA,CAChB,CAAA,CAAA,CAAA,CAAKA,CAAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMia,CAAAA,CAAQja,CAAAA,CAAIia,MAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACxB,CAAA,CAAA,CAAA,CAAKA,CAAAA,CACH,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CAAA,CAAA,CAET,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMslB,CAAAA,CAAQtlB,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CACpBimB,CAAAA,CAAWjmB,CAAAA,CAAM,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAO,CACLf,CAAAA,CAAAA,CAAAA,CAAAA,CAAMe,CAAAA,CAAM,CAAA,CAAA,CACZd,CAAAA,CAAAA,CAAAA,CAAAA,CAAMc,CAAAA,CAAM,CAAA,CAAA,CACZV,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUU,CAAAA,CAAM,CAAA,CAAA,CAChBkmB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQZ,CAAAA,CACRa,CAAAA,CAAAA,CAAAA,CAAAA,CAAMF,CAAAA,CACNG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUpmB,CAAAA,CAAM,CAAA,CAAA,CAAKslB,EAAQW,CAAAA,CAGjC,CC9HA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASI,CAAAA,CAAAA,CAA0Bj2B,CAAAA,CAAAA,CAC7B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAgBA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACoB,CAAA,CAAA,CAAA,CAAlCA,EAAQY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAC9BZ,CAAAA,CAAQY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAQ,CAAA,CAAA,CAAA,CACXZ,CAAAA,CAAQY,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACXG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,kBAIU,CAAA,CAAA,CAAA,CAAtBf,CAAAA,CAAQgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACVhB,CAAAA,CAAQgB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAG1B,CCPA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMk1B,CAAAA,CAAAA,CAAsB,CAAA,CAAA,CAAA,CAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAASjwB,CAAAA,CAAAA,CAAcC,CAAAA,CAAYmB,CAAAA,CAAAA,CACjC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMzD,CAAAA,CAASG,KACTuE,CAAAA,CAAiBc,CAAAA,CAAAA,CAAAA,CAAAA,CACvB,CAAA,CAAA,CAAA,CAAKxF,CAAAA,CAAQ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACb,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMuyB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAEA,CAAAA,CAAmB,KAAAhwB,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAMA,CAAAA,CAAiB+vB,CAAAA,CAAAA,CAAAA,CAAwBtyB,CAAAA,CAAO4L,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACjF,CAAA,CAAA,CAAIrJ,CAAAA,CAAAA,CAAkB,CAAA,CAAG,OACzB,CAAA,CAAA,CAAA,CAAA,CAAA,CACME,CAAAA,CAAmB,CAAElG,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CADTZ,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACuB2G,CAAAA,CAAAA,CACnCkwB,CAAAA,CAAkBD,CAAAA,CAAmBzc,CAAAA,CAAAA,CACkD,CAAA,CAAA,CAC3F,CAAA,CAAA,CAAA,CAAM1oB,CAAAA,CAAe,CAAA,CAAA,CAAA,CAAMmlC,CAAAA,CAAiB9vB,CAAAA,CAAkBgB,CAAAA,CAAAA,CAAAA,CAC9D,IAAM,CAAA,CAAA,CAAA,CAAA,CAAA,CACJhB,CAAAA,CACoB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAApB+vB,CAAAA,CAAAA,CAAAA,CACAxyB,CAAAA,CAAO0T,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACT1T,CAAAA,CAAO0T,CAAAA,CAAAA,CAAAA,CAAAA,CAAK,sBAAuB8e,CAAAA,CAAiB/uB,CAAAA,CAAAA,CAEtDiB,CAAAA,CAAerC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAcmwB,CAAAA,CAAiBjwB,CAAAA,CAAAA,CAChD,CCrBA,CAAA,CAAA,CAAA,CAAA,CAAA,CACMkwB,OAAoC/X,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CA0BpCgY,CAAAA,CAAAA,MAxBG,CACL3lC,CAAAA,CAAAA,CAAAA,CAAAA,CAJqB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAKrB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA8lB,CAAAA,CAAAA,CACE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAM8f,CAAAA,CAA2BC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASlgC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CACpD,CAAA,CAAA,CAAA,CACEigC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAASlgC,UAAUC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAY0R,CAAAA,CAAAA,CACxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAMwuB,CAAAA,CAAmB/9B,CAAAA,CAAoB3C,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAC7C,CAAA,CAAA,CAAA,CAAI2gC,CAAAA,CACJ,CAAA,CAAA,CAAA,CACML,CAAAA,CAAAA,CAAc16B,CAAAA,CAAAA,CAAAA,CAAIoI,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAqC,CAAA,CAAA,CAAA,CAArB0yB,CAAAA,CAAAA,CAAAA,CACpCC,CAAAA,CAAoBD,EAExB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAOF,CAAAA,CAAyBzgC,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAM4gC,CAAAA,CAAAA,CAAqB3gC,CAAAA,CAAAA,CAAAA,CAAAA,CAAMkS,CAAAA,CACnE,CACF,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CACF,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAAyO,CAAM9S,GACJyyB,CAAAA,CAAAA,CAAc1Z,CAAAA,CAAAA,CAAAA,CAAI/Y,CAAAA,CAAAA,CAAQ,CAAA,CAC5B,CAAA,CAAA,CAAA,CCrBE+yB,CAAAA,CAAAA,CAAwB,CAC5B,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,gDACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAEA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA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AAA,CAAA,CAAMiqC,CAAAA,CAAAA,CACJ,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,C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AAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,0BACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CACA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,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","x_google_ignoreList":[28]}