// Code generated by protoc-gen-ts_proto. DO NOT EDIT.
// versions:
//   protoc-gen-ts_proto  v2.7.7
//   protoc               v6.33.0
// source: protos/perfetto/config/perfetto_config.proto

    /* eslint-disable */
import { BinaryWriter, BinaryReader } from '/@bufbuild/protobuf/wire/index.js';

export const protobufPackage = 'perfetto.protos';

export enum VmCursorEnum {
VM_CURSOR_UNSPECIFIED = 0,
VM_CURSOR_SRC = 1,
VM_CURSOR_DST = 2,
VM_CURSOR_BOTH = 3,
UNRECOGNIZED = -1,
}

export function vmCursorEnumFromJSON(object: any): VmCursorEnum {
switch (object) {
case 0:
      case "VM_CURSOR_UNSPECIFIED":
        return VmCursorEnum.VM_CURSOR_UNSPECIFIED;
case 1:
      case "VM_CURSOR_SRC":
        return VmCursorEnum.VM_CURSOR_SRC;
case 2:
      case "VM_CURSOR_DST":
        return VmCursorEnum.VM_CURSOR_DST;
case 3:
      case "VM_CURSOR_BOTH":
        return VmCursorEnum.VM_CURSOR_BOTH;
case -1:
        case "UNRECOGNIZED":
        default:
          return VmCursorEnum.UNRECOGNIZED;
}
}

export function vmCursorEnumToJSON(object: VmCursorEnum): string {
switch (object) {
case VmCursorEnum.VM_CURSOR_UNSPECIFIED: return "VM_CURSOR_UNSPECIFIED";
case VmCursorEnum.VM_CURSOR_SRC: return "VM_CURSOR_SRC";
case VmCursorEnum.VM_CURSOR_DST: return "VM_CURSOR_DST";
case VmCursorEnum.VM_CURSOR_BOTH: return "VM_CURSOR_BOTH";
case VmCursorEnum.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * Builtin clock domains used in Perfetto traces.
 * 
 * The default trace time clock is BUILTIN_CLOCK_TRACE_FILE: a synthetic clock
 * representing the trace file's own timeline. Each trace file gets its own
 * instance (scoped by trace file index).
 * 
 * For backwards compatibility, Perfetto proto traces register BOOTTIME as a
 * fallback: if the first timestamp conversion uses a clock other than the
 * trace file clock and no explicit clock snapshot data exists, the trace time
 * is switched to BOOTTIME. This fallback does not fire for modern traces that
 * include ClockSnapshots or that only use the trace file clock directly.
 * 
 * The `primary_trace_clock` field in ClockSnapshot can definitively override
 * the trace time clock regardless of the above.
 */
export enum BuiltinClock {
BUILTIN_CLOCK_UNKNOWN = 0,
/** BUILTIN_CLOCK_REALTIME - Corresponds to CLOCK_REALTIME. See clock_gettime(2). */
BUILTIN_CLOCK_REALTIME = 1,
/** BUILTIN_CLOCK_REALTIME_COARSE - Corresponds to CLOCK_REALTIME_COARSE. See clock_gettime(2). */
BUILTIN_CLOCK_REALTIME_COARSE = 2,
/** BUILTIN_CLOCK_MONOTONIC - Corresponds to CLOCK_MONOTONIC. See clock_gettime(2). */
BUILTIN_CLOCK_MONOTONIC = 3,
/** BUILTIN_CLOCK_MONOTONIC_COARSE - Corresponds to CLOCK_MONOTONIC_COARSE. See clock_gettime(2). */
BUILTIN_CLOCK_MONOTONIC_COARSE = 4,
/** BUILTIN_CLOCK_MONOTONIC_RAW - Corresponds to CLOCK_MONOTONIC_RAW. See clock_gettime(2). */
BUILTIN_CLOCK_MONOTONIC_RAW = 5,
/**
 * BUILTIN_CLOCK_BOOTTIME - Corresponds to CLOCK_BOOTTIME. See clock_gettime(2).
 * For proto traces, this is used as a backwards-compatible fallback trace
 * time clock when no explicit clock snapshots are present.
 */
BUILTIN_CLOCK_BOOTTIME = 6,
/** BUILTIN_CLOCK_TSC - TSC (Time Stamp Counter). Architecture-specific high-resolution counter. */
BUILTIN_CLOCK_TSC = 9,
/** BUILTIN_CLOCK_PERF - Corresponds to the perf event clock (PERF_CLOCK). */
BUILTIN_CLOCK_PERF = 10,
/**
 * BUILTIN_CLOCK_TRACE_FILE - A synthetic clock representing the trace file's own timeline. Each trace
 * file gets its own instance (scoped by trace file index). This is the
 * default trace time clock before any clock snapshot or format-specific
 * override takes effect.
 */
BUILTIN_CLOCK_TRACE_FILE = 11,
BUILTIN_CLOCK_MAX_ID = 63,
UNRECOGNIZED = -1,
}

export function builtinClockFromJSON(object: any): BuiltinClock {
switch (object) {
case 0:
      case "BUILTIN_CLOCK_UNKNOWN":
        return BuiltinClock.BUILTIN_CLOCK_UNKNOWN;
case 1:
      case "BUILTIN_CLOCK_REALTIME":
        return BuiltinClock.BUILTIN_CLOCK_REALTIME;
case 2:
      case "BUILTIN_CLOCK_REALTIME_COARSE":
        return BuiltinClock.BUILTIN_CLOCK_REALTIME_COARSE;
case 3:
      case "BUILTIN_CLOCK_MONOTONIC":
        return BuiltinClock.BUILTIN_CLOCK_MONOTONIC;
case 4:
      case "BUILTIN_CLOCK_MONOTONIC_COARSE":
        return BuiltinClock.BUILTIN_CLOCK_MONOTONIC_COARSE;
case 5:
      case "BUILTIN_CLOCK_MONOTONIC_RAW":
        return BuiltinClock.BUILTIN_CLOCK_MONOTONIC_RAW;
case 6:
      case "BUILTIN_CLOCK_BOOTTIME":
        return BuiltinClock.BUILTIN_CLOCK_BOOTTIME;
case 9:
      case "BUILTIN_CLOCK_TSC":
        return BuiltinClock.BUILTIN_CLOCK_TSC;
case 10:
      case "BUILTIN_CLOCK_PERF":
        return BuiltinClock.BUILTIN_CLOCK_PERF;
case 11:
      case "BUILTIN_CLOCK_TRACE_FILE":
        return BuiltinClock.BUILTIN_CLOCK_TRACE_FILE;
case 63:
      case "BUILTIN_CLOCK_MAX_ID":
        return BuiltinClock.BUILTIN_CLOCK_MAX_ID;
case -1:
        case "UNRECOGNIZED":
        default:
          return BuiltinClock.UNRECOGNIZED;
}
}

export function builtinClockToJSON(object: BuiltinClock): string {
switch (object) {
case BuiltinClock.BUILTIN_CLOCK_UNKNOWN: return "BUILTIN_CLOCK_UNKNOWN";
case BuiltinClock.BUILTIN_CLOCK_REALTIME: return "BUILTIN_CLOCK_REALTIME";
case BuiltinClock.BUILTIN_CLOCK_REALTIME_COARSE: return "BUILTIN_CLOCK_REALTIME_COARSE";
case BuiltinClock.BUILTIN_CLOCK_MONOTONIC: return "BUILTIN_CLOCK_MONOTONIC";
case BuiltinClock.BUILTIN_CLOCK_MONOTONIC_COARSE: return "BUILTIN_CLOCK_MONOTONIC_COARSE";
case BuiltinClock.BUILTIN_CLOCK_MONOTONIC_RAW: return "BUILTIN_CLOCK_MONOTONIC_RAW";
case BuiltinClock.BUILTIN_CLOCK_BOOTTIME: return "BUILTIN_CLOCK_BOOTTIME";
case BuiltinClock.BUILTIN_CLOCK_TSC: return "BUILTIN_CLOCK_TSC";
case BuiltinClock.BUILTIN_CLOCK_PERF: return "BUILTIN_CLOCK_PERF";
case BuiltinClock.BUILTIN_CLOCK_TRACE_FILE: return "BUILTIN_CLOCK_TRACE_FILE";
case BuiltinClock.BUILTIN_CLOCK_MAX_ID: return "BUILTIN_CLOCK_MAX_ID";
case BuiltinClock.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * Semantic types for string fields. This tells the filter what kind of
 * data the field contains, so it can apply the right filtering rules.
 * See /rfcs/0011-subset-string-filter-rules.md for design details.
 * Introduced in: Perfetto v54.
 */
export enum SemanticType {
SEMANTIC_TYPE_UNSPECIFIED = 0,
SEMANTIC_TYPE_ATRACE = 1,
SEMANTIC_TYPE_JOB = 2,
SEMANTIC_TYPE_WAKELOCK = 3,
UNRECOGNIZED = -1,
}

export function semanticTypeFromJSON(object: any): SemanticType {
switch (object) {
case 0:
      case "SEMANTIC_TYPE_UNSPECIFIED":
        return SemanticType.SEMANTIC_TYPE_UNSPECIFIED;
case 1:
      case "SEMANTIC_TYPE_ATRACE":
        return SemanticType.SEMANTIC_TYPE_ATRACE;
case 2:
      case "SEMANTIC_TYPE_JOB":
        return SemanticType.SEMANTIC_TYPE_JOB;
case 3:
      case "SEMANTIC_TYPE_WAKELOCK":
        return SemanticType.SEMANTIC_TYPE_WAKELOCK;
case -1:
        case "UNRECOGNIZED":
        default:
          return SemanticType.UNRECOGNIZED;
}
}

export function semanticTypeToJSON(object: SemanticType): string {
switch (object) {
case SemanticType.SEMANTIC_TYPE_UNSPECIFIED: return "SEMANTIC_TYPE_UNSPECIFIED";
case SemanticType.SEMANTIC_TYPE_ATRACE: return "SEMANTIC_TYPE_ATRACE";
case SemanticType.SEMANTIC_TYPE_JOB: return "SEMANTIC_TYPE_JOB";
case SemanticType.SEMANTIC_TYPE_WAKELOCK: return "SEMANTIC_TYPE_WAKELOCK";
case SemanticType.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/** Values from NDK's android/log.h. */
export enum AndroidLogId {
/** LID_DEFAULT - MAIN. */
LID_DEFAULT = 0,
LID_RADIO = 1,
LID_EVENTS = 2,
LID_SYSTEM = 3,
LID_CRASH = 4,
LID_STATS = 5,
LID_SECURITY = 6,
LID_KERNEL = 7,
UNRECOGNIZED = -1,
}

export function androidLogIdFromJSON(object: any): AndroidLogId {
switch (object) {
case 0:
      case "LID_DEFAULT":
        return AndroidLogId.LID_DEFAULT;
case 1:
      case "LID_RADIO":
        return AndroidLogId.LID_RADIO;
case 2:
      case "LID_EVENTS":
        return AndroidLogId.LID_EVENTS;
case 3:
      case "LID_SYSTEM":
        return AndroidLogId.LID_SYSTEM;
case 4:
      case "LID_CRASH":
        return AndroidLogId.LID_CRASH;
case 5:
      case "LID_STATS":
        return AndroidLogId.LID_STATS;
case 6:
      case "LID_SECURITY":
        return AndroidLogId.LID_SECURITY;
case 7:
      case "LID_KERNEL":
        return AndroidLogId.LID_KERNEL;
case -1:
        case "UNRECOGNIZED":
        default:
          return AndroidLogId.UNRECOGNIZED;
}
}

export function androidLogIdToJSON(object: AndroidLogId): string {
switch (object) {
case AndroidLogId.LID_DEFAULT: return "LID_DEFAULT";
case AndroidLogId.LID_RADIO: return "LID_RADIO";
case AndroidLogId.LID_EVENTS: return "LID_EVENTS";
case AndroidLogId.LID_SYSTEM: return "LID_SYSTEM";
case AndroidLogId.LID_CRASH: return "LID_CRASH";
case AndroidLogId.LID_STATS: return "LID_STATS";
case AndroidLogId.LID_SECURITY: return "LID_SECURITY";
case AndroidLogId.LID_KERNEL: return "LID_KERNEL";
case AndroidLogId.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export enum AndroidLogPriority {
PRIO_UNSPECIFIED = 0,
/** PRIO_UNUSED - _DEFAULT, but should never be seen in logs. */
PRIO_UNUSED = 1,
PRIO_VERBOSE = 2,
PRIO_DEBUG = 3,
PRIO_INFO = 4,
PRIO_WARN = 5,
PRIO_ERROR = 6,
PRIO_FATAL = 7,
UNRECOGNIZED = -1,
}

export function androidLogPriorityFromJSON(object: any): AndroidLogPriority {
switch (object) {
case 0:
      case "PRIO_UNSPECIFIED":
        return AndroidLogPriority.PRIO_UNSPECIFIED;
case 1:
      case "PRIO_UNUSED":
        return AndroidLogPriority.PRIO_UNUSED;
case 2:
      case "PRIO_VERBOSE":
        return AndroidLogPriority.PRIO_VERBOSE;
case 3:
      case "PRIO_DEBUG":
        return AndroidLogPriority.PRIO_DEBUG;
case 4:
      case "PRIO_INFO":
        return AndroidLogPriority.PRIO_INFO;
case 5:
      case "PRIO_WARN":
        return AndroidLogPriority.PRIO_WARN;
case 6:
      case "PRIO_ERROR":
        return AndroidLogPriority.PRIO_ERROR;
case 7:
      case "PRIO_FATAL":
        return AndroidLogPriority.PRIO_FATAL;
case -1:
        case "UNRECOGNIZED":
        default:
          return AndroidLogPriority.UNRECOGNIZED;
}
}

export function androidLogPriorityToJSON(object: AndroidLogPriority): string {
switch (object) {
case AndroidLogPriority.PRIO_UNSPECIFIED: return "PRIO_UNSPECIFIED";
case AndroidLogPriority.PRIO_UNUSED: return "PRIO_UNUSED";
case AndroidLogPriority.PRIO_VERBOSE: return "PRIO_VERBOSE";
case AndroidLogPriority.PRIO_DEBUG: return "PRIO_DEBUG";
case AndroidLogPriority.PRIO_INFO: return "PRIO_INFO";
case AndroidLogPriority.PRIO_WARN: return "PRIO_WARN";
case AndroidLogPriority.PRIO_ERROR: return "PRIO_ERROR";
case AndroidLogPriority.PRIO_FATAL: return "PRIO_FATAL";
case AndroidLogPriority.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export enum ProtoLogLevel {
PROTOLOG_LEVEL_UNDEFINED = 0,
PROTOLOG_LEVEL_DEBUG = 1,
PROTOLOG_LEVEL_VERBOSE = 2,
PROTOLOG_LEVEL_INFO = 3,
PROTOLOG_LEVEL_WARN = 4,
PROTOLOG_LEVEL_ERROR = 5,
PROTOLOG_LEVEL_WTF = 6,
UNRECOGNIZED = -1,
}

export function protoLogLevelFromJSON(object: any): ProtoLogLevel {
switch (object) {
case 0:
      case "PROTOLOG_LEVEL_UNDEFINED":
        return ProtoLogLevel.PROTOLOG_LEVEL_UNDEFINED;
case 1:
      case "PROTOLOG_LEVEL_DEBUG":
        return ProtoLogLevel.PROTOLOG_LEVEL_DEBUG;
case 2:
      case "PROTOLOG_LEVEL_VERBOSE":
        return ProtoLogLevel.PROTOLOG_LEVEL_VERBOSE;
case 3:
      case "PROTOLOG_LEVEL_INFO":
        return ProtoLogLevel.PROTOLOG_LEVEL_INFO;
case 4:
      case "PROTOLOG_LEVEL_WARN":
        return ProtoLogLevel.PROTOLOG_LEVEL_WARN;
case 5:
      case "PROTOLOG_LEVEL_ERROR":
        return ProtoLogLevel.PROTOLOG_LEVEL_ERROR;
case 6:
      case "PROTOLOG_LEVEL_WTF":
        return ProtoLogLevel.PROTOLOG_LEVEL_WTF;
case -1:
        case "UNRECOGNIZED":
        default:
          return ProtoLogLevel.UNRECOGNIZED;
}
}

export function protoLogLevelToJSON(object: ProtoLogLevel): string {
switch (object) {
case ProtoLogLevel.PROTOLOG_LEVEL_UNDEFINED: return "PROTOLOG_LEVEL_UNDEFINED";
case ProtoLogLevel.PROTOLOG_LEVEL_DEBUG: return "PROTOLOG_LEVEL_DEBUG";
case ProtoLogLevel.PROTOLOG_LEVEL_VERBOSE: return "PROTOLOG_LEVEL_VERBOSE";
case ProtoLogLevel.PROTOLOG_LEVEL_INFO: return "PROTOLOG_LEVEL_INFO";
case ProtoLogLevel.PROTOLOG_LEVEL_WARN: return "PROTOLOG_LEVEL_WARN";
case ProtoLogLevel.PROTOLOG_LEVEL_ERROR: return "PROTOLOG_LEVEL_ERROR";
case ProtoLogLevel.PROTOLOG_LEVEL_WTF: return "PROTOLOG_LEVEL_WTF";
case ProtoLogLevel.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * This enum is obtained by post-processing
 * AOSP/frameworks/proto_logging/stats/atoms.proto through
 * AOSP/external/perfetto/tools/update-statsd-descriptor, which extracts one
 * enum value for each proto field defined in the upstream atoms.proto.
 */
export enum AtomId {
ATOM_UNSPECIFIED = 0,
ATOM_BLE_SCAN_STATE_CHANGED = 2,
ATOM_PROCESS_STATE_CHANGED = 3,
ATOM_BLE_SCAN_RESULT_RECEIVED = 4,
ATOM_SENSOR_STATE_CHANGED = 5,
ATOM_GPS_SCAN_STATE_CHANGED = 6,
ATOM_SYNC_STATE_CHANGED = 7,
ATOM_SCHEDULED_JOB_STATE_CHANGED = 8,
ATOM_SCREEN_BRIGHTNESS_CHANGED = 9,
ATOM_WAKELOCK_STATE_CHANGED = 10,
ATOM_LONG_PARTIAL_WAKELOCK_STATE_CHANGED = 11,
ATOM_MOBILE_RADIO_POWER_STATE_CHANGED = 12,
ATOM_WIFI_RADIO_POWER_STATE_CHANGED = 13,
ATOM_ACTIVITY_MANAGER_SLEEP_STATE_CHANGED = 14,
ATOM_MEMORY_FACTOR_STATE_CHANGED = 15,
ATOM_EXCESSIVE_CPU_USAGE_REPORTED = 16,
ATOM_CACHED_KILL_REPORTED = 17,
ATOM_PROCESS_MEMORY_STAT_REPORTED = 18,
ATOM_LAUNCHER_EVENT = 19,
ATOM_BATTERY_SAVER_MODE_STATE_CHANGED = 20,
ATOM_DEVICE_IDLE_MODE_STATE_CHANGED = 21,
ATOM_DEVICE_IDLING_MODE_STATE_CHANGED = 22,
ATOM_AUDIO_STATE_CHANGED = 23,
ATOM_MEDIA_CODEC_STATE_CHANGED = 24,
ATOM_CAMERA_STATE_CHANGED = 25,
ATOM_FLASHLIGHT_STATE_CHANGED = 26,
ATOM_UID_PROCESS_STATE_CHANGED = 27,
ATOM_PROCESS_LIFE_CYCLE_STATE_CHANGED = 28,
ATOM_SCREEN_STATE_CHANGED = 29,
ATOM_BATTERY_LEVEL_CHANGED = 30,
ATOM_CHARGING_STATE_CHANGED = 31,
ATOM_PLUGGED_STATE_CHANGED = 32,
ATOM_INTERACTIVE_STATE_CHANGED = 33,
ATOM_TOUCH_EVENT_REPORTED = 34,
ATOM_WAKEUP_ALARM_OCCURRED = 35,
ATOM_KERNEL_WAKEUP_REPORTED = 36,
ATOM_WIFI_LOCK_STATE_CHANGED = 37,
ATOM_WIFI_SIGNAL_STRENGTH_CHANGED = 38,
ATOM_WIFI_SCAN_STATE_CHANGED = 39,
ATOM_PHONE_SIGNAL_STRENGTH_CHANGED = 40,
ATOM_SETTING_CHANGED = 41,
ATOM_ACTIVITY_FOREGROUND_STATE_CHANGED = 42,
ATOM_ISOLATED_UID_CHANGED = 43,
ATOM_PACKET_WAKEUP_OCCURRED = 44,
ATOM_WALL_CLOCK_TIME_SHIFTED = 45,
ATOM_ANOMALY_DETECTED = 46,
ATOM_APP_BREADCRUMB_REPORTED = 47,
ATOM_APP_START_OCCURRED = 48,
ATOM_APP_START_CANCELED = 49,
ATOM_APP_START_FULLY_DRAWN = 50,
ATOM_LMK_KILL_OCCURRED = 51,
ATOM_PICTURE_IN_PICTURE_STATE_CHANGED = 52,
ATOM_WIFI_MULTICAST_LOCK_STATE_CHANGED = 53,
ATOM_APP_START_MEMORY_STATE_CAPTURED = 55,
ATOM_SHUTDOWN_SEQUENCE_REPORTED = 56,
ATOM_BOOT_SEQUENCE_REPORTED = 57,
ATOM_OVERLAY_STATE_CHANGED = 59,
ATOM_FOREGROUND_SERVICE_STATE_CHANGED = 60,
ATOM_CALL_STATE_CHANGED = 61,
ATOM_KEYGUARD_STATE_CHANGED = 62,
ATOM_KEYGUARD_BOUNCER_STATE_CHANGED = 63,
ATOM_KEYGUARD_BOUNCER_PASSWORD_ENTERED = 64,
ATOM_APP_DIED = 65,
ATOM_RESOURCE_CONFIGURATION_CHANGED = 66,
ATOM_BLUETOOTH_ENABLED_STATE_CHANGED = 67,
ATOM_BLUETOOTH_CONNECTION_STATE_CHANGED = 68,
ATOM_GPS_SIGNAL_QUALITY_CHANGED = 69,
ATOM_USB_CONNECTOR_STATE_CHANGED = 70,
ATOM_SPEAKER_IMPEDANCE_REPORTED = 71,
ATOM_HARDWARE_FAILED = 72,
ATOM_PHYSICAL_DROP_DETECTED = 73,
ATOM_CHARGE_CYCLES_REPORTED = 74,
ATOM_MOBILE_CONNECTION_STATE_CHANGED = 75,
ATOM_MOBILE_RADIO_TECHNOLOGY_CHANGED = 76,
ATOM_USB_DEVICE_ATTACHED = 77,
ATOM_APP_CRASH_OCCURRED = 78,
ATOM_ANR_OCCURRED = 79,
ATOM_WTF_OCCURRED = 80,
ATOM_LOW_MEM_REPORTED = 81,
ATOM_GENERIC_ATOM = 82,
ATOM_VIBRATOR_STATE_CHANGED = 84,
ATOM_DEFERRED_JOB_STATS_REPORTED = 85,
ATOM_THERMAL_THROTTLING = 86,
ATOM_BIOMETRIC_ACQUIRED = 87,
ATOM_BIOMETRIC_AUTHENTICATED = 88,
ATOM_BIOMETRIC_ERROR_OCCURRED = 89,
ATOM_UI_EVENT_REPORTED = 90,
ATOM_BATTERY_HEALTH_SNAPSHOT = 91,
ATOM_SLOW_IO = 92,
ATOM_BATTERY_CAUSED_SHUTDOWN = 93,
ATOM_PHONE_SERVICE_STATE_CHANGED = 94,
ATOM_PHONE_STATE_CHANGED = 95,
ATOM_USER_RESTRICTION_CHANGED = 96,
ATOM_SETTINGS_UI_CHANGED = 97,
ATOM_CONNECTIVITY_STATE_CHANGED = 98,
ATOM_SERVICE_STATE_CHANGED = 99,
ATOM_SERVICE_LAUNCH_REPORTED = 100,
ATOM_FLAG_FLIP_UPDATE_OCCURRED = 101,
ATOM_BINARY_PUSH_STATE_CHANGED = 102,
ATOM_DEVICE_POLICY_EVENT = 103,
ATOM_DOCS_UI_FILE_OP_CANCELED = 104,
ATOM_DOCS_UI_FILE_OP_COPY_MOVE_MODE_REPORTED = 105,
ATOM_DOCS_UI_FILE_OP_FAILURE = 106,
ATOM_DOCS_UI_PROVIDER_FILE_OP = 107,
ATOM_DOCS_UI_INVALID_SCOPED_ACCESS_REQUEST = 108,
ATOM_DOCS_UI_LAUNCH_REPORTED = 109,
ATOM_DOCS_UI_ROOT_VISITED = 110,
ATOM_DOCS_UI_STARTUP_MS = 111,
ATOM_DOCS_UI_USER_ACTION_REPORTED = 112,
ATOM_WIFI_ENABLED_STATE_CHANGED = 113,
ATOM_WIFI_RUNNING_STATE_CHANGED = 114,
ATOM_APP_COMPACTED = 115,
ATOM_NETWORK_DNS_EVENT_REPORTED = 116,
ATOM_DOCS_UI_PICKER_LAUNCHED_FROM_REPORTED = 117,
ATOM_DOCS_UI_PICK_RESULT_REPORTED = 118,
ATOM_DOCS_UI_SEARCH_MODE_REPORTED = 119,
ATOM_DOCS_UI_SEARCH_TYPE_REPORTED = 120,
ATOM_DATA_STALL_EVENT = 121,
ATOM_RESCUE_PARTY_RESET_REPORTED = 122,
ATOM_SIGNED_CONFIG_REPORTED = 123,
ATOM_GNSS_NI_EVENT_REPORTED = 124,
ATOM_BLUETOOTH_LINK_LAYER_CONNECTION_EVENT = 125,
ATOM_BLUETOOTH_ACL_CONNECTION_STATE_CHANGED = 126,
ATOM_BLUETOOTH_SCO_CONNECTION_STATE_CHANGED = 127,
ATOM_APP_DOWNGRADED = 128,
ATOM_APP_OPTIMIZED_AFTER_DOWNGRADED = 129,
ATOM_LOW_STORAGE_STATE_CHANGED = 130,
ATOM_GNSS_NFW_NOTIFICATION_REPORTED = 131,
ATOM_GNSS_CONFIGURATION_REPORTED = 132,
ATOM_USB_PORT_OVERHEAT_EVENT_REPORTED = 133,
ATOM_NFC_ERROR_OCCURRED = 134,
ATOM_NFC_STATE_CHANGED = 135,
ATOM_NFC_BEAM_OCCURRED = 136,
ATOM_NFC_CARDEMULATION_OCCURRED = 137,
ATOM_NFC_TAG_OCCURRED = 138,
ATOM_NFC_HCE_TRANSACTION_OCCURRED = 139,
ATOM_SE_STATE_CHANGED = 140,
ATOM_SE_OMAPI_REPORTED = 141,
ATOM_BROADCAST_DISPATCH_LATENCY_REPORTED = 142,
ATOM_ATTENTION_MANAGER_SERVICE_RESULT_REPORTED = 143,
ATOM_ADB_CONNECTION_CHANGED = 144,
ATOM_SPEECH_DSP_STAT_REPORTED = 145,
ATOM_USB_CONTAMINANT_REPORTED = 146,
ATOM_WATCHDOG_ROLLBACK_OCCURRED = 147,
ATOM_BIOMETRIC_SYSTEM_HEALTH_ISSUE_DETECTED = 148,
ATOM_BUBBLE_UI_CHANGED = 149,
ATOM_SCHEDULED_JOB_CONSTRAINT_CHANGED = 150,
ATOM_BLUETOOTH_ACTIVE_DEVICE_CHANGED = 151,
ATOM_BLUETOOTH_A2DP_PLAYBACK_STATE_CHANGED = 152,
ATOM_BLUETOOTH_A2DP_CODEC_CONFIG_CHANGED = 153,
ATOM_BLUETOOTH_A2DP_CODEC_CAPABILITY_CHANGED = 154,
ATOM_BLUETOOTH_A2DP_AUDIO_UNDERRUN_REPORTED = 155,
ATOM_BLUETOOTH_A2DP_AUDIO_OVERRUN_REPORTED = 156,
ATOM_BLUETOOTH_DEVICE_RSSI_REPORTED = 157,
ATOM_BLUETOOTH_DEVICE_FAILED_CONTACT_COUNTER_REPORTED = 158,
ATOM_BLUETOOTH_DEVICE_TX_POWER_LEVEL_REPORTED = 159,
ATOM_BLUETOOTH_HCI_TIMEOUT_REPORTED = 160,
ATOM_BLUETOOTH_QUALITY_REPORT_REPORTED = 161,
ATOM_BLUETOOTH_DEVICE_INFO_REPORTED = 162,
ATOM_BLUETOOTH_REMOTE_VERSION_INFO_REPORTED = 163,
ATOM_BLUETOOTH_SDP_ATTRIBUTE_REPORTED = 164,
ATOM_BLUETOOTH_BOND_STATE_CHANGED = 165,
ATOM_BLUETOOTH_CLASSIC_PAIRING_EVENT_REPORTED = 166,
ATOM_BLUETOOTH_SMP_PAIRING_EVENT_REPORTED = 167,
ATOM_SCREEN_TIMEOUT_EXTENSION_REPORTED = 168,
ATOM_PROCESS_START_TIME = 169,
ATOM_PERMISSION_GRANT_REQUEST_RESULT_REPORTED = 170,
ATOM_BLUETOOTH_SOCKET_CONNECTION_STATE_CHANGED = 171,
ATOM_DEVICE_IDENTIFIER_ACCESS_DENIED = 172,
ATOM_BUBBLE_DEVELOPER_ERROR_REPORTED = 173,
ATOM_ASSIST_GESTURE_STAGE_REPORTED = 174,
ATOM_ASSIST_GESTURE_FEEDBACK_REPORTED = 175,
ATOM_ASSIST_GESTURE_PROGRESS_REPORTED = 176,
ATOM_TOUCH_GESTURE_CLASSIFIED = 177,
ATOM_HIDDEN_API_USED = 178,
ATOM_STYLE_UI_CHANGED = 179,
ATOM_PRIVACY_INDICATORS_INTERACTED = 180,
ATOM_APP_INSTALL_ON_EXTERNAL_STORAGE_REPORTED = 181,
ATOM_NETWORK_STACK_REPORTED = 182,
ATOM_APP_MOVED_STORAGE_REPORTED = 183,
ATOM_BIOMETRIC_ENROLLED = 184,
ATOM_SYSTEM_SERVER_WATCHDOG_OCCURRED = 185,
ATOM_TOMB_STONE_OCCURRED = 186,
ATOM_BLUETOOTH_CLASS_OF_DEVICE_REPORTED = 187,
ATOM_INTELLIGENCE_EVENT_REPORTED = 188,
ATOM_THERMAL_THROTTLING_SEVERITY_STATE_CHANGED = 189,
ATOM_ROLE_REQUEST_RESULT_REPORTED = 190,
ATOM_MEDIAMETRICS_AUDIOPOLICY_REPORTED = 191,
ATOM_MEDIAMETRICS_AUDIORECORD_REPORTED = 192,
ATOM_MEDIAMETRICS_AUDIOTHREAD_REPORTED = 193,
ATOM_MEDIAMETRICS_AUDIOTRACK_REPORTED = 194,
ATOM_MEDIAMETRICS_CODEC_REPORTED = 195,
ATOM_MEDIAMETRICS_DRM_WIDEVINE_REPORTED = 196,
ATOM_MEDIAMETRICS_EXTRACTOR_REPORTED = 197,
ATOM_MEDIAMETRICS_MEDIADRM_REPORTED = 198,
ATOM_MEDIAMETRICS_NUPLAYER_REPORTED = 199,
ATOM_MEDIAMETRICS_RECORDER_REPORTED = 200,
ATOM_MEDIAMETRICS_DRMMANAGER_REPORTED = 201,
ATOM_CAR_POWER_STATE_CHANGED = 203,
ATOM_GARAGE_MODE_INFO = 204,
ATOM_TEST_ATOM_REPORTED = 205,
ATOM_CONTENT_CAPTURE_CALLER_MISMATCH_REPORTED = 206,
ATOM_CONTENT_CAPTURE_SERVICE_EVENTS = 207,
ATOM_CONTENT_CAPTURE_SESSION_EVENTS = 208,
ATOM_CONTENT_CAPTURE_FLUSHED = 209,
ATOM_LOCATION_MANAGER_API_USAGE_REPORTED = 210,
ATOM_REVIEW_PERMISSIONS_FRAGMENT_RESULT_REPORTED = 211,
ATOM_RUNTIME_PERMISSIONS_UPGRADE_RESULT = 212,
ATOM_GRANT_PERMISSIONS_ACTIVITY_BUTTON_ACTIONS = 213,
ATOM_LOCATION_ACCESS_CHECK_NOTIFICATION_ACTION = 214,
ATOM_APP_PERMISSION_FRAGMENT_ACTION_REPORTED = 215,
ATOM_APP_PERMISSION_FRAGMENT_VIEWED = 216,
ATOM_APP_PERMISSIONS_FRAGMENT_VIEWED = 217,
ATOM_PERMISSION_APPS_FRAGMENT_VIEWED = 218,
ATOM_TEXT_SELECTION_EVENT = 219,
ATOM_TEXT_LINKIFY_EVENT = 220,
ATOM_CONVERSATION_ACTIONS_EVENT = 221,
ATOM_LANGUAGE_DETECTION_EVENT = 222,
ATOM_EXCLUSION_RECT_STATE_CHANGED = 223,
ATOM_BACK_GESTURE_REPORTED_REPORTED = 224,
ATOM_UPDATE_ENGINE_UPDATE_ATTEMPT_REPORTED = 225,
ATOM_UPDATE_ENGINE_SUCCESSFUL_UPDATE_REPORTED = 226,
ATOM_CAMERA_ACTION_EVENT = 227,
ATOM_APP_COMPATIBILITY_CHANGE_REPORTED = 228,
ATOM_PERFETTO_UPLOADED = 229,
ATOM_VMS_CLIENT_CONNECTION_STATE_CHANGED = 230,
ATOM_MEDIA_PROVIDER_SCAN_OCCURRED = 233,
ATOM_MEDIA_CONTENT_DELETED = 234,
ATOM_MEDIA_PROVIDER_PERMISSION_REQUESTED = 235,
ATOM_MEDIA_PROVIDER_SCHEMA_CHANGED = 236,
ATOM_MEDIA_PROVIDER_IDLE_MAINTENANCE_FINISHED = 237,
ATOM_REBOOT_ESCROW_RECOVERY_REPORTED = 238,
ATOM_BOOT_TIME_EVENT_DURATION_REPORTED = 239,
ATOM_BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED = 240,
ATOM_BOOT_TIME_EVENT_UTC_TIME_REPORTED = 241,
ATOM_BOOT_TIME_EVENT_ERROR_CODE_REPORTED = 242,
ATOM_USERSPACE_REBOOT_REPORTED = 243,
ATOM_NOTIFICATION_REPORTED = 244,
ATOM_NOTIFICATION_PANEL_REPORTED = 245,
ATOM_NOTIFICATION_CHANNEL_MODIFIED = 246,
ATOM_INTEGRITY_CHECK_RESULT_REPORTED = 247,
ATOM_INTEGRITY_RULES_PUSHED = 248,
ATOM_CB_MESSAGE_REPORTED = 249,
ATOM_CB_MESSAGE_ERROR = 250,
ATOM_WIFI_HEALTH_STAT_REPORTED = 251,
ATOM_WIFI_FAILURE_STAT_REPORTED = 252,
ATOM_WIFI_CONNECTION_RESULT_REPORTED = 253,
ATOM_APP_FREEZE_CHANGED = 254,
ATOM_SNAPSHOT_MERGE_REPORTED = 255,
ATOM_FOREGROUND_SERVICE_APP_OP_SESSION_ENDED = 256,
ATOM_DISPLAY_JANK_REPORTED = 257,
ATOM_APP_STANDBY_BUCKET_CHANGED = 258,
ATOM_SHARESHEET_STARTED = 259,
ATOM_RANKING_SELECTED = 260,
ATOM_TVSETTINGS_UI_INTERACTED = 261,
ATOM_LAUNCHER_SNAPSHOT = 262,
ATOM_PACKAGE_INSTALLER_V2_REPORTED = 263,
ATOM_USER_LIFECYCLE_JOURNEY_REPORTED = 264,
ATOM_USER_LIFECYCLE_EVENT_OCCURRED = 265,
ATOM_ACCESSIBILITY_SHORTCUT_REPORTED = 266,
ATOM_ACCESSIBILITY_SERVICE_REPORTED = 267,
ATOM_DOCS_UI_DRAG_AND_DROP_REPORTED = 268,
ATOM_APP_USAGE_EVENT_OCCURRED = 269,
ATOM_AUTO_REVOKE_NOTIFICATION_CLICKED = 270,
ATOM_AUTO_REVOKE_FRAGMENT_APP_VIEWED = 271,
ATOM_AUTO_REVOKED_APP_INTERACTION = 272,
ATOM_APP_PERMISSION_GROUPS_FRAGMENT_AUTO_REVOKE_ACTION = 273,
ATOM_EVS_USAGE_STATS_REPORTED = 274,
ATOM_AUDIO_POWER_USAGE_DATA_REPORTED = 275,
ATOM_TV_TUNER_STATE_CHANGED = 276,
ATOM_MEDIAOUTPUT_OP_SWITCH_REPORTED = 277,
ATOM_CB_MESSAGE_FILTERED = 278,
ATOM_TV_TUNER_DVR_STATUS = 279,
ATOM_TV_CAS_SESSION_OPEN_STATUS = 280,
ATOM_ASSISTANT_INVOCATION_REPORTED = 281,
ATOM_DISPLAY_WAKE_REPORTED = 282,
ATOM_CAR_USER_HAL_MODIFY_USER_REQUEST_REPORTED = 283,
ATOM_CAR_USER_HAL_MODIFY_USER_RESPONSE_REPORTED = 284,
ATOM_CAR_USER_HAL_POST_SWITCH_RESPONSE_REPORTED = 285,
ATOM_CAR_USER_HAL_INITIAL_USER_INFO_REQUEST_REPORTED = 286,
ATOM_CAR_USER_HAL_INITIAL_USER_INFO_RESPONSE_REPORTED = 287,
ATOM_CAR_USER_HAL_USER_ASSOCIATION_REQUEST_REPORTED = 288,
ATOM_CAR_USER_HAL_SET_USER_ASSOCIATION_RESPONSE_REPORTED = 289,
ATOM_NETWORK_IP_PROVISIONING_REPORTED = 290,
ATOM_NETWORK_DHCP_RENEW_REPORTED = 291,
ATOM_NETWORK_VALIDATION_REPORTED = 292,
ATOM_NETWORK_STACK_QUIRK_REPORTED = 293,
ATOM_MEDIAMETRICS_AUDIORECORDDEVICEUSAGE_REPORTED = 294,
ATOM_MEDIAMETRICS_AUDIOTHREADDEVICEUSAGE_REPORTED = 295,
ATOM_MEDIAMETRICS_AUDIOTRACKDEVICEUSAGE_REPORTED = 296,
ATOM_MEDIAMETRICS_AUDIODEVICECONNECTION_REPORTED = 297,
ATOM_BLOB_COMMITTED = 298,
ATOM_BLOB_LEASED = 299,
ATOM_BLOB_OPENED = 300,
ATOM_CONTACTS_PROVIDER_STATUS_REPORTED = 301,
ATOM_KEYSTORE_KEY_EVENT_REPORTED = 302,
ATOM_NETWORK_TETHERING_REPORTED = 303,
ATOM_IME_TOUCH_REPORTED = 304,
ATOM_UI_INTERACTION_FRAME_INFO_REPORTED = 305,
ATOM_UI_ACTION_LATENCY_REPORTED = 306,
ATOM_WIFI_DISCONNECT_REPORTED = 307,
ATOM_WIFI_CONNECTION_STATE_CHANGED = 308,
ATOM_HDMI_CEC_ACTIVE_SOURCE_CHANGED = 309,
ATOM_HDMI_CEC_MESSAGE_REPORTED = 310,
ATOM_AIRPLANE_MODE = 311,
ATOM_MODEM_RESTART = 312,
ATOM_CARRIER_ID_MISMATCH_REPORTED = 313,
ATOM_CARRIER_ID_TABLE_UPDATED = 314,
ATOM_DATA_STALL_RECOVERY_REPORTED = 315,
ATOM_MEDIAMETRICS_MEDIAPARSER_REPORTED = 316,
ATOM_TLS_HANDSHAKE_REPORTED = 317,
ATOM_TEXT_CLASSIFIER_API_USAGE_REPORTED = 318,
ATOM_CAR_WATCHDOG_KILL_STATS_REPORTED = 319,
ATOM_MEDIAMETRICS_PLAYBACK_REPORTED = 320,
ATOM_MEDIA_NETWORK_INFO_CHANGED = 321,
ATOM_MEDIA_PLAYBACK_STATE_CHANGED = 322,
ATOM_MEDIA_PLAYBACK_ERROR_REPORTED = 323,
ATOM_MEDIA_PLAYBACK_TRACK_CHANGED = 324,
ATOM_WIFI_SCAN_REPORTED = 325,
ATOM_WIFI_PNO_SCAN_REPORTED = 326,
ATOM_TIF_TUNE_CHANGED = 327,
ATOM_AUTO_ROTATE_REPORTED = 328,
ATOM_PERFETTO_TRIGGER = 329,
ATOM_TRANSCODING_DATA = 330,
ATOM_IMS_SERVICE_ENTITLEMENT_UPDATED = 331,
ATOM_DEVICE_ROTATED = 333,
ATOM_SIM_SPECIFIC_SETTINGS_RESTORED = 334,
ATOM_TEXT_CLASSIFIER_DOWNLOAD_REPORTED = 335,
ATOM_PIN_STORAGE_EVENT = 336,
ATOM_FACE_DOWN_REPORTED = 337,
ATOM_BLUETOOTH_HAL_CRASH_REASON_REPORTED = 338,
ATOM_REBOOT_ESCROW_PREPARATION_REPORTED = 339,
ATOM_REBOOT_ESCROW_LSKF_CAPTURE_REPORTED = 340,
ATOM_REBOOT_ESCROW_REBOOT_REPORTED = 341,
ATOM_BINDER_LATENCY_REPORTED = 342,
ATOM_MEDIAMETRICS_AAUDIOSTREAM_REPORTED = 343,
ATOM_MEDIA_TRANSCODING_SESSION_ENDED = 344,
ATOM_MAGNIFICATION_USAGE_REPORTED = 345,
ATOM_MAGNIFICATION_MODE_WITH_IME_ON_REPORTED = 346,
ATOM_APP_SEARCH_CALL_STATS_REPORTED = 347,
ATOM_APP_SEARCH_PUT_DOCUMENT_STATS_REPORTED = 348,
ATOM_DEVICE_CONTROL_CHANGED = 349,
ATOM_DEVICE_STATE_CHANGED = 350,
ATOM_INPUTDEVICE_REGISTERED = 351,
ATOM_SMARTSPACE_CARD_REPORTED = 352,
ATOM_AUTH_PROMPT_AUTHENTICATE_INVOKED = 353,
ATOM_AUTH_MANAGER_CAN_AUTHENTICATE_INVOKED = 354,
ATOM_AUTH_ENROLL_ACTION_INVOKED = 355,
ATOM_AUTH_DEPRECATED_API_USED = 356,
ATOM_UNATTENDED_REBOOT_OCCURRED = 357,
ATOM_LONG_REBOOT_BLOCKING_REPORTED = 358,
ATOM_LOCATION_TIME_ZONE_PROVIDER_STATE_CHANGED = 359,
ATOM_FDTRACK_EVENT_OCCURRED = 364,
ATOM_TIMEOUT_AUTO_EXTENDED_REPORTED = 365,
ATOM_ALARM_BATCH_DELIVERED = 367,
ATOM_ALARM_SCHEDULED = 368,
ATOM_CAR_WATCHDOG_IO_OVERUSE_STATS_REPORTED = 369,
ATOM_USER_LEVEL_HIBERNATION_STATE_CHANGED = 370,
ATOM_APP_SEARCH_INITIALIZE_STATS_REPORTED = 371,
ATOM_APP_SEARCH_QUERY_STATS_REPORTED = 372,
ATOM_APP_PROCESS_DIED = 373,
ATOM_NETWORK_IP_REACHABILITY_MONITOR_REPORTED = 374,
ATOM_SLOW_INPUT_EVENT_REPORTED = 375,
ATOM_ANR_OCCURRED_PROCESSING_STARTED = 376,
ATOM_APP_SEARCH_REMOVE_STATS_REPORTED = 377,
ATOM_MEDIA_CODEC_REPORTED = 378,
ATOM_PERMISSION_USAGE_FRAGMENT_INTERACTION = 379,
ATOM_PERMISSION_DETAILS_INTERACTION = 380,
ATOM_PRIVACY_SENSOR_TOGGLE_INTERACTION = 381,
ATOM_PRIVACY_TOGGLE_DIALOG_INTERACTION = 382,
ATOM_APP_SEARCH_OPTIMIZE_STATS_REPORTED = 383,
ATOM_NON_A11Y_TOOL_SERVICE_WARNING_REPORT = 384,
ATOM_APP_COMPAT_STATE_CHANGED = 386,
ATOM_SIZE_COMPAT_RESTART_BUTTON_EVENT_REPORTED = 387,
ATOM_SPLITSCREEN_UI_CHANGED = 388,
ATOM_NETWORK_DNS_HANDSHAKE_REPORTED = 389,
ATOM_BLUETOOTH_CODE_PATH_COUNTER = 390,
ATOM_BLUETOOTH_LE_BATCH_SCAN_REPORT_DELAY = 392,
ATOM_ACCESSIBILITY_FLOATING_MENU_UI_CHANGED = 393,
ATOM_NEURALNETWORKS_COMPILATION_COMPLETED = 394,
ATOM_NEURALNETWORKS_EXECUTION_COMPLETED = 395,
ATOM_NEURALNETWORKS_COMPILATION_FAILED = 396,
ATOM_NEURALNETWORKS_EXECUTION_FAILED = 397,
ATOM_CONTEXT_HUB_BOOTED = 398,
ATOM_CONTEXT_HUB_RESTARTED = 399,
ATOM_CONTEXT_HUB_LOADED_NANOAPP_SNAPSHOT_REPORTED = 400,
ATOM_CHRE_CODE_DOWNLOAD_TRANSACTED = 401,
ATOM_UWB_SESSION_INITED = 402,
ATOM_UWB_SESSION_CLOSED = 403,
ATOM_UWB_FIRST_RANGING_RECEIVED = 404,
ATOM_UWB_RANGING_MEASUREMENT_RECEIVED = 405,
ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_SCHEDULED = 406,
ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_COMPLETED = 407,
ATOM_CLIPBOARD_CLEARED = 408,
ATOM_VM_CREATION_REQUESTED = 409,
ATOM_NEARBY_DEVICE_SCAN_STATE_CHANGED = 410,
ATOM_APPLICATION_LOCALES_CHANGED = 412,
ATOM_MEDIAMETRICS_AUDIOTRACKSTATUS_REPORTED = 413,
ATOM_FOLD_STATE_DURATION_REPORTED = 414,
ATOM_LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED = 415,
ATOM_DISPLAY_HBM_STATE_CHANGED = 416,
ATOM_DISPLAY_HBM_BRIGHTNESS_CHANGED = 417,
ATOM_PERSISTENT_URI_PERMISSIONS_FLUSHED = 418,
ATOM_EARLY_BOOT_COMP_OS_ARTIFACTS_CHECK_REPORTED = 419,
ATOM_VBMETA_DIGEST_REPORTED = 420,
ATOM_APEX_INFO_GATHERED = 421,
ATOM_PVM_INFO_GATHERED = 422,
ATOM_WEAR_SETTINGS_UI_INTERACTED = 423,
ATOM_TRACING_SERVICE_REPORT_EVENT = 424,
ATOM_MEDIAMETRICS_AUDIORECORDSTATUS_REPORTED = 425,
ATOM_LAUNCHER_LATENCY = 426,
ATOM_DROPBOX_ENTRY_DROPPED = 427,
ATOM_WIFI_P2P_CONNECTION_REPORTED = 428,
ATOM_GAME_STATE_CHANGED = 429,
ATOM_HOTWORD_DETECTOR_CREATE_REQUESTED = 430,
ATOM_HOTWORD_DETECTION_SERVICE_INIT_RESULT_REPORTED = 431,
ATOM_HOTWORD_DETECTION_SERVICE_RESTARTED = 432,
ATOM_HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED = 433,
ATOM_HOTWORD_DETECTOR_EVENTS = 434,
ATOM_BOOT_COMPLETED_BROADCAST_COMPLETION_LATENCY_REPORTED = 437,
ATOM_CONTACTS_INDEXER_UPDATE_STATS_REPORTED = 440,
ATOM_APP_BACKGROUND_RESTRICTIONS_INFO = 441,
ATOM_MMS_SMS_PROVIDER_GET_THREAD_ID_FAILED = 442,
ATOM_MMS_SMS_DATABASE_HELPER_ON_UPGRADE_FAILED = 443,
ATOM_PERMISSION_REMINDER_NOTIFICATION_INTERACTED = 444,
ATOM_RECENT_PERMISSION_DECISIONS_INTERACTED = 445,
ATOM_GNSS_PSDS_DOWNLOAD_REPORTED = 446,
ATOM_LE_AUDIO_CONNECTION_SESSION_REPORTED = 447,
ATOM_LE_AUDIO_BROADCAST_SESSION_REPORTED = 448,
ATOM_DREAM_UI_EVENT_REPORTED = 449,
ATOM_TASK_MANAGER_EVENT_REPORTED = 450,
ATOM_CDM_ASSOCIATION_ACTION = 451,
ATOM_MAGNIFICATION_TRIPLE_TAP_AND_HOLD_ACTIVATED_SESSION_REPORTED = 452,
ATOM_MAGNIFICATION_FOLLOW_TYPING_FOCUS_ACTIVATED_SESSION_REPORTED = 453,
ATOM_ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED = 454,
ATOM_WIFI_SETUP_FAILURE_CRASH_REPORTED = 455,
ATOM_UWB_DEVICE_ERROR_REPORTED = 456,
ATOM_ISOLATED_COMPILATION_SCHEDULED = 457,
ATOM_ISOLATED_COMPILATION_ENDED = 458,
ATOM_ONS_OPPORTUNISTIC_ESIM_PROVISIONING_COMPLETE = 459,
ATOM_SYSTEM_SERVER_PRE_WATCHDOG_OCCURRED = 460,
ATOM_TELEPHONY_ANOMALY_DETECTED = 461,
ATOM_LETTERBOX_POSITION_CHANGED = 462,
ATOM_REMOTE_KEY_PROVISIONING_ATTEMPT = 463,
ATOM_REMOTE_KEY_PROVISIONING_NETWORK_INFO = 464,
ATOM_REMOTE_KEY_PROVISIONING_TIMING = 465,
ATOM_MEDIAOUTPUT_OP_INTERACTION_REPORT = 466,
ATOM_SYNC_EXEMPTION_OCCURRED = 468,
ATOM_AUTOFILL_PRESENTATION_EVENT_REPORTED = 469,
ATOM_DOCK_STATE_CHANGED = 470,
ATOM_SAFETY_SOURCE_STATE_COLLECTED = 471,
ATOM_SAFETY_CENTER_SYSTEM_EVENT_REPORTED = 472,
ATOM_SAFETY_CENTER_INTERACTION_REPORTED = 473,
ATOM_SETTINGS_PROVIDER_SETTING_CHANGED = 474,
ATOM_BROADCAST_DELIVERY_EVENT_REPORTED = 475,
ATOM_SERVICE_REQUEST_EVENT_REPORTED = 476,
ATOM_PROVIDER_ACQUISITION_EVENT_REPORTED = 477,
ATOM_BLUETOOTH_DEVICE_NAME_REPORTED = 478,
ATOM_CB_CONFIG_UPDATED = 479,
ATOM_CB_MODULE_ERROR_REPORTED = 480,
ATOM_CB_SERVICE_FEATURE_CHANGED = 481,
ATOM_CB_RECEIVER_FEATURE_CHANGED = 482,
ATOM_PRIVACY_SIGNAL_NOTIFICATION_INTERACTION = 484,
ATOM_PRIVACY_SIGNAL_ISSUE_CARD_INTERACTION = 485,
ATOM_PRIVACY_SIGNALS_JOB_FAILURE = 486,
ATOM_VIBRATION_REPORTED = 487,
ATOM_UWB_RANGING_START = 489,
ATOM_APP_COMPACTED_V2 = 491,
ATOM_DISPLAY_BRIGHTNESS_CHANGED = 494,
ATOM_ACTIVITY_ACTION_BLOCKED = 495,
ATOM_NETWORK_DNS_SERVER_SUPPORT_REPORTED = 504,
ATOM_VM_BOOTED = 505,
ATOM_VM_EXITED = 506,
ATOM_AMBIENT_BRIGHTNESS_STATS_REPORTED = 507,
ATOM_MEDIAMETRICS_SPATIALIZERCAPABILITIES_REPORTED = 508,
ATOM_MEDIAMETRICS_SPATIALIZERDEVICEENABLED_REPORTED = 509,
ATOM_MEDIAMETRICS_HEADTRACKERDEVICEENABLED_REPORTED = 510,
ATOM_MEDIAMETRICS_HEADTRACKERDEVICESUPPORTED_REPORTED = 511,
ATOM_HEARING_AID_INFO_REPORTED = 513,
ATOM_DEVICE_WIDE_JOB_CONSTRAINT_CHANGED = 514,
ATOM_AMBIENT_MODE_CHANGED = 515,
ATOM_ANR_LATENCY_REPORTED = 516,
ATOM_RESOURCE_API_INFO = 517,
ATOM_SYSTEM_DEFAULT_NETWORK_CHANGED = 518,
ATOM_IWLAN_SETUP_DATA_CALL_RESULT_REPORTED = 519,
ATOM_IWLAN_PDN_DISCONNECTED_REASON_REPORTED = 520,
ATOM_AIRPLANE_MODE_SESSION_REPORTED = 521,
ATOM_VM_CPU_STATUS_REPORTED = 522,
ATOM_VM_MEM_STATUS_REPORTED = 523,
ATOM_PACKAGE_INSTALLATION_SESSION_REPORTED = 524,
ATOM_DEFAULT_NETWORK_REMATCH_INFO = 525,
ATOM_NETWORK_SELECTION_PERFORMANCE = 526,
ATOM_NETWORK_NSD_REPORTED = 527,
ATOM_BLUETOOTH_DISCONNECTION_REASON_REPORTED = 529,
ATOM_BLUETOOTH_LOCAL_VERSIONS_REPORTED = 530,
ATOM_BLUETOOTH_REMOTE_SUPPORTED_FEATURES_REPORTED = 531,
ATOM_BLUETOOTH_LOCAL_SUPPORTED_FEATURES_REPORTED = 532,
ATOM_BLUETOOTH_GATT_APP_INFO = 533,
ATOM_BRIGHTNESS_CONFIGURATION_UPDATED = 534,
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_LAUNCHED = 538,
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FINISHED = 539,
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECTION_REPORTED = 540,
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_TRIGGERED = 541,
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FIRST_DEVICE_SCAN_LATENCY = 542,
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECT_DEVICE_LATENCY = 543,
ATOM_PACKAGE_MANAGER_SNAPSHOT_REPORTED = 544,
ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_BUILD_REPORTED = 545,
ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_UPDATE_REPORTED = 546,
ATOM_LAUNCHER_IMPRESSION_EVENT = 547,
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_ALL_DEVICES_SCAN_LATENCY = 549,
ATOM_WS_WATCH_FACE_EDITED = 551,
ATOM_WS_WATCH_FACE_FAVORITE_ACTION_REPORTED = 552,
ATOM_WS_WATCH_FACE_SET_ACTION_REPORTED = 553,
ATOM_PACKAGE_UNINSTALLATION_REPORTED = 554,
ATOM_GAME_MODE_CHANGED = 555,
ATOM_GAME_MODE_CONFIGURATION_CHANGED = 556,
ATOM_BEDTIME_MODE_STATE_CHANGED = 557,
ATOM_NETWORK_SLICE_SESSION_ENDED = 558,
ATOM_NETWORK_SLICE_DAILY_DATA_USAGE_REPORTED = 559,
ATOM_NFC_TAG_TYPE_OCCURRED = 560,
ATOM_NFC_AID_CONFLICT_OCCURRED = 561,
ATOM_NFC_READER_CONFLICT_OCCURRED = 562,
ATOM_WS_TILE_LIST_CHANGED = 563,
ATOM_GET_TYPE_ACCESSED_WITHOUT_PERMISSION = 564,
ATOM_MOBILE_BUNDLED_APP_INFO_GATHERED = 566,
ATOM_WS_WATCH_FACE_COMPLICATION_SET_CHANGED = 567,
ATOM_MEDIA_DRM_CREATED = 568,
ATOM_MEDIA_DRM_ERRORED = 569,
ATOM_MEDIA_DRM_SESSION_OPENED = 570,
ATOM_MEDIA_DRM_SESSION_CLOSED = 571,
ATOM_USER_SELECTED_RESOLUTION = 572,
ATOM_UNSAFE_INTENT_EVENT_REPORTED = 573,
ATOM_PERFORMANCE_HINT_SESSION_REPORTED = 574,
ATOM_MEDIAMETRICS_MIDI_DEVICE_CLOSE_REPORTED = 576,
ATOM_BIOMETRIC_TOUCH_REPORTED = 577,
ATOM_HOTWORD_AUDIO_EGRESS_EVENT_REPORTED = 578,
ATOM_LOCATION_ENABLED_STATE_CHANGED = 580,
ATOM_IME_REQUEST_FINISHED = 581,
ATOM_USB_COMPLIANCE_WARNINGS_REPORTED = 582,
ATOM_APP_SUPPORTED_LOCALES_CHANGED = 583,
ATOM_MEDIA_PROVIDER_VOLUME_RECOVERY_REPORTED = 586,
ATOM_BIOMETRIC_PROPERTIES_COLLECTED = 587,
ATOM_KERNEL_WAKEUP_ATTRIBUTED = 588,
ATOM_SCREEN_STATE_CHANGED_V2 = 589,
ATOM_WS_BACKUP_ACTION_REPORTED = 590,
ATOM_WS_RESTORE_ACTION_REPORTED = 591,
ATOM_DEVICE_LOG_ACCESS_EVENT_REPORTED = 592,
ATOM_MEDIA_SESSION_UPDATED = 594,
ATOM_WEAR_OOBE_STATE_CHANGED = 595,
ATOM_WS_NOTIFICATION_UPDATED = 596,
ATOM_NETWORK_VALIDATION_FAILURE_STATS_DAILY_REPORTED = 601,
ATOM_WS_COMPLICATION_TAPPED = 602,
ATOM_WS_NOTIFICATION_BLOCKING = 780,
ATOM_WS_NOTIFICATION_BRIDGEMODE_UPDATED = 822,
ATOM_WS_NOTIFICATION_DISMISSAL_ACTIONED = 823,
ATOM_WS_NOTIFICATION_ACTIONED = 824,
ATOM_WS_NOTIFICATION_LATENCY = 880,
ATOM_WIFI_BYTES_TRANSFER = 10000,
ATOM_WIFI_BYTES_TRANSFER_BY_FG_BG = 10001,
ATOM_MOBILE_BYTES_TRANSFER = 10002,
ATOM_MOBILE_BYTES_TRANSFER_BY_FG_BG = 10003,
ATOM_BLUETOOTH_BYTES_TRANSFER = 10006,
ATOM_KERNEL_WAKELOCK = 10004,
ATOM_SUBSYSTEM_SLEEP_STATE = 10005,
ATOM_CPU_TIME_PER_UID = 10009,
ATOM_CPU_TIME_PER_UID_FREQ = 10010,
ATOM_WIFI_ACTIVITY_INFO = 10011,
ATOM_MODEM_ACTIVITY_INFO = 10012,
ATOM_BLUETOOTH_ACTIVITY_INFO = 10007,
ATOM_PROCESS_MEMORY_STATE = 10013,
ATOM_SYSTEM_ELAPSED_REALTIME = 10014,
ATOM_SYSTEM_UPTIME = 10015,
ATOM_CPU_ACTIVE_TIME = 10016,
ATOM_CPU_CLUSTER_TIME = 10017,
ATOM_DISK_SPACE = 10018,
ATOM_REMAINING_BATTERY_CAPACITY = 10019,
ATOM_FULL_BATTERY_CAPACITY = 10020,
ATOM_TEMPERATURE = 10021,
ATOM_BINDER_CALLS = 10022,
ATOM_BINDER_CALLS_EXCEPTIONS = 10023,
ATOM_LOOPER_STATS = 10024,
ATOM_DISK_STATS = 10025,
ATOM_DIRECTORY_USAGE = 10026,
ATOM_APP_SIZE = 10027,
ATOM_CATEGORY_SIZE = 10028,
ATOM_PROC_STATS = 10029,
ATOM_BATTERY_VOLTAGE = 10030,
ATOM_NUM_FINGERPRINTS_ENROLLED = 10031,
ATOM_DISK_IO = 10032,
ATOM_POWER_PROFILE = 10033,
ATOM_PROC_STATS_PKG_PROC = 10034,
ATOM_PROCESS_CPU_TIME = 10035,
ATOM_CPU_TIME_PER_THREAD_FREQ = 10037,
ATOM_ON_DEVICE_POWER_MEASUREMENT = 10038,
ATOM_DEVICE_CALCULATED_POWER_USE = 10039,
ATOM_PROCESS_MEMORY_HIGH_WATER_MARK = 10042,
ATOM_BATTERY_LEVEL = 10043,
ATOM_BUILD_INFORMATION = 10044,
ATOM_BATTERY_CYCLE_COUNT = 10045,
ATOM_DEBUG_ELAPSED_CLOCK = 10046,
ATOM_DEBUG_FAILING_ELAPSED_CLOCK = 10047,
ATOM_NUM_FACES_ENROLLED = 10048,
ATOM_ROLE_HOLDER = 10049,
ATOM_DANGEROUS_PERMISSION_STATE = 10050,
ATOM_TRAIN_INFO = 10051,
ATOM_TIME_ZONE_DATA_INFO = 10052,
ATOM_EXTERNAL_STORAGE_INFO = 10053,
ATOM_GPU_STATS_GLOBAL_INFO = 10054,
ATOM_GPU_STATS_APP_INFO = 10055,
ATOM_SYSTEM_ION_HEAP_SIZE = 10056,
ATOM_APPS_ON_EXTERNAL_STORAGE_INFO = 10057,
ATOM_FACE_SETTINGS = 10058,
ATOM_COOLING_DEVICE = 10059,
ATOM_APP_OPS = 10060,
ATOM_PROCESS_SYSTEM_ION_HEAP_SIZE = 10061,
ATOM_SURFACEFLINGER_STATS_GLOBAL_INFO = 10062,
ATOM_SURFACEFLINGER_STATS_LAYER_INFO = 10063,
ATOM_PROCESS_MEMORY_SNAPSHOT = 10064,
ATOM_VMS_CLIENT_STATS = 10065,
ATOM_NOTIFICATION_REMOTE_VIEWS = 10066,
ATOM_DANGEROUS_PERMISSION_STATE_SAMPLED = 10067,
ATOM_GRAPHICS_STATS = 10068,
ATOM_RUNTIME_APP_OP_ACCESS = 10069,
ATOM_ION_HEAP_SIZE = 10070,
ATOM_PACKAGE_NOTIFICATION_PREFERENCES = 10071,
ATOM_PACKAGE_NOTIFICATION_CHANNEL_PREFERENCES = 10072,
ATOM_PACKAGE_NOTIFICATION_CHANNEL_GROUP_PREFERENCES = 10073,
ATOM_GNSS_STATS = 10074,
ATOM_ATTRIBUTED_APP_OPS = 10075,
ATOM_VOICE_CALL_SESSION = 10076,
ATOM_VOICE_CALL_RAT_USAGE = 10077,
ATOM_SIM_SLOT_STATE = 10078,
ATOM_SUPPORTED_RADIO_ACCESS_FAMILY = 10079,
ATOM_SETTING_SNAPSHOT = 10080,
ATOM_BLOB_INFO = 10081,
ATOM_DATA_USAGE_BYTES_TRANSFER = 10082,
ATOM_BYTES_TRANSFER_BY_TAG_AND_METERED = 10083,
ATOM_DND_MODE_RULE = 10084,
ATOM_GENERAL_EXTERNAL_STORAGE_ACCESS_STATS = 10085,
ATOM_INCOMING_SMS = 10086,
ATOM_OUTGOING_SMS = 10087,
ATOM_CARRIER_ID_TABLE_VERSION = 10088,
ATOM_DATA_CALL_SESSION = 10089,
ATOM_CELLULAR_SERVICE_STATE = 10090,
ATOM_CELLULAR_DATA_SERVICE_SWITCH = 10091,
ATOM_SYSTEM_MEMORY = 10092,
ATOM_IMS_REGISTRATION_TERMINATION = 10093,
ATOM_IMS_REGISTRATION_STATS = 10094,
ATOM_CPU_TIME_PER_CLUSTER_FREQ = 10095,
ATOM_CPU_CYCLES_PER_UID_CLUSTER = 10096,
ATOM_DEVICE_ROTATED_DATA = 10097,
ATOM_CPU_CYCLES_PER_THREAD_GROUP_CLUSTER = 10098,
ATOM_MEDIA_DRM_ACTIVITY_INFO = 10099,
ATOM_OEM_MANAGED_BYTES_TRANSFER = 10100,
ATOM_GNSS_POWER_STATS = 10101,
ATOM_TIME_ZONE_DETECTOR_STATE = 10102,
ATOM_KEYSTORE2_STORAGE_STATS = 10103,
ATOM_RKP_POOL_STATS = 10104,
ATOM_PROCESS_DMABUF_MEMORY = 10105,
ATOM_PENDING_ALARM_INFO = 10106,
ATOM_USER_LEVEL_HIBERNATED_APPS = 10107,
ATOM_LAUNCHER_LAYOUT_SNAPSHOT = 10108,
ATOM_GLOBAL_HIBERNATED_APPS = 10109,
ATOM_INPUT_EVENT_LATENCY_SKETCH = 10110,
ATOM_BATTERY_USAGE_STATS_BEFORE_RESET = 10111,
ATOM_BATTERY_USAGE_STATS_SINCE_RESET = 10112,
ATOM_BATTERY_USAGE_STATS_SINCE_RESET_USING_POWER_PROFILE_MODEL = 10113,
ATOM_INSTALLED_INCREMENTAL_PACKAGE = 10114,
ATOM_TELEPHONY_NETWORK_REQUESTS = 10115,
ATOM_APP_SEARCH_STORAGE_INFO = 10116,
ATOM_VMSTAT = 10117,
ATOM_KEYSTORE2_KEY_CREATION_WITH_GENERAL_INFO = 10118,
ATOM_KEYSTORE2_KEY_CREATION_WITH_AUTH_INFO = 10119,
ATOM_KEYSTORE2_KEY_CREATION_WITH_PURPOSE_AND_MODES_INFO = 10120,
ATOM_KEYSTORE2_ATOM_WITH_OVERFLOW = 10121,
ATOM_KEYSTORE2_KEY_OPERATION_WITH_PURPOSE_AND_MODES_INFO = 10122,
ATOM_KEYSTORE2_KEY_OPERATION_WITH_GENERAL_INFO = 10123,
ATOM_RKP_ERROR_STATS = 10124,
ATOM_KEYSTORE2_CRASH_STATS = 10125,
ATOM_VENDOR_APEX_INFO = 10126,
ATOM_ACCESSIBILITY_SHORTCUT_STATS = 10127,
ATOM_ACCESSIBILITY_FLOATING_MENU_STATS = 10128,
ATOM_DATA_USAGE_BYTES_TRANSFER_V2 = 10129,
ATOM_MEDIA_CAPABILITIES = 10130,
ATOM_CAR_WATCHDOG_SYSTEM_IO_USAGE_SUMMARY = 10131,
ATOM_CAR_WATCHDOG_UID_IO_USAGE_SUMMARY = 10132,
ATOM_IMS_REGISTRATION_FEATURE_TAG_STATS = 10133,
ATOM_RCS_CLIENT_PROVISIONING_STATS = 10134,
ATOM_RCS_ACS_PROVISIONING_STATS = 10135,
ATOM_SIP_DELEGATE_STATS = 10136,
ATOM_SIP_TRANSPORT_FEATURE_TAG_STATS = 10137,
ATOM_SIP_MESSAGE_RESPONSE = 10138,
ATOM_SIP_TRANSPORT_SESSION = 10139,
ATOM_IMS_DEDICATED_BEARER_LISTENER_EVENT = 10140,
ATOM_IMS_DEDICATED_BEARER_EVENT = 10141,
ATOM_IMS_REGISTRATION_SERVICE_DESC_STATS = 10142,
ATOM_UCE_EVENT_STATS = 10143,
ATOM_PRESENCE_NOTIFY_EVENT = 10144,
ATOM_GBA_EVENT = 10145,
ATOM_PER_SIM_STATUS = 10146,
ATOM_GPU_WORK_PER_UID = 10147,
ATOM_PERSISTENT_URI_PERMISSIONS_AMOUNT_PER_PACKAGE = 10148,
ATOM_SIGNED_PARTITION_INFO = 10149,
ATOM_PINNED_FILE_SIZES_PER_PACKAGE = 10150,
ATOM_PENDING_INTENTS_PER_PACKAGE = 10151,
ATOM_USER_INFO = 10152,
ATOM_TELEPHONY_NETWORK_REQUESTS_V2 = 10153,
ATOM_DEVICE_TELEPHONY_PROPERTIES = 10154,
ATOM_REMOTE_KEY_PROVISIONING_ERROR_COUNTS = 10155,
ATOM_SAFETY_STATE = 10156,
ATOM_INCOMING_MMS = 10157,
ATOM_OUTGOING_MMS = 10158,
ATOM_MULTI_USER_INFO = 10160,
ATOM_NETWORK_BPF_MAP_INFO = 10161,
ATOM_OUTGOING_SHORT_CODE_SMS = 10162,
ATOM_CONNECTIVITY_STATE_SAMPLE = 10163,
ATOM_NETWORK_SELECTION_REMATCH_REASONS_INFO = 10164,
ATOM_GAME_MODE_INFO = 10165,
ATOM_GAME_MODE_CONFIGURATION = 10166,
ATOM_GAME_MODE_LISTENER = 10167,
ATOM_NETWORK_SLICE_REQUEST_COUNT = 10168,
ATOM_WS_TILE_SNAPSHOT = 10169,
ATOM_WS_ACTIVE_WATCH_FACE_COMPLICATION_SET_SNAPSHOT = 10170,
ATOM_PROCESS_STATE = 10171,
ATOM_PROCESS_ASSOCIATION = 10172,
ATOM_ADPF_SYSTEM_COMPONENT_INFO = 10173,
ATOM_NOTIFICATION_MEMORY_USE = 10174,
ATOM_HDR_CAPABILITIES = 10175,
ATOM_WS_FAVOURITE_WATCH_FACE_LIST_SNAPSHOT = 10176,
ATOM_ACCESSIBILITY_CHECK_RESULT_REPORTED = 910,
ATOM_ADAPTIVE_AUTH_UNLOCK_AFTER_LOCK_REPORTED = 820,
ATOM_THERMAL_STATUS_CALLED = 772,
ATOM_THERMAL_HEADROOM_CALLED = 773,
ATOM_THERMAL_HEADROOM_THRESHOLDS_CALLED = 774,
ATOM_ADPF_HINT_SESSION_TID_CLEANUP = 839,
ATOM_THERMAL_HEADROOM_THRESHOLDS = 10201,
ATOM_ADPF_SESSION_SNAPSHOT = 10218,
ATOM_JSSCRIPTENGINE_LATENCY_REPORTED = 483,
ATOM_AD_SERVICES_API_CALLED = 435,
ATOM_AD_SERVICES_MESUREMENT_REPORTS_UPLOADED = 436,
ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STATUS_REPORTED = 490,
ATOM_MOBILE_DATA_DOWNLOAD_DOWNLOAD_RESULT_REPORTED = 502,
ATOM_AD_SERVICES_SETTINGS_USAGE_REPORTED = 493,
ATOM_BACKGROUND_FETCH_PROCESS_REPORTED = 496,
ATOM_UPDATE_CUSTOM_AUDIENCE_PROCESS_REPORTED = 497,
ATOM_RUN_AD_BIDDING_PROCESS_REPORTED = 498,
ATOM_RUN_AD_SCORING_PROCESS_REPORTED = 499,
ATOM_RUN_AD_SELECTION_PROCESS_REPORTED = 500,
ATOM_RUN_AD_BIDDING_PER_CA_PROCESS_REPORTED = 501,
ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STORAGE_STATS_REPORTED = 503,
ATOM_AD_SERVICES_MEASUREMENT_REGISTRATIONS = 512,
ATOM_AD_SERVICES_GET_TOPICS_REPORTED = 535,
ATOM_AD_SERVICES_EPOCH_COMPUTATION_GET_TOP_TOPICS_REPORTED = 536,
ATOM_AD_SERVICES_EPOCH_COMPUTATION_CLASSIFIER_REPORTED = 537,
ATOM_AD_SERVICES_BACK_COMPAT_GET_TOPICS_REPORTED = 598,
ATOM_AD_SERVICES_BACK_COMPAT_EPOCH_COMPUTATION_CLASSIFIER_REPORTED = 599,
ATOM_AD_SERVICES_MEASUREMENT_DEBUG_KEYS = 640,
ATOM_AD_SERVICES_ERROR_REPORTED = 662,
ATOM_AD_SERVICES_BACKGROUND_JOBS_EXECUTION_REPORTED = 663,
ATOM_AD_SERVICES_MEASUREMENT_DELAYED_SOURCE_REGISTRATION = 673,
ATOM_AD_SERVICES_MEASUREMENT_ATTRIBUTION = 674,
ATOM_AD_SERVICES_MEASUREMENT_JOBS = 675,
ATOM_AD_SERVICES_MEASUREMENT_WIPEOUT = 676,
ATOM_AD_SERVICES_MEASUREMENT_AD_ID_MATCH_FOR_DEBUG_KEYS = 695,
ATOM_AD_SERVICES_ENROLLMENT_DATA_STORED = 697,
ATOM_AD_SERVICES_ENROLLMENT_FILE_DOWNLOADED = 698,
ATOM_AD_SERVICES_ENROLLMENT_MATCHED = 699,
ATOM_AD_SERVICES_CONSENT_MIGRATED = 702,
ATOM_AD_SERVICES_ENROLLMENT_FAILED = 714,
ATOM_AD_SERVICES_MEASUREMENT_CLICK_VERIFICATION = 756,
ATOM_AD_SERVICES_ENCRYPTION_KEY_FETCHED = 765,
ATOM_AD_SERVICES_ENCRYPTION_KEY_DB_TRANSACTION_ENDED = 766,
ATOM_DESTINATION_REGISTERED_BEACONS = 767,
ATOM_REPORT_INTERACTION_API_CALLED = 768,
ATOM_INTERACTION_REPORTING_TABLE_CLEARED = 769,
ATOM_APP_MANIFEST_CONFIG_HELPER_CALLED = 788,
ATOM_AD_FILTERING_PROCESS_JOIN_CA_REPORTED = 793,
ATOM_AD_FILTERING_PROCESS_AD_SELECTION_REPORTED = 794,
ATOM_AD_COUNTER_HISTOGRAM_UPDATER_REPORTED = 795,
ATOM_SIGNATURE_VERIFICATION = 807,
ATOM_K_ANON_IMMEDIATE_SIGN_JOIN_STATUS_REPORTED = 808,
ATOM_K_ANON_BACKGROUND_JOB_STATUS_REPORTED = 809,
ATOM_K_ANON_INITIALIZE_STATUS_REPORTED = 810,
ATOM_K_ANON_SIGN_STATUS_REPORTED = 811,
ATOM_K_ANON_JOIN_STATUS_REPORTED = 812,
ATOM_K_ANON_KEY_ATTESTATION_STATUS_REPORTED = 813,
ATOM_GET_AD_SELECTION_DATA_API_CALLED = 814,
ATOM_GET_AD_SELECTION_DATA_BUYER_INPUT_GENERATED = 815,
ATOM_BACKGROUND_JOB_SCHEDULING_REPORTED = 834,
ATOM_TOPICS_ENCRYPTION_EPOCH_COMPUTATION_REPORTED = 840,
ATOM_TOPICS_ENCRYPTION_GET_TOPICS_REPORTED = 841,
ATOM_ADSERVICES_SHELL_COMMAND_CALLED = 842,
ATOM_UPDATE_SIGNALS_API_CALLED = 843,
ATOM_ENCODING_JOB_RUN = 844,
ATOM_ENCODING_JS_FETCH = 845,
ATOM_ENCODING_JS_EXECUTION = 846,
ATOM_PERSIST_AD_SELECTION_RESULT_CALLED = 847,
ATOM_SERVER_AUCTION_KEY_FETCH_CALLED = 848,
ATOM_SERVER_AUCTION_BACKGROUND_KEY_FETCH_ENABLED = 849,
ATOM_AD_SERVICES_MEASUREMENT_PROCESS_ODP_REGISTRATION = 864,
ATOM_AD_SERVICES_MEASUREMENT_NOTIFY_REGISTRATION_TO_ODP = 865,
ATOM_SELECT_ADS_FROM_OUTCOMES_API_CALLED = 876,
ATOM_REPORT_IMPRESSION_API_CALLED = 877,
ATOM_AD_SERVICES_ENROLLMENT_TRANSACTION_STATS = 885,
ATOM_AD_SERVICES_COBALT_LOGGER_EVENT_REPORTED = 902,
ATOM_AD_SERVICES_COBALT_PERIODIC_JOB_EVENT_REPORTED = 903,
ATOM_UPDATE_SIGNALS_PROCESS_REPORTED = 905,
ATOM_TOPICS_SCHEDULE_EPOCH_JOB_SETTING_REPORTED = 930,
ATOM_AI_WALLPAPERS_BUTTON_PRESSED = 706,
ATOM_AI_WALLPAPERS_TEMPLATE_SELECTED = 707,
ATOM_AI_WALLPAPERS_TERM_SELECTED = 708,
ATOM_AI_WALLPAPERS_WALLPAPER_SET = 709,
ATOM_AI_WALLPAPERS_SESSION_SUMMARY = 710,
ATOM_APEX_INSTALLATION_REQUESTED = 732,
ATOM_APEX_INSTALLATION_STAGED = 733,
ATOM_APEX_INSTALLATION_ENDED = 734,
ATOM_APP_SEARCH_SET_SCHEMA_STATS_REPORTED = 385,
ATOM_APP_SEARCH_SCHEMA_MIGRATION_STATS_REPORTED = 579,
ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_STATS_REPORTED = 825,
ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_RAW_QUERY_STATS_REPORTED = 826,
ATOM_APP_SEARCH_APPS_INDEXER_STATS_REPORTED = 909,
ATOM_ART_DATUM_REPORTED = 332,
ATOM_ART_DEVICE_DATUM_REPORTED = 550,
ATOM_ART_DATUM_DELTA_REPORTED = 565,
ATOM_ART_DEX2OAT_REPORTED = 929,
ATOM_ART_DEVICE_STATUS = 10205,
ATOM_BACKGROUND_DEXOPT_JOB_ENDED = 467,
ATOM_PREREBOOT_DEXOPT_JOB_ENDED = 883,
ATOM_ODREFRESH_REPORTED = 366,
ATOM_ODSIGN_REPORTED = 548,
ATOM_AUTOFILL_UI_EVENT_REPORTED = 603,
ATOM_AUTOFILL_FILL_REQUEST_REPORTED = 604,
ATOM_AUTOFILL_FILL_RESPONSE_REPORTED = 605,
ATOM_AUTOFILL_SAVE_EVENT_REPORTED = 606,
ATOM_AUTOFILL_SESSION_COMMITTED = 607,
ATOM_AUTOFILL_FIELD_CLASSIFICATION_EVENT_REPORTED = 659,
ATOM_CAR_RECENTS_EVENT_REPORTED = 770,
ATOM_CAR_CALM_MODE_EVENT_REPORTED = 797,
ATOM_CAR_WAKEUP_FROM_SUSPEND_REPORTED = 852,
ATOM_PLUGIN_INITIALIZED = 655,
ATOM_BLUETOOTH_HASHED_DEVICE_NAME_REPORTED = 613,
ATOM_BLUETOOTH_L2CAP_COC_CLIENT_CONNECTION = 614,
ATOM_BLUETOOTH_L2CAP_COC_SERVER_CONNECTION = 615,
ATOM_BLUETOOTH_LE_SESSION_CONNECTED = 656,
ATOM_RESTRICTED_BLUETOOTH_DEVICE_NAME_REPORTED = 666,
ATOM_BLUETOOTH_PROFILE_CONNECTION_ATTEMPTED = 696,
ATOM_BLUETOOTH_CONTENT_PROFILE_ERROR_REPORTED = 781,
ATOM_BLUETOOTH_RFCOMM_CONNECTION_ATTEMPTED = 782,
ATOM_REMOTE_DEVICE_INFORMATION_WITH_METRIC_ID = 862,
ATOM_LE_APP_SCAN_STATE_CHANGED = 870,
ATOM_LE_RADIO_SCAN_STOPPED = 871,
ATOM_LE_SCAN_RESULT_RECEIVED = 872,
ATOM_LE_SCAN_ABUSED = 873,
ATOM_LE_ADV_STATE_CHANGED = 874,
ATOM_LE_ADV_ERROR_REPORTED = 875,
ATOM_A2DP_SESSION_REPORTED = 904,
ATOM_BLUETOOTH_CROSS_LAYER_EVENT_REPORTED = 916,
ATOM_BROADCAST_AUDIO_SESSION_REPORTED = 927,
ATOM_BROADCAST_AUDIO_SYNC_REPORTED = 928,
ATOM_BLUETOOTH_RFCOMM_CONNECTION_REPORTED_AT_CLOSE = 982,
ATOM_BLUETOOTH_LE_CONNECTION = 988,
ATOM_BROADCAST_SENT = 922,
ATOM_CAMERA_FEATURE_COMBINATION_QUERY_EVENT = 900,
ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_STATE_CHANGED = 934,
ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_UPDATE_FAILED = 972,
ATOM_DAILY_KEEPALIVE_INFO_REPORTED = 650,
ATOM_NETWORK_REQUEST_STATE_CHANGED = 779,
ATOM_TETHERING_ACTIVE_SESSIONS_REPORTED = 925,
ATOM_NETWORK_STATS_RECORDER_FILE_OPERATED = 783,
ATOM_CORE_NETWORKING_TERRIBLE_ERROR_OCCURRED = 979,
ATOM_APF_SESSION_INFO_REPORTED = 777,
ATOM_IP_CLIENT_RA_INFO_REPORTED = 778,
ATOM_VPN_CONNECTION_STATE_CHANGED = 850,
ATOM_VPN_CONNECTION_REPORTED = 851,
ATOM_CPU_POLICY = 10199,
ATOM_CREDENTIAL_MANAGER_API_CALLED = 585,
ATOM_CREDENTIAL_MANAGER_INIT_PHASE_REPORTED = 651,
ATOM_CREDENTIAL_MANAGER_CANDIDATE_PHASE_REPORTED = 652,
ATOM_CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED = 653,
ATOM_CREDENTIAL_MANAGER_TOTAL_REPORTED = 667,
ATOM_CREDENTIAL_MANAGER_FINALNOUID_REPORTED = 668,
ATOM_CREDENTIAL_MANAGER_GET_REPORTED = 669,
ATOM_CREDENTIAL_MANAGER_AUTH_CLICK_REPORTED = 670,
ATOM_CREDENTIAL_MANAGER_APIV2_CALLED = 671,
ATOM_CRONET_ENGINE_CREATED = 703,
ATOM_CRONET_TRAFFIC_REPORTED = 704,
ATOM_CRONET_ENGINE_BUILDER_INITIALIZED = 762,
ATOM_CRONET_HTTP_FLAGS_INITIALIZED = 763,
ATOM_CRONET_INITIALIZED = 764,
ATOM_DESKTOP_MODE_UI_CHANGED = 818,
ATOM_DESKTOP_MODE_SESSION_TASK_UPDATE = 819,
ATOM_DESKTOP_MODE_TASK_SIZE_UPDATED = 935,
ATOM_DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED = 726,
ATOM_DEVICE_LOCK_PROVISIONING_COMPLETE_REPORTED = 727,
ATOM_DEVICE_LOCK_KIOSK_APP_REQUEST_REPORTED = 728,
ATOM_DEVICE_LOCK_CHECK_IN_RETRY_REPORTED = 789,
ATOM_DEVICE_LOCK_PROVISION_FAILURE_REPORTED = 790,
ATOM_DEVICE_LOCK_LOCK_UNLOCK_DEVICE_FAILURE_REPORTED = 791,
ATOM_DEVICE_POLICY_MANAGEMENT_MODE = 10216,
ATOM_DEVICE_POLICY_STATE = 10217,
ATOM_DISPLAY_MODE_DIRECTOR_VOTE_CHANGED = 792,
ATOM_EXTERNAL_DISPLAY_STATE_CHANGED = 806,
ATOM_DND_STATE_CHANGED = 657,
ATOM_DREAM_SETTING_CHANGED = 705,
ATOM_DREAM_SETTING_SNAPSHOT = 10192,
ATOM_EXPRESS_EVENT_REPORTED = 528,
ATOM_EXPRESS_HISTOGRAM_SAMPLE_REPORTED = 593,
ATOM_EXPRESS_UID_EVENT_REPORTED = 644,
ATOM_EXPRESS_UID_HISTOGRAM_SAMPLE_REPORTED = 658,
ATOM_FEDERATED_COMPUTE_API_CALLED = 712,
ATOM_FEDERATED_COMPUTE_TRAINING_EVENT_REPORTED = 771,
ATOM_EXAMPLE_ITERATOR_NEXT_LATENCY_REPORTED = 838,
ATOM_FULL_SCREEN_INTENT_LAUNCHED = 631,
ATOM_BAL_ALLOWED = 632,
ATOM_IN_TASK_ACTIVITY_STARTED = 685,
ATOM_DEVICE_ORIENTATION_CHANGED = 906,
ATOM_CACHED_APPS_HIGH_WATERMARK = 10189,
ATOM_STYLUS_PREDICTION_METRICS_REPORTED = 718,
ATOM_USER_RISK_EVENT_REPORTED = 725,
ATOM_MEDIA_PROJECTION_STATE_CHANGED = 729,
ATOM_MEDIA_PROJECTION_TARGET_CHANGED = 730,
ATOM_EXCESSIVE_BINDER_PROXY_COUNT_REPORTED = 853,
ATOM_PROXY_BYTES_TRANSFER_BY_FG_BG = 10200,
ATOM_MOBILE_BYTES_TRANSFER_BY_PROC_STATE = 10204,
ATOM_BIOMETRIC_FRR_NOTIFICATION = 817,
ATOM_SENSITIVE_CONTENT_MEDIA_PROJECTION_SESSION = 830,
ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_SESSION = 831,
ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_APPLIED = 832,
ATOM_SENSITIVE_NOTIFICATION_REDACTION = 833,
ATOM_SENSITIVE_CONTENT_APP_PROTECTION = 835,
ATOM_APP_RESTRICTION_STATE_CHANGED = 866,
ATOM_BATTERY_USAGE_STATS_PER_UID = 10209,
ATOM_POSTGC_MEMORY_SNAPSHOT = 924,
ATOM_POWER_SAVE_TEMP_ALLOWLIST_CHANGED = 926,
ATOM_APP_OP_ACCESS_TRACKED = 931,
ATOM_CONTENT_OR_FILE_URI_EVENT_REPORTED = 933,
ATOM_APPLICATION_GRAMMATICAL_INFLECTION_CHANGED = 584,
ATOM_SYSTEM_GRAMMATICAL_INFLECTION_CHANGED = 816,
ATOM_BATTERY_HEALTH = 10220,
ATOM_HDMI_EARC_STATUS_REPORTED = 701,
ATOM_HDMI_SOUNDBAR_MODE_STATUS_REPORTED = 724,
ATOM_HEALTH_CONNECT_API_CALLED = 616,
ATOM_HEALTH_CONNECT_USAGE_STATS = 617,
ATOM_HEALTH_CONNECT_STORAGE_STATS = 618,
ATOM_HEALTH_CONNECT_API_INVOKED = 643,
ATOM_EXERCISE_ROUTE_API_CALLED = 654,
ATOM_HEALTH_CONNECT_EXPORT_INVOKED = 907,
ATOM_HEALTH_CONNECT_IMPORT_INVOKED = 918,
ATOM_HEALTH_CONNECT_EXPORT_IMPORT_STATS_REPORTED = 919,
ATOM_HEALTH_CONNECT_UI_IMPRESSION = 623,
ATOM_HEALTH_CONNECT_UI_INTERACTION = 624,
ATOM_HEALTH_CONNECT_APP_OPENED_REPORTED = 625,
ATOM_HOTWORD_EGRESS_SIZE_ATOM_REPORTED = 761,
ATOM_IKE_SESSION_TERMINATED = 678,
ATOM_IKE_LIVENESS_CHECK_SESSION_VALIDATED = 760,
ATOM_NEGOTIATED_SECURITY_ASSOCIATION = 821,
ATOM_KEYBOARD_CONFIGURED = 682,
ATOM_KEYBOARD_SYSTEMS_EVENT_REPORTED = 683,
ATOM_INPUTDEVICE_USAGE_REPORTED = 686,
ATOM_INPUT_EVENT_LATENCY_REPORTED = 932,
ATOM_TOUCHPAD_USAGE = 10191,
ATOM_KERNEL_OOM_KILL_OCCURRED = 754,
ATOM_EMERGENCY_STATE_CHANGED = 633,
ATOM_CHRE_SIGNIFICANT_MOTION_STATE_CHANGED = 868,
ATOM_POPULATION_DENSITY_PROVIDER_LOADING_REPORTED = 1002,
ATOM_DENSITY_BASED_COARSE_LOCATIONS_USAGE_REPORTED = 1003,
ATOM_DENSITY_BASED_COARSE_LOCATIONS_PROVIDER_QUERY_REPORTED = 1004,
ATOM_MEDIA_CODEC_RECLAIM_REQUEST_COMPLETED = 600,
ATOM_MEDIA_CODEC_STARTED = 641,
ATOM_MEDIA_CODEC_STOPPED = 642,
ATOM_MEDIA_CODEC_RENDERED = 684,
ATOM_MEDIA_EDITING_ENDED_REPORTED = 798,
ATOM_MTE_STATE = 10181,
ATOM_MICROXR_DEVICE_BOOT_COMPLETE_REPORTED = 901,
ATOM_NFC_OBSERVE_MODE_STATE_CHANGED = 855,
ATOM_NFC_FIELD_CHANGED = 856,
ATOM_NFC_POLLING_LOOP_NOTIFICATION_REPORTED = 857,
ATOM_NFC_PROPRIETARY_CAPABILITIES_REPORTED = 858,
ATOM_ONDEVICEPERSONALIZATION_API_CALLED = 711,
ATOM_COMPONENT_STATE_CHANGED_REPORTED = 863,
ATOM_PDF_LOAD_REPORTED = 859,
ATOM_PDF_API_USAGE_REPORTED = 860,
ATOM_PDF_SEARCH_REPORTED = 861,
ATOM_PRESSURE_STALL_INFORMATION = 10229,
ATOM_PERMISSION_RATIONALE_DIALOG_VIEWED = 645,
ATOM_PERMISSION_RATIONALE_DIALOG_ACTION_REPORTED = 646,
ATOM_APP_DATA_SHARING_UPDATES_NOTIFICATION_INTERACTION = 647,
ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_VIEWED = 648,
ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_ACTION_REPORTED = 649,
ATOM_ENHANCED_CONFIRMATION_DIALOG_RESULT_REPORTED = 827,
ATOM_ENHANCED_CONFIRMATION_RESTRICTION_CLEARED = 828,
ATOM_PHOTOPICKER_SESSION_INFO_REPORTED = 886,
ATOM_PHOTOPICKER_API_INFO_REPORTED = 887,
ATOM_PHOTOPICKER_UI_EVENT_LOGGED = 888,
ATOM_PHOTOPICKER_MEDIA_ITEM_STATUS_REPORTED = 889,
ATOM_PHOTOPICKER_PREVIEW_INFO_LOGGED = 890,
ATOM_PHOTOPICKER_MENU_INTERACTION_LOGGED = 891,
ATOM_PHOTOPICKER_BANNER_INTERACTION_LOGGED = 892,
ATOM_PHOTOPICKER_MEDIA_LIBRARY_INFO_LOGGED = 893,
ATOM_PHOTOPICKER_PAGE_INFO_LOGGED = 894,
ATOM_PHOTOPICKER_MEDIA_GRID_SYNC_INFO_REPORTED = 895,
ATOM_PHOTOPICKER_ALBUM_SYNC_INFO_REPORTED = 896,
ATOM_PHOTOPICKER_SEARCH_INFO_REPORTED = 897,
ATOM_SEARCH_DATA_EXTRACTION_DETAILS_REPORTED = 898,
ATOM_EMBEDDED_PHOTOPICKER_INFO_REPORTED = 899,
ATOM_ATOM_9999 = 9999,
ATOM_ATOM_99999 = 99999,
ATOM_SCREEN_OFF_REPORTED = 776,
ATOM_SCREEN_TIMEOUT_OVERRIDE_REPORTED = 836,
ATOM_SCREEN_INTERACTIVE_SESSION_REPORTED = 837,
ATOM_SCREEN_DIM_REPORTED = 867,
ATOM_MEDIA_PROVIDER_DATABASE_ROLLBACK_REPORTED = 784,
ATOM_BACKUP_SETUP_STATUS_REPORTED = 785,
ATOM_RANGING_SESSION_CONFIGURED = 993,
ATOM_RANGING_SESSION_STARTED = 994,
ATOM_RANGING_SESSION_CLOSED = 995,
ATOM_RANGING_TECHNOLOGY_STARTED = 996,
ATOM_RANGING_TECHNOLOGY_STOPPED = 997,
ATOM_RKPD_POOL_STATS = 664,
ATOM_RKPD_CLIENT_OPERATION = 665,
ATOM_SANDBOX_API_CALLED = 488,
ATOM_SANDBOX_ACTIVITY_EVENT_OCCURRED = 735,
ATOM_SDK_SANDBOX_RESTRICTED_ACCESS_IN_SESSION = 796,
ATOM_SANDBOX_SDK_STORAGE = 10159,
ATOM_SELINUX_AUDIT_LOG = 799,
ATOM_SETTINGS_SPA_REPORTED = 622,
ATOM_TEST_EXTENSION_ATOM_REPORTED = 660,
ATOM_TEST_RESTRICTED_ATOM_REPORTED = 672,
ATOM_STATS_SOCKET_LOSS_REPORTED = 752,
ATOM_LOCKSCREEN_SHORTCUT_SELECTED = 611,
ATOM_LOCKSCREEN_SHORTCUT_TRIGGERED = 612,
ATOM_LAUNCHER_IMPRESSION_EVENT_V2 = 716,
ATOM_DISPLAY_SWITCH_LATENCY_TRACKED = 753,
ATOM_NOTIFICATION_LISTENER_SERVICE = 829,
ATOM_NAV_HANDLE_TOUCH_POINTS = 869,
ATOM_COMMUNAL_HUB_WIDGET_EVENT_REPORTED = 908,
ATOM_COMMUNAL_HUB_SNAPSHOT = 10226,
ATOM_EMERGENCY_NUMBER_DIALED = 637,
ATOM_CALL_STATS = 10221,
ATOM_CALL_AUDIO_ROUTE_STATS = 10222,
ATOM_TELECOM_API_STATS = 10223,
ATOM_TELECOM_ERROR_STATS = 10224,
ATOM_CELLULAR_RADIO_POWER_STATE_CHANGED = 713,
ATOM_EMERGENCY_NUMBERS_INFO = 10180,
ATOM_DATA_NETWORK_VALIDATION = 10207,
ATOM_DATA_RAT_STATE_CHANGED = 854,
ATOM_CONNECTED_CHANNEL_CHANGED = 882,
ATOM_IWLAN_UNDERLYING_NETWORK_VALIDATION_RESULT_REPORTED = 923,
ATOM_QUALIFIED_RAT_LIST_CHANGED = 634,
ATOM_QNS_IMS_CALL_DROP_STATS = 635,
ATOM_QNS_FALLBACK_RESTRICTION_CHANGED = 636,
ATOM_QNS_RAT_PREFERENCE_MISMATCH_INFO = 10177,
ATOM_QNS_HANDOVER_TIME_MILLIS = 10178,
ATOM_QNS_HANDOVER_PINGPONG = 10179,
ATOM_SATELLITE_CONTROLLER = 10182,
ATOM_SATELLITE_SESSION = 10183,
ATOM_SATELLITE_INCOMING_DATAGRAM = 10184,
ATOM_SATELLITE_OUTGOING_DATAGRAM = 10185,
ATOM_SATELLITE_PROVISION = 10186,
ATOM_SATELLITE_SOS_MESSAGE_RECOMMENDER = 10187,
ATOM_CARRIER_ROAMING_SATELLITE_SESSION = 10211,
ATOM_CARRIER_ROAMING_SATELLITE_CONTROLLER_STATS = 10212,
ATOM_CONTROLLER_STATS_PER_PACKAGE = 10213,
ATOM_SATELLITE_ENTITLEMENT = 10214,
ATOM_SATELLITE_CONFIG_UPDATER = 10215,
ATOM_SATELLITE_ACCESS_CONTROLLER = 10219,
ATOM_CELLULAR_IDENTIFIER_DISCLOSED = 800,
ATOM_THREADNETWORK_TELEMETRY_DATA_REPORTED = 738,
ATOM_THREADNETWORK_TOPO_ENTRY_REPEATED = 739,
ATOM_THREADNETWORK_DEVICE_INFO_REPORTED = 740,
ATOM_BOOT_INTEGRITY_INFO_REPORTED = 775,
ATOM_TV_LOW_POWER_STANDBY_POLICY = 679,
ATOM_EXTERNAL_TV_INPUT_EVENT = 717,
ATOM_TEST_UPROBESTATS_ATOM_REPORTED = 915,
ATOM_UWB_ACTIVITY_INFO = 10188,
ATOM_MEDIATOR_UPDATED = 721,
ATOM_SYSPROXY_BLUETOOTH_BYTES_TRANSFER = 10196,
ATOM_SYSPROXY_CONNECTION_UPDATED = 786,
ATOM_WEAR_COMPANION_CONNECTION_STATE = 921,
ATOM_MEDIA_ACTION_REPORTED = 608,
ATOM_MEDIA_CONTROLS_LAUNCHED = 609,
ATOM_MEDIA_SESSION_STATE_CHANGED = 677,
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_API_LATENCY = 757,
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_SASS_DEVICE_UNAVAILABLE = 758,
ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FASTPAIR_API_TIMEOUT = 759,
ATOM_WEAR_MODE_STATE_CHANGED = 715,
ATOM_RENDERER_INITIALIZED = 736,
ATOM_SCHEMA_VERSION_RECEIVED = 737,
ATOM_LAYOUT_INSPECTED = 741,
ATOM_LAYOUT_EXPRESSION_INSPECTED = 742,
ATOM_LAYOUT_ANIMATIONS_INSPECTED = 743,
ATOM_MATERIAL_COMPONENTS_INSPECTED = 744,
ATOM_TILE_REQUESTED = 745,
ATOM_STATE_RESPONSE_RECEIVED = 746,
ATOM_TILE_RESPONSE_RECEIVED = 747,
ATOM_INFLATION_FINISHED = 748,
ATOM_INFLATION_FAILED = 749,
ATOM_IGNORED_INFLATION_FAILURES_REPORTED = 750,
ATOM_DRAWABLE_RENDERED = 751,
ATOM_WEAR_TIME_SYNC_REQUESTED = 911,
ATOM_WEAR_TIME_UPDATE_STARTED = 912,
ATOM_WEAR_TIME_SYNC_ATTEMPT_COMPLETED = 913,
ATOM_WEAR_TIME_CHANGED = 914,
ATOM_WEAR_ADAPTIVE_SUSPEND_STATS_REPORTED = 619,
ATOM_WEAR_POWER_ANOMALY_SERVICE_OPERATIONAL_STATS_REPORTED = 620,
ATOM_WEAR_POWER_ANOMALY_SERVICE_EVENT_STATS_REPORTED = 621,
ATOM_WS_WEAR_TIME_SESSION = 610,
ATOM_WS_INCOMING_CALL_ACTION_REPORTED = 626,
ATOM_WS_CALL_DISCONNECTION_REPORTED = 627,
ATOM_WS_CALL_DURATION_REPORTED = 628,
ATOM_WS_CALL_USER_EXPERIENCE_LATENCY_REPORTED = 629,
ATOM_WS_CALL_INTERACTION_REPORTED = 630,
ATOM_WS_ON_BODY_STATE_CHANGED = 787,
ATOM_WS_WATCH_FACE_RESTRICTED_COMPLICATIONS_IMPACTED = 802,
ATOM_WS_WATCH_FACE_DEFAULT_RESTRICTED_COMPLICATIONS_REMOVED = 803,
ATOM_WS_COMPLICATIONS_IMPACTED_NOTIFICATION_EVENT_REPORTED = 804,
ATOM_WS_REMOTE_EVENT_USAGE_REPORTED = 920,
ATOM_WS_BUGREPORT_REQUESTED = 936,
ATOM_WS_BUGREPORT_TRIGGERED = 937,
ATOM_WS_BUGREPORT_FINISHED = 938,
ATOM_WS_BUGREPORT_RESULT_RECEIVED = 939,
ATOM_WS_STANDALONE_MODE_SNAPSHOT = 10197,
ATOM_WS_FAVORITE_WATCH_FACE_SNAPSHOT = 10206,
ATOM_WS_PHOTOS_WATCH_FACE_FEATURE_SNAPSHOT = 10225,
ATOM_WS_WATCH_FACE_CUSTOMIZATION_SNAPSHOT = 10227,
ATOM_WEAR_POWER_MENU_OPENED = 731,
ATOM_WEAR_ASSISTANT_OPENED = 755,
ATOM_FIRST_OVERLAY_STATE_CHANGED = 917,
ATOM_WIFI_AWARE_NDP_REPORTED = 638,
ATOM_WIFI_AWARE_ATTACH_REPORTED = 639,
ATOM_WIFI_SELF_RECOVERY_TRIGGERED = 661,
ATOM_SOFT_AP_STARTED = 680,
ATOM_SOFT_AP_STOPPED = 681,
ATOM_WIFI_LOCK_RELEASED = 687,
ATOM_WIFI_LOCK_DEACTIVATED = 688,
ATOM_WIFI_CONFIG_SAVED = 689,
ATOM_WIFI_AWARE_RESOURCE_USING_CHANGED = 690,
ATOM_WIFI_AWARE_HAL_API_CALLED = 691,
ATOM_WIFI_LOCAL_ONLY_REQUEST_RECEIVED = 692,
ATOM_WIFI_LOCAL_ONLY_REQUEST_SCAN_TRIGGERED = 693,
ATOM_WIFI_THREAD_TASK_EXECUTED = 694,
ATOM_WIFI_STATE_CHANGED = 700,
ATOM_PNO_SCAN_STARTED = 719,
ATOM_PNO_SCAN_STOPPED = 720,
ATOM_WIFI_IS_UNUSABLE_REPORTED = 722,
ATOM_WIFI_AP_CAPABILITIES_REPORTED = 723,
ATOM_SOFT_AP_STATE_CHANGED = 805,
ATOM_SCORER_PREDICTION_RESULT_REPORTED = 884,
ATOM_WIFI_AWARE_CAPABILITIES = 10190,
ATOM_WIFI_MODULE_INFO = 10193,
ATOM_WIFI_SETTING_INFO = 10194,
ATOM_WIFI_COMPLEX_SETTING_INFO = 10195,
ATOM_WIFI_CONFIGURED_NETWORK_INFO = 10198,
UNRECOGNIZED = -1,
}

export function atomIdFromJSON(object: any): AtomId {
switch (object) {
case 0:
      case "ATOM_UNSPECIFIED":
        return AtomId.ATOM_UNSPECIFIED;
case 2:
      case "ATOM_BLE_SCAN_STATE_CHANGED":
        return AtomId.ATOM_BLE_SCAN_STATE_CHANGED;
case 3:
      case "ATOM_PROCESS_STATE_CHANGED":
        return AtomId.ATOM_PROCESS_STATE_CHANGED;
case 4:
      case "ATOM_BLE_SCAN_RESULT_RECEIVED":
        return AtomId.ATOM_BLE_SCAN_RESULT_RECEIVED;
case 5:
      case "ATOM_SENSOR_STATE_CHANGED":
        return AtomId.ATOM_SENSOR_STATE_CHANGED;
case 6:
      case "ATOM_GPS_SCAN_STATE_CHANGED":
        return AtomId.ATOM_GPS_SCAN_STATE_CHANGED;
case 7:
      case "ATOM_SYNC_STATE_CHANGED":
        return AtomId.ATOM_SYNC_STATE_CHANGED;
case 8:
      case "ATOM_SCHEDULED_JOB_STATE_CHANGED":
        return AtomId.ATOM_SCHEDULED_JOB_STATE_CHANGED;
case 9:
      case "ATOM_SCREEN_BRIGHTNESS_CHANGED":
        return AtomId.ATOM_SCREEN_BRIGHTNESS_CHANGED;
case 10:
      case "ATOM_WAKELOCK_STATE_CHANGED":
        return AtomId.ATOM_WAKELOCK_STATE_CHANGED;
case 11:
      case "ATOM_LONG_PARTIAL_WAKELOCK_STATE_CHANGED":
        return AtomId.ATOM_LONG_PARTIAL_WAKELOCK_STATE_CHANGED;
case 12:
      case "ATOM_MOBILE_RADIO_POWER_STATE_CHANGED":
        return AtomId.ATOM_MOBILE_RADIO_POWER_STATE_CHANGED;
case 13:
      case "ATOM_WIFI_RADIO_POWER_STATE_CHANGED":
        return AtomId.ATOM_WIFI_RADIO_POWER_STATE_CHANGED;
case 14:
      case "ATOM_ACTIVITY_MANAGER_SLEEP_STATE_CHANGED":
        return AtomId.ATOM_ACTIVITY_MANAGER_SLEEP_STATE_CHANGED;
case 15:
      case "ATOM_MEMORY_FACTOR_STATE_CHANGED":
        return AtomId.ATOM_MEMORY_FACTOR_STATE_CHANGED;
case 16:
      case "ATOM_EXCESSIVE_CPU_USAGE_REPORTED":
        return AtomId.ATOM_EXCESSIVE_CPU_USAGE_REPORTED;
case 17:
      case "ATOM_CACHED_KILL_REPORTED":
        return AtomId.ATOM_CACHED_KILL_REPORTED;
case 18:
      case "ATOM_PROCESS_MEMORY_STAT_REPORTED":
        return AtomId.ATOM_PROCESS_MEMORY_STAT_REPORTED;
case 19:
      case "ATOM_LAUNCHER_EVENT":
        return AtomId.ATOM_LAUNCHER_EVENT;
case 20:
      case "ATOM_BATTERY_SAVER_MODE_STATE_CHANGED":
        return AtomId.ATOM_BATTERY_SAVER_MODE_STATE_CHANGED;
case 21:
      case "ATOM_DEVICE_IDLE_MODE_STATE_CHANGED":
        return AtomId.ATOM_DEVICE_IDLE_MODE_STATE_CHANGED;
case 22:
      case "ATOM_DEVICE_IDLING_MODE_STATE_CHANGED":
        return AtomId.ATOM_DEVICE_IDLING_MODE_STATE_CHANGED;
case 23:
      case "ATOM_AUDIO_STATE_CHANGED":
        return AtomId.ATOM_AUDIO_STATE_CHANGED;
case 24:
      case "ATOM_MEDIA_CODEC_STATE_CHANGED":
        return AtomId.ATOM_MEDIA_CODEC_STATE_CHANGED;
case 25:
      case "ATOM_CAMERA_STATE_CHANGED":
        return AtomId.ATOM_CAMERA_STATE_CHANGED;
case 26:
      case "ATOM_FLASHLIGHT_STATE_CHANGED":
        return AtomId.ATOM_FLASHLIGHT_STATE_CHANGED;
case 27:
      case "ATOM_UID_PROCESS_STATE_CHANGED":
        return AtomId.ATOM_UID_PROCESS_STATE_CHANGED;
case 28:
      case "ATOM_PROCESS_LIFE_CYCLE_STATE_CHANGED":
        return AtomId.ATOM_PROCESS_LIFE_CYCLE_STATE_CHANGED;
case 29:
      case "ATOM_SCREEN_STATE_CHANGED":
        return AtomId.ATOM_SCREEN_STATE_CHANGED;
case 30:
      case "ATOM_BATTERY_LEVEL_CHANGED":
        return AtomId.ATOM_BATTERY_LEVEL_CHANGED;
case 31:
      case "ATOM_CHARGING_STATE_CHANGED":
        return AtomId.ATOM_CHARGING_STATE_CHANGED;
case 32:
      case "ATOM_PLUGGED_STATE_CHANGED":
        return AtomId.ATOM_PLUGGED_STATE_CHANGED;
case 33:
      case "ATOM_INTERACTIVE_STATE_CHANGED":
        return AtomId.ATOM_INTERACTIVE_STATE_CHANGED;
case 34:
      case "ATOM_TOUCH_EVENT_REPORTED":
        return AtomId.ATOM_TOUCH_EVENT_REPORTED;
case 35:
      case "ATOM_WAKEUP_ALARM_OCCURRED":
        return AtomId.ATOM_WAKEUP_ALARM_OCCURRED;
case 36:
      case "ATOM_KERNEL_WAKEUP_REPORTED":
        return AtomId.ATOM_KERNEL_WAKEUP_REPORTED;
case 37:
      case "ATOM_WIFI_LOCK_STATE_CHANGED":
        return AtomId.ATOM_WIFI_LOCK_STATE_CHANGED;
case 38:
      case "ATOM_WIFI_SIGNAL_STRENGTH_CHANGED":
        return AtomId.ATOM_WIFI_SIGNAL_STRENGTH_CHANGED;
case 39:
      case "ATOM_WIFI_SCAN_STATE_CHANGED":
        return AtomId.ATOM_WIFI_SCAN_STATE_CHANGED;
case 40:
      case "ATOM_PHONE_SIGNAL_STRENGTH_CHANGED":
        return AtomId.ATOM_PHONE_SIGNAL_STRENGTH_CHANGED;
case 41:
      case "ATOM_SETTING_CHANGED":
        return AtomId.ATOM_SETTING_CHANGED;
case 42:
      case "ATOM_ACTIVITY_FOREGROUND_STATE_CHANGED":
        return AtomId.ATOM_ACTIVITY_FOREGROUND_STATE_CHANGED;
case 43:
      case "ATOM_ISOLATED_UID_CHANGED":
        return AtomId.ATOM_ISOLATED_UID_CHANGED;
case 44:
      case "ATOM_PACKET_WAKEUP_OCCURRED":
        return AtomId.ATOM_PACKET_WAKEUP_OCCURRED;
case 45:
      case "ATOM_WALL_CLOCK_TIME_SHIFTED":
        return AtomId.ATOM_WALL_CLOCK_TIME_SHIFTED;
case 46:
      case "ATOM_ANOMALY_DETECTED":
        return AtomId.ATOM_ANOMALY_DETECTED;
case 47:
      case "ATOM_APP_BREADCRUMB_REPORTED":
        return AtomId.ATOM_APP_BREADCRUMB_REPORTED;
case 48:
      case "ATOM_APP_START_OCCURRED":
        return AtomId.ATOM_APP_START_OCCURRED;
case 49:
      case "ATOM_APP_START_CANCELED":
        return AtomId.ATOM_APP_START_CANCELED;
case 50:
      case "ATOM_APP_START_FULLY_DRAWN":
        return AtomId.ATOM_APP_START_FULLY_DRAWN;
case 51:
      case "ATOM_LMK_KILL_OCCURRED":
        return AtomId.ATOM_LMK_KILL_OCCURRED;
case 52:
      case "ATOM_PICTURE_IN_PICTURE_STATE_CHANGED":
        return AtomId.ATOM_PICTURE_IN_PICTURE_STATE_CHANGED;
case 53:
      case "ATOM_WIFI_MULTICAST_LOCK_STATE_CHANGED":
        return AtomId.ATOM_WIFI_MULTICAST_LOCK_STATE_CHANGED;
case 55:
      case "ATOM_APP_START_MEMORY_STATE_CAPTURED":
        return AtomId.ATOM_APP_START_MEMORY_STATE_CAPTURED;
case 56:
      case "ATOM_SHUTDOWN_SEQUENCE_REPORTED":
        return AtomId.ATOM_SHUTDOWN_SEQUENCE_REPORTED;
case 57:
      case "ATOM_BOOT_SEQUENCE_REPORTED":
        return AtomId.ATOM_BOOT_SEQUENCE_REPORTED;
case 59:
      case "ATOM_OVERLAY_STATE_CHANGED":
        return AtomId.ATOM_OVERLAY_STATE_CHANGED;
case 60:
      case "ATOM_FOREGROUND_SERVICE_STATE_CHANGED":
        return AtomId.ATOM_FOREGROUND_SERVICE_STATE_CHANGED;
case 61:
      case "ATOM_CALL_STATE_CHANGED":
        return AtomId.ATOM_CALL_STATE_CHANGED;
case 62:
      case "ATOM_KEYGUARD_STATE_CHANGED":
        return AtomId.ATOM_KEYGUARD_STATE_CHANGED;
case 63:
      case "ATOM_KEYGUARD_BOUNCER_STATE_CHANGED":
        return AtomId.ATOM_KEYGUARD_BOUNCER_STATE_CHANGED;
case 64:
      case "ATOM_KEYGUARD_BOUNCER_PASSWORD_ENTERED":
        return AtomId.ATOM_KEYGUARD_BOUNCER_PASSWORD_ENTERED;
case 65:
      case "ATOM_APP_DIED":
        return AtomId.ATOM_APP_DIED;
case 66:
      case "ATOM_RESOURCE_CONFIGURATION_CHANGED":
        return AtomId.ATOM_RESOURCE_CONFIGURATION_CHANGED;
case 67:
      case "ATOM_BLUETOOTH_ENABLED_STATE_CHANGED":
        return AtomId.ATOM_BLUETOOTH_ENABLED_STATE_CHANGED;
case 68:
      case "ATOM_BLUETOOTH_CONNECTION_STATE_CHANGED":
        return AtomId.ATOM_BLUETOOTH_CONNECTION_STATE_CHANGED;
case 69:
      case "ATOM_GPS_SIGNAL_QUALITY_CHANGED":
        return AtomId.ATOM_GPS_SIGNAL_QUALITY_CHANGED;
case 70:
      case "ATOM_USB_CONNECTOR_STATE_CHANGED":
        return AtomId.ATOM_USB_CONNECTOR_STATE_CHANGED;
case 71:
      case "ATOM_SPEAKER_IMPEDANCE_REPORTED":
        return AtomId.ATOM_SPEAKER_IMPEDANCE_REPORTED;
case 72:
      case "ATOM_HARDWARE_FAILED":
        return AtomId.ATOM_HARDWARE_FAILED;
case 73:
      case "ATOM_PHYSICAL_DROP_DETECTED":
        return AtomId.ATOM_PHYSICAL_DROP_DETECTED;
case 74:
      case "ATOM_CHARGE_CYCLES_REPORTED":
        return AtomId.ATOM_CHARGE_CYCLES_REPORTED;
case 75:
      case "ATOM_MOBILE_CONNECTION_STATE_CHANGED":
        return AtomId.ATOM_MOBILE_CONNECTION_STATE_CHANGED;
case 76:
      case "ATOM_MOBILE_RADIO_TECHNOLOGY_CHANGED":
        return AtomId.ATOM_MOBILE_RADIO_TECHNOLOGY_CHANGED;
case 77:
      case "ATOM_USB_DEVICE_ATTACHED":
        return AtomId.ATOM_USB_DEVICE_ATTACHED;
case 78:
      case "ATOM_APP_CRASH_OCCURRED":
        return AtomId.ATOM_APP_CRASH_OCCURRED;
case 79:
      case "ATOM_ANR_OCCURRED":
        return AtomId.ATOM_ANR_OCCURRED;
case 80:
      case "ATOM_WTF_OCCURRED":
        return AtomId.ATOM_WTF_OCCURRED;
case 81:
      case "ATOM_LOW_MEM_REPORTED":
        return AtomId.ATOM_LOW_MEM_REPORTED;
case 82:
      case "ATOM_GENERIC_ATOM":
        return AtomId.ATOM_GENERIC_ATOM;
case 84:
      case "ATOM_VIBRATOR_STATE_CHANGED":
        return AtomId.ATOM_VIBRATOR_STATE_CHANGED;
case 85:
      case "ATOM_DEFERRED_JOB_STATS_REPORTED":
        return AtomId.ATOM_DEFERRED_JOB_STATS_REPORTED;
case 86:
      case "ATOM_THERMAL_THROTTLING":
        return AtomId.ATOM_THERMAL_THROTTLING;
case 87:
      case "ATOM_BIOMETRIC_ACQUIRED":
        return AtomId.ATOM_BIOMETRIC_ACQUIRED;
case 88:
      case "ATOM_BIOMETRIC_AUTHENTICATED":
        return AtomId.ATOM_BIOMETRIC_AUTHENTICATED;
case 89:
      case "ATOM_BIOMETRIC_ERROR_OCCURRED":
        return AtomId.ATOM_BIOMETRIC_ERROR_OCCURRED;
case 90:
      case "ATOM_UI_EVENT_REPORTED":
        return AtomId.ATOM_UI_EVENT_REPORTED;
case 91:
      case "ATOM_BATTERY_HEALTH_SNAPSHOT":
        return AtomId.ATOM_BATTERY_HEALTH_SNAPSHOT;
case 92:
      case "ATOM_SLOW_IO":
        return AtomId.ATOM_SLOW_IO;
case 93:
      case "ATOM_BATTERY_CAUSED_SHUTDOWN":
        return AtomId.ATOM_BATTERY_CAUSED_SHUTDOWN;
case 94:
      case "ATOM_PHONE_SERVICE_STATE_CHANGED":
        return AtomId.ATOM_PHONE_SERVICE_STATE_CHANGED;
case 95:
      case "ATOM_PHONE_STATE_CHANGED":
        return AtomId.ATOM_PHONE_STATE_CHANGED;
case 96:
      case "ATOM_USER_RESTRICTION_CHANGED":
        return AtomId.ATOM_USER_RESTRICTION_CHANGED;
case 97:
      case "ATOM_SETTINGS_UI_CHANGED":
        return AtomId.ATOM_SETTINGS_UI_CHANGED;
case 98:
      case "ATOM_CONNECTIVITY_STATE_CHANGED":
        return AtomId.ATOM_CONNECTIVITY_STATE_CHANGED;
case 99:
      case "ATOM_SERVICE_STATE_CHANGED":
        return AtomId.ATOM_SERVICE_STATE_CHANGED;
case 100:
      case "ATOM_SERVICE_LAUNCH_REPORTED":
        return AtomId.ATOM_SERVICE_LAUNCH_REPORTED;
case 101:
      case "ATOM_FLAG_FLIP_UPDATE_OCCURRED":
        return AtomId.ATOM_FLAG_FLIP_UPDATE_OCCURRED;
case 102:
      case "ATOM_BINARY_PUSH_STATE_CHANGED":
        return AtomId.ATOM_BINARY_PUSH_STATE_CHANGED;
case 103:
      case "ATOM_DEVICE_POLICY_EVENT":
        return AtomId.ATOM_DEVICE_POLICY_EVENT;
case 104:
      case "ATOM_DOCS_UI_FILE_OP_CANCELED":
        return AtomId.ATOM_DOCS_UI_FILE_OP_CANCELED;
case 105:
      case "ATOM_DOCS_UI_FILE_OP_COPY_MOVE_MODE_REPORTED":
        return AtomId.ATOM_DOCS_UI_FILE_OP_COPY_MOVE_MODE_REPORTED;
case 106:
      case "ATOM_DOCS_UI_FILE_OP_FAILURE":
        return AtomId.ATOM_DOCS_UI_FILE_OP_FAILURE;
case 107:
      case "ATOM_DOCS_UI_PROVIDER_FILE_OP":
        return AtomId.ATOM_DOCS_UI_PROVIDER_FILE_OP;
case 108:
      case "ATOM_DOCS_UI_INVALID_SCOPED_ACCESS_REQUEST":
        return AtomId.ATOM_DOCS_UI_INVALID_SCOPED_ACCESS_REQUEST;
case 109:
      case "ATOM_DOCS_UI_LAUNCH_REPORTED":
        return AtomId.ATOM_DOCS_UI_LAUNCH_REPORTED;
case 110:
      case "ATOM_DOCS_UI_ROOT_VISITED":
        return AtomId.ATOM_DOCS_UI_ROOT_VISITED;
case 111:
      case "ATOM_DOCS_UI_STARTUP_MS":
        return AtomId.ATOM_DOCS_UI_STARTUP_MS;
case 112:
      case "ATOM_DOCS_UI_USER_ACTION_REPORTED":
        return AtomId.ATOM_DOCS_UI_USER_ACTION_REPORTED;
case 113:
      case "ATOM_WIFI_ENABLED_STATE_CHANGED":
        return AtomId.ATOM_WIFI_ENABLED_STATE_CHANGED;
case 114:
      case "ATOM_WIFI_RUNNING_STATE_CHANGED":
        return AtomId.ATOM_WIFI_RUNNING_STATE_CHANGED;
case 115:
      case "ATOM_APP_COMPACTED":
        return AtomId.ATOM_APP_COMPACTED;
case 116:
      case "ATOM_NETWORK_DNS_EVENT_REPORTED":
        return AtomId.ATOM_NETWORK_DNS_EVENT_REPORTED;
case 117:
      case "ATOM_DOCS_UI_PICKER_LAUNCHED_FROM_REPORTED":
        return AtomId.ATOM_DOCS_UI_PICKER_LAUNCHED_FROM_REPORTED;
case 118:
      case "ATOM_DOCS_UI_PICK_RESULT_REPORTED":
        return AtomId.ATOM_DOCS_UI_PICK_RESULT_REPORTED;
case 119:
      case "ATOM_DOCS_UI_SEARCH_MODE_REPORTED":
        return AtomId.ATOM_DOCS_UI_SEARCH_MODE_REPORTED;
case 120:
      case "ATOM_DOCS_UI_SEARCH_TYPE_REPORTED":
        return AtomId.ATOM_DOCS_UI_SEARCH_TYPE_REPORTED;
case 121:
      case "ATOM_DATA_STALL_EVENT":
        return AtomId.ATOM_DATA_STALL_EVENT;
case 122:
      case "ATOM_RESCUE_PARTY_RESET_REPORTED":
        return AtomId.ATOM_RESCUE_PARTY_RESET_REPORTED;
case 123:
      case "ATOM_SIGNED_CONFIG_REPORTED":
        return AtomId.ATOM_SIGNED_CONFIG_REPORTED;
case 124:
      case "ATOM_GNSS_NI_EVENT_REPORTED":
        return AtomId.ATOM_GNSS_NI_EVENT_REPORTED;
case 125:
      case "ATOM_BLUETOOTH_LINK_LAYER_CONNECTION_EVENT":
        return AtomId.ATOM_BLUETOOTH_LINK_LAYER_CONNECTION_EVENT;
case 126:
      case "ATOM_BLUETOOTH_ACL_CONNECTION_STATE_CHANGED":
        return AtomId.ATOM_BLUETOOTH_ACL_CONNECTION_STATE_CHANGED;
case 127:
      case "ATOM_BLUETOOTH_SCO_CONNECTION_STATE_CHANGED":
        return AtomId.ATOM_BLUETOOTH_SCO_CONNECTION_STATE_CHANGED;
case 128:
      case "ATOM_APP_DOWNGRADED":
        return AtomId.ATOM_APP_DOWNGRADED;
case 129:
      case "ATOM_APP_OPTIMIZED_AFTER_DOWNGRADED":
        return AtomId.ATOM_APP_OPTIMIZED_AFTER_DOWNGRADED;
case 130:
      case "ATOM_LOW_STORAGE_STATE_CHANGED":
        return AtomId.ATOM_LOW_STORAGE_STATE_CHANGED;
case 131:
      case "ATOM_GNSS_NFW_NOTIFICATION_REPORTED":
        return AtomId.ATOM_GNSS_NFW_NOTIFICATION_REPORTED;
case 132:
      case "ATOM_GNSS_CONFIGURATION_REPORTED":
        return AtomId.ATOM_GNSS_CONFIGURATION_REPORTED;
case 133:
      case "ATOM_USB_PORT_OVERHEAT_EVENT_REPORTED":
        return AtomId.ATOM_USB_PORT_OVERHEAT_EVENT_REPORTED;
case 134:
      case "ATOM_NFC_ERROR_OCCURRED":
        return AtomId.ATOM_NFC_ERROR_OCCURRED;
case 135:
      case "ATOM_NFC_STATE_CHANGED":
        return AtomId.ATOM_NFC_STATE_CHANGED;
case 136:
      case "ATOM_NFC_BEAM_OCCURRED":
        return AtomId.ATOM_NFC_BEAM_OCCURRED;
case 137:
      case "ATOM_NFC_CARDEMULATION_OCCURRED":
        return AtomId.ATOM_NFC_CARDEMULATION_OCCURRED;
case 138:
      case "ATOM_NFC_TAG_OCCURRED":
        return AtomId.ATOM_NFC_TAG_OCCURRED;
case 139:
      case "ATOM_NFC_HCE_TRANSACTION_OCCURRED":
        return AtomId.ATOM_NFC_HCE_TRANSACTION_OCCURRED;
case 140:
      case "ATOM_SE_STATE_CHANGED":
        return AtomId.ATOM_SE_STATE_CHANGED;
case 141:
      case "ATOM_SE_OMAPI_REPORTED":
        return AtomId.ATOM_SE_OMAPI_REPORTED;
case 142:
      case "ATOM_BROADCAST_DISPATCH_LATENCY_REPORTED":
        return AtomId.ATOM_BROADCAST_DISPATCH_LATENCY_REPORTED;
case 143:
      case "ATOM_ATTENTION_MANAGER_SERVICE_RESULT_REPORTED":
        return AtomId.ATOM_ATTENTION_MANAGER_SERVICE_RESULT_REPORTED;
case 144:
      case "ATOM_ADB_CONNECTION_CHANGED":
        return AtomId.ATOM_ADB_CONNECTION_CHANGED;
case 145:
      case "ATOM_SPEECH_DSP_STAT_REPORTED":
        return AtomId.ATOM_SPEECH_DSP_STAT_REPORTED;
case 146:
      case "ATOM_USB_CONTAMINANT_REPORTED":
        return AtomId.ATOM_USB_CONTAMINANT_REPORTED;
case 147:
      case "ATOM_WATCHDOG_ROLLBACK_OCCURRED":
        return AtomId.ATOM_WATCHDOG_ROLLBACK_OCCURRED;
case 148:
      case "ATOM_BIOMETRIC_SYSTEM_HEALTH_ISSUE_DETECTED":
        return AtomId.ATOM_BIOMETRIC_SYSTEM_HEALTH_ISSUE_DETECTED;
case 149:
      case "ATOM_BUBBLE_UI_CHANGED":
        return AtomId.ATOM_BUBBLE_UI_CHANGED;
case 150:
      case "ATOM_SCHEDULED_JOB_CONSTRAINT_CHANGED":
        return AtomId.ATOM_SCHEDULED_JOB_CONSTRAINT_CHANGED;
case 151:
      case "ATOM_BLUETOOTH_ACTIVE_DEVICE_CHANGED":
        return AtomId.ATOM_BLUETOOTH_ACTIVE_DEVICE_CHANGED;
case 152:
      case "ATOM_BLUETOOTH_A2DP_PLAYBACK_STATE_CHANGED":
        return AtomId.ATOM_BLUETOOTH_A2DP_PLAYBACK_STATE_CHANGED;
case 153:
      case "ATOM_BLUETOOTH_A2DP_CODEC_CONFIG_CHANGED":
        return AtomId.ATOM_BLUETOOTH_A2DP_CODEC_CONFIG_CHANGED;
case 154:
      case "ATOM_BLUETOOTH_A2DP_CODEC_CAPABILITY_CHANGED":
        return AtomId.ATOM_BLUETOOTH_A2DP_CODEC_CAPABILITY_CHANGED;
case 155:
      case "ATOM_BLUETOOTH_A2DP_AUDIO_UNDERRUN_REPORTED":
        return AtomId.ATOM_BLUETOOTH_A2DP_AUDIO_UNDERRUN_REPORTED;
case 156:
      case "ATOM_BLUETOOTH_A2DP_AUDIO_OVERRUN_REPORTED":
        return AtomId.ATOM_BLUETOOTH_A2DP_AUDIO_OVERRUN_REPORTED;
case 157:
      case "ATOM_BLUETOOTH_DEVICE_RSSI_REPORTED":
        return AtomId.ATOM_BLUETOOTH_DEVICE_RSSI_REPORTED;
case 158:
      case "ATOM_BLUETOOTH_DEVICE_FAILED_CONTACT_COUNTER_REPORTED":
        return AtomId.ATOM_BLUETOOTH_DEVICE_FAILED_CONTACT_COUNTER_REPORTED;
case 159:
      case "ATOM_BLUETOOTH_DEVICE_TX_POWER_LEVEL_REPORTED":
        return AtomId.ATOM_BLUETOOTH_DEVICE_TX_POWER_LEVEL_REPORTED;
case 160:
      case "ATOM_BLUETOOTH_HCI_TIMEOUT_REPORTED":
        return AtomId.ATOM_BLUETOOTH_HCI_TIMEOUT_REPORTED;
case 161:
      case "ATOM_BLUETOOTH_QUALITY_REPORT_REPORTED":
        return AtomId.ATOM_BLUETOOTH_QUALITY_REPORT_REPORTED;
case 162:
      case "ATOM_BLUETOOTH_DEVICE_INFO_REPORTED":
        return AtomId.ATOM_BLUETOOTH_DEVICE_INFO_REPORTED;
case 163:
      case "ATOM_BLUETOOTH_REMOTE_VERSION_INFO_REPORTED":
        return AtomId.ATOM_BLUETOOTH_REMOTE_VERSION_INFO_REPORTED;
case 164:
      case "ATOM_BLUETOOTH_SDP_ATTRIBUTE_REPORTED":
        return AtomId.ATOM_BLUETOOTH_SDP_ATTRIBUTE_REPORTED;
case 165:
      case "ATOM_BLUETOOTH_BOND_STATE_CHANGED":
        return AtomId.ATOM_BLUETOOTH_BOND_STATE_CHANGED;
case 166:
      case "ATOM_BLUETOOTH_CLASSIC_PAIRING_EVENT_REPORTED":
        return AtomId.ATOM_BLUETOOTH_CLASSIC_PAIRING_EVENT_REPORTED;
case 167:
      case "ATOM_BLUETOOTH_SMP_PAIRING_EVENT_REPORTED":
        return AtomId.ATOM_BLUETOOTH_SMP_PAIRING_EVENT_REPORTED;
case 168:
      case "ATOM_SCREEN_TIMEOUT_EXTENSION_REPORTED":
        return AtomId.ATOM_SCREEN_TIMEOUT_EXTENSION_REPORTED;
case 169:
      case "ATOM_PROCESS_START_TIME":
        return AtomId.ATOM_PROCESS_START_TIME;
case 170:
      case "ATOM_PERMISSION_GRANT_REQUEST_RESULT_REPORTED":
        return AtomId.ATOM_PERMISSION_GRANT_REQUEST_RESULT_REPORTED;
case 171:
      case "ATOM_BLUETOOTH_SOCKET_CONNECTION_STATE_CHANGED":
        return AtomId.ATOM_BLUETOOTH_SOCKET_CONNECTION_STATE_CHANGED;
case 172:
      case "ATOM_DEVICE_IDENTIFIER_ACCESS_DENIED":
        return AtomId.ATOM_DEVICE_IDENTIFIER_ACCESS_DENIED;
case 173:
      case "ATOM_BUBBLE_DEVELOPER_ERROR_REPORTED":
        return AtomId.ATOM_BUBBLE_DEVELOPER_ERROR_REPORTED;
case 174:
      case "ATOM_ASSIST_GESTURE_STAGE_REPORTED":
        return AtomId.ATOM_ASSIST_GESTURE_STAGE_REPORTED;
case 175:
      case "ATOM_ASSIST_GESTURE_FEEDBACK_REPORTED":
        return AtomId.ATOM_ASSIST_GESTURE_FEEDBACK_REPORTED;
case 176:
      case "ATOM_ASSIST_GESTURE_PROGRESS_REPORTED":
        return AtomId.ATOM_ASSIST_GESTURE_PROGRESS_REPORTED;
case 177:
      case "ATOM_TOUCH_GESTURE_CLASSIFIED":
        return AtomId.ATOM_TOUCH_GESTURE_CLASSIFIED;
case 178:
      case "ATOM_HIDDEN_API_USED":
        return AtomId.ATOM_HIDDEN_API_USED;
case 179:
      case "ATOM_STYLE_UI_CHANGED":
        return AtomId.ATOM_STYLE_UI_CHANGED;
case 180:
      case "ATOM_PRIVACY_INDICATORS_INTERACTED":
        return AtomId.ATOM_PRIVACY_INDICATORS_INTERACTED;
case 181:
      case "ATOM_APP_INSTALL_ON_EXTERNAL_STORAGE_REPORTED":
        return AtomId.ATOM_APP_INSTALL_ON_EXTERNAL_STORAGE_REPORTED;
case 182:
      case "ATOM_NETWORK_STACK_REPORTED":
        return AtomId.ATOM_NETWORK_STACK_REPORTED;
case 183:
      case "ATOM_APP_MOVED_STORAGE_REPORTED":
        return AtomId.ATOM_APP_MOVED_STORAGE_REPORTED;
case 184:
      case "ATOM_BIOMETRIC_ENROLLED":
        return AtomId.ATOM_BIOMETRIC_ENROLLED;
case 185:
      case "ATOM_SYSTEM_SERVER_WATCHDOG_OCCURRED":
        return AtomId.ATOM_SYSTEM_SERVER_WATCHDOG_OCCURRED;
case 186:
      case "ATOM_TOMB_STONE_OCCURRED":
        return AtomId.ATOM_TOMB_STONE_OCCURRED;
case 187:
      case "ATOM_BLUETOOTH_CLASS_OF_DEVICE_REPORTED":
        return AtomId.ATOM_BLUETOOTH_CLASS_OF_DEVICE_REPORTED;
case 188:
      case "ATOM_INTELLIGENCE_EVENT_REPORTED":
        return AtomId.ATOM_INTELLIGENCE_EVENT_REPORTED;
case 189:
      case "ATOM_THERMAL_THROTTLING_SEVERITY_STATE_CHANGED":
        return AtomId.ATOM_THERMAL_THROTTLING_SEVERITY_STATE_CHANGED;
case 190:
      case "ATOM_ROLE_REQUEST_RESULT_REPORTED":
        return AtomId.ATOM_ROLE_REQUEST_RESULT_REPORTED;
case 191:
      case "ATOM_MEDIAMETRICS_AUDIOPOLICY_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_AUDIOPOLICY_REPORTED;
case 192:
      case "ATOM_MEDIAMETRICS_AUDIORECORD_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_AUDIORECORD_REPORTED;
case 193:
      case "ATOM_MEDIAMETRICS_AUDIOTHREAD_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_AUDIOTHREAD_REPORTED;
case 194:
      case "ATOM_MEDIAMETRICS_AUDIOTRACK_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_AUDIOTRACK_REPORTED;
case 195:
      case "ATOM_MEDIAMETRICS_CODEC_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_CODEC_REPORTED;
case 196:
      case "ATOM_MEDIAMETRICS_DRM_WIDEVINE_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_DRM_WIDEVINE_REPORTED;
case 197:
      case "ATOM_MEDIAMETRICS_EXTRACTOR_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_EXTRACTOR_REPORTED;
case 198:
      case "ATOM_MEDIAMETRICS_MEDIADRM_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_MEDIADRM_REPORTED;
case 199:
      case "ATOM_MEDIAMETRICS_NUPLAYER_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_NUPLAYER_REPORTED;
case 200:
      case "ATOM_MEDIAMETRICS_RECORDER_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_RECORDER_REPORTED;
case 201:
      case "ATOM_MEDIAMETRICS_DRMMANAGER_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_DRMMANAGER_REPORTED;
case 203:
      case "ATOM_CAR_POWER_STATE_CHANGED":
        return AtomId.ATOM_CAR_POWER_STATE_CHANGED;
case 204:
      case "ATOM_GARAGE_MODE_INFO":
        return AtomId.ATOM_GARAGE_MODE_INFO;
case 205:
      case "ATOM_TEST_ATOM_REPORTED":
        return AtomId.ATOM_TEST_ATOM_REPORTED;
case 206:
      case "ATOM_CONTENT_CAPTURE_CALLER_MISMATCH_REPORTED":
        return AtomId.ATOM_CONTENT_CAPTURE_CALLER_MISMATCH_REPORTED;
case 207:
      case "ATOM_CONTENT_CAPTURE_SERVICE_EVENTS":
        return AtomId.ATOM_CONTENT_CAPTURE_SERVICE_EVENTS;
case 208:
      case "ATOM_CONTENT_CAPTURE_SESSION_EVENTS":
        return AtomId.ATOM_CONTENT_CAPTURE_SESSION_EVENTS;
case 209:
      case "ATOM_CONTENT_CAPTURE_FLUSHED":
        return AtomId.ATOM_CONTENT_CAPTURE_FLUSHED;
case 210:
      case "ATOM_LOCATION_MANAGER_API_USAGE_REPORTED":
        return AtomId.ATOM_LOCATION_MANAGER_API_USAGE_REPORTED;
case 211:
      case "ATOM_REVIEW_PERMISSIONS_FRAGMENT_RESULT_REPORTED":
        return AtomId.ATOM_REVIEW_PERMISSIONS_FRAGMENT_RESULT_REPORTED;
case 212:
      case "ATOM_RUNTIME_PERMISSIONS_UPGRADE_RESULT":
        return AtomId.ATOM_RUNTIME_PERMISSIONS_UPGRADE_RESULT;
case 213:
      case "ATOM_GRANT_PERMISSIONS_ACTIVITY_BUTTON_ACTIONS":
        return AtomId.ATOM_GRANT_PERMISSIONS_ACTIVITY_BUTTON_ACTIONS;
case 214:
      case "ATOM_LOCATION_ACCESS_CHECK_NOTIFICATION_ACTION":
        return AtomId.ATOM_LOCATION_ACCESS_CHECK_NOTIFICATION_ACTION;
case 215:
      case "ATOM_APP_PERMISSION_FRAGMENT_ACTION_REPORTED":
        return AtomId.ATOM_APP_PERMISSION_FRAGMENT_ACTION_REPORTED;
case 216:
      case "ATOM_APP_PERMISSION_FRAGMENT_VIEWED":
        return AtomId.ATOM_APP_PERMISSION_FRAGMENT_VIEWED;
case 217:
      case "ATOM_APP_PERMISSIONS_FRAGMENT_VIEWED":
        return AtomId.ATOM_APP_PERMISSIONS_FRAGMENT_VIEWED;
case 218:
      case "ATOM_PERMISSION_APPS_FRAGMENT_VIEWED":
        return AtomId.ATOM_PERMISSION_APPS_FRAGMENT_VIEWED;
case 219:
      case "ATOM_TEXT_SELECTION_EVENT":
        return AtomId.ATOM_TEXT_SELECTION_EVENT;
case 220:
      case "ATOM_TEXT_LINKIFY_EVENT":
        return AtomId.ATOM_TEXT_LINKIFY_EVENT;
case 221:
      case "ATOM_CONVERSATION_ACTIONS_EVENT":
        return AtomId.ATOM_CONVERSATION_ACTIONS_EVENT;
case 222:
      case "ATOM_LANGUAGE_DETECTION_EVENT":
        return AtomId.ATOM_LANGUAGE_DETECTION_EVENT;
case 223:
      case "ATOM_EXCLUSION_RECT_STATE_CHANGED":
        return AtomId.ATOM_EXCLUSION_RECT_STATE_CHANGED;
case 224:
      case "ATOM_BACK_GESTURE_REPORTED_REPORTED":
        return AtomId.ATOM_BACK_GESTURE_REPORTED_REPORTED;
case 225:
      case "ATOM_UPDATE_ENGINE_UPDATE_ATTEMPT_REPORTED":
        return AtomId.ATOM_UPDATE_ENGINE_UPDATE_ATTEMPT_REPORTED;
case 226:
      case "ATOM_UPDATE_ENGINE_SUCCESSFUL_UPDATE_REPORTED":
        return AtomId.ATOM_UPDATE_ENGINE_SUCCESSFUL_UPDATE_REPORTED;
case 227:
      case "ATOM_CAMERA_ACTION_EVENT":
        return AtomId.ATOM_CAMERA_ACTION_EVENT;
case 228:
      case "ATOM_APP_COMPATIBILITY_CHANGE_REPORTED":
        return AtomId.ATOM_APP_COMPATIBILITY_CHANGE_REPORTED;
case 229:
      case "ATOM_PERFETTO_UPLOADED":
        return AtomId.ATOM_PERFETTO_UPLOADED;
case 230:
      case "ATOM_VMS_CLIENT_CONNECTION_STATE_CHANGED":
        return AtomId.ATOM_VMS_CLIENT_CONNECTION_STATE_CHANGED;
case 233:
      case "ATOM_MEDIA_PROVIDER_SCAN_OCCURRED":
        return AtomId.ATOM_MEDIA_PROVIDER_SCAN_OCCURRED;
case 234:
      case "ATOM_MEDIA_CONTENT_DELETED":
        return AtomId.ATOM_MEDIA_CONTENT_DELETED;
case 235:
      case "ATOM_MEDIA_PROVIDER_PERMISSION_REQUESTED":
        return AtomId.ATOM_MEDIA_PROVIDER_PERMISSION_REQUESTED;
case 236:
      case "ATOM_MEDIA_PROVIDER_SCHEMA_CHANGED":
        return AtomId.ATOM_MEDIA_PROVIDER_SCHEMA_CHANGED;
case 237:
      case "ATOM_MEDIA_PROVIDER_IDLE_MAINTENANCE_FINISHED":
        return AtomId.ATOM_MEDIA_PROVIDER_IDLE_MAINTENANCE_FINISHED;
case 238:
      case "ATOM_REBOOT_ESCROW_RECOVERY_REPORTED":
        return AtomId.ATOM_REBOOT_ESCROW_RECOVERY_REPORTED;
case 239:
      case "ATOM_BOOT_TIME_EVENT_DURATION_REPORTED":
        return AtomId.ATOM_BOOT_TIME_EVENT_DURATION_REPORTED;
case 240:
      case "ATOM_BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED":
        return AtomId.ATOM_BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED;
case 241:
      case "ATOM_BOOT_TIME_EVENT_UTC_TIME_REPORTED":
        return AtomId.ATOM_BOOT_TIME_EVENT_UTC_TIME_REPORTED;
case 242:
      case "ATOM_BOOT_TIME_EVENT_ERROR_CODE_REPORTED":
        return AtomId.ATOM_BOOT_TIME_EVENT_ERROR_CODE_REPORTED;
case 243:
      case "ATOM_USERSPACE_REBOOT_REPORTED":
        return AtomId.ATOM_USERSPACE_REBOOT_REPORTED;
case 244:
      case "ATOM_NOTIFICATION_REPORTED":
        return AtomId.ATOM_NOTIFICATION_REPORTED;
case 245:
      case "ATOM_NOTIFICATION_PANEL_REPORTED":
        return AtomId.ATOM_NOTIFICATION_PANEL_REPORTED;
case 246:
      case "ATOM_NOTIFICATION_CHANNEL_MODIFIED":
        return AtomId.ATOM_NOTIFICATION_CHANNEL_MODIFIED;
case 247:
      case "ATOM_INTEGRITY_CHECK_RESULT_REPORTED":
        return AtomId.ATOM_INTEGRITY_CHECK_RESULT_REPORTED;
case 248:
      case "ATOM_INTEGRITY_RULES_PUSHED":
        return AtomId.ATOM_INTEGRITY_RULES_PUSHED;
case 249:
      case "ATOM_CB_MESSAGE_REPORTED":
        return AtomId.ATOM_CB_MESSAGE_REPORTED;
case 250:
      case "ATOM_CB_MESSAGE_ERROR":
        return AtomId.ATOM_CB_MESSAGE_ERROR;
case 251:
      case "ATOM_WIFI_HEALTH_STAT_REPORTED":
        return AtomId.ATOM_WIFI_HEALTH_STAT_REPORTED;
case 252:
      case "ATOM_WIFI_FAILURE_STAT_REPORTED":
        return AtomId.ATOM_WIFI_FAILURE_STAT_REPORTED;
case 253:
      case "ATOM_WIFI_CONNECTION_RESULT_REPORTED":
        return AtomId.ATOM_WIFI_CONNECTION_RESULT_REPORTED;
case 254:
      case "ATOM_APP_FREEZE_CHANGED":
        return AtomId.ATOM_APP_FREEZE_CHANGED;
case 255:
      case "ATOM_SNAPSHOT_MERGE_REPORTED":
        return AtomId.ATOM_SNAPSHOT_MERGE_REPORTED;
case 256:
      case "ATOM_FOREGROUND_SERVICE_APP_OP_SESSION_ENDED":
        return AtomId.ATOM_FOREGROUND_SERVICE_APP_OP_SESSION_ENDED;
case 257:
      case "ATOM_DISPLAY_JANK_REPORTED":
        return AtomId.ATOM_DISPLAY_JANK_REPORTED;
case 258:
      case "ATOM_APP_STANDBY_BUCKET_CHANGED":
        return AtomId.ATOM_APP_STANDBY_BUCKET_CHANGED;
case 259:
      case "ATOM_SHARESHEET_STARTED":
        return AtomId.ATOM_SHARESHEET_STARTED;
case 260:
      case "ATOM_RANKING_SELECTED":
        return AtomId.ATOM_RANKING_SELECTED;
case 261:
      case "ATOM_TVSETTINGS_UI_INTERACTED":
        return AtomId.ATOM_TVSETTINGS_UI_INTERACTED;
case 262:
      case "ATOM_LAUNCHER_SNAPSHOT":
        return AtomId.ATOM_LAUNCHER_SNAPSHOT;
case 263:
      case "ATOM_PACKAGE_INSTALLER_V2_REPORTED":
        return AtomId.ATOM_PACKAGE_INSTALLER_V2_REPORTED;
case 264:
      case "ATOM_USER_LIFECYCLE_JOURNEY_REPORTED":
        return AtomId.ATOM_USER_LIFECYCLE_JOURNEY_REPORTED;
case 265:
      case "ATOM_USER_LIFECYCLE_EVENT_OCCURRED":
        return AtomId.ATOM_USER_LIFECYCLE_EVENT_OCCURRED;
case 266:
      case "ATOM_ACCESSIBILITY_SHORTCUT_REPORTED":
        return AtomId.ATOM_ACCESSIBILITY_SHORTCUT_REPORTED;
case 267:
      case "ATOM_ACCESSIBILITY_SERVICE_REPORTED":
        return AtomId.ATOM_ACCESSIBILITY_SERVICE_REPORTED;
case 268:
      case "ATOM_DOCS_UI_DRAG_AND_DROP_REPORTED":
        return AtomId.ATOM_DOCS_UI_DRAG_AND_DROP_REPORTED;
case 269:
      case "ATOM_APP_USAGE_EVENT_OCCURRED":
        return AtomId.ATOM_APP_USAGE_EVENT_OCCURRED;
case 270:
      case "ATOM_AUTO_REVOKE_NOTIFICATION_CLICKED":
        return AtomId.ATOM_AUTO_REVOKE_NOTIFICATION_CLICKED;
case 271:
      case "ATOM_AUTO_REVOKE_FRAGMENT_APP_VIEWED":
        return AtomId.ATOM_AUTO_REVOKE_FRAGMENT_APP_VIEWED;
case 272:
      case "ATOM_AUTO_REVOKED_APP_INTERACTION":
        return AtomId.ATOM_AUTO_REVOKED_APP_INTERACTION;
case 273:
      case "ATOM_APP_PERMISSION_GROUPS_FRAGMENT_AUTO_REVOKE_ACTION":
        return AtomId.ATOM_APP_PERMISSION_GROUPS_FRAGMENT_AUTO_REVOKE_ACTION;
case 274:
      case "ATOM_EVS_USAGE_STATS_REPORTED":
        return AtomId.ATOM_EVS_USAGE_STATS_REPORTED;
case 275:
      case "ATOM_AUDIO_POWER_USAGE_DATA_REPORTED":
        return AtomId.ATOM_AUDIO_POWER_USAGE_DATA_REPORTED;
case 276:
      case "ATOM_TV_TUNER_STATE_CHANGED":
        return AtomId.ATOM_TV_TUNER_STATE_CHANGED;
case 277:
      case "ATOM_MEDIAOUTPUT_OP_SWITCH_REPORTED":
        return AtomId.ATOM_MEDIAOUTPUT_OP_SWITCH_REPORTED;
case 278:
      case "ATOM_CB_MESSAGE_FILTERED":
        return AtomId.ATOM_CB_MESSAGE_FILTERED;
case 279:
      case "ATOM_TV_TUNER_DVR_STATUS":
        return AtomId.ATOM_TV_TUNER_DVR_STATUS;
case 280:
      case "ATOM_TV_CAS_SESSION_OPEN_STATUS":
        return AtomId.ATOM_TV_CAS_SESSION_OPEN_STATUS;
case 281:
      case "ATOM_ASSISTANT_INVOCATION_REPORTED":
        return AtomId.ATOM_ASSISTANT_INVOCATION_REPORTED;
case 282:
      case "ATOM_DISPLAY_WAKE_REPORTED":
        return AtomId.ATOM_DISPLAY_WAKE_REPORTED;
case 283:
      case "ATOM_CAR_USER_HAL_MODIFY_USER_REQUEST_REPORTED":
        return AtomId.ATOM_CAR_USER_HAL_MODIFY_USER_REQUEST_REPORTED;
case 284:
      case "ATOM_CAR_USER_HAL_MODIFY_USER_RESPONSE_REPORTED":
        return AtomId.ATOM_CAR_USER_HAL_MODIFY_USER_RESPONSE_REPORTED;
case 285:
      case "ATOM_CAR_USER_HAL_POST_SWITCH_RESPONSE_REPORTED":
        return AtomId.ATOM_CAR_USER_HAL_POST_SWITCH_RESPONSE_REPORTED;
case 286:
      case "ATOM_CAR_USER_HAL_INITIAL_USER_INFO_REQUEST_REPORTED":
        return AtomId.ATOM_CAR_USER_HAL_INITIAL_USER_INFO_REQUEST_REPORTED;
case 287:
      case "ATOM_CAR_USER_HAL_INITIAL_USER_INFO_RESPONSE_REPORTED":
        return AtomId.ATOM_CAR_USER_HAL_INITIAL_USER_INFO_RESPONSE_REPORTED;
case 288:
      case "ATOM_CAR_USER_HAL_USER_ASSOCIATION_REQUEST_REPORTED":
        return AtomId.ATOM_CAR_USER_HAL_USER_ASSOCIATION_REQUEST_REPORTED;
case 289:
      case "ATOM_CAR_USER_HAL_SET_USER_ASSOCIATION_RESPONSE_REPORTED":
        return AtomId.ATOM_CAR_USER_HAL_SET_USER_ASSOCIATION_RESPONSE_REPORTED;
case 290:
      case "ATOM_NETWORK_IP_PROVISIONING_REPORTED":
        return AtomId.ATOM_NETWORK_IP_PROVISIONING_REPORTED;
case 291:
      case "ATOM_NETWORK_DHCP_RENEW_REPORTED":
        return AtomId.ATOM_NETWORK_DHCP_RENEW_REPORTED;
case 292:
      case "ATOM_NETWORK_VALIDATION_REPORTED":
        return AtomId.ATOM_NETWORK_VALIDATION_REPORTED;
case 293:
      case "ATOM_NETWORK_STACK_QUIRK_REPORTED":
        return AtomId.ATOM_NETWORK_STACK_QUIRK_REPORTED;
case 294:
      case "ATOM_MEDIAMETRICS_AUDIORECORDDEVICEUSAGE_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_AUDIORECORDDEVICEUSAGE_REPORTED;
case 295:
      case "ATOM_MEDIAMETRICS_AUDIOTHREADDEVICEUSAGE_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_AUDIOTHREADDEVICEUSAGE_REPORTED;
case 296:
      case "ATOM_MEDIAMETRICS_AUDIOTRACKDEVICEUSAGE_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_AUDIOTRACKDEVICEUSAGE_REPORTED;
case 297:
      case "ATOM_MEDIAMETRICS_AUDIODEVICECONNECTION_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_AUDIODEVICECONNECTION_REPORTED;
case 298:
      case "ATOM_BLOB_COMMITTED":
        return AtomId.ATOM_BLOB_COMMITTED;
case 299:
      case "ATOM_BLOB_LEASED":
        return AtomId.ATOM_BLOB_LEASED;
case 300:
      case "ATOM_BLOB_OPENED":
        return AtomId.ATOM_BLOB_OPENED;
case 301:
      case "ATOM_CONTACTS_PROVIDER_STATUS_REPORTED":
        return AtomId.ATOM_CONTACTS_PROVIDER_STATUS_REPORTED;
case 302:
      case "ATOM_KEYSTORE_KEY_EVENT_REPORTED":
        return AtomId.ATOM_KEYSTORE_KEY_EVENT_REPORTED;
case 303:
      case "ATOM_NETWORK_TETHERING_REPORTED":
        return AtomId.ATOM_NETWORK_TETHERING_REPORTED;
case 304:
      case "ATOM_IME_TOUCH_REPORTED":
        return AtomId.ATOM_IME_TOUCH_REPORTED;
case 305:
      case "ATOM_UI_INTERACTION_FRAME_INFO_REPORTED":
        return AtomId.ATOM_UI_INTERACTION_FRAME_INFO_REPORTED;
case 306:
      case "ATOM_UI_ACTION_LATENCY_REPORTED":
        return AtomId.ATOM_UI_ACTION_LATENCY_REPORTED;
case 307:
      case "ATOM_WIFI_DISCONNECT_REPORTED":
        return AtomId.ATOM_WIFI_DISCONNECT_REPORTED;
case 308:
      case "ATOM_WIFI_CONNECTION_STATE_CHANGED":
        return AtomId.ATOM_WIFI_CONNECTION_STATE_CHANGED;
case 309:
      case "ATOM_HDMI_CEC_ACTIVE_SOURCE_CHANGED":
        return AtomId.ATOM_HDMI_CEC_ACTIVE_SOURCE_CHANGED;
case 310:
      case "ATOM_HDMI_CEC_MESSAGE_REPORTED":
        return AtomId.ATOM_HDMI_CEC_MESSAGE_REPORTED;
case 311:
      case "ATOM_AIRPLANE_MODE":
        return AtomId.ATOM_AIRPLANE_MODE;
case 312:
      case "ATOM_MODEM_RESTART":
        return AtomId.ATOM_MODEM_RESTART;
case 313:
      case "ATOM_CARRIER_ID_MISMATCH_REPORTED":
        return AtomId.ATOM_CARRIER_ID_MISMATCH_REPORTED;
case 314:
      case "ATOM_CARRIER_ID_TABLE_UPDATED":
        return AtomId.ATOM_CARRIER_ID_TABLE_UPDATED;
case 315:
      case "ATOM_DATA_STALL_RECOVERY_REPORTED":
        return AtomId.ATOM_DATA_STALL_RECOVERY_REPORTED;
case 316:
      case "ATOM_MEDIAMETRICS_MEDIAPARSER_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_MEDIAPARSER_REPORTED;
case 317:
      case "ATOM_TLS_HANDSHAKE_REPORTED":
        return AtomId.ATOM_TLS_HANDSHAKE_REPORTED;
case 318:
      case "ATOM_TEXT_CLASSIFIER_API_USAGE_REPORTED":
        return AtomId.ATOM_TEXT_CLASSIFIER_API_USAGE_REPORTED;
case 319:
      case "ATOM_CAR_WATCHDOG_KILL_STATS_REPORTED":
        return AtomId.ATOM_CAR_WATCHDOG_KILL_STATS_REPORTED;
case 320:
      case "ATOM_MEDIAMETRICS_PLAYBACK_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_PLAYBACK_REPORTED;
case 321:
      case "ATOM_MEDIA_NETWORK_INFO_CHANGED":
        return AtomId.ATOM_MEDIA_NETWORK_INFO_CHANGED;
case 322:
      case "ATOM_MEDIA_PLAYBACK_STATE_CHANGED":
        return AtomId.ATOM_MEDIA_PLAYBACK_STATE_CHANGED;
case 323:
      case "ATOM_MEDIA_PLAYBACK_ERROR_REPORTED":
        return AtomId.ATOM_MEDIA_PLAYBACK_ERROR_REPORTED;
case 324:
      case "ATOM_MEDIA_PLAYBACK_TRACK_CHANGED":
        return AtomId.ATOM_MEDIA_PLAYBACK_TRACK_CHANGED;
case 325:
      case "ATOM_WIFI_SCAN_REPORTED":
        return AtomId.ATOM_WIFI_SCAN_REPORTED;
case 326:
      case "ATOM_WIFI_PNO_SCAN_REPORTED":
        return AtomId.ATOM_WIFI_PNO_SCAN_REPORTED;
case 327:
      case "ATOM_TIF_TUNE_CHANGED":
        return AtomId.ATOM_TIF_TUNE_CHANGED;
case 328:
      case "ATOM_AUTO_ROTATE_REPORTED":
        return AtomId.ATOM_AUTO_ROTATE_REPORTED;
case 329:
      case "ATOM_PERFETTO_TRIGGER":
        return AtomId.ATOM_PERFETTO_TRIGGER;
case 330:
      case "ATOM_TRANSCODING_DATA":
        return AtomId.ATOM_TRANSCODING_DATA;
case 331:
      case "ATOM_IMS_SERVICE_ENTITLEMENT_UPDATED":
        return AtomId.ATOM_IMS_SERVICE_ENTITLEMENT_UPDATED;
case 333:
      case "ATOM_DEVICE_ROTATED":
        return AtomId.ATOM_DEVICE_ROTATED;
case 334:
      case "ATOM_SIM_SPECIFIC_SETTINGS_RESTORED":
        return AtomId.ATOM_SIM_SPECIFIC_SETTINGS_RESTORED;
case 335:
      case "ATOM_TEXT_CLASSIFIER_DOWNLOAD_REPORTED":
        return AtomId.ATOM_TEXT_CLASSIFIER_DOWNLOAD_REPORTED;
case 336:
      case "ATOM_PIN_STORAGE_EVENT":
        return AtomId.ATOM_PIN_STORAGE_EVENT;
case 337:
      case "ATOM_FACE_DOWN_REPORTED":
        return AtomId.ATOM_FACE_DOWN_REPORTED;
case 338:
      case "ATOM_BLUETOOTH_HAL_CRASH_REASON_REPORTED":
        return AtomId.ATOM_BLUETOOTH_HAL_CRASH_REASON_REPORTED;
case 339:
      case "ATOM_REBOOT_ESCROW_PREPARATION_REPORTED":
        return AtomId.ATOM_REBOOT_ESCROW_PREPARATION_REPORTED;
case 340:
      case "ATOM_REBOOT_ESCROW_LSKF_CAPTURE_REPORTED":
        return AtomId.ATOM_REBOOT_ESCROW_LSKF_CAPTURE_REPORTED;
case 341:
      case "ATOM_REBOOT_ESCROW_REBOOT_REPORTED":
        return AtomId.ATOM_REBOOT_ESCROW_REBOOT_REPORTED;
case 342:
      case "ATOM_BINDER_LATENCY_REPORTED":
        return AtomId.ATOM_BINDER_LATENCY_REPORTED;
case 343:
      case "ATOM_MEDIAMETRICS_AAUDIOSTREAM_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_AAUDIOSTREAM_REPORTED;
case 344:
      case "ATOM_MEDIA_TRANSCODING_SESSION_ENDED":
        return AtomId.ATOM_MEDIA_TRANSCODING_SESSION_ENDED;
case 345:
      case "ATOM_MAGNIFICATION_USAGE_REPORTED":
        return AtomId.ATOM_MAGNIFICATION_USAGE_REPORTED;
case 346:
      case "ATOM_MAGNIFICATION_MODE_WITH_IME_ON_REPORTED":
        return AtomId.ATOM_MAGNIFICATION_MODE_WITH_IME_ON_REPORTED;
case 347:
      case "ATOM_APP_SEARCH_CALL_STATS_REPORTED":
        return AtomId.ATOM_APP_SEARCH_CALL_STATS_REPORTED;
case 348:
      case "ATOM_APP_SEARCH_PUT_DOCUMENT_STATS_REPORTED":
        return AtomId.ATOM_APP_SEARCH_PUT_DOCUMENT_STATS_REPORTED;
case 349:
      case "ATOM_DEVICE_CONTROL_CHANGED":
        return AtomId.ATOM_DEVICE_CONTROL_CHANGED;
case 350:
      case "ATOM_DEVICE_STATE_CHANGED":
        return AtomId.ATOM_DEVICE_STATE_CHANGED;
case 351:
      case "ATOM_INPUTDEVICE_REGISTERED":
        return AtomId.ATOM_INPUTDEVICE_REGISTERED;
case 352:
      case "ATOM_SMARTSPACE_CARD_REPORTED":
        return AtomId.ATOM_SMARTSPACE_CARD_REPORTED;
case 353:
      case "ATOM_AUTH_PROMPT_AUTHENTICATE_INVOKED":
        return AtomId.ATOM_AUTH_PROMPT_AUTHENTICATE_INVOKED;
case 354:
      case "ATOM_AUTH_MANAGER_CAN_AUTHENTICATE_INVOKED":
        return AtomId.ATOM_AUTH_MANAGER_CAN_AUTHENTICATE_INVOKED;
case 355:
      case "ATOM_AUTH_ENROLL_ACTION_INVOKED":
        return AtomId.ATOM_AUTH_ENROLL_ACTION_INVOKED;
case 356:
      case "ATOM_AUTH_DEPRECATED_API_USED":
        return AtomId.ATOM_AUTH_DEPRECATED_API_USED;
case 357:
      case "ATOM_UNATTENDED_REBOOT_OCCURRED":
        return AtomId.ATOM_UNATTENDED_REBOOT_OCCURRED;
case 358:
      case "ATOM_LONG_REBOOT_BLOCKING_REPORTED":
        return AtomId.ATOM_LONG_REBOOT_BLOCKING_REPORTED;
case 359:
      case "ATOM_LOCATION_TIME_ZONE_PROVIDER_STATE_CHANGED":
        return AtomId.ATOM_LOCATION_TIME_ZONE_PROVIDER_STATE_CHANGED;
case 364:
      case "ATOM_FDTRACK_EVENT_OCCURRED":
        return AtomId.ATOM_FDTRACK_EVENT_OCCURRED;
case 365:
      case "ATOM_TIMEOUT_AUTO_EXTENDED_REPORTED":
        return AtomId.ATOM_TIMEOUT_AUTO_EXTENDED_REPORTED;
case 367:
      case "ATOM_ALARM_BATCH_DELIVERED":
        return AtomId.ATOM_ALARM_BATCH_DELIVERED;
case 368:
      case "ATOM_ALARM_SCHEDULED":
        return AtomId.ATOM_ALARM_SCHEDULED;
case 369:
      case "ATOM_CAR_WATCHDOG_IO_OVERUSE_STATS_REPORTED":
        return AtomId.ATOM_CAR_WATCHDOG_IO_OVERUSE_STATS_REPORTED;
case 370:
      case "ATOM_USER_LEVEL_HIBERNATION_STATE_CHANGED":
        return AtomId.ATOM_USER_LEVEL_HIBERNATION_STATE_CHANGED;
case 371:
      case "ATOM_APP_SEARCH_INITIALIZE_STATS_REPORTED":
        return AtomId.ATOM_APP_SEARCH_INITIALIZE_STATS_REPORTED;
case 372:
      case "ATOM_APP_SEARCH_QUERY_STATS_REPORTED":
        return AtomId.ATOM_APP_SEARCH_QUERY_STATS_REPORTED;
case 373:
      case "ATOM_APP_PROCESS_DIED":
        return AtomId.ATOM_APP_PROCESS_DIED;
case 374:
      case "ATOM_NETWORK_IP_REACHABILITY_MONITOR_REPORTED":
        return AtomId.ATOM_NETWORK_IP_REACHABILITY_MONITOR_REPORTED;
case 375:
      case "ATOM_SLOW_INPUT_EVENT_REPORTED":
        return AtomId.ATOM_SLOW_INPUT_EVENT_REPORTED;
case 376:
      case "ATOM_ANR_OCCURRED_PROCESSING_STARTED":
        return AtomId.ATOM_ANR_OCCURRED_PROCESSING_STARTED;
case 377:
      case "ATOM_APP_SEARCH_REMOVE_STATS_REPORTED":
        return AtomId.ATOM_APP_SEARCH_REMOVE_STATS_REPORTED;
case 378:
      case "ATOM_MEDIA_CODEC_REPORTED":
        return AtomId.ATOM_MEDIA_CODEC_REPORTED;
case 379:
      case "ATOM_PERMISSION_USAGE_FRAGMENT_INTERACTION":
        return AtomId.ATOM_PERMISSION_USAGE_FRAGMENT_INTERACTION;
case 380:
      case "ATOM_PERMISSION_DETAILS_INTERACTION":
        return AtomId.ATOM_PERMISSION_DETAILS_INTERACTION;
case 381:
      case "ATOM_PRIVACY_SENSOR_TOGGLE_INTERACTION":
        return AtomId.ATOM_PRIVACY_SENSOR_TOGGLE_INTERACTION;
case 382:
      case "ATOM_PRIVACY_TOGGLE_DIALOG_INTERACTION":
        return AtomId.ATOM_PRIVACY_TOGGLE_DIALOG_INTERACTION;
case 383:
      case "ATOM_APP_SEARCH_OPTIMIZE_STATS_REPORTED":
        return AtomId.ATOM_APP_SEARCH_OPTIMIZE_STATS_REPORTED;
case 384:
      case "ATOM_NON_A11Y_TOOL_SERVICE_WARNING_REPORT":
        return AtomId.ATOM_NON_A11Y_TOOL_SERVICE_WARNING_REPORT;
case 386:
      case "ATOM_APP_COMPAT_STATE_CHANGED":
        return AtomId.ATOM_APP_COMPAT_STATE_CHANGED;
case 387:
      case "ATOM_SIZE_COMPAT_RESTART_BUTTON_EVENT_REPORTED":
        return AtomId.ATOM_SIZE_COMPAT_RESTART_BUTTON_EVENT_REPORTED;
case 388:
      case "ATOM_SPLITSCREEN_UI_CHANGED":
        return AtomId.ATOM_SPLITSCREEN_UI_CHANGED;
case 389:
      case "ATOM_NETWORK_DNS_HANDSHAKE_REPORTED":
        return AtomId.ATOM_NETWORK_DNS_HANDSHAKE_REPORTED;
case 390:
      case "ATOM_BLUETOOTH_CODE_PATH_COUNTER":
        return AtomId.ATOM_BLUETOOTH_CODE_PATH_COUNTER;
case 392:
      case "ATOM_BLUETOOTH_LE_BATCH_SCAN_REPORT_DELAY":
        return AtomId.ATOM_BLUETOOTH_LE_BATCH_SCAN_REPORT_DELAY;
case 393:
      case "ATOM_ACCESSIBILITY_FLOATING_MENU_UI_CHANGED":
        return AtomId.ATOM_ACCESSIBILITY_FLOATING_MENU_UI_CHANGED;
case 394:
      case "ATOM_NEURALNETWORKS_COMPILATION_COMPLETED":
        return AtomId.ATOM_NEURALNETWORKS_COMPILATION_COMPLETED;
case 395:
      case "ATOM_NEURALNETWORKS_EXECUTION_COMPLETED":
        return AtomId.ATOM_NEURALNETWORKS_EXECUTION_COMPLETED;
case 396:
      case "ATOM_NEURALNETWORKS_COMPILATION_FAILED":
        return AtomId.ATOM_NEURALNETWORKS_COMPILATION_FAILED;
case 397:
      case "ATOM_NEURALNETWORKS_EXECUTION_FAILED":
        return AtomId.ATOM_NEURALNETWORKS_EXECUTION_FAILED;
case 398:
      case "ATOM_CONTEXT_HUB_BOOTED":
        return AtomId.ATOM_CONTEXT_HUB_BOOTED;
case 399:
      case "ATOM_CONTEXT_HUB_RESTARTED":
        return AtomId.ATOM_CONTEXT_HUB_RESTARTED;
case 400:
      case "ATOM_CONTEXT_HUB_LOADED_NANOAPP_SNAPSHOT_REPORTED":
        return AtomId.ATOM_CONTEXT_HUB_LOADED_NANOAPP_SNAPSHOT_REPORTED;
case 401:
      case "ATOM_CHRE_CODE_DOWNLOAD_TRANSACTED":
        return AtomId.ATOM_CHRE_CODE_DOWNLOAD_TRANSACTED;
case 402:
      case "ATOM_UWB_SESSION_INITED":
        return AtomId.ATOM_UWB_SESSION_INITED;
case 403:
      case "ATOM_UWB_SESSION_CLOSED":
        return AtomId.ATOM_UWB_SESSION_CLOSED;
case 404:
      case "ATOM_UWB_FIRST_RANGING_RECEIVED":
        return AtomId.ATOM_UWB_FIRST_RANGING_RECEIVED;
case 405:
      case "ATOM_UWB_RANGING_MEASUREMENT_RECEIVED":
        return AtomId.ATOM_UWB_RANGING_MEASUREMENT_RECEIVED;
case 406:
      case "ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_SCHEDULED":
        return AtomId.ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_SCHEDULED;
case 407:
      case "ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_COMPLETED":
        return AtomId.ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_COMPLETED;
case 408:
      case "ATOM_CLIPBOARD_CLEARED":
        return AtomId.ATOM_CLIPBOARD_CLEARED;
case 409:
      case "ATOM_VM_CREATION_REQUESTED":
        return AtomId.ATOM_VM_CREATION_REQUESTED;
case 410:
      case "ATOM_NEARBY_DEVICE_SCAN_STATE_CHANGED":
        return AtomId.ATOM_NEARBY_DEVICE_SCAN_STATE_CHANGED;
case 412:
      case "ATOM_APPLICATION_LOCALES_CHANGED":
        return AtomId.ATOM_APPLICATION_LOCALES_CHANGED;
case 413:
      case "ATOM_MEDIAMETRICS_AUDIOTRACKSTATUS_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_AUDIOTRACKSTATUS_REPORTED;
case 414:
      case "ATOM_FOLD_STATE_DURATION_REPORTED":
        return AtomId.ATOM_FOLD_STATE_DURATION_REPORTED;
case 415:
      case "ATOM_LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED":
        return AtomId.ATOM_LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED;
case 416:
      case "ATOM_DISPLAY_HBM_STATE_CHANGED":
        return AtomId.ATOM_DISPLAY_HBM_STATE_CHANGED;
case 417:
      case "ATOM_DISPLAY_HBM_BRIGHTNESS_CHANGED":
        return AtomId.ATOM_DISPLAY_HBM_BRIGHTNESS_CHANGED;
case 418:
      case "ATOM_PERSISTENT_URI_PERMISSIONS_FLUSHED":
        return AtomId.ATOM_PERSISTENT_URI_PERMISSIONS_FLUSHED;
case 419:
      case "ATOM_EARLY_BOOT_COMP_OS_ARTIFACTS_CHECK_REPORTED":
        return AtomId.ATOM_EARLY_BOOT_COMP_OS_ARTIFACTS_CHECK_REPORTED;
case 420:
      case "ATOM_VBMETA_DIGEST_REPORTED":
        return AtomId.ATOM_VBMETA_DIGEST_REPORTED;
case 421:
      case "ATOM_APEX_INFO_GATHERED":
        return AtomId.ATOM_APEX_INFO_GATHERED;
case 422:
      case "ATOM_PVM_INFO_GATHERED":
        return AtomId.ATOM_PVM_INFO_GATHERED;
case 423:
      case "ATOM_WEAR_SETTINGS_UI_INTERACTED":
        return AtomId.ATOM_WEAR_SETTINGS_UI_INTERACTED;
case 424:
      case "ATOM_TRACING_SERVICE_REPORT_EVENT":
        return AtomId.ATOM_TRACING_SERVICE_REPORT_EVENT;
case 425:
      case "ATOM_MEDIAMETRICS_AUDIORECORDSTATUS_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_AUDIORECORDSTATUS_REPORTED;
case 426:
      case "ATOM_LAUNCHER_LATENCY":
        return AtomId.ATOM_LAUNCHER_LATENCY;
case 427:
      case "ATOM_DROPBOX_ENTRY_DROPPED":
        return AtomId.ATOM_DROPBOX_ENTRY_DROPPED;
case 428:
      case "ATOM_WIFI_P2P_CONNECTION_REPORTED":
        return AtomId.ATOM_WIFI_P2P_CONNECTION_REPORTED;
case 429:
      case "ATOM_GAME_STATE_CHANGED":
        return AtomId.ATOM_GAME_STATE_CHANGED;
case 430:
      case "ATOM_HOTWORD_DETECTOR_CREATE_REQUESTED":
        return AtomId.ATOM_HOTWORD_DETECTOR_CREATE_REQUESTED;
case 431:
      case "ATOM_HOTWORD_DETECTION_SERVICE_INIT_RESULT_REPORTED":
        return AtomId.ATOM_HOTWORD_DETECTION_SERVICE_INIT_RESULT_REPORTED;
case 432:
      case "ATOM_HOTWORD_DETECTION_SERVICE_RESTARTED":
        return AtomId.ATOM_HOTWORD_DETECTION_SERVICE_RESTARTED;
case 433:
      case "ATOM_HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED":
        return AtomId.ATOM_HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED;
case 434:
      case "ATOM_HOTWORD_DETECTOR_EVENTS":
        return AtomId.ATOM_HOTWORD_DETECTOR_EVENTS;
case 437:
      case "ATOM_BOOT_COMPLETED_BROADCAST_COMPLETION_LATENCY_REPORTED":
        return AtomId.ATOM_BOOT_COMPLETED_BROADCAST_COMPLETION_LATENCY_REPORTED;
case 440:
      case "ATOM_CONTACTS_INDEXER_UPDATE_STATS_REPORTED":
        return AtomId.ATOM_CONTACTS_INDEXER_UPDATE_STATS_REPORTED;
case 441:
      case "ATOM_APP_BACKGROUND_RESTRICTIONS_INFO":
        return AtomId.ATOM_APP_BACKGROUND_RESTRICTIONS_INFO;
case 442:
      case "ATOM_MMS_SMS_PROVIDER_GET_THREAD_ID_FAILED":
        return AtomId.ATOM_MMS_SMS_PROVIDER_GET_THREAD_ID_FAILED;
case 443:
      case "ATOM_MMS_SMS_DATABASE_HELPER_ON_UPGRADE_FAILED":
        return AtomId.ATOM_MMS_SMS_DATABASE_HELPER_ON_UPGRADE_FAILED;
case 444:
      case "ATOM_PERMISSION_REMINDER_NOTIFICATION_INTERACTED":
        return AtomId.ATOM_PERMISSION_REMINDER_NOTIFICATION_INTERACTED;
case 445:
      case "ATOM_RECENT_PERMISSION_DECISIONS_INTERACTED":
        return AtomId.ATOM_RECENT_PERMISSION_DECISIONS_INTERACTED;
case 446:
      case "ATOM_GNSS_PSDS_DOWNLOAD_REPORTED":
        return AtomId.ATOM_GNSS_PSDS_DOWNLOAD_REPORTED;
case 447:
      case "ATOM_LE_AUDIO_CONNECTION_SESSION_REPORTED":
        return AtomId.ATOM_LE_AUDIO_CONNECTION_SESSION_REPORTED;
case 448:
      case "ATOM_LE_AUDIO_BROADCAST_SESSION_REPORTED":
        return AtomId.ATOM_LE_AUDIO_BROADCAST_SESSION_REPORTED;
case 449:
      case "ATOM_DREAM_UI_EVENT_REPORTED":
        return AtomId.ATOM_DREAM_UI_EVENT_REPORTED;
case 450:
      case "ATOM_TASK_MANAGER_EVENT_REPORTED":
        return AtomId.ATOM_TASK_MANAGER_EVENT_REPORTED;
case 451:
      case "ATOM_CDM_ASSOCIATION_ACTION":
        return AtomId.ATOM_CDM_ASSOCIATION_ACTION;
case 452:
      case "ATOM_MAGNIFICATION_TRIPLE_TAP_AND_HOLD_ACTIVATED_SESSION_REPORTED":
        return AtomId.ATOM_MAGNIFICATION_TRIPLE_TAP_AND_HOLD_ACTIVATED_SESSION_REPORTED;
case 453:
      case "ATOM_MAGNIFICATION_FOLLOW_TYPING_FOCUS_ACTIVATED_SESSION_REPORTED":
        return AtomId.ATOM_MAGNIFICATION_FOLLOW_TYPING_FOCUS_ACTIVATED_SESSION_REPORTED;
case 454:
      case "ATOM_ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED":
        return AtomId.ATOM_ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED;
case 455:
      case "ATOM_WIFI_SETUP_FAILURE_CRASH_REPORTED":
        return AtomId.ATOM_WIFI_SETUP_FAILURE_CRASH_REPORTED;
case 456:
      case "ATOM_UWB_DEVICE_ERROR_REPORTED":
        return AtomId.ATOM_UWB_DEVICE_ERROR_REPORTED;
case 457:
      case "ATOM_ISOLATED_COMPILATION_SCHEDULED":
        return AtomId.ATOM_ISOLATED_COMPILATION_SCHEDULED;
case 458:
      case "ATOM_ISOLATED_COMPILATION_ENDED":
        return AtomId.ATOM_ISOLATED_COMPILATION_ENDED;
case 459:
      case "ATOM_ONS_OPPORTUNISTIC_ESIM_PROVISIONING_COMPLETE":
        return AtomId.ATOM_ONS_OPPORTUNISTIC_ESIM_PROVISIONING_COMPLETE;
case 460:
      case "ATOM_SYSTEM_SERVER_PRE_WATCHDOG_OCCURRED":
        return AtomId.ATOM_SYSTEM_SERVER_PRE_WATCHDOG_OCCURRED;
case 461:
      case "ATOM_TELEPHONY_ANOMALY_DETECTED":
        return AtomId.ATOM_TELEPHONY_ANOMALY_DETECTED;
case 462:
      case "ATOM_LETTERBOX_POSITION_CHANGED":
        return AtomId.ATOM_LETTERBOX_POSITION_CHANGED;
case 463:
      case "ATOM_REMOTE_KEY_PROVISIONING_ATTEMPT":
        return AtomId.ATOM_REMOTE_KEY_PROVISIONING_ATTEMPT;
case 464:
      case "ATOM_REMOTE_KEY_PROVISIONING_NETWORK_INFO":
        return AtomId.ATOM_REMOTE_KEY_PROVISIONING_NETWORK_INFO;
case 465:
      case "ATOM_REMOTE_KEY_PROVISIONING_TIMING":
        return AtomId.ATOM_REMOTE_KEY_PROVISIONING_TIMING;
case 466:
      case "ATOM_MEDIAOUTPUT_OP_INTERACTION_REPORT":
        return AtomId.ATOM_MEDIAOUTPUT_OP_INTERACTION_REPORT;
case 468:
      case "ATOM_SYNC_EXEMPTION_OCCURRED":
        return AtomId.ATOM_SYNC_EXEMPTION_OCCURRED;
case 469:
      case "ATOM_AUTOFILL_PRESENTATION_EVENT_REPORTED":
        return AtomId.ATOM_AUTOFILL_PRESENTATION_EVENT_REPORTED;
case 470:
      case "ATOM_DOCK_STATE_CHANGED":
        return AtomId.ATOM_DOCK_STATE_CHANGED;
case 471:
      case "ATOM_SAFETY_SOURCE_STATE_COLLECTED":
        return AtomId.ATOM_SAFETY_SOURCE_STATE_COLLECTED;
case 472:
      case "ATOM_SAFETY_CENTER_SYSTEM_EVENT_REPORTED":
        return AtomId.ATOM_SAFETY_CENTER_SYSTEM_EVENT_REPORTED;
case 473:
      case "ATOM_SAFETY_CENTER_INTERACTION_REPORTED":
        return AtomId.ATOM_SAFETY_CENTER_INTERACTION_REPORTED;
case 474:
      case "ATOM_SETTINGS_PROVIDER_SETTING_CHANGED":
        return AtomId.ATOM_SETTINGS_PROVIDER_SETTING_CHANGED;
case 475:
      case "ATOM_BROADCAST_DELIVERY_EVENT_REPORTED":
        return AtomId.ATOM_BROADCAST_DELIVERY_EVENT_REPORTED;
case 476:
      case "ATOM_SERVICE_REQUEST_EVENT_REPORTED":
        return AtomId.ATOM_SERVICE_REQUEST_EVENT_REPORTED;
case 477:
      case "ATOM_PROVIDER_ACQUISITION_EVENT_REPORTED":
        return AtomId.ATOM_PROVIDER_ACQUISITION_EVENT_REPORTED;
case 478:
      case "ATOM_BLUETOOTH_DEVICE_NAME_REPORTED":
        return AtomId.ATOM_BLUETOOTH_DEVICE_NAME_REPORTED;
case 479:
      case "ATOM_CB_CONFIG_UPDATED":
        return AtomId.ATOM_CB_CONFIG_UPDATED;
case 480:
      case "ATOM_CB_MODULE_ERROR_REPORTED":
        return AtomId.ATOM_CB_MODULE_ERROR_REPORTED;
case 481:
      case "ATOM_CB_SERVICE_FEATURE_CHANGED":
        return AtomId.ATOM_CB_SERVICE_FEATURE_CHANGED;
case 482:
      case "ATOM_CB_RECEIVER_FEATURE_CHANGED":
        return AtomId.ATOM_CB_RECEIVER_FEATURE_CHANGED;
case 484:
      case "ATOM_PRIVACY_SIGNAL_NOTIFICATION_INTERACTION":
        return AtomId.ATOM_PRIVACY_SIGNAL_NOTIFICATION_INTERACTION;
case 485:
      case "ATOM_PRIVACY_SIGNAL_ISSUE_CARD_INTERACTION":
        return AtomId.ATOM_PRIVACY_SIGNAL_ISSUE_CARD_INTERACTION;
case 486:
      case "ATOM_PRIVACY_SIGNALS_JOB_FAILURE":
        return AtomId.ATOM_PRIVACY_SIGNALS_JOB_FAILURE;
case 487:
      case "ATOM_VIBRATION_REPORTED":
        return AtomId.ATOM_VIBRATION_REPORTED;
case 489:
      case "ATOM_UWB_RANGING_START":
        return AtomId.ATOM_UWB_RANGING_START;
case 491:
      case "ATOM_APP_COMPACTED_V2":
        return AtomId.ATOM_APP_COMPACTED_V2;
case 494:
      case "ATOM_DISPLAY_BRIGHTNESS_CHANGED":
        return AtomId.ATOM_DISPLAY_BRIGHTNESS_CHANGED;
case 495:
      case "ATOM_ACTIVITY_ACTION_BLOCKED":
        return AtomId.ATOM_ACTIVITY_ACTION_BLOCKED;
case 504:
      case "ATOM_NETWORK_DNS_SERVER_SUPPORT_REPORTED":
        return AtomId.ATOM_NETWORK_DNS_SERVER_SUPPORT_REPORTED;
case 505:
      case "ATOM_VM_BOOTED":
        return AtomId.ATOM_VM_BOOTED;
case 506:
      case "ATOM_VM_EXITED":
        return AtomId.ATOM_VM_EXITED;
case 507:
      case "ATOM_AMBIENT_BRIGHTNESS_STATS_REPORTED":
        return AtomId.ATOM_AMBIENT_BRIGHTNESS_STATS_REPORTED;
case 508:
      case "ATOM_MEDIAMETRICS_SPATIALIZERCAPABILITIES_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_SPATIALIZERCAPABILITIES_REPORTED;
case 509:
      case "ATOM_MEDIAMETRICS_SPATIALIZERDEVICEENABLED_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_SPATIALIZERDEVICEENABLED_REPORTED;
case 510:
      case "ATOM_MEDIAMETRICS_HEADTRACKERDEVICEENABLED_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_HEADTRACKERDEVICEENABLED_REPORTED;
case 511:
      case "ATOM_MEDIAMETRICS_HEADTRACKERDEVICESUPPORTED_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_HEADTRACKERDEVICESUPPORTED_REPORTED;
case 513:
      case "ATOM_HEARING_AID_INFO_REPORTED":
        return AtomId.ATOM_HEARING_AID_INFO_REPORTED;
case 514:
      case "ATOM_DEVICE_WIDE_JOB_CONSTRAINT_CHANGED":
        return AtomId.ATOM_DEVICE_WIDE_JOB_CONSTRAINT_CHANGED;
case 515:
      case "ATOM_AMBIENT_MODE_CHANGED":
        return AtomId.ATOM_AMBIENT_MODE_CHANGED;
case 516:
      case "ATOM_ANR_LATENCY_REPORTED":
        return AtomId.ATOM_ANR_LATENCY_REPORTED;
case 517:
      case "ATOM_RESOURCE_API_INFO":
        return AtomId.ATOM_RESOURCE_API_INFO;
case 518:
      case "ATOM_SYSTEM_DEFAULT_NETWORK_CHANGED":
        return AtomId.ATOM_SYSTEM_DEFAULT_NETWORK_CHANGED;
case 519:
      case "ATOM_IWLAN_SETUP_DATA_CALL_RESULT_REPORTED":
        return AtomId.ATOM_IWLAN_SETUP_DATA_CALL_RESULT_REPORTED;
case 520:
      case "ATOM_IWLAN_PDN_DISCONNECTED_REASON_REPORTED":
        return AtomId.ATOM_IWLAN_PDN_DISCONNECTED_REASON_REPORTED;
case 521:
      case "ATOM_AIRPLANE_MODE_SESSION_REPORTED":
        return AtomId.ATOM_AIRPLANE_MODE_SESSION_REPORTED;
case 522:
      case "ATOM_VM_CPU_STATUS_REPORTED":
        return AtomId.ATOM_VM_CPU_STATUS_REPORTED;
case 523:
      case "ATOM_VM_MEM_STATUS_REPORTED":
        return AtomId.ATOM_VM_MEM_STATUS_REPORTED;
case 524:
      case "ATOM_PACKAGE_INSTALLATION_SESSION_REPORTED":
        return AtomId.ATOM_PACKAGE_INSTALLATION_SESSION_REPORTED;
case 525:
      case "ATOM_DEFAULT_NETWORK_REMATCH_INFO":
        return AtomId.ATOM_DEFAULT_NETWORK_REMATCH_INFO;
case 526:
      case "ATOM_NETWORK_SELECTION_PERFORMANCE":
        return AtomId.ATOM_NETWORK_SELECTION_PERFORMANCE;
case 527:
      case "ATOM_NETWORK_NSD_REPORTED":
        return AtomId.ATOM_NETWORK_NSD_REPORTED;
case 529:
      case "ATOM_BLUETOOTH_DISCONNECTION_REASON_REPORTED":
        return AtomId.ATOM_BLUETOOTH_DISCONNECTION_REASON_REPORTED;
case 530:
      case "ATOM_BLUETOOTH_LOCAL_VERSIONS_REPORTED":
        return AtomId.ATOM_BLUETOOTH_LOCAL_VERSIONS_REPORTED;
case 531:
      case "ATOM_BLUETOOTH_REMOTE_SUPPORTED_FEATURES_REPORTED":
        return AtomId.ATOM_BLUETOOTH_REMOTE_SUPPORTED_FEATURES_REPORTED;
case 532:
      case "ATOM_BLUETOOTH_LOCAL_SUPPORTED_FEATURES_REPORTED":
        return AtomId.ATOM_BLUETOOTH_LOCAL_SUPPORTED_FEATURES_REPORTED;
case 533:
      case "ATOM_BLUETOOTH_GATT_APP_INFO":
        return AtomId.ATOM_BLUETOOTH_GATT_APP_INFO;
case 534:
      case "ATOM_BRIGHTNESS_CONFIGURATION_UPDATED":
        return AtomId.ATOM_BRIGHTNESS_CONFIGURATION_UPDATED;
case 538:
      case "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_LAUNCHED":
        return AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_LAUNCHED;
case 539:
      case "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FINISHED":
        return AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FINISHED;
case 540:
      case "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECTION_REPORTED":
        return AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECTION_REPORTED;
case 541:
      case "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_TRIGGERED":
        return AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_TRIGGERED;
case 542:
      case "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FIRST_DEVICE_SCAN_LATENCY":
        return AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FIRST_DEVICE_SCAN_LATENCY;
case 543:
      case "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECT_DEVICE_LATENCY":
        return AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECT_DEVICE_LATENCY;
case 544:
      case "ATOM_PACKAGE_MANAGER_SNAPSHOT_REPORTED":
        return AtomId.ATOM_PACKAGE_MANAGER_SNAPSHOT_REPORTED;
case 545:
      case "ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_BUILD_REPORTED":
        return AtomId.ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_BUILD_REPORTED;
case 546:
      case "ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_UPDATE_REPORTED":
        return AtomId.ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_UPDATE_REPORTED;
case 547:
      case "ATOM_LAUNCHER_IMPRESSION_EVENT":
        return AtomId.ATOM_LAUNCHER_IMPRESSION_EVENT;
case 549:
      case "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_ALL_DEVICES_SCAN_LATENCY":
        return AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_ALL_DEVICES_SCAN_LATENCY;
case 551:
      case "ATOM_WS_WATCH_FACE_EDITED":
        return AtomId.ATOM_WS_WATCH_FACE_EDITED;
case 552:
      case "ATOM_WS_WATCH_FACE_FAVORITE_ACTION_REPORTED":
        return AtomId.ATOM_WS_WATCH_FACE_FAVORITE_ACTION_REPORTED;
case 553:
      case "ATOM_WS_WATCH_FACE_SET_ACTION_REPORTED":
        return AtomId.ATOM_WS_WATCH_FACE_SET_ACTION_REPORTED;
case 554:
      case "ATOM_PACKAGE_UNINSTALLATION_REPORTED":
        return AtomId.ATOM_PACKAGE_UNINSTALLATION_REPORTED;
case 555:
      case "ATOM_GAME_MODE_CHANGED":
        return AtomId.ATOM_GAME_MODE_CHANGED;
case 556:
      case "ATOM_GAME_MODE_CONFIGURATION_CHANGED":
        return AtomId.ATOM_GAME_MODE_CONFIGURATION_CHANGED;
case 557:
      case "ATOM_BEDTIME_MODE_STATE_CHANGED":
        return AtomId.ATOM_BEDTIME_MODE_STATE_CHANGED;
case 558:
      case "ATOM_NETWORK_SLICE_SESSION_ENDED":
        return AtomId.ATOM_NETWORK_SLICE_SESSION_ENDED;
case 559:
      case "ATOM_NETWORK_SLICE_DAILY_DATA_USAGE_REPORTED":
        return AtomId.ATOM_NETWORK_SLICE_DAILY_DATA_USAGE_REPORTED;
case 560:
      case "ATOM_NFC_TAG_TYPE_OCCURRED":
        return AtomId.ATOM_NFC_TAG_TYPE_OCCURRED;
case 561:
      case "ATOM_NFC_AID_CONFLICT_OCCURRED":
        return AtomId.ATOM_NFC_AID_CONFLICT_OCCURRED;
case 562:
      case "ATOM_NFC_READER_CONFLICT_OCCURRED":
        return AtomId.ATOM_NFC_READER_CONFLICT_OCCURRED;
case 563:
      case "ATOM_WS_TILE_LIST_CHANGED":
        return AtomId.ATOM_WS_TILE_LIST_CHANGED;
case 564:
      case "ATOM_GET_TYPE_ACCESSED_WITHOUT_PERMISSION":
        return AtomId.ATOM_GET_TYPE_ACCESSED_WITHOUT_PERMISSION;
case 566:
      case "ATOM_MOBILE_BUNDLED_APP_INFO_GATHERED":
        return AtomId.ATOM_MOBILE_BUNDLED_APP_INFO_GATHERED;
case 567:
      case "ATOM_WS_WATCH_FACE_COMPLICATION_SET_CHANGED":
        return AtomId.ATOM_WS_WATCH_FACE_COMPLICATION_SET_CHANGED;
case 568:
      case "ATOM_MEDIA_DRM_CREATED":
        return AtomId.ATOM_MEDIA_DRM_CREATED;
case 569:
      case "ATOM_MEDIA_DRM_ERRORED":
        return AtomId.ATOM_MEDIA_DRM_ERRORED;
case 570:
      case "ATOM_MEDIA_DRM_SESSION_OPENED":
        return AtomId.ATOM_MEDIA_DRM_SESSION_OPENED;
case 571:
      case "ATOM_MEDIA_DRM_SESSION_CLOSED":
        return AtomId.ATOM_MEDIA_DRM_SESSION_CLOSED;
case 572:
      case "ATOM_USER_SELECTED_RESOLUTION":
        return AtomId.ATOM_USER_SELECTED_RESOLUTION;
case 573:
      case "ATOM_UNSAFE_INTENT_EVENT_REPORTED":
        return AtomId.ATOM_UNSAFE_INTENT_EVENT_REPORTED;
case 574:
      case "ATOM_PERFORMANCE_HINT_SESSION_REPORTED":
        return AtomId.ATOM_PERFORMANCE_HINT_SESSION_REPORTED;
case 576:
      case "ATOM_MEDIAMETRICS_MIDI_DEVICE_CLOSE_REPORTED":
        return AtomId.ATOM_MEDIAMETRICS_MIDI_DEVICE_CLOSE_REPORTED;
case 577:
      case "ATOM_BIOMETRIC_TOUCH_REPORTED":
        return AtomId.ATOM_BIOMETRIC_TOUCH_REPORTED;
case 578:
      case "ATOM_HOTWORD_AUDIO_EGRESS_EVENT_REPORTED":
        return AtomId.ATOM_HOTWORD_AUDIO_EGRESS_EVENT_REPORTED;
case 580:
      case "ATOM_LOCATION_ENABLED_STATE_CHANGED":
        return AtomId.ATOM_LOCATION_ENABLED_STATE_CHANGED;
case 581:
      case "ATOM_IME_REQUEST_FINISHED":
        return AtomId.ATOM_IME_REQUEST_FINISHED;
case 582:
      case "ATOM_USB_COMPLIANCE_WARNINGS_REPORTED":
        return AtomId.ATOM_USB_COMPLIANCE_WARNINGS_REPORTED;
case 583:
      case "ATOM_APP_SUPPORTED_LOCALES_CHANGED":
        return AtomId.ATOM_APP_SUPPORTED_LOCALES_CHANGED;
case 586:
      case "ATOM_MEDIA_PROVIDER_VOLUME_RECOVERY_REPORTED":
        return AtomId.ATOM_MEDIA_PROVIDER_VOLUME_RECOVERY_REPORTED;
case 587:
      case "ATOM_BIOMETRIC_PROPERTIES_COLLECTED":
        return AtomId.ATOM_BIOMETRIC_PROPERTIES_COLLECTED;
case 588:
      case "ATOM_KERNEL_WAKEUP_ATTRIBUTED":
        return AtomId.ATOM_KERNEL_WAKEUP_ATTRIBUTED;
case 589:
      case "ATOM_SCREEN_STATE_CHANGED_V2":
        return AtomId.ATOM_SCREEN_STATE_CHANGED_V2;
case 590:
      case "ATOM_WS_BACKUP_ACTION_REPORTED":
        return AtomId.ATOM_WS_BACKUP_ACTION_REPORTED;
case 591:
      case "ATOM_WS_RESTORE_ACTION_REPORTED":
        return AtomId.ATOM_WS_RESTORE_ACTION_REPORTED;
case 592:
      case "ATOM_DEVICE_LOG_ACCESS_EVENT_REPORTED":
        return AtomId.ATOM_DEVICE_LOG_ACCESS_EVENT_REPORTED;
case 594:
      case "ATOM_MEDIA_SESSION_UPDATED":
        return AtomId.ATOM_MEDIA_SESSION_UPDATED;
case 595:
      case "ATOM_WEAR_OOBE_STATE_CHANGED":
        return AtomId.ATOM_WEAR_OOBE_STATE_CHANGED;
case 596:
      case "ATOM_WS_NOTIFICATION_UPDATED":
        return AtomId.ATOM_WS_NOTIFICATION_UPDATED;
case 601:
      case "ATOM_NETWORK_VALIDATION_FAILURE_STATS_DAILY_REPORTED":
        return AtomId.ATOM_NETWORK_VALIDATION_FAILURE_STATS_DAILY_REPORTED;
case 602:
      case "ATOM_WS_COMPLICATION_TAPPED":
        return AtomId.ATOM_WS_COMPLICATION_TAPPED;
case 780:
      case "ATOM_WS_NOTIFICATION_BLOCKING":
        return AtomId.ATOM_WS_NOTIFICATION_BLOCKING;
case 822:
      case "ATOM_WS_NOTIFICATION_BRIDGEMODE_UPDATED":
        return AtomId.ATOM_WS_NOTIFICATION_BRIDGEMODE_UPDATED;
case 823:
      case "ATOM_WS_NOTIFICATION_DISMISSAL_ACTIONED":
        return AtomId.ATOM_WS_NOTIFICATION_DISMISSAL_ACTIONED;
case 824:
      case "ATOM_WS_NOTIFICATION_ACTIONED":
        return AtomId.ATOM_WS_NOTIFICATION_ACTIONED;
case 880:
      case "ATOM_WS_NOTIFICATION_LATENCY":
        return AtomId.ATOM_WS_NOTIFICATION_LATENCY;
case 10000:
      case "ATOM_WIFI_BYTES_TRANSFER":
        return AtomId.ATOM_WIFI_BYTES_TRANSFER;
case 10001:
      case "ATOM_WIFI_BYTES_TRANSFER_BY_FG_BG":
        return AtomId.ATOM_WIFI_BYTES_TRANSFER_BY_FG_BG;
case 10002:
      case "ATOM_MOBILE_BYTES_TRANSFER":
        return AtomId.ATOM_MOBILE_BYTES_TRANSFER;
case 10003:
      case "ATOM_MOBILE_BYTES_TRANSFER_BY_FG_BG":
        return AtomId.ATOM_MOBILE_BYTES_TRANSFER_BY_FG_BG;
case 10006:
      case "ATOM_BLUETOOTH_BYTES_TRANSFER":
        return AtomId.ATOM_BLUETOOTH_BYTES_TRANSFER;
case 10004:
      case "ATOM_KERNEL_WAKELOCK":
        return AtomId.ATOM_KERNEL_WAKELOCK;
case 10005:
      case "ATOM_SUBSYSTEM_SLEEP_STATE":
        return AtomId.ATOM_SUBSYSTEM_SLEEP_STATE;
case 10009:
      case "ATOM_CPU_TIME_PER_UID":
        return AtomId.ATOM_CPU_TIME_PER_UID;
case 10010:
      case "ATOM_CPU_TIME_PER_UID_FREQ":
        return AtomId.ATOM_CPU_TIME_PER_UID_FREQ;
case 10011:
      case "ATOM_WIFI_ACTIVITY_INFO":
        return AtomId.ATOM_WIFI_ACTIVITY_INFO;
case 10012:
      case "ATOM_MODEM_ACTIVITY_INFO":
        return AtomId.ATOM_MODEM_ACTIVITY_INFO;
case 10007:
      case "ATOM_BLUETOOTH_ACTIVITY_INFO":
        return AtomId.ATOM_BLUETOOTH_ACTIVITY_INFO;
case 10013:
      case "ATOM_PROCESS_MEMORY_STATE":
        return AtomId.ATOM_PROCESS_MEMORY_STATE;
case 10014:
      case "ATOM_SYSTEM_ELAPSED_REALTIME":
        return AtomId.ATOM_SYSTEM_ELAPSED_REALTIME;
case 10015:
      case "ATOM_SYSTEM_UPTIME":
        return AtomId.ATOM_SYSTEM_UPTIME;
case 10016:
      case "ATOM_CPU_ACTIVE_TIME":
        return AtomId.ATOM_CPU_ACTIVE_TIME;
case 10017:
      case "ATOM_CPU_CLUSTER_TIME":
        return AtomId.ATOM_CPU_CLUSTER_TIME;
case 10018:
      case "ATOM_DISK_SPACE":
        return AtomId.ATOM_DISK_SPACE;
case 10019:
      case "ATOM_REMAINING_BATTERY_CAPACITY":
        return AtomId.ATOM_REMAINING_BATTERY_CAPACITY;
case 10020:
      case "ATOM_FULL_BATTERY_CAPACITY":
        return AtomId.ATOM_FULL_BATTERY_CAPACITY;
case 10021:
      case "ATOM_TEMPERATURE":
        return AtomId.ATOM_TEMPERATURE;
case 10022:
      case "ATOM_BINDER_CALLS":
        return AtomId.ATOM_BINDER_CALLS;
case 10023:
      case "ATOM_BINDER_CALLS_EXCEPTIONS":
        return AtomId.ATOM_BINDER_CALLS_EXCEPTIONS;
case 10024:
      case "ATOM_LOOPER_STATS":
        return AtomId.ATOM_LOOPER_STATS;
case 10025:
      case "ATOM_DISK_STATS":
        return AtomId.ATOM_DISK_STATS;
case 10026:
      case "ATOM_DIRECTORY_USAGE":
        return AtomId.ATOM_DIRECTORY_USAGE;
case 10027:
      case "ATOM_APP_SIZE":
        return AtomId.ATOM_APP_SIZE;
case 10028:
      case "ATOM_CATEGORY_SIZE":
        return AtomId.ATOM_CATEGORY_SIZE;
case 10029:
      case "ATOM_PROC_STATS":
        return AtomId.ATOM_PROC_STATS;
case 10030:
      case "ATOM_BATTERY_VOLTAGE":
        return AtomId.ATOM_BATTERY_VOLTAGE;
case 10031:
      case "ATOM_NUM_FINGERPRINTS_ENROLLED":
        return AtomId.ATOM_NUM_FINGERPRINTS_ENROLLED;
case 10032:
      case "ATOM_DISK_IO":
        return AtomId.ATOM_DISK_IO;
case 10033:
      case "ATOM_POWER_PROFILE":
        return AtomId.ATOM_POWER_PROFILE;
case 10034:
      case "ATOM_PROC_STATS_PKG_PROC":
        return AtomId.ATOM_PROC_STATS_PKG_PROC;
case 10035:
      case "ATOM_PROCESS_CPU_TIME":
        return AtomId.ATOM_PROCESS_CPU_TIME;
case 10037:
      case "ATOM_CPU_TIME_PER_THREAD_FREQ":
        return AtomId.ATOM_CPU_TIME_PER_THREAD_FREQ;
case 10038:
      case "ATOM_ON_DEVICE_POWER_MEASUREMENT":
        return AtomId.ATOM_ON_DEVICE_POWER_MEASUREMENT;
case 10039:
      case "ATOM_DEVICE_CALCULATED_POWER_USE":
        return AtomId.ATOM_DEVICE_CALCULATED_POWER_USE;
case 10042:
      case "ATOM_PROCESS_MEMORY_HIGH_WATER_MARK":
        return AtomId.ATOM_PROCESS_MEMORY_HIGH_WATER_MARK;
case 10043:
      case "ATOM_BATTERY_LEVEL":
        return AtomId.ATOM_BATTERY_LEVEL;
case 10044:
      case "ATOM_BUILD_INFORMATION":
        return AtomId.ATOM_BUILD_INFORMATION;
case 10045:
      case "ATOM_BATTERY_CYCLE_COUNT":
        return AtomId.ATOM_BATTERY_CYCLE_COUNT;
case 10046:
      case "ATOM_DEBUG_ELAPSED_CLOCK":
        return AtomId.ATOM_DEBUG_ELAPSED_CLOCK;
case 10047:
      case "ATOM_DEBUG_FAILING_ELAPSED_CLOCK":
        return AtomId.ATOM_DEBUG_FAILING_ELAPSED_CLOCK;
case 10048:
      case "ATOM_NUM_FACES_ENROLLED":
        return AtomId.ATOM_NUM_FACES_ENROLLED;
case 10049:
      case "ATOM_ROLE_HOLDER":
        return AtomId.ATOM_ROLE_HOLDER;
case 10050:
      case "ATOM_DANGEROUS_PERMISSION_STATE":
        return AtomId.ATOM_DANGEROUS_PERMISSION_STATE;
case 10051:
      case "ATOM_TRAIN_INFO":
        return AtomId.ATOM_TRAIN_INFO;
case 10052:
      case "ATOM_TIME_ZONE_DATA_INFO":
        return AtomId.ATOM_TIME_ZONE_DATA_INFO;
case 10053:
      case "ATOM_EXTERNAL_STORAGE_INFO":
        return AtomId.ATOM_EXTERNAL_STORAGE_INFO;
case 10054:
      case "ATOM_GPU_STATS_GLOBAL_INFO":
        return AtomId.ATOM_GPU_STATS_GLOBAL_INFO;
case 10055:
      case "ATOM_GPU_STATS_APP_INFO":
        return AtomId.ATOM_GPU_STATS_APP_INFO;
case 10056:
      case "ATOM_SYSTEM_ION_HEAP_SIZE":
        return AtomId.ATOM_SYSTEM_ION_HEAP_SIZE;
case 10057:
      case "ATOM_APPS_ON_EXTERNAL_STORAGE_INFO":
        return AtomId.ATOM_APPS_ON_EXTERNAL_STORAGE_INFO;
case 10058:
      case "ATOM_FACE_SETTINGS":
        return AtomId.ATOM_FACE_SETTINGS;
case 10059:
      case "ATOM_COOLING_DEVICE":
        return AtomId.ATOM_COOLING_DEVICE;
case 10060:
      case "ATOM_APP_OPS":
        return AtomId.ATOM_APP_OPS;
case 10061:
      case "ATOM_PROCESS_SYSTEM_ION_HEAP_SIZE":
        return AtomId.ATOM_PROCESS_SYSTEM_ION_HEAP_SIZE;
case 10062:
      case "ATOM_SURFACEFLINGER_STATS_GLOBAL_INFO":
        return AtomId.ATOM_SURFACEFLINGER_STATS_GLOBAL_INFO;
case 10063:
      case "ATOM_SURFACEFLINGER_STATS_LAYER_INFO":
        return AtomId.ATOM_SURFACEFLINGER_STATS_LAYER_INFO;
case 10064:
      case "ATOM_PROCESS_MEMORY_SNAPSHOT":
        return AtomId.ATOM_PROCESS_MEMORY_SNAPSHOT;
case 10065:
      case "ATOM_VMS_CLIENT_STATS":
        return AtomId.ATOM_VMS_CLIENT_STATS;
case 10066:
      case "ATOM_NOTIFICATION_REMOTE_VIEWS":
        return AtomId.ATOM_NOTIFICATION_REMOTE_VIEWS;
case 10067:
      case "ATOM_DANGEROUS_PERMISSION_STATE_SAMPLED":
        return AtomId.ATOM_DANGEROUS_PERMISSION_STATE_SAMPLED;
case 10068:
      case "ATOM_GRAPHICS_STATS":
        return AtomId.ATOM_GRAPHICS_STATS;
case 10069:
      case "ATOM_RUNTIME_APP_OP_ACCESS":
        return AtomId.ATOM_RUNTIME_APP_OP_ACCESS;
case 10070:
      case "ATOM_ION_HEAP_SIZE":
        return AtomId.ATOM_ION_HEAP_SIZE;
case 10071:
      case "ATOM_PACKAGE_NOTIFICATION_PREFERENCES":
        return AtomId.ATOM_PACKAGE_NOTIFICATION_PREFERENCES;
case 10072:
      case "ATOM_PACKAGE_NOTIFICATION_CHANNEL_PREFERENCES":
        return AtomId.ATOM_PACKAGE_NOTIFICATION_CHANNEL_PREFERENCES;
case 10073:
      case "ATOM_PACKAGE_NOTIFICATION_CHANNEL_GROUP_PREFERENCES":
        return AtomId.ATOM_PACKAGE_NOTIFICATION_CHANNEL_GROUP_PREFERENCES;
case 10074:
      case "ATOM_GNSS_STATS":
        return AtomId.ATOM_GNSS_STATS;
case 10075:
      case "ATOM_ATTRIBUTED_APP_OPS":
        return AtomId.ATOM_ATTRIBUTED_APP_OPS;
case 10076:
      case "ATOM_VOICE_CALL_SESSION":
        return AtomId.ATOM_VOICE_CALL_SESSION;
case 10077:
      case "ATOM_VOICE_CALL_RAT_USAGE":
        return AtomId.ATOM_VOICE_CALL_RAT_USAGE;
case 10078:
      case "ATOM_SIM_SLOT_STATE":
        return AtomId.ATOM_SIM_SLOT_STATE;
case 10079:
      case "ATOM_SUPPORTED_RADIO_ACCESS_FAMILY":
        return AtomId.ATOM_SUPPORTED_RADIO_ACCESS_FAMILY;
case 10080:
      case "ATOM_SETTING_SNAPSHOT":
        return AtomId.ATOM_SETTING_SNAPSHOT;
case 10081:
      case "ATOM_BLOB_INFO":
        return AtomId.ATOM_BLOB_INFO;
case 10082:
      case "ATOM_DATA_USAGE_BYTES_TRANSFER":
        return AtomId.ATOM_DATA_USAGE_BYTES_TRANSFER;
case 10083:
      case "ATOM_BYTES_TRANSFER_BY_TAG_AND_METERED":
        return AtomId.ATOM_BYTES_TRANSFER_BY_TAG_AND_METERED;
case 10084:
      case "ATOM_DND_MODE_RULE":
        return AtomId.ATOM_DND_MODE_RULE;
case 10085:
      case "ATOM_GENERAL_EXTERNAL_STORAGE_ACCESS_STATS":
        return AtomId.ATOM_GENERAL_EXTERNAL_STORAGE_ACCESS_STATS;
case 10086:
      case "ATOM_INCOMING_SMS":
        return AtomId.ATOM_INCOMING_SMS;
case 10087:
      case "ATOM_OUTGOING_SMS":
        return AtomId.ATOM_OUTGOING_SMS;
case 10088:
      case "ATOM_CARRIER_ID_TABLE_VERSION":
        return AtomId.ATOM_CARRIER_ID_TABLE_VERSION;
case 10089:
      case "ATOM_DATA_CALL_SESSION":
        return AtomId.ATOM_DATA_CALL_SESSION;
case 10090:
      case "ATOM_CELLULAR_SERVICE_STATE":
        return AtomId.ATOM_CELLULAR_SERVICE_STATE;
case 10091:
      case "ATOM_CELLULAR_DATA_SERVICE_SWITCH":
        return AtomId.ATOM_CELLULAR_DATA_SERVICE_SWITCH;
case 10092:
      case "ATOM_SYSTEM_MEMORY":
        return AtomId.ATOM_SYSTEM_MEMORY;
case 10093:
      case "ATOM_IMS_REGISTRATION_TERMINATION":
        return AtomId.ATOM_IMS_REGISTRATION_TERMINATION;
case 10094:
      case "ATOM_IMS_REGISTRATION_STATS":
        return AtomId.ATOM_IMS_REGISTRATION_STATS;
case 10095:
      case "ATOM_CPU_TIME_PER_CLUSTER_FREQ":
        return AtomId.ATOM_CPU_TIME_PER_CLUSTER_FREQ;
case 10096:
      case "ATOM_CPU_CYCLES_PER_UID_CLUSTER":
        return AtomId.ATOM_CPU_CYCLES_PER_UID_CLUSTER;
case 10097:
      case "ATOM_DEVICE_ROTATED_DATA":
        return AtomId.ATOM_DEVICE_ROTATED_DATA;
case 10098:
      case "ATOM_CPU_CYCLES_PER_THREAD_GROUP_CLUSTER":
        return AtomId.ATOM_CPU_CYCLES_PER_THREAD_GROUP_CLUSTER;
case 10099:
      case "ATOM_MEDIA_DRM_ACTIVITY_INFO":
        return AtomId.ATOM_MEDIA_DRM_ACTIVITY_INFO;
case 10100:
      case "ATOM_OEM_MANAGED_BYTES_TRANSFER":
        return AtomId.ATOM_OEM_MANAGED_BYTES_TRANSFER;
case 10101:
      case "ATOM_GNSS_POWER_STATS":
        return AtomId.ATOM_GNSS_POWER_STATS;
case 10102:
      case "ATOM_TIME_ZONE_DETECTOR_STATE":
        return AtomId.ATOM_TIME_ZONE_DETECTOR_STATE;
case 10103:
      case "ATOM_KEYSTORE2_STORAGE_STATS":
        return AtomId.ATOM_KEYSTORE2_STORAGE_STATS;
case 10104:
      case "ATOM_RKP_POOL_STATS":
        return AtomId.ATOM_RKP_POOL_STATS;
case 10105:
      case "ATOM_PROCESS_DMABUF_MEMORY":
        return AtomId.ATOM_PROCESS_DMABUF_MEMORY;
case 10106:
      case "ATOM_PENDING_ALARM_INFO":
        return AtomId.ATOM_PENDING_ALARM_INFO;
case 10107:
      case "ATOM_USER_LEVEL_HIBERNATED_APPS":
        return AtomId.ATOM_USER_LEVEL_HIBERNATED_APPS;
case 10108:
      case "ATOM_LAUNCHER_LAYOUT_SNAPSHOT":
        return AtomId.ATOM_LAUNCHER_LAYOUT_SNAPSHOT;
case 10109:
      case "ATOM_GLOBAL_HIBERNATED_APPS":
        return AtomId.ATOM_GLOBAL_HIBERNATED_APPS;
case 10110:
      case "ATOM_INPUT_EVENT_LATENCY_SKETCH":
        return AtomId.ATOM_INPUT_EVENT_LATENCY_SKETCH;
case 10111:
      case "ATOM_BATTERY_USAGE_STATS_BEFORE_RESET":
        return AtomId.ATOM_BATTERY_USAGE_STATS_BEFORE_RESET;
case 10112:
      case "ATOM_BATTERY_USAGE_STATS_SINCE_RESET":
        return AtomId.ATOM_BATTERY_USAGE_STATS_SINCE_RESET;
case 10113:
      case "ATOM_BATTERY_USAGE_STATS_SINCE_RESET_USING_POWER_PROFILE_MODEL":
        return AtomId.ATOM_BATTERY_USAGE_STATS_SINCE_RESET_USING_POWER_PROFILE_MODEL;
case 10114:
      case "ATOM_INSTALLED_INCREMENTAL_PACKAGE":
        return AtomId.ATOM_INSTALLED_INCREMENTAL_PACKAGE;
case 10115:
      case "ATOM_TELEPHONY_NETWORK_REQUESTS":
        return AtomId.ATOM_TELEPHONY_NETWORK_REQUESTS;
case 10116:
      case "ATOM_APP_SEARCH_STORAGE_INFO":
        return AtomId.ATOM_APP_SEARCH_STORAGE_INFO;
case 10117:
      case "ATOM_VMSTAT":
        return AtomId.ATOM_VMSTAT;
case 10118:
      case "ATOM_KEYSTORE2_KEY_CREATION_WITH_GENERAL_INFO":
        return AtomId.ATOM_KEYSTORE2_KEY_CREATION_WITH_GENERAL_INFO;
case 10119:
      case "ATOM_KEYSTORE2_KEY_CREATION_WITH_AUTH_INFO":
        return AtomId.ATOM_KEYSTORE2_KEY_CREATION_WITH_AUTH_INFO;
case 10120:
      case "ATOM_KEYSTORE2_KEY_CREATION_WITH_PURPOSE_AND_MODES_INFO":
        return AtomId.ATOM_KEYSTORE2_KEY_CREATION_WITH_PURPOSE_AND_MODES_INFO;
case 10121:
      case "ATOM_KEYSTORE2_ATOM_WITH_OVERFLOW":
        return AtomId.ATOM_KEYSTORE2_ATOM_WITH_OVERFLOW;
case 10122:
      case "ATOM_KEYSTORE2_KEY_OPERATION_WITH_PURPOSE_AND_MODES_INFO":
        return AtomId.ATOM_KEYSTORE2_KEY_OPERATION_WITH_PURPOSE_AND_MODES_INFO;
case 10123:
      case "ATOM_KEYSTORE2_KEY_OPERATION_WITH_GENERAL_INFO":
        return AtomId.ATOM_KEYSTORE2_KEY_OPERATION_WITH_GENERAL_INFO;
case 10124:
      case "ATOM_RKP_ERROR_STATS":
        return AtomId.ATOM_RKP_ERROR_STATS;
case 10125:
      case "ATOM_KEYSTORE2_CRASH_STATS":
        return AtomId.ATOM_KEYSTORE2_CRASH_STATS;
case 10126:
      case "ATOM_VENDOR_APEX_INFO":
        return AtomId.ATOM_VENDOR_APEX_INFO;
case 10127:
      case "ATOM_ACCESSIBILITY_SHORTCUT_STATS":
        return AtomId.ATOM_ACCESSIBILITY_SHORTCUT_STATS;
case 10128:
      case "ATOM_ACCESSIBILITY_FLOATING_MENU_STATS":
        return AtomId.ATOM_ACCESSIBILITY_FLOATING_MENU_STATS;
case 10129:
      case "ATOM_DATA_USAGE_BYTES_TRANSFER_V2":
        return AtomId.ATOM_DATA_USAGE_BYTES_TRANSFER_V2;
case 10130:
      case "ATOM_MEDIA_CAPABILITIES":
        return AtomId.ATOM_MEDIA_CAPABILITIES;
case 10131:
      case "ATOM_CAR_WATCHDOG_SYSTEM_IO_USAGE_SUMMARY":
        return AtomId.ATOM_CAR_WATCHDOG_SYSTEM_IO_USAGE_SUMMARY;
case 10132:
      case "ATOM_CAR_WATCHDOG_UID_IO_USAGE_SUMMARY":
        return AtomId.ATOM_CAR_WATCHDOG_UID_IO_USAGE_SUMMARY;
case 10133:
      case "ATOM_IMS_REGISTRATION_FEATURE_TAG_STATS":
        return AtomId.ATOM_IMS_REGISTRATION_FEATURE_TAG_STATS;
case 10134:
      case "ATOM_RCS_CLIENT_PROVISIONING_STATS":
        return AtomId.ATOM_RCS_CLIENT_PROVISIONING_STATS;
case 10135:
      case "ATOM_RCS_ACS_PROVISIONING_STATS":
        return AtomId.ATOM_RCS_ACS_PROVISIONING_STATS;
case 10136:
      case "ATOM_SIP_DELEGATE_STATS":
        return AtomId.ATOM_SIP_DELEGATE_STATS;
case 10137:
      case "ATOM_SIP_TRANSPORT_FEATURE_TAG_STATS":
        return AtomId.ATOM_SIP_TRANSPORT_FEATURE_TAG_STATS;
case 10138:
      case "ATOM_SIP_MESSAGE_RESPONSE":
        return AtomId.ATOM_SIP_MESSAGE_RESPONSE;
case 10139:
      case "ATOM_SIP_TRANSPORT_SESSION":
        return AtomId.ATOM_SIP_TRANSPORT_SESSION;
case 10140:
      case "ATOM_IMS_DEDICATED_BEARER_LISTENER_EVENT":
        return AtomId.ATOM_IMS_DEDICATED_BEARER_LISTENER_EVENT;
case 10141:
      case "ATOM_IMS_DEDICATED_BEARER_EVENT":
        return AtomId.ATOM_IMS_DEDICATED_BEARER_EVENT;
case 10142:
      case "ATOM_IMS_REGISTRATION_SERVICE_DESC_STATS":
        return AtomId.ATOM_IMS_REGISTRATION_SERVICE_DESC_STATS;
case 10143:
      case "ATOM_UCE_EVENT_STATS":
        return AtomId.ATOM_UCE_EVENT_STATS;
case 10144:
      case "ATOM_PRESENCE_NOTIFY_EVENT":
        return AtomId.ATOM_PRESENCE_NOTIFY_EVENT;
case 10145:
      case "ATOM_GBA_EVENT":
        return AtomId.ATOM_GBA_EVENT;
case 10146:
      case "ATOM_PER_SIM_STATUS":
        return AtomId.ATOM_PER_SIM_STATUS;
case 10147:
      case "ATOM_GPU_WORK_PER_UID":
        return AtomId.ATOM_GPU_WORK_PER_UID;
case 10148:
      case "ATOM_PERSISTENT_URI_PERMISSIONS_AMOUNT_PER_PACKAGE":
        return AtomId.ATOM_PERSISTENT_URI_PERMISSIONS_AMOUNT_PER_PACKAGE;
case 10149:
      case "ATOM_SIGNED_PARTITION_INFO":
        return AtomId.ATOM_SIGNED_PARTITION_INFO;
case 10150:
      case "ATOM_PINNED_FILE_SIZES_PER_PACKAGE":
        return AtomId.ATOM_PINNED_FILE_SIZES_PER_PACKAGE;
case 10151:
      case "ATOM_PENDING_INTENTS_PER_PACKAGE":
        return AtomId.ATOM_PENDING_INTENTS_PER_PACKAGE;
case 10152:
      case "ATOM_USER_INFO":
        return AtomId.ATOM_USER_INFO;
case 10153:
      case "ATOM_TELEPHONY_NETWORK_REQUESTS_V2":
        return AtomId.ATOM_TELEPHONY_NETWORK_REQUESTS_V2;
case 10154:
      case "ATOM_DEVICE_TELEPHONY_PROPERTIES":
        return AtomId.ATOM_DEVICE_TELEPHONY_PROPERTIES;
case 10155:
      case "ATOM_REMOTE_KEY_PROVISIONING_ERROR_COUNTS":
        return AtomId.ATOM_REMOTE_KEY_PROVISIONING_ERROR_COUNTS;
case 10156:
      case "ATOM_SAFETY_STATE":
        return AtomId.ATOM_SAFETY_STATE;
case 10157:
      case "ATOM_INCOMING_MMS":
        return AtomId.ATOM_INCOMING_MMS;
case 10158:
      case "ATOM_OUTGOING_MMS":
        return AtomId.ATOM_OUTGOING_MMS;
case 10160:
      case "ATOM_MULTI_USER_INFO":
        return AtomId.ATOM_MULTI_USER_INFO;
case 10161:
      case "ATOM_NETWORK_BPF_MAP_INFO":
        return AtomId.ATOM_NETWORK_BPF_MAP_INFO;
case 10162:
      case "ATOM_OUTGOING_SHORT_CODE_SMS":
        return AtomId.ATOM_OUTGOING_SHORT_CODE_SMS;
case 10163:
      case "ATOM_CONNECTIVITY_STATE_SAMPLE":
        return AtomId.ATOM_CONNECTIVITY_STATE_SAMPLE;
case 10164:
      case "ATOM_NETWORK_SELECTION_REMATCH_REASONS_INFO":
        return AtomId.ATOM_NETWORK_SELECTION_REMATCH_REASONS_INFO;
case 10165:
      case "ATOM_GAME_MODE_INFO":
        return AtomId.ATOM_GAME_MODE_INFO;
case 10166:
      case "ATOM_GAME_MODE_CONFIGURATION":
        return AtomId.ATOM_GAME_MODE_CONFIGURATION;
case 10167:
      case "ATOM_GAME_MODE_LISTENER":
        return AtomId.ATOM_GAME_MODE_LISTENER;
case 10168:
      case "ATOM_NETWORK_SLICE_REQUEST_COUNT":
        return AtomId.ATOM_NETWORK_SLICE_REQUEST_COUNT;
case 10169:
      case "ATOM_WS_TILE_SNAPSHOT":
        return AtomId.ATOM_WS_TILE_SNAPSHOT;
case 10170:
      case "ATOM_WS_ACTIVE_WATCH_FACE_COMPLICATION_SET_SNAPSHOT":
        return AtomId.ATOM_WS_ACTIVE_WATCH_FACE_COMPLICATION_SET_SNAPSHOT;
case 10171:
      case "ATOM_PROCESS_STATE":
        return AtomId.ATOM_PROCESS_STATE;
case 10172:
      case "ATOM_PROCESS_ASSOCIATION":
        return AtomId.ATOM_PROCESS_ASSOCIATION;
case 10173:
      case "ATOM_ADPF_SYSTEM_COMPONENT_INFO":
        return AtomId.ATOM_ADPF_SYSTEM_COMPONENT_INFO;
case 10174:
      case "ATOM_NOTIFICATION_MEMORY_USE":
        return AtomId.ATOM_NOTIFICATION_MEMORY_USE;
case 10175:
      case "ATOM_HDR_CAPABILITIES":
        return AtomId.ATOM_HDR_CAPABILITIES;
case 10176:
      case "ATOM_WS_FAVOURITE_WATCH_FACE_LIST_SNAPSHOT":
        return AtomId.ATOM_WS_FAVOURITE_WATCH_FACE_LIST_SNAPSHOT;
case 910:
      case "ATOM_ACCESSIBILITY_CHECK_RESULT_REPORTED":
        return AtomId.ATOM_ACCESSIBILITY_CHECK_RESULT_REPORTED;
case 820:
      case "ATOM_ADAPTIVE_AUTH_UNLOCK_AFTER_LOCK_REPORTED":
        return AtomId.ATOM_ADAPTIVE_AUTH_UNLOCK_AFTER_LOCK_REPORTED;
case 772:
      case "ATOM_THERMAL_STATUS_CALLED":
        return AtomId.ATOM_THERMAL_STATUS_CALLED;
case 773:
      case "ATOM_THERMAL_HEADROOM_CALLED":
        return AtomId.ATOM_THERMAL_HEADROOM_CALLED;
case 774:
      case "ATOM_THERMAL_HEADROOM_THRESHOLDS_CALLED":
        return AtomId.ATOM_THERMAL_HEADROOM_THRESHOLDS_CALLED;
case 839:
      case "ATOM_ADPF_HINT_SESSION_TID_CLEANUP":
        return AtomId.ATOM_ADPF_HINT_SESSION_TID_CLEANUP;
case 10201:
      case "ATOM_THERMAL_HEADROOM_THRESHOLDS":
        return AtomId.ATOM_THERMAL_HEADROOM_THRESHOLDS;
case 10218:
      case "ATOM_ADPF_SESSION_SNAPSHOT":
        return AtomId.ATOM_ADPF_SESSION_SNAPSHOT;
case 483:
      case "ATOM_JSSCRIPTENGINE_LATENCY_REPORTED":
        return AtomId.ATOM_JSSCRIPTENGINE_LATENCY_REPORTED;
case 435:
      case "ATOM_AD_SERVICES_API_CALLED":
        return AtomId.ATOM_AD_SERVICES_API_CALLED;
case 436:
      case "ATOM_AD_SERVICES_MESUREMENT_REPORTS_UPLOADED":
        return AtomId.ATOM_AD_SERVICES_MESUREMENT_REPORTS_UPLOADED;
case 490:
      case "ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STATUS_REPORTED":
        return AtomId.ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STATUS_REPORTED;
case 502:
      case "ATOM_MOBILE_DATA_DOWNLOAD_DOWNLOAD_RESULT_REPORTED":
        return AtomId.ATOM_MOBILE_DATA_DOWNLOAD_DOWNLOAD_RESULT_REPORTED;
case 493:
      case "ATOM_AD_SERVICES_SETTINGS_USAGE_REPORTED":
        return AtomId.ATOM_AD_SERVICES_SETTINGS_USAGE_REPORTED;
case 496:
      case "ATOM_BACKGROUND_FETCH_PROCESS_REPORTED":
        return AtomId.ATOM_BACKGROUND_FETCH_PROCESS_REPORTED;
case 497:
      case "ATOM_UPDATE_CUSTOM_AUDIENCE_PROCESS_REPORTED":
        return AtomId.ATOM_UPDATE_CUSTOM_AUDIENCE_PROCESS_REPORTED;
case 498:
      case "ATOM_RUN_AD_BIDDING_PROCESS_REPORTED":
        return AtomId.ATOM_RUN_AD_BIDDING_PROCESS_REPORTED;
case 499:
      case "ATOM_RUN_AD_SCORING_PROCESS_REPORTED":
        return AtomId.ATOM_RUN_AD_SCORING_PROCESS_REPORTED;
case 500:
      case "ATOM_RUN_AD_SELECTION_PROCESS_REPORTED":
        return AtomId.ATOM_RUN_AD_SELECTION_PROCESS_REPORTED;
case 501:
      case "ATOM_RUN_AD_BIDDING_PER_CA_PROCESS_REPORTED":
        return AtomId.ATOM_RUN_AD_BIDDING_PER_CA_PROCESS_REPORTED;
case 503:
      case "ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STORAGE_STATS_REPORTED":
        return AtomId.ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STORAGE_STATS_REPORTED;
case 512:
      case "ATOM_AD_SERVICES_MEASUREMENT_REGISTRATIONS":
        return AtomId.ATOM_AD_SERVICES_MEASUREMENT_REGISTRATIONS;
case 535:
      case "ATOM_AD_SERVICES_GET_TOPICS_REPORTED":
        return AtomId.ATOM_AD_SERVICES_GET_TOPICS_REPORTED;
case 536:
      case "ATOM_AD_SERVICES_EPOCH_COMPUTATION_GET_TOP_TOPICS_REPORTED":
        return AtomId.ATOM_AD_SERVICES_EPOCH_COMPUTATION_GET_TOP_TOPICS_REPORTED;
case 537:
      case "ATOM_AD_SERVICES_EPOCH_COMPUTATION_CLASSIFIER_REPORTED":
        return AtomId.ATOM_AD_SERVICES_EPOCH_COMPUTATION_CLASSIFIER_REPORTED;
case 598:
      case "ATOM_AD_SERVICES_BACK_COMPAT_GET_TOPICS_REPORTED":
        return AtomId.ATOM_AD_SERVICES_BACK_COMPAT_GET_TOPICS_REPORTED;
case 599:
      case "ATOM_AD_SERVICES_BACK_COMPAT_EPOCH_COMPUTATION_CLASSIFIER_REPORTED":
        return AtomId.ATOM_AD_SERVICES_BACK_COMPAT_EPOCH_COMPUTATION_CLASSIFIER_REPORTED;
case 640:
      case "ATOM_AD_SERVICES_MEASUREMENT_DEBUG_KEYS":
        return AtomId.ATOM_AD_SERVICES_MEASUREMENT_DEBUG_KEYS;
case 662:
      case "ATOM_AD_SERVICES_ERROR_REPORTED":
        return AtomId.ATOM_AD_SERVICES_ERROR_REPORTED;
case 663:
      case "ATOM_AD_SERVICES_BACKGROUND_JOBS_EXECUTION_REPORTED":
        return AtomId.ATOM_AD_SERVICES_BACKGROUND_JOBS_EXECUTION_REPORTED;
case 673:
      case "ATOM_AD_SERVICES_MEASUREMENT_DELAYED_SOURCE_REGISTRATION":
        return AtomId.ATOM_AD_SERVICES_MEASUREMENT_DELAYED_SOURCE_REGISTRATION;
case 674:
      case "ATOM_AD_SERVICES_MEASUREMENT_ATTRIBUTION":
        return AtomId.ATOM_AD_SERVICES_MEASUREMENT_ATTRIBUTION;
case 675:
      case "ATOM_AD_SERVICES_MEASUREMENT_JOBS":
        return AtomId.ATOM_AD_SERVICES_MEASUREMENT_JOBS;
case 676:
      case "ATOM_AD_SERVICES_MEASUREMENT_WIPEOUT":
        return AtomId.ATOM_AD_SERVICES_MEASUREMENT_WIPEOUT;
case 695:
      case "ATOM_AD_SERVICES_MEASUREMENT_AD_ID_MATCH_FOR_DEBUG_KEYS":
        return AtomId.ATOM_AD_SERVICES_MEASUREMENT_AD_ID_MATCH_FOR_DEBUG_KEYS;
case 697:
      case "ATOM_AD_SERVICES_ENROLLMENT_DATA_STORED":
        return AtomId.ATOM_AD_SERVICES_ENROLLMENT_DATA_STORED;
case 698:
      case "ATOM_AD_SERVICES_ENROLLMENT_FILE_DOWNLOADED":
        return AtomId.ATOM_AD_SERVICES_ENROLLMENT_FILE_DOWNLOADED;
case 699:
      case "ATOM_AD_SERVICES_ENROLLMENT_MATCHED":
        return AtomId.ATOM_AD_SERVICES_ENROLLMENT_MATCHED;
case 702:
      case "ATOM_AD_SERVICES_CONSENT_MIGRATED":
        return AtomId.ATOM_AD_SERVICES_CONSENT_MIGRATED;
case 714:
      case "ATOM_AD_SERVICES_ENROLLMENT_FAILED":
        return AtomId.ATOM_AD_SERVICES_ENROLLMENT_FAILED;
case 756:
      case "ATOM_AD_SERVICES_MEASUREMENT_CLICK_VERIFICATION":
        return AtomId.ATOM_AD_SERVICES_MEASUREMENT_CLICK_VERIFICATION;
case 765:
      case "ATOM_AD_SERVICES_ENCRYPTION_KEY_FETCHED":
        return AtomId.ATOM_AD_SERVICES_ENCRYPTION_KEY_FETCHED;
case 766:
      case "ATOM_AD_SERVICES_ENCRYPTION_KEY_DB_TRANSACTION_ENDED":
        return AtomId.ATOM_AD_SERVICES_ENCRYPTION_KEY_DB_TRANSACTION_ENDED;
case 767:
      case "ATOM_DESTINATION_REGISTERED_BEACONS":
        return AtomId.ATOM_DESTINATION_REGISTERED_BEACONS;
case 768:
      case "ATOM_REPORT_INTERACTION_API_CALLED":
        return AtomId.ATOM_REPORT_INTERACTION_API_CALLED;
case 769:
      case "ATOM_INTERACTION_REPORTING_TABLE_CLEARED":
        return AtomId.ATOM_INTERACTION_REPORTING_TABLE_CLEARED;
case 788:
      case "ATOM_APP_MANIFEST_CONFIG_HELPER_CALLED":
        return AtomId.ATOM_APP_MANIFEST_CONFIG_HELPER_CALLED;
case 793:
      case "ATOM_AD_FILTERING_PROCESS_JOIN_CA_REPORTED":
        return AtomId.ATOM_AD_FILTERING_PROCESS_JOIN_CA_REPORTED;
case 794:
      case "ATOM_AD_FILTERING_PROCESS_AD_SELECTION_REPORTED":
        return AtomId.ATOM_AD_FILTERING_PROCESS_AD_SELECTION_REPORTED;
case 795:
      case "ATOM_AD_COUNTER_HISTOGRAM_UPDATER_REPORTED":
        return AtomId.ATOM_AD_COUNTER_HISTOGRAM_UPDATER_REPORTED;
case 807:
      case "ATOM_SIGNATURE_VERIFICATION":
        return AtomId.ATOM_SIGNATURE_VERIFICATION;
case 808:
      case "ATOM_K_ANON_IMMEDIATE_SIGN_JOIN_STATUS_REPORTED":
        return AtomId.ATOM_K_ANON_IMMEDIATE_SIGN_JOIN_STATUS_REPORTED;
case 809:
      case "ATOM_K_ANON_BACKGROUND_JOB_STATUS_REPORTED":
        return AtomId.ATOM_K_ANON_BACKGROUND_JOB_STATUS_REPORTED;
case 810:
      case "ATOM_K_ANON_INITIALIZE_STATUS_REPORTED":
        return AtomId.ATOM_K_ANON_INITIALIZE_STATUS_REPORTED;
case 811:
      case "ATOM_K_ANON_SIGN_STATUS_REPORTED":
        return AtomId.ATOM_K_ANON_SIGN_STATUS_REPORTED;
case 812:
      case "ATOM_K_ANON_JOIN_STATUS_REPORTED":
        return AtomId.ATOM_K_ANON_JOIN_STATUS_REPORTED;
case 813:
      case "ATOM_K_ANON_KEY_ATTESTATION_STATUS_REPORTED":
        return AtomId.ATOM_K_ANON_KEY_ATTESTATION_STATUS_REPORTED;
case 814:
      case "ATOM_GET_AD_SELECTION_DATA_API_CALLED":
        return AtomId.ATOM_GET_AD_SELECTION_DATA_API_CALLED;
case 815:
      case "ATOM_GET_AD_SELECTION_DATA_BUYER_INPUT_GENERATED":
        return AtomId.ATOM_GET_AD_SELECTION_DATA_BUYER_INPUT_GENERATED;
case 834:
      case "ATOM_BACKGROUND_JOB_SCHEDULING_REPORTED":
        return AtomId.ATOM_BACKGROUND_JOB_SCHEDULING_REPORTED;
case 840:
      case "ATOM_TOPICS_ENCRYPTION_EPOCH_COMPUTATION_REPORTED":
        return AtomId.ATOM_TOPICS_ENCRYPTION_EPOCH_COMPUTATION_REPORTED;
case 841:
      case "ATOM_TOPICS_ENCRYPTION_GET_TOPICS_REPORTED":
        return AtomId.ATOM_TOPICS_ENCRYPTION_GET_TOPICS_REPORTED;
case 842:
      case "ATOM_ADSERVICES_SHELL_COMMAND_CALLED":
        return AtomId.ATOM_ADSERVICES_SHELL_COMMAND_CALLED;
case 843:
      case "ATOM_UPDATE_SIGNALS_API_CALLED":
        return AtomId.ATOM_UPDATE_SIGNALS_API_CALLED;
case 844:
      case "ATOM_ENCODING_JOB_RUN":
        return AtomId.ATOM_ENCODING_JOB_RUN;
case 845:
      case "ATOM_ENCODING_JS_FETCH":
        return AtomId.ATOM_ENCODING_JS_FETCH;
case 846:
      case "ATOM_ENCODING_JS_EXECUTION":
        return AtomId.ATOM_ENCODING_JS_EXECUTION;
case 847:
      case "ATOM_PERSIST_AD_SELECTION_RESULT_CALLED":
        return AtomId.ATOM_PERSIST_AD_SELECTION_RESULT_CALLED;
case 848:
      case "ATOM_SERVER_AUCTION_KEY_FETCH_CALLED":
        return AtomId.ATOM_SERVER_AUCTION_KEY_FETCH_CALLED;
case 849:
      case "ATOM_SERVER_AUCTION_BACKGROUND_KEY_FETCH_ENABLED":
        return AtomId.ATOM_SERVER_AUCTION_BACKGROUND_KEY_FETCH_ENABLED;
case 864:
      case "ATOM_AD_SERVICES_MEASUREMENT_PROCESS_ODP_REGISTRATION":
        return AtomId.ATOM_AD_SERVICES_MEASUREMENT_PROCESS_ODP_REGISTRATION;
case 865:
      case "ATOM_AD_SERVICES_MEASUREMENT_NOTIFY_REGISTRATION_TO_ODP":
        return AtomId.ATOM_AD_SERVICES_MEASUREMENT_NOTIFY_REGISTRATION_TO_ODP;
case 876:
      case "ATOM_SELECT_ADS_FROM_OUTCOMES_API_CALLED":
        return AtomId.ATOM_SELECT_ADS_FROM_OUTCOMES_API_CALLED;
case 877:
      case "ATOM_REPORT_IMPRESSION_API_CALLED":
        return AtomId.ATOM_REPORT_IMPRESSION_API_CALLED;
case 885:
      case "ATOM_AD_SERVICES_ENROLLMENT_TRANSACTION_STATS":
        return AtomId.ATOM_AD_SERVICES_ENROLLMENT_TRANSACTION_STATS;
case 902:
      case "ATOM_AD_SERVICES_COBALT_LOGGER_EVENT_REPORTED":
        return AtomId.ATOM_AD_SERVICES_COBALT_LOGGER_EVENT_REPORTED;
case 903:
      case "ATOM_AD_SERVICES_COBALT_PERIODIC_JOB_EVENT_REPORTED":
        return AtomId.ATOM_AD_SERVICES_COBALT_PERIODIC_JOB_EVENT_REPORTED;
case 905:
      case "ATOM_UPDATE_SIGNALS_PROCESS_REPORTED":
        return AtomId.ATOM_UPDATE_SIGNALS_PROCESS_REPORTED;
case 930:
      case "ATOM_TOPICS_SCHEDULE_EPOCH_JOB_SETTING_REPORTED":
        return AtomId.ATOM_TOPICS_SCHEDULE_EPOCH_JOB_SETTING_REPORTED;
case 706:
      case "ATOM_AI_WALLPAPERS_BUTTON_PRESSED":
        return AtomId.ATOM_AI_WALLPAPERS_BUTTON_PRESSED;
case 707:
      case "ATOM_AI_WALLPAPERS_TEMPLATE_SELECTED":
        return AtomId.ATOM_AI_WALLPAPERS_TEMPLATE_SELECTED;
case 708:
      case "ATOM_AI_WALLPAPERS_TERM_SELECTED":
        return AtomId.ATOM_AI_WALLPAPERS_TERM_SELECTED;
case 709:
      case "ATOM_AI_WALLPAPERS_WALLPAPER_SET":
        return AtomId.ATOM_AI_WALLPAPERS_WALLPAPER_SET;
case 710:
      case "ATOM_AI_WALLPAPERS_SESSION_SUMMARY":
        return AtomId.ATOM_AI_WALLPAPERS_SESSION_SUMMARY;
case 732:
      case "ATOM_APEX_INSTALLATION_REQUESTED":
        return AtomId.ATOM_APEX_INSTALLATION_REQUESTED;
case 733:
      case "ATOM_APEX_INSTALLATION_STAGED":
        return AtomId.ATOM_APEX_INSTALLATION_STAGED;
case 734:
      case "ATOM_APEX_INSTALLATION_ENDED":
        return AtomId.ATOM_APEX_INSTALLATION_ENDED;
case 385:
      case "ATOM_APP_SEARCH_SET_SCHEMA_STATS_REPORTED":
        return AtomId.ATOM_APP_SEARCH_SET_SCHEMA_STATS_REPORTED;
case 579:
      case "ATOM_APP_SEARCH_SCHEMA_MIGRATION_STATS_REPORTED":
        return AtomId.ATOM_APP_SEARCH_SCHEMA_MIGRATION_STATS_REPORTED;
case 825:
      case "ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_STATS_REPORTED":
        return AtomId.ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_STATS_REPORTED;
case 826:
      case "ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_RAW_QUERY_STATS_REPORTED":
        return AtomId.ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_RAW_QUERY_STATS_REPORTED;
case 909:
      case "ATOM_APP_SEARCH_APPS_INDEXER_STATS_REPORTED":
        return AtomId.ATOM_APP_SEARCH_APPS_INDEXER_STATS_REPORTED;
case 332:
      case "ATOM_ART_DATUM_REPORTED":
        return AtomId.ATOM_ART_DATUM_REPORTED;
case 550:
      case "ATOM_ART_DEVICE_DATUM_REPORTED":
        return AtomId.ATOM_ART_DEVICE_DATUM_REPORTED;
case 565:
      case "ATOM_ART_DATUM_DELTA_REPORTED":
        return AtomId.ATOM_ART_DATUM_DELTA_REPORTED;
case 929:
      case "ATOM_ART_DEX2OAT_REPORTED":
        return AtomId.ATOM_ART_DEX2OAT_REPORTED;
case 10205:
      case "ATOM_ART_DEVICE_STATUS":
        return AtomId.ATOM_ART_DEVICE_STATUS;
case 467:
      case "ATOM_BACKGROUND_DEXOPT_JOB_ENDED":
        return AtomId.ATOM_BACKGROUND_DEXOPT_JOB_ENDED;
case 883:
      case "ATOM_PREREBOOT_DEXOPT_JOB_ENDED":
        return AtomId.ATOM_PREREBOOT_DEXOPT_JOB_ENDED;
case 366:
      case "ATOM_ODREFRESH_REPORTED":
        return AtomId.ATOM_ODREFRESH_REPORTED;
case 548:
      case "ATOM_ODSIGN_REPORTED":
        return AtomId.ATOM_ODSIGN_REPORTED;
case 603:
      case "ATOM_AUTOFILL_UI_EVENT_REPORTED":
        return AtomId.ATOM_AUTOFILL_UI_EVENT_REPORTED;
case 604:
      case "ATOM_AUTOFILL_FILL_REQUEST_REPORTED":
        return AtomId.ATOM_AUTOFILL_FILL_REQUEST_REPORTED;
case 605:
      case "ATOM_AUTOFILL_FILL_RESPONSE_REPORTED":
        return AtomId.ATOM_AUTOFILL_FILL_RESPONSE_REPORTED;
case 606:
      case "ATOM_AUTOFILL_SAVE_EVENT_REPORTED":
        return AtomId.ATOM_AUTOFILL_SAVE_EVENT_REPORTED;
case 607:
      case "ATOM_AUTOFILL_SESSION_COMMITTED":
        return AtomId.ATOM_AUTOFILL_SESSION_COMMITTED;
case 659:
      case "ATOM_AUTOFILL_FIELD_CLASSIFICATION_EVENT_REPORTED":
        return AtomId.ATOM_AUTOFILL_FIELD_CLASSIFICATION_EVENT_REPORTED;
case 770:
      case "ATOM_CAR_RECENTS_EVENT_REPORTED":
        return AtomId.ATOM_CAR_RECENTS_EVENT_REPORTED;
case 797:
      case "ATOM_CAR_CALM_MODE_EVENT_REPORTED":
        return AtomId.ATOM_CAR_CALM_MODE_EVENT_REPORTED;
case 852:
      case "ATOM_CAR_WAKEUP_FROM_SUSPEND_REPORTED":
        return AtomId.ATOM_CAR_WAKEUP_FROM_SUSPEND_REPORTED;
case 655:
      case "ATOM_PLUGIN_INITIALIZED":
        return AtomId.ATOM_PLUGIN_INITIALIZED;
case 613:
      case "ATOM_BLUETOOTH_HASHED_DEVICE_NAME_REPORTED":
        return AtomId.ATOM_BLUETOOTH_HASHED_DEVICE_NAME_REPORTED;
case 614:
      case "ATOM_BLUETOOTH_L2CAP_COC_CLIENT_CONNECTION":
        return AtomId.ATOM_BLUETOOTH_L2CAP_COC_CLIENT_CONNECTION;
case 615:
      case "ATOM_BLUETOOTH_L2CAP_COC_SERVER_CONNECTION":
        return AtomId.ATOM_BLUETOOTH_L2CAP_COC_SERVER_CONNECTION;
case 656:
      case "ATOM_BLUETOOTH_LE_SESSION_CONNECTED":
        return AtomId.ATOM_BLUETOOTH_LE_SESSION_CONNECTED;
case 666:
      case "ATOM_RESTRICTED_BLUETOOTH_DEVICE_NAME_REPORTED":
        return AtomId.ATOM_RESTRICTED_BLUETOOTH_DEVICE_NAME_REPORTED;
case 696:
      case "ATOM_BLUETOOTH_PROFILE_CONNECTION_ATTEMPTED":
        return AtomId.ATOM_BLUETOOTH_PROFILE_CONNECTION_ATTEMPTED;
case 781:
      case "ATOM_BLUETOOTH_CONTENT_PROFILE_ERROR_REPORTED":
        return AtomId.ATOM_BLUETOOTH_CONTENT_PROFILE_ERROR_REPORTED;
case 782:
      case "ATOM_BLUETOOTH_RFCOMM_CONNECTION_ATTEMPTED":
        return AtomId.ATOM_BLUETOOTH_RFCOMM_CONNECTION_ATTEMPTED;
case 862:
      case "ATOM_REMOTE_DEVICE_INFORMATION_WITH_METRIC_ID":
        return AtomId.ATOM_REMOTE_DEVICE_INFORMATION_WITH_METRIC_ID;
case 870:
      case "ATOM_LE_APP_SCAN_STATE_CHANGED":
        return AtomId.ATOM_LE_APP_SCAN_STATE_CHANGED;
case 871:
      case "ATOM_LE_RADIO_SCAN_STOPPED":
        return AtomId.ATOM_LE_RADIO_SCAN_STOPPED;
case 872:
      case "ATOM_LE_SCAN_RESULT_RECEIVED":
        return AtomId.ATOM_LE_SCAN_RESULT_RECEIVED;
case 873:
      case "ATOM_LE_SCAN_ABUSED":
        return AtomId.ATOM_LE_SCAN_ABUSED;
case 874:
      case "ATOM_LE_ADV_STATE_CHANGED":
        return AtomId.ATOM_LE_ADV_STATE_CHANGED;
case 875:
      case "ATOM_LE_ADV_ERROR_REPORTED":
        return AtomId.ATOM_LE_ADV_ERROR_REPORTED;
case 904:
      case "ATOM_A2DP_SESSION_REPORTED":
        return AtomId.ATOM_A2DP_SESSION_REPORTED;
case 916:
      case "ATOM_BLUETOOTH_CROSS_LAYER_EVENT_REPORTED":
        return AtomId.ATOM_BLUETOOTH_CROSS_LAYER_EVENT_REPORTED;
case 927:
      case "ATOM_BROADCAST_AUDIO_SESSION_REPORTED":
        return AtomId.ATOM_BROADCAST_AUDIO_SESSION_REPORTED;
case 928:
      case "ATOM_BROADCAST_AUDIO_SYNC_REPORTED":
        return AtomId.ATOM_BROADCAST_AUDIO_SYNC_REPORTED;
case 982:
      case "ATOM_BLUETOOTH_RFCOMM_CONNECTION_REPORTED_AT_CLOSE":
        return AtomId.ATOM_BLUETOOTH_RFCOMM_CONNECTION_REPORTED_AT_CLOSE;
case 988:
      case "ATOM_BLUETOOTH_LE_CONNECTION":
        return AtomId.ATOM_BLUETOOTH_LE_CONNECTION;
case 922:
      case "ATOM_BROADCAST_SENT":
        return AtomId.ATOM_BROADCAST_SENT;
case 900:
      case "ATOM_CAMERA_FEATURE_COMBINATION_QUERY_EVENT":
        return AtomId.ATOM_CAMERA_FEATURE_COMBINATION_QUERY_EVENT;
case 934:
      case "ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_STATE_CHANGED":
        return AtomId.ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_STATE_CHANGED;
case 972:
      case "ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_UPDATE_FAILED":
        return AtomId.ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_UPDATE_FAILED;
case 650:
      case "ATOM_DAILY_KEEPALIVE_INFO_REPORTED":
        return AtomId.ATOM_DAILY_KEEPALIVE_INFO_REPORTED;
case 779:
      case "ATOM_NETWORK_REQUEST_STATE_CHANGED":
        return AtomId.ATOM_NETWORK_REQUEST_STATE_CHANGED;
case 925:
      case "ATOM_TETHERING_ACTIVE_SESSIONS_REPORTED":
        return AtomId.ATOM_TETHERING_ACTIVE_SESSIONS_REPORTED;
case 783:
      case "ATOM_NETWORK_STATS_RECORDER_FILE_OPERATED":
        return AtomId.ATOM_NETWORK_STATS_RECORDER_FILE_OPERATED;
case 979:
      case "ATOM_CORE_NETWORKING_TERRIBLE_ERROR_OCCURRED":
        return AtomId.ATOM_CORE_NETWORKING_TERRIBLE_ERROR_OCCURRED;
case 777:
      case "ATOM_APF_SESSION_INFO_REPORTED":
        return AtomId.ATOM_APF_SESSION_INFO_REPORTED;
case 778:
      case "ATOM_IP_CLIENT_RA_INFO_REPORTED":
        return AtomId.ATOM_IP_CLIENT_RA_INFO_REPORTED;
case 850:
      case "ATOM_VPN_CONNECTION_STATE_CHANGED":
        return AtomId.ATOM_VPN_CONNECTION_STATE_CHANGED;
case 851:
      case "ATOM_VPN_CONNECTION_REPORTED":
        return AtomId.ATOM_VPN_CONNECTION_REPORTED;
case 10199:
      case "ATOM_CPU_POLICY":
        return AtomId.ATOM_CPU_POLICY;
case 585:
      case "ATOM_CREDENTIAL_MANAGER_API_CALLED":
        return AtomId.ATOM_CREDENTIAL_MANAGER_API_CALLED;
case 651:
      case "ATOM_CREDENTIAL_MANAGER_INIT_PHASE_REPORTED":
        return AtomId.ATOM_CREDENTIAL_MANAGER_INIT_PHASE_REPORTED;
case 652:
      case "ATOM_CREDENTIAL_MANAGER_CANDIDATE_PHASE_REPORTED":
        return AtomId.ATOM_CREDENTIAL_MANAGER_CANDIDATE_PHASE_REPORTED;
case 653:
      case "ATOM_CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED":
        return AtomId.ATOM_CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED;
case 667:
      case "ATOM_CREDENTIAL_MANAGER_TOTAL_REPORTED":
        return AtomId.ATOM_CREDENTIAL_MANAGER_TOTAL_REPORTED;
case 668:
      case "ATOM_CREDENTIAL_MANAGER_FINALNOUID_REPORTED":
        return AtomId.ATOM_CREDENTIAL_MANAGER_FINALNOUID_REPORTED;
case 669:
      case "ATOM_CREDENTIAL_MANAGER_GET_REPORTED":
        return AtomId.ATOM_CREDENTIAL_MANAGER_GET_REPORTED;
case 670:
      case "ATOM_CREDENTIAL_MANAGER_AUTH_CLICK_REPORTED":
        return AtomId.ATOM_CREDENTIAL_MANAGER_AUTH_CLICK_REPORTED;
case 671:
      case "ATOM_CREDENTIAL_MANAGER_APIV2_CALLED":
        return AtomId.ATOM_CREDENTIAL_MANAGER_APIV2_CALLED;
case 703:
      case "ATOM_CRONET_ENGINE_CREATED":
        return AtomId.ATOM_CRONET_ENGINE_CREATED;
case 704:
      case "ATOM_CRONET_TRAFFIC_REPORTED":
        return AtomId.ATOM_CRONET_TRAFFIC_REPORTED;
case 762:
      case "ATOM_CRONET_ENGINE_BUILDER_INITIALIZED":
        return AtomId.ATOM_CRONET_ENGINE_BUILDER_INITIALIZED;
case 763:
      case "ATOM_CRONET_HTTP_FLAGS_INITIALIZED":
        return AtomId.ATOM_CRONET_HTTP_FLAGS_INITIALIZED;
case 764:
      case "ATOM_CRONET_INITIALIZED":
        return AtomId.ATOM_CRONET_INITIALIZED;
case 818:
      case "ATOM_DESKTOP_MODE_UI_CHANGED":
        return AtomId.ATOM_DESKTOP_MODE_UI_CHANGED;
case 819:
      case "ATOM_DESKTOP_MODE_SESSION_TASK_UPDATE":
        return AtomId.ATOM_DESKTOP_MODE_SESSION_TASK_UPDATE;
case 935:
      case "ATOM_DESKTOP_MODE_TASK_SIZE_UPDATED":
        return AtomId.ATOM_DESKTOP_MODE_TASK_SIZE_UPDATED;
case 726:
      case "ATOM_DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED":
        return AtomId.ATOM_DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED;
case 727:
      case "ATOM_DEVICE_LOCK_PROVISIONING_COMPLETE_REPORTED":
        return AtomId.ATOM_DEVICE_LOCK_PROVISIONING_COMPLETE_REPORTED;
case 728:
      case "ATOM_DEVICE_LOCK_KIOSK_APP_REQUEST_REPORTED":
        return AtomId.ATOM_DEVICE_LOCK_KIOSK_APP_REQUEST_REPORTED;
case 789:
      case "ATOM_DEVICE_LOCK_CHECK_IN_RETRY_REPORTED":
        return AtomId.ATOM_DEVICE_LOCK_CHECK_IN_RETRY_REPORTED;
case 790:
      case "ATOM_DEVICE_LOCK_PROVISION_FAILURE_REPORTED":
        return AtomId.ATOM_DEVICE_LOCK_PROVISION_FAILURE_REPORTED;
case 791:
      case "ATOM_DEVICE_LOCK_LOCK_UNLOCK_DEVICE_FAILURE_REPORTED":
        return AtomId.ATOM_DEVICE_LOCK_LOCK_UNLOCK_DEVICE_FAILURE_REPORTED;
case 10216:
      case "ATOM_DEVICE_POLICY_MANAGEMENT_MODE":
        return AtomId.ATOM_DEVICE_POLICY_MANAGEMENT_MODE;
case 10217:
      case "ATOM_DEVICE_POLICY_STATE":
        return AtomId.ATOM_DEVICE_POLICY_STATE;
case 792:
      case "ATOM_DISPLAY_MODE_DIRECTOR_VOTE_CHANGED":
        return AtomId.ATOM_DISPLAY_MODE_DIRECTOR_VOTE_CHANGED;
case 806:
      case "ATOM_EXTERNAL_DISPLAY_STATE_CHANGED":
        return AtomId.ATOM_EXTERNAL_DISPLAY_STATE_CHANGED;
case 657:
      case "ATOM_DND_STATE_CHANGED":
        return AtomId.ATOM_DND_STATE_CHANGED;
case 705:
      case "ATOM_DREAM_SETTING_CHANGED":
        return AtomId.ATOM_DREAM_SETTING_CHANGED;
case 10192:
      case "ATOM_DREAM_SETTING_SNAPSHOT":
        return AtomId.ATOM_DREAM_SETTING_SNAPSHOT;
case 528:
      case "ATOM_EXPRESS_EVENT_REPORTED":
        return AtomId.ATOM_EXPRESS_EVENT_REPORTED;
case 593:
      case "ATOM_EXPRESS_HISTOGRAM_SAMPLE_REPORTED":
        return AtomId.ATOM_EXPRESS_HISTOGRAM_SAMPLE_REPORTED;
case 644:
      case "ATOM_EXPRESS_UID_EVENT_REPORTED":
        return AtomId.ATOM_EXPRESS_UID_EVENT_REPORTED;
case 658:
      case "ATOM_EXPRESS_UID_HISTOGRAM_SAMPLE_REPORTED":
        return AtomId.ATOM_EXPRESS_UID_HISTOGRAM_SAMPLE_REPORTED;
case 712:
      case "ATOM_FEDERATED_COMPUTE_API_CALLED":
        return AtomId.ATOM_FEDERATED_COMPUTE_API_CALLED;
case 771:
      case "ATOM_FEDERATED_COMPUTE_TRAINING_EVENT_REPORTED":
        return AtomId.ATOM_FEDERATED_COMPUTE_TRAINING_EVENT_REPORTED;
case 838:
      case "ATOM_EXAMPLE_ITERATOR_NEXT_LATENCY_REPORTED":
        return AtomId.ATOM_EXAMPLE_ITERATOR_NEXT_LATENCY_REPORTED;
case 631:
      case "ATOM_FULL_SCREEN_INTENT_LAUNCHED":
        return AtomId.ATOM_FULL_SCREEN_INTENT_LAUNCHED;
case 632:
      case "ATOM_BAL_ALLOWED":
        return AtomId.ATOM_BAL_ALLOWED;
case 685:
      case "ATOM_IN_TASK_ACTIVITY_STARTED":
        return AtomId.ATOM_IN_TASK_ACTIVITY_STARTED;
case 906:
      case "ATOM_DEVICE_ORIENTATION_CHANGED":
        return AtomId.ATOM_DEVICE_ORIENTATION_CHANGED;
case 10189:
      case "ATOM_CACHED_APPS_HIGH_WATERMARK":
        return AtomId.ATOM_CACHED_APPS_HIGH_WATERMARK;
case 718:
      case "ATOM_STYLUS_PREDICTION_METRICS_REPORTED":
        return AtomId.ATOM_STYLUS_PREDICTION_METRICS_REPORTED;
case 725:
      case "ATOM_USER_RISK_EVENT_REPORTED":
        return AtomId.ATOM_USER_RISK_EVENT_REPORTED;
case 729:
      case "ATOM_MEDIA_PROJECTION_STATE_CHANGED":
        return AtomId.ATOM_MEDIA_PROJECTION_STATE_CHANGED;
case 730:
      case "ATOM_MEDIA_PROJECTION_TARGET_CHANGED":
        return AtomId.ATOM_MEDIA_PROJECTION_TARGET_CHANGED;
case 853:
      case "ATOM_EXCESSIVE_BINDER_PROXY_COUNT_REPORTED":
        return AtomId.ATOM_EXCESSIVE_BINDER_PROXY_COUNT_REPORTED;
case 10200:
      case "ATOM_PROXY_BYTES_TRANSFER_BY_FG_BG":
        return AtomId.ATOM_PROXY_BYTES_TRANSFER_BY_FG_BG;
case 10204:
      case "ATOM_MOBILE_BYTES_TRANSFER_BY_PROC_STATE":
        return AtomId.ATOM_MOBILE_BYTES_TRANSFER_BY_PROC_STATE;
case 817:
      case "ATOM_BIOMETRIC_FRR_NOTIFICATION":
        return AtomId.ATOM_BIOMETRIC_FRR_NOTIFICATION;
case 830:
      case "ATOM_SENSITIVE_CONTENT_MEDIA_PROJECTION_SESSION":
        return AtomId.ATOM_SENSITIVE_CONTENT_MEDIA_PROJECTION_SESSION;
case 831:
      case "ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_SESSION":
        return AtomId.ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_SESSION;
case 832:
      case "ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_APPLIED":
        return AtomId.ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_APPLIED;
case 833:
      case "ATOM_SENSITIVE_NOTIFICATION_REDACTION":
        return AtomId.ATOM_SENSITIVE_NOTIFICATION_REDACTION;
case 835:
      case "ATOM_SENSITIVE_CONTENT_APP_PROTECTION":
        return AtomId.ATOM_SENSITIVE_CONTENT_APP_PROTECTION;
case 866:
      case "ATOM_APP_RESTRICTION_STATE_CHANGED":
        return AtomId.ATOM_APP_RESTRICTION_STATE_CHANGED;
case 10209:
      case "ATOM_BATTERY_USAGE_STATS_PER_UID":
        return AtomId.ATOM_BATTERY_USAGE_STATS_PER_UID;
case 924:
      case "ATOM_POSTGC_MEMORY_SNAPSHOT":
        return AtomId.ATOM_POSTGC_MEMORY_SNAPSHOT;
case 926:
      case "ATOM_POWER_SAVE_TEMP_ALLOWLIST_CHANGED":
        return AtomId.ATOM_POWER_SAVE_TEMP_ALLOWLIST_CHANGED;
case 931:
      case "ATOM_APP_OP_ACCESS_TRACKED":
        return AtomId.ATOM_APP_OP_ACCESS_TRACKED;
case 933:
      case "ATOM_CONTENT_OR_FILE_URI_EVENT_REPORTED":
        return AtomId.ATOM_CONTENT_OR_FILE_URI_EVENT_REPORTED;
case 584:
      case "ATOM_APPLICATION_GRAMMATICAL_INFLECTION_CHANGED":
        return AtomId.ATOM_APPLICATION_GRAMMATICAL_INFLECTION_CHANGED;
case 816:
      case "ATOM_SYSTEM_GRAMMATICAL_INFLECTION_CHANGED":
        return AtomId.ATOM_SYSTEM_GRAMMATICAL_INFLECTION_CHANGED;
case 10220:
      case "ATOM_BATTERY_HEALTH":
        return AtomId.ATOM_BATTERY_HEALTH;
case 701:
      case "ATOM_HDMI_EARC_STATUS_REPORTED":
        return AtomId.ATOM_HDMI_EARC_STATUS_REPORTED;
case 724:
      case "ATOM_HDMI_SOUNDBAR_MODE_STATUS_REPORTED":
        return AtomId.ATOM_HDMI_SOUNDBAR_MODE_STATUS_REPORTED;
case 616:
      case "ATOM_HEALTH_CONNECT_API_CALLED":
        return AtomId.ATOM_HEALTH_CONNECT_API_CALLED;
case 617:
      case "ATOM_HEALTH_CONNECT_USAGE_STATS":
        return AtomId.ATOM_HEALTH_CONNECT_USAGE_STATS;
case 618:
      case "ATOM_HEALTH_CONNECT_STORAGE_STATS":
        return AtomId.ATOM_HEALTH_CONNECT_STORAGE_STATS;
case 643:
      case "ATOM_HEALTH_CONNECT_API_INVOKED":
        return AtomId.ATOM_HEALTH_CONNECT_API_INVOKED;
case 654:
      case "ATOM_EXERCISE_ROUTE_API_CALLED":
        return AtomId.ATOM_EXERCISE_ROUTE_API_CALLED;
case 907:
      case "ATOM_HEALTH_CONNECT_EXPORT_INVOKED":
        return AtomId.ATOM_HEALTH_CONNECT_EXPORT_INVOKED;
case 918:
      case "ATOM_HEALTH_CONNECT_IMPORT_INVOKED":
        return AtomId.ATOM_HEALTH_CONNECT_IMPORT_INVOKED;
case 919:
      case "ATOM_HEALTH_CONNECT_EXPORT_IMPORT_STATS_REPORTED":
        return AtomId.ATOM_HEALTH_CONNECT_EXPORT_IMPORT_STATS_REPORTED;
case 623:
      case "ATOM_HEALTH_CONNECT_UI_IMPRESSION":
        return AtomId.ATOM_HEALTH_CONNECT_UI_IMPRESSION;
case 624:
      case "ATOM_HEALTH_CONNECT_UI_INTERACTION":
        return AtomId.ATOM_HEALTH_CONNECT_UI_INTERACTION;
case 625:
      case "ATOM_HEALTH_CONNECT_APP_OPENED_REPORTED":
        return AtomId.ATOM_HEALTH_CONNECT_APP_OPENED_REPORTED;
case 761:
      case "ATOM_HOTWORD_EGRESS_SIZE_ATOM_REPORTED":
        return AtomId.ATOM_HOTWORD_EGRESS_SIZE_ATOM_REPORTED;
case 678:
      case "ATOM_IKE_SESSION_TERMINATED":
        return AtomId.ATOM_IKE_SESSION_TERMINATED;
case 760:
      case "ATOM_IKE_LIVENESS_CHECK_SESSION_VALIDATED":
        return AtomId.ATOM_IKE_LIVENESS_CHECK_SESSION_VALIDATED;
case 821:
      case "ATOM_NEGOTIATED_SECURITY_ASSOCIATION":
        return AtomId.ATOM_NEGOTIATED_SECURITY_ASSOCIATION;
case 682:
      case "ATOM_KEYBOARD_CONFIGURED":
        return AtomId.ATOM_KEYBOARD_CONFIGURED;
case 683:
      case "ATOM_KEYBOARD_SYSTEMS_EVENT_REPORTED":
        return AtomId.ATOM_KEYBOARD_SYSTEMS_EVENT_REPORTED;
case 686:
      case "ATOM_INPUTDEVICE_USAGE_REPORTED":
        return AtomId.ATOM_INPUTDEVICE_USAGE_REPORTED;
case 932:
      case "ATOM_INPUT_EVENT_LATENCY_REPORTED":
        return AtomId.ATOM_INPUT_EVENT_LATENCY_REPORTED;
case 10191:
      case "ATOM_TOUCHPAD_USAGE":
        return AtomId.ATOM_TOUCHPAD_USAGE;
case 754:
      case "ATOM_KERNEL_OOM_KILL_OCCURRED":
        return AtomId.ATOM_KERNEL_OOM_KILL_OCCURRED;
case 633:
      case "ATOM_EMERGENCY_STATE_CHANGED":
        return AtomId.ATOM_EMERGENCY_STATE_CHANGED;
case 868:
      case "ATOM_CHRE_SIGNIFICANT_MOTION_STATE_CHANGED":
        return AtomId.ATOM_CHRE_SIGNIFICANT_MOTION_STATE_CHANGED;
case 1002:
      case "ATOM_POPULATION_DENSITY_PROVIDER_LOADING_REPORTED":
        return AtomId.ATOM_POPULATION_DENSITY_PROVIDER_LOADING_REPORTED;
case 1003:
      case "ATOM_DENSITY_BASED_COARSE_LOCATIONS_USAGE_REPORTED":
        return AtomId.ATOM_DENSITY_BASED_COARSE_LOCATIONS_USAGE_REPORTED;
case 1004:
      case "ATOM_DENSITY_BASED_COARSE_LOCATIONS_PROVIDER_QUERY_REPORTED":
        return AtomId.ATOM_DENSITY_BASED_COARSE_LOCATIONS_PROVIDER_QUERY_REPORTED;
case 600:
      case "ATOM_MEDIA_CODEC_RECLAIM_REQUEST_COMPLETED":
        return AtomId.ATOM_MEDIA_CODEC_RECLAIM_REQUEST_COMPLETED;
case 641:
      case "ATOM_MEDIA_CODEC_STARTED":
        return AtomId.ATOM_MEDIA_CODEC_STARTED;
case 642:
      case "ATOM_MEDIA_CODEC_STOPPED":
        return AtomId.ATOM_MEDIA_CODEC_STOPPED;
case 684:
      case "ATOM_MEDIA_CODEC_RENDERED":
        return AtomId.ATOM_MEDIA_CODEC_RENDERED;
case 798:
      case "ATOM_MEDIA_EDITING_ENDED_REPORTED":
        return AtomId.ATOM_MEDIA_EDITING_ENDED_REPORTED;
case 10181:
      case "ATOM_MTE_STATE":
        return AtomId.ATOM_MTE_STATE;
case 901:
      case "ATOM_MICROXR_DEVICE_BOOT_COMPLETE_REPORTED":
        return AtomId.ATOM_MICROXR_DEVICE_BOOT_COMPLETE_REPORTED;
case 855:
      case "ATOM_NFC_OBSERVE_MODE_STATE_CHANGED":
        return AtomId.ATOM_NFC_OBSERVE_MODE_STATE_CHANGED;
case 856:
      case "ATOM_NFC_FIELD_CHANGED":
        return AtomId.ATOM_NFC_FIELD_CHANGED;
case 857:
      case "ATOM_NFC_POLLING_LOOP_NOTIFICATION_REPORTED":
        return AtomId.ATOM_NFC_POLLING_LOOP_NOTIFICATION_REPORTED;
case 858:
      case "ATOM_NFC_PROPRIETARY_CAPABILITIES_REPORTED":
        return AtomId.ATOM_NFC_PROPRIETARY_CAPABILITIES_REPORTED;
case 711:
      case "ATOM_ONDEVICEPERSONALIZATION_API_CALLED":
        return AtomId.ATOM_ONDEVICEPERSONALIZATION_API_CALLED;
case 863:
      case "ATOM_COMPONENT_STATE_CHANGED_REPORTED":
        return AtomId.ATOM_COMPONENT_STATE_CHANGED_REPORTED;
case 859:
      case "ATOM_PDF_LOAD_REPORTED":
        return AtomId.ATOM_PDF_LOAD_REPORTED;
case 860:
      case "ATOM_PDF_API_USAGE_REPORTED":
        return AtomId.ATOM_PDF_API_USAGE_REPORTED;
case 861:
      case "ATOM_PDF_SEARCH_REPORTED":
        return AtomId.ATOM_PDF_SEARCH_REPORTED;
case 10229:
      case "ATOM_PRESSURE_STALL_INFORMATION":
        return AtomId.ATOM_PRESSURE_STALL_INFORMATION;
case 645:
      case "ATOM_PERMISSION_RATIONALE_DIALOG_VIEWED":
        return AtomId.ATOM_PERMISSION_RATIONALE_DIALOG_VIEWED;
case 646:
      case "ATOM_PERMISSION_RATIONALE_DIALOG_ACTION_REPORTED":
        return AtomId.ATOM_PERMISSION_RATIONALE_DIALOG_ACTION_REPORTED;
case 647:
      case "ATOM_APP_DATA_SHARING_UPDATES_NOTIFICATION_INTERACTION":
        return AtomId.ATOM_APP_DATA_SHARING_UPDATES_NOTIFICATION_INTERACTION;
case 648:
      case "ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_VIEWED":
        return AtomId.ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_VIEWED;
case 649:
      case "ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_ACTION_REPORTED":
        return AtomId.ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_ACTION_REPORTED;
case 827:
      case "ATOM_ENHANCED_CONFIRMATION_DIALOG_RESULT_REPORTED":
        return AtomId.ATOM_ENHANCED_CONFIRMATION_DIALOG_RESULT_REPORTED;
case 828:
      case "ATOM_ENHANCED_CONFIRMATION_RESTRICTION_CLEARED":
        return AtomId.ATOM_ENHANCED_CONFIRMATION_RESTRICTION_CLEARED;
case 886:
      case "ATOM_PHOTOPICKER_SESSION_INFO_REPORTED":
        return AtomId.ATOM_PHOTOPICKER_SESSION_INFO_REPORTED;
case 887:
      case "ATOM_PHOTOPICKER_API_INFO_REPORTED":
        return AtomId.ATOM_PHOTOPICKER_API_INFO_REPORTED;
case 888:
      case "ATOM_PHOTOPICKER_UI_EVENT_LOGGED":
        return AtomId.ATOM_PHOTOPICKER_UI_EVENT_LOGGED;
case 889:
      case "ATOM_PHOTOPICKER_MEDIA_ITEM_STATUS_REPORTED":
        return AtomId.ATOM_PHOTOPICKER_MEDIA_ITEM_STATUS_REPORTED;
case 890:
      case "ATOM_PHOTOPICKER_PREVIEW_INFO_LOGGED":
        return AtomId.ATOM_PHOTOPICKER_PREVIEW_INFO_LOGGED;
case 891:
      case "ATOM_PHOTOPICKER_MENU_INTERACTION_LOGGED":
        return AtomId.ATOM_PHOTOPICKER_MENU_INTERACTION_LOGGED;
case 892:
      case "ATOM_PHOTOPICKER_BANNER_INTERACTION_LOGGED":
        return AtomId.ATOM_PHOTOPICKER_BANNER_INTERACTION_LOGGED;
case 893:
      case "ATOM_PHOTOPICKER_MEDIA_LIBRARY_INFO_LOGGED":
        return AtomId.ATOM_PHOTOPICKER_MEDIA_LIBRARY_INFO_LOGGED;
case 894:
      case "ATOM_PHOTOPICKER_PAGE_INFO_LOGGED":
        return AtomId.ATOM_PHOTOPICKER_PAGE_INFO_LOGGED;
case 895:
      case "ATOM_PHOTOPICKER_MEDIA_GRID_SYNC_INFO_REPORTED":
        return AtomId.ATOM_PHOTOPICKER_MEDIA_GRID_SYNC_INFO_REPORTED;
case 896:
      case "ATOM_PHOTOPICKER_ALBUM_SYNC_INFO_REPORTED":
        return AtomId.ATOM_PHOTOPICKER_ALBUM_SYNC_INFO_REPORTED;
case 897:
      case "ATOM_PHOTOPICKER_SEARCH_INFO_REPORTED":
        return AtomId.ATOM_PHOTOPICKER_SEARCH_INFO_REPORTED;
case 898:
      case "ATOM_SEARCH_DATA_EXTRACTION_DETAILS_REPORTED":
        return AtomId.ATOM_SEARCH_DATA_EXTRACTION_DETAILS_REPORTED;
case 899:
      case "ATOM_EMBEDDED_PHOTOPICKER_INFO_REPORTED":
        return AtomId.ATOM_EMBEDDED_PHOTOPICKER_INFO_REPORTED;
case 9999:
      case "ATOM_ATOM_9999":
        return AtomId.ATOM_ATOM_9999;
case 99999:
      case "ATOM_ATOM_99999":
        return AtomId.ATOM_ATOM_99999;
case 776:
      case "ATOM_SCREEN_OFF_REPORTED":
        return AtomId.ATOM_SCREEN_OFF_REPORTED;
case 836:
      case "ATOM_SCREEN_TIMEOUT_OVERRIDE_REPORTED":
        return AtomId.ATOM_SCREEN_TIMEOUT_OVERRIDE_REPORTED;
case 837:
      case "ATOM_SCREEN_INTERACTIVE_SESSION_REPORTED":
        return AtomId.ATOM_SCREEN_INTERACTIVE_SESSION_REPORTED;
case 867:
      case "ATOM_SCREEN_DIM_REPORTED":
        return AtomId.ATOM_SCREEN_DIM_REPORTED;
case 784:
      case "ATOM_MEDIA_PROVIDER_DATABASE_ROLLBACK_REPORTED":
        return AtomId.ATOM_MEDIA_PROVIDER_DATABASE_ROLLBACK_REPORTED;
case 785:
      case "ATOM_BACKUP_SETUP_STATUS_REPORTED":
        return AtomId.ATOM_BACKUP_SETUP_STATUS_REPORTED;
case 993:
      case "ATOM_RANGING_SESSION_CONFIGURED":
        return AtomId.ATOM_RANGING_SESSION_CONFIGURED;
case 994:
      case "ATOM_RANGING_SESSION_STARTED":
        return AtomId.ATOM_RANGING_SESSION_STARTED;
case 995:
      case "ATOM_RANGING_SESSION_CLOSED":
        return AtomId.ATOM_RANGING_SESSION_CLOSED;
case 996:
      case "ATOM_RANGING_TECHNOLOGY_STARTED":
        return AtomId.ATOM_RANGING_TECHNOLOGY_STARTED;
case 997:
      case "ATOM_RANGING_TECHNOLOGY_STOPPED":
        return AtomId.ATOM_RANGING_TECHNOLOGY_STOPPED;
case 664:
      case "ATOM_RKPD_POOL_STATS":
        return AtomId.ATOM_RKPD_POOL_STATS;
case 665:
      case "ATOM_RKPD_CLIENT_OPERATION":
        return AtomId.ATOM_RKPD_CLIENT_OPERATION;
case 488:
      case "ATOM_SANDBOX_API_CALLED":
        return AtomId.ATOM_SANDBOX_API_CALLED;
case 735:
      case "ATOM_SANDBOX_ACTIVITY_EVENT_OCCURRED":
        return AtomId.ATOM_SANDBOX_ACTIVITY_EVENT_OCCURRED;
case 796:
      case "ATOM_SDK_SANDBOX_RESTRICTED_ACCESS_IN_SESSION":
        return AtomId.ATOM_SDK_SANDBOX_RESTRICTED_ACCESS_IN_SESSION;
case 10159:
      case "ATOM_SANDBOX_SDK_STORAGE":
        return AtomId.ATOM_SANDBOX_SDK_STORAGE;
case 799:
      case "ATOM_SELINUX_AUDIT_LOG":
        return AtomId.ATOM_SELINUX_AUDIT_LOG;
case 622:
      case "ATOM_SETTINGS_SPA_REPORTED":
        return AtomId.ATOM_SETTINGS_SPA_REPORTED;
case 660:
      case "ATOM_TEST_EXTENSION_ATOM_REPORTED":
        return AtomId.ATOM_TEST_EXTENSION_ATOM_REPORTED;
case 672:
      case "ATOM_TEST_RESTRICTED_ATOM_REPORTED":
        return AtomId.ATOM_TEST_RESTRICTED_ATOM_REPORTED;
case 752:
      case "ATOM_STATS_SOCKET_LOSS_REPORTED":
        return AtomId.ATOM_STATS_SOCKET_LOSS_REPORTED;
case 611:
      case "ATOM_LOCKSCREEN_SHORTCUT_SELECTED":
        return AtomId.ATOM_LOCKSCREEN_SHORTCUT_SELECTED;
case 612:
      case "ATOM_LOCKSCREEN_SHORTCUT_TRIGGERED":
        return AtomId.ATOM_LOCKSCREEN_SHORTCUT_TRIGGERED;
case 716:
      case "ATOM_LAUNCHER_IMPRESSION_EVENT_V2":
        return AtomId.ATOM_LAUNCHER_IMPRESSION_EVENT_V2;
case 753:
      case "ATOM_DISPLAY_SWITCH_LATENCY_TRACKED":
        return AtomId.ATOM_DISPLAY_SWITCH_LATENCY_TRACKED;
case 829:
      case "ATOM_NOTIFICATION_LISTENER_SERVICE":
        return AtomId.ATOM_NOTIFICATION_LISTENER_SERVICE;
case 869:
      case "ATOM_NAV_HANDLE_TOUCH_POINTS":
        return AtomId.ATOM_NAV_HANDLE_TOUCH_POINTS;
case 908:
      case "ATOM_COMMUNAL_HUB_WIDGET_EVENT_REPORTED":
        return AtomId.ATOM_COMMUNAL_HUB_WIDGET_EVENT_REPORTED;
case 10226:
      case "ATOM_COMMUNAL_HUB_SNAPSHOT":
        return AtomId.ATOM_COMMUNAL_HUB_SNAPSHOT;
case 637:
      case "ATOM_EMERGENCY_NUMBER_DIALED":
        return AtomId.ATOM_EMERGENCY_NUMBER_DIALED;
case 10221:
      case "ATOM_CALL_STATS":
        return AtomId.ATOM_CALL_STATS;
case 10222:
      case "ATOM_CALL_AUDIO_ROUTE_STATS":
        return AtomId.ATOM_CALL_AUDIO_ROUTE_STATS;
case 10223:
      case "ATOM_TELECOM_API_STATS":
        return AtomId.ATOM_TELECOM_API_STATS;
case 10224:
      case "ATOM_TELECOM_ERROR_STATS":
        return AtomId.ATOM_TELECOM_ERROR_STATS;
case 713:
      case "ATOM_CELLULAR_RADIO_POWER_STATE_CHANGED":
        return AtomId.ATOM_CELLULAR_RADIO_POWER_STATE_CHANGED;
case 10180:
      case "ATOM_EMERGENCY_NUMBERS_INFO":
        return AtomId.ATOM_EMERGENCY_NUMBERS_INFO;
case 10207:
      case "ATOM_DATA_NETWORK_VALIDATION":
        return AtomId.ATOM_DATA_NETWORK_VALIDATION;
case 854:
      case "ATOM_DATA_RAT_STATE_CHANGED":
        return AtomId.ATOM_DATA_RAT_STATE_CHANGED;
case 882:
      case "ATOM_CONNECTED_CHANNEL_CHANGED":
        return AtomId.ATOM_CONNECTED_CHANNEL_CHANGED;
case 923:
      case "ATOM_IWLAN_UNDERLYING_NETWORK_VALIDATION_RESULT_REPORTED":
        return AtomId.ATOM_IWLAN_UNDERLYING_NETWORK_VALIDATION_RESULT_REPORTED;
case 634:
      case "ATOM_QUALIFIED_RAT_LIST_CHANGED":
        return AtomId.ATOM_QUALIFIED_RAT_LIST_CHANGED;
case 635:
      case "ATOM_QNS_IMS_CALL_DROP_STATS":
        return AtomId.ATOM_QNS_IMS_CALL_DROP_STATS;
case 636:
      case "ATOM_QNS_FALLBACK_RESTRICTION_CHANGED":
        return AtomId.ATOM_QNS_FALLBACK_RESTRICTION_CHANGED;
case 10177:
      case "ATOM_QNS_RAT_PREFERENCE_MISMATCH_INFO":
        return AtomId.ATOM_QNS_RAT_PREFERENCE_MISMATCH_INFO;
case 10178:
      case "ATOM_QNS_HANDOVER_TIME_MILLIS":
        return AtomId.ATOM_QNS_HANDOVER_TIME_MILLIS;
case 10179:
      case "ATOM_QNS_HANDOVER_PINGPONG":
        return AtomId.ATOM_QNS_HANDOVER_PINGPONG;
case 10182:
      case "ATOM_SATELLITE_CONTROLLER":
        return AtomId.ATOM_SATELLITE_CONTROLLER;
case 10183:
      case "ATOM_SATELLITE_SESSION":
        return AtomId.ATOM_SATELLITE_SESSION;
case 10184:
      case "ATOM_SATELLITE_INCOMING_DATAGRAM":
        return AtomId.ATOM_SATELLITE_INCOMING_DATAGRAM;
case 10185:
      case "ATOM_SATELLITE_OUTGOING_DATAGRAM":
        return AtomId.ATOM_SATELLITE_OUTGOING_DATAGRAM;
case 10186:
      case "ATOM_SATELLITE_PROVISION":
        return AtomId.ATOM_SATELLITE_PROVISION;
case 10187:
      case "ATOM_SATELLITE_SOS_MESSAGE_RECOMMENDER":
        return AtomId.ATOM_SATELLITE_SOS_MESSAGE_RECOMMENDER;
case 10211:
      case "ATOM_CARRIER_ROAMING_SATELLITE_SESSION":
        return AtomId.ATOM_CARRIER_ROAMING_SATELLITE_SESSION;
case 10212:
      case "ATOM_CARRIER_ROAMING_SATELLITE_CONTROLLER_STATS":
        return AtomId.ATOM_CARRIER_ROAMING_SATELLITE_CONTROLLER_STATS;
case 10213:
      case "ATOM_CONTROLLER_STATS_PER_PACKAGE":
        return AtomId.ATOM_CONTROLLER_STATS_PER_PACKAGE;
case 10214:
      case "ATOM_SATELLITE_ENTITLEMENT":
        return AtomId.ATOM_SATELLITE_ENTITLEMENT;
case 10215:
      case "ATOM_SATELLITE_CONFIG_UPDATER":
        return AtomId.ATOM_SATELLITE_CONFIG_UPDATER;
case 10219:
      case "ATOM_SATELLITE_ACCESS_CONTROLLER":
        return AtomId.ATOM_SATELLITE_ACCESS_CONTROLLER;
case 800:
      case "ATOM_CELLULAR_IDENTIFIER_DISCLOSED":
        return AtomId.ATOM_CELLULAR_IDENTIFIER_DISCLOSED;
case 738:
      case "ATOM_THREADNETWORK_TELEMETRY_DATA_REPORTED":
        return AtomId.ATOM_THREADNETWORK_TELEMETRY_DATA_REPORTED;
case 739:
      case "ATOM_THREADNETWORK_TOPO_ENTRY_REPEATED":
        return AtomId.ATOM_THREADNETWORK_TOPO_ENTRY_REPEATED;
case 740:
      case "ATOM_THREADNETWORK_DEVICE_INFO_REPORTED":
        return AtomId.ATOM_THREADNETWORK_DEVICE_INFO_REPORTED;
case 775:
      case "ATOM_BOOT_INTEGRITY_INFO_REPORTED":
        return AtomId.ATOM_BOOT_INTEGRITY_INFO_REPORTED;
case 679:
      case "ATOM_TV_LOW_POWER_STANDBY_POLICY":
        return AtomId.ATOM_TV_LOW_POWER_STANDBY_POLICY;
case 717:
      case "ATOM_EXTERNAL_TV_INPUT_EVENT":
        return AtomId.ATOM_EXTERNAL_TV_INPUT_EVENT;
case 915:
      case "ATOM_TEST_UPROBESTATS_ATOM_REPORTED":
        return AtomId.ATOM_TEST_UPROBESTATS_ATOM_REPORTED;
case 10188:
      case "ATOM_UWB_ACTIVITY_INFO":
        return AtomId.ATOM_UWB_ACTIVITY_INFO;
case 721:
      case "ATOM_MEDIATOR_UPDATED":
        return AtomId.ATOM_MEDIATOR_UPDATED;
case 10196:
      case "ATOM_SYSPROXY_BLUETOOTH_BYTES_TRANSFER":
        return AtomId.ATOM_SYSPROXY_BLUETOOTH_BYTES_TRANSFER;
case 786:
      case "ATOM_SYSPROXY_CONNECTION_UPDATED":
        return AtomId.ATOM_SYSPROXY_CONNECTION_UPDATED;
case 921:
      case "ATOM_WEAR_COMPANION_CONNECTION_STATE":
        return AtomId.ATOM_WEAR_COMPANION_CONNECTION_STATE;
case 608:
      case "ATOM_MEDIA_ACTION_REPORTED":
        return AtomId.ATOM_MEDIA_ACTION_REPORTED;
case 609:
      case "ATOM_MEDIA_CONTROLS_LAUNCHED":
        return AtomId.ATOM_MEDIA_CONTROLS_LAUNCHED;
case 677:
      case "ATOM_MEDIA_SESSION_STATE_CHANGED":
        return AtomId.ATOM_MEDIA_SESSION_STATE_CHANGED;
case 757:
      case "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_API_LATENCY":
        return AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_API_LATENCY;
case 758:
      case "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_SASS_DEVICE_UNAVAILABLE":
        return AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_SASS_DEVICE_UNAVAILABLE;
case 759:
      case "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FASTPAIR_API_TIMEOUT":
        return AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FASTPAIR_API_TIMEOUT;
case 715:
      case "ATOM_WEAR_MODE_STATE_CHANGED":
        return AtomId.ATOM_WEAR_MODE_STATE_CHANGED;
case 736:
      case "ATOM_RENDERER_INITIALIZED":
        return AtomId.ATOM_RENDERER_INITIALIZED;
case 737:
      case "ATOM_SCHEMA_VERSION_RECEIVED":
        return AtomId.ATOM_SCHEMA_VERSION_RECEIVED;
case 741:
      case "ATOM_LAYOUT_INSPECTED":
        return AtomId.ATOM_LAYOUT_INSPECTED;
case 742:
      case "ATOM_LAYOUT_EXPRESSION_INSPECTED":
        return AtomId.ATOM_LAYOUT_EXPRESSION_INSPECTED;
case 743:
      case "ATOM_LAYOUT_ANIMATIONS_INSPECTED":
        return AtomId.ATOM_LAYOUT_ANIMATIONS_INSPECTED;
case 744:
      case "ATOM_MATERIAL_COMPONENTS_INSPECTED":
        return AtomId.ATOM_MATERIAL_COMPONENTS_INSPECTED;
case 745:
      case "ATOM_TILE_REQUESTED":
        return AtomId.ATOM_TILE_REQUESTED;
case 746:
      case "ATOM_STATE_RESPONSE_RECEIVED":
        return AtomId.ATOM_STATE_RESPONSE_RECEIVED;
case 747:
      case "ATOM_TILE_RESPONSE_RECEIVED":
        return AtomId.ATOM_TILE_RESPONSE_RECEIVED;
case 748:
      case "ATOM_INFLATION_FINISHED":
        return AtomId.ATOM_INFLATION_FINISHED;
case 749:
      case "ATOM_INFLATION_FAILED":
        return AtomId.ATOM_INFLATION_FAILED;
case 750:
      case "ATOM_IGNORED_INFLATION_FAILURES_REPORTED":
        return AtomId.ATOM_IGNORED_INFLATION_FAILURES_REPORTED;
case 751:
      case "ATOM_DRAWABLE_RENDERED":
        return AtomId.ATOM_DRAWABLE_RENDERED;
case 911:
      case "ATOM_WEAR_TIME_SYNC_REQUESTED":
        return AtomId.ATOM_WEAR_TIME_SYNC_REQUESTED;
case 912:
      case "ATOM_WEAR_TIME_UPDATE_STARTED":
        return AtomId.ATOM_WEAR_TIME_UPDATE_STARTED;
case 913:
      case "ATOM_WEAR_TIME_SYNC_ATTEMPT_COMPLETED":
        return AtomId.ATOM_WEAR_TIME_SYNC_ATTEMPT_COMPLETED;
case 914:
      case "ATOM_WEAR_TIME_CHANGED":
        return AtomId.ATOM_WEAR_TIME_CHANGED;
case 619:
      case "ATOM_WEAR_ADAPTIVE_SUSPEND_STATS_REPORTED":
        return AtomId.ATOM_WEAR_ADAPTIVE_SUSPEND_STATS_REPORTED;
case 620:
      case "ATOM_WEAR_POWER_ANOMALY_SERVICE_OPERATIONAL_STATS_REPORTED":
        return AtomId.ATOM_WEAR_POWER_ANOMALY_SERVICE_OPERATIONAL_STATS_REPORTED;
case 621:
      case "ATOM_WEAR_POWER_ANOMALY_SERVICE_EVENT_STATS_REPORTED":
        return AtomId.ATOM_WEAR_POWER_ANOMALY_SERVICE_EVENT_STATS_REPORTED;
case 610:
      case "ATOM_WS_WEAR_TIME_SESSION":
        return AtomId.ATOM_WS_WEAR_TIME_SESSION;
case 626:
      case "ATOM_WS_INCOMING_CALL_ACTION_REPORTED":
        return AtomId.ATOM_WS_INCOMING_CALL_ACTION_REPORTED;
case 627:
      case "ATOM_WS_CALL_DISCONNECTION_REPORTED":
        return AtomId.ATOM_WS_CALL_DISCONNECTION_REPORTED;
case 628:
      case "ATOM_WS_CALL_DURATION_REPORTED":
        return AtomId.ATOM_WS_CALL_DURATION_REPORTED;
case 629:
      case "ATOM_WS_CALL_USER_EXPERIENCE_LATENCY_REPORTED":
        return AtomId.ATOM_WS_CALL_USER_EXPERIENCE_LATENCY_REPORTED;
case 630:
      case "ATOM_WS_CALL_INTERACTION_REPORTED":
        return AtomId.ATOM_WS_CALL_INTERACTION_REPORTED;
case 787:
      case "ATOM_WS_ON_BODY_STATE_CHANGED":
        return AtomId.ATOM_WS_ON_BODY_STATE_CHANGED;
case 802:
      case "ATOM_WS_WATCH_FACE_RESTRICTED_COMPLICATIONS_IMPACTED":
        return AtomId.ATOM_WS_WATCH_FACE_RESTRICTED_COMPLICATIONS_IMPACTED;
case 803:
      case "ATOM_WS_WATCH_FACE_DEFAULT_RESTRICTED_COMPLICATIONS_REMOVED":
        return AtomId.ATOM_WS_WATCH_FACE_DEFAULT_RESTRICTED_COMPLICATIONS_REMOVED;
case 804:
      case "ATOM_WS_COMPLICATIONS_IMPACTED_NOTIFICATION_EVENT_REPORTED":
        return AtomId.ATOM_WS_COMPLICATIONS_IMPACTED_NOTIFICATION_EVENT_REPORTED;
case 920:
      case "ATOM_WS_REMOTE_EVENT_USAGE_REPORTED":
        return AtomId.ATOM_WS_REMOTE_EVENT_USAGE_REPORTED;
case 936:
      case "ATOM_WS_BUGREPORT_REQUESTED":
        return AtomId.ATOM_WS_BUGREPORT_REQUESTED;
case 937:
      case "ATOM_WS_BUGREPORT_TRIGGERED":
        return AtomId.ATOM_WS_BUGREPORT_TRIGGERED;
case 938:
      case "ATOM_WS_BUGREPORT_FINISHED":
        return AtomId.ATOM_WS_BUGREPORT_FINISHED;
case 939:
      case "ATOM_WS_BUGREPORT_RESULT_RECEIVED":
        return AtomId.ATOM_WS_BUGREPORT_RESULT_RECEIVED;
case 10197:
      case "ATOM_WS_STANDALONE_MODE_SNAPSHOT":
        return AtomId.ATOM_WS_STANDALONE_MODE_SNAPSHOT;
case 10206:
      case "ATOM_WS_FAVORITE_WATCH_FACE_SNAPSHOT":
        return AtomId.ATOM_WS_FAVORITE_WATCH_FACE_SNAPSHOT;
case 10225:
      case "ATOM_WS_PHOTOS_WATCH_FACE_FEATURE_SNAPSHOT":
        return AtomId.ATOM_WS_PHOTOS_WATCH_FACE_FEATURE_SNAPSHOT;
case 10227:
      case "ATOM_WS_WATCH_FACE_CUSTOMIZATION_SNAPSHOT":
        return AtomId.ATOM_WS_WATCH_FACE_CUSTOMIZATION_SNAPSHOT;
case 731:
      case "ATOM_WEAR_POWER_MENU_OPENED":
        return AtomId.ATOM_WEAR_POWER_MENU_OPENED;
case 755:
      case "ATOM_WEAR_ASSISTANT_OPENED":
        return AtomId.ATOM_WEAR_ASSISTANT_OPENED;
case 917:
      case "ATOM_FIRST_OVERLAY_STATE_CHANGED":
        return AtomId.ATOM_FIRST_OVERLAY_STATE_CHANGED;
case 638:
      case "ATOM_WIFI_AWARE_NDP_REPORTED":
        return AtomId.ATOM_WIFI_AWARE_NDP_REPORTED;
case 639:
      case "ATOM_WIFI_AWARE_ATTACH_REPORTED":
        return AtomId.ATOM_WIFI_AWARE_ATTACH_REPORTED;
case 661:
      case "ATOM_WIFI_SELF_RECOVERY_TRIGGERED":
        return AtomId.ATOM_WIFI_SELF_RECOVERY_TRIGGERED;
case 680:
      case "ATOM_SOFT_AP_STARTED":
        return AtomId.ATOM_SOFT_AP_STARTED;
case 681:
      case "ATOM_SOFT_AP_STOPPED":
        return AtomId.ATOM_SOFT_AP_STOPPED;
case 687:
      case "ATOM_WIFI_LOCK_RELEASED":
        return AtomId.ATOM_WIFI_LOCK_RELEASED;
case 688:
      case "ATOM_WIFI_LOCK_DEACTIVATED":
        return AtomId.ATOM_WIFI_LOCK_DEACTIVATED;
case 689:
      case "ATOM_WIFI_CONFIG_SAVED":
        return AtomId.ATOM_WIFI_CONFIG_SAVED;
case 690:
      case "ATOM_WIFI_AWARE_RESOURCE_USING_CHANGED":
        return AtomId.ATOM_WIFI_AWARE_RESOURCE_USING_CHANGED;
case 691:
      case "ATOM_WIFI_AWARE_HAL_API_CALLED":
        return AtomId.ATOM_WIFI_AWARE_HAL_API_CALLED;
case 692:
      case "ATOM_WIFI_LOCAL_ONLY_REQUEST_RECEIVED":
        return AtomId.ATOM_WIFI_LOCAL_ONLY_REQUEST_RECEIVED;
case 693:
      case "ATOM_WIFI_LOCAL_ONLY_REQUEST_SCAN_TRIGGERED":
        return AtomId.ATOM_WIFI_LOCAL_ONLY_REQUEST_SCAN_TRIGGERED;
case 694:
      case "ATOM_WIFI_THREAD_TASK_EXECUTED":
        return AtomId.ATOM_WIFI_THREAD_TASK_EXECUTED;
case 700:
      case "ATOM_WIFI_STATE_CHANGED":
        return AtomId.ATOM_WIFI_STATE_CHANGED;
case 719:
      case "ATOM_PNO_SCAN_STARTED":
        return AtomId.ATOM_PNO_SCAN_STARTED;
case 720:
      case "ATOM_PNO_SCAN_STOPPED":
        return AtomId.ATOM_PNO_SCAN_STOPPED;
case 722:
      case "ATOM_WIFI_IS_UNUSABLE_REPORTED":
        return AtomId.ATOM_WIFI_IS_UNUSABLE_REPORTED;
case 723:
      case "ATOM_WIFI_AP_CAPABILITIES_REPORTED":
        return AtomId.ATOM_WIFI_AP_CAPABILITIES_REPORTED;
case 805:
      case "ATOM_SOFT_AP_STATE_CHANGED":
        return AtomId.ATOM_SOFT_AP_STATE_CHANGED;
case 884:
      case "ATOM_SCORER_PREDICTION_RESULT_REPORTED":
        return AtomId.ATOM_SCORER_PREDICTION_RESULT_REPORTED;
case 10190:
      case "ATOM_WIFI_AWARE_CAPABILITIES":
        return AtomId.ATOM_WIFI_AWARE_CAPABILITIES;
case 10193:
      case "ATOM_WIFI_MODULE_INFO":
        return AtomId.ATOM_WIFI_MODULE_INFO;
case 10194:
      case "ATOM_WIFI_SETTING_INFO":
        return AtomId.ATOM_WIFI_SETTING_INFO;
case 10195:
      case "ATOM_WIFI_COMPLEX_SETTING_INFO":
        return AtomId.ATOM_WIFI_COMPLEX_SETTING_INFO;
case 10198:
      case "ATOM_WIFI_CONFIGURED_NETWORK_INFO":
        return AtomId.ATOM_WIFI_CONFIGURED_NETWORK_INFO;
case -1:
        case "UNRECOGNIZED":
        default:
          return AtomId.UNRECOGNIZED;
}
}

export function atomIdToJSON(object: AtomId): string {
switch (object) {
case AtomId.ATOM_UNSPECIFIED: return "ATOM_UNSPECIFIED";
case AtomId.ATOM_BLE_SCAN_STATE_CHANGED: return "ATOM_BLE_SCAN_STATE_CHANGED";
case AtomId.ATOM_PROCESS_STATE_CHANGED: return "ATOM_PROCESS_STATE_CHANGED";
case AtomId.ATOM_BLE_SCAN_RESULT_RECEIVED: return "ATOM_BLE_SCAN_RESULT_RECEIVED";
case AtomId.ATOM_SENSOR_STATE_CHANGED: return "ATOM_SENSOR_STATE_CHANGED";
case AtomId.ATOM_GPS_SCAN_STATE_CHANGED: return "ATOM_GPS_SCAN_STATE_CHANGED";
case AtomId.ATOM_SYNC_STATE_CHANGED: return "ATOM_SYNC_STATE_CHANGED";
case AtomId.ATOM_SCHEDULED_JOB_STATE_CHANGED: return "ATOM_SCHEDULED_JOB_STATE_CHANGED";
case AtomId.ATOM_SCREEN_BRIGHTNESS_CHANGED: return "ATOM_SCREEN_BRIGHTNESS_CHANGED";
case AtomId.ATOM_WAKELOCK_STATE_CHANGED: return "ATOM_WAKELOCK_STATE_CHANGED";
case AtomId.ATOM_LONG_PARTIAL_WAKELOCK_STATE_CHANGED: return "ATOM_LONG_PARTIAL_WAKELOCK_STATE_CHANGED";
case AtomId.ATOM_MOBILE_RADIO_POWER_STATE_CHANGED: return "ATOM_MOBILE_RADIO_POWER_STATE_CHANGED";
case AtomId.ATOM_WIFI_RADIO_POWER_STATE_CHANGED: return "ATOM_WIFI_RADIO_POWER_STATE_CHANGED";
case AtomId.ATOM_ACTIVITY_MANAGER_SLEEP_STATE_CHANGED: return "ATOM_ACTIVITY_MANAGER_SLEEP_STATE_CHANGED";
case AtomId.ATOM_MEMORY_FACTOR_STATE_CHANGED: return "ATOM_MEMORY_FACTOR_STATE_CHANGED";
case AtomId.ATOM_EXCESSIVE_CPU_USAGE_REPORTED: return "ATOM_EXCESSIVE_CPU_USAGE_REPORTED";
case AtomId.ATOM_CACHED_KILL_REPORTED: return "ATOM_CACHED_KILL_REPORTED";
case AtomId.ATOM_PROCESS_MEMORY_STAT_REPORTED: return "ATOM_PROCESS_MEMORY_STAT_REPORTED";
case AtomId.ATOM_LAUNCHER_EVENT: return "ATOM_LAUNCHER_EVENT";
case AtomId.ATOM_BATTERY_SAVER_MODE_STATE_CHANGED: return "ATOM_BATTERY_SAVER_MODE_STATE_CHANGED";
case AtomId.ATOM_DEVICE_IDLE_MODE_STATE_CHANGED: return "ATOM_DEVICE_IDLE_MODE_STATE_CHANGED";
case AtomId.ATOM_DEVICE_IDLING_MODE_STATE_CHANGED: return "ATOM_DEVICE_IDLING_MODE_STATE_CHANGED";
case AtomId.ATOM_AUDIO_STATE_CHANGED: return "ATOM_AUDIO_STATE_CHANGED";
case AtomId.ATOM_MEDIA_CODEC_STATE_CHANGED: return "ATOM_MEDIA_CODEC_STATE_CHANGED";
case AtomId.ATOM_CAMERA_STATE_CHANGED: return "ATOM_CAMERA_STATE_CHANGED";
case AtomId.ATOM_FLASHLIGHT_STATE_CHANGED: return "ATOM_FLASHLIGHT_STATE_CHANGED";
case AtomId.ATOM_UID_PROCESS_STATE_CHANGED: return "ATOM_UID_PROCESS_STATE_CHANGED";
case AtomId.ATOM_PROCESS_LIFE_CYCLE_STATE_CHANGED: return "ATOM_PROCESS_LIFE_CYCLE_STATE_CHANGED";
case AtomId.ATOM_SCREEN_STATE_CHANGED: return "ATOM_SCREEN_STATE_CHANGED";
case AtomId.ATOM_BATTERY_LEVEL_CHANGED: return "ATOM_BATTERY_LEVEL_CHANGED";
case AtomId.ATOM_CHARGING_STATE_CHANGED: return "ATOM_CHARGING_STATE_CHANGED";
case AtomId.ATOM_PLUGGED_STATE_CHANGED: return "ATOM_PLUGGED_STATE_CHANGED";
case AtomId.ATOM_INTERACTIVE_STATE_CHANGED: return "ATOM_INTERACTIVE_STATE_CHANGED";
case AtomId.ATOM_TOUCH_EVENT_REPORTED: return "ATOM_TOUCH_EVENT_REPORTED";
case AtomId.ATOM_WAKEUP_ALARM_OCCURRED: return "ATOM_WAKEUP_ALARM_OCCURRED";
case AtomId.ATOM_KERNEL_WAKEUP_REPORTED: return "ATOM_KERNEL_WAKEUP_REPORTED";
case AtomId.ATOM_WIFI_LOCK_STATE_CHANGED: return "ATOM_WIFI_LOCK_STATE_CHANGED";
case AtomId.ATOM_WIFI_SIGNAL_STRENGTH_CHANGED: return "ATOM_WIFI_SIGNAL_STRENGTH_CHANGED";
case AtomId.ATOM_WIFI_SCAN_STATE_CHANGED: return "ATOM_WIFI_SCAN_STATE_CHANGED";
case AtomId.ATOM_PHONE_SIGNAL_STRENGTH_CHANGED: return "ATOM_PHONE_SIGNAL_STRENGTH_CHANGED";
case AtomId.ATOM_SETTING_CHANGED: return "ATOM_SETTING_CHANGED";
case AtomId.ATOM_ACTIVITY_FOREGROUND_STATE_CHANGED: return "ATOM_ACTIVITY_FOREGROUND_STATE_CHANGED";
case AtomId.ATOM_ISOLATED_UID_CHANGED: return "ATOM_ISOLATED_UID_CHANGED";
case AtomId.ATOM_PACKET_WAKEUP_OCCURRED: return "ATOM_PACKET_WAKEUP_OCCURRED";
case AtomId.ATOM_WALL_CLOCK_TIME_SHIFTED: return "ATOM_WALL_CLOCK_TIME_SHIFTED";
case AtomId.ATOM_ANOMALY_DETECTED: return "ATOM_ANOMALY_DETECTED";
case AtomId.ATOM_APP_BREADCRUMB_REPORTED: return "ATOM_APP_BREADCRUMB_REPORTED";
case AtomId.ATOM_APP_START_OCCURRED: return "ATOM_APP_START_OCCURRED";
case AtomId.ATOM_APP_START_CANCELED: return "ATOM_APP_START_CANCELED";
case AtomId.ATOM_APP_START_FULLY_DRAWN: return "ATOM_APP_START_FULLY_DRAWN";
case AtomId.ATOM_LMK_KILL_OCCURRED: return "ATOM_LMK_KILL_OCCURRED";
case AtomId.ATOM_PICTURE_IN_PICTURE_STATE_CHANGED: return "ATOM_PICTURE_IN_PICTURE_STATE_CHANGED";
case AtomId.ATOM_WIFI_MULTICAST_LOCK_STATE_CHANGED: return "ATOM_WIFI_MULTICAST_LOCK_STATE_CHANGED";
case AtomId.ATOM_APP_START_MEMORY_STATE_CAPTURED: return "ATOM_APP_START_MEMORY_STATE_CAPTURED";
case AtomId.ATOM_SHUTDOWN_SEQUENCE_REPORTED: return "ATOM_SHUTDOWN_SEQUENCE_REPORTED";
case AtomId.ATOM_BOOT_SEQUENCE_REPORTED: return "ATOM_BOOT_SEQUENCE_REPORTED";
case AtomId.ATOM_OVERLAY_STATE_CHANGED: return "ATOM_OVERLAY_STATE_CHANGED";
case AtomId.ATOM_FOREGROUND_SERVICE_STATE_CHANGED: return "ATOM_FOREGROUND_SERVICE_STATE_CHANGED";
case AtomId.ATOM_CALL_STATE_CHANGED: return "ATOM_CALL_STATE_CHANGED";
case AtomId.ATOM_KEYGUARD_STATE_CHANGED: return "ATOM_KEYGUARD_STATE_CHANGED";
case AtomId.ATOM_KEYGUARD_BOUNCER_STATE_CHANGED: return "ATOM_KEYGUARD_BOUNCER_STATE_CHANGED";
case AtomId.ATOM_KEYGUARD_BOUNCER_PASSWORD_ENTERED: return "ATOM_KEYGUARD_BOUNCER_PASSWORD_ENTERED";
case AtomId.ATOM_APP_DIED: return "ATOM_APP_DIED";
case AtomId.ATOM_RESOURCE_CONFIGURATION_CHANGED: return "ATOM_RESOURCE_CONFIGURATION_CHANGED";
case AtomId.ATOM_BLUETOOTH_ENABLED_STATE_CHANGED: return "ATOM_BLUETOOTH_ENABLED_STATE_CHANGED";
case AtomId.ATOM_BLUETOOTH_CONNECTION_STATE_CHANGED: return "ATOM_BLUETOOTH_CONNECTION_STATE_CHANGED";
case AtomId.ATOM_GPS_SIGNAL_QUALITY_CHANGED: return "ATOM_GPS_SIGNAL_QUALITY_CHANGED";
case AtomId.ATOM_USB_CONNECTOR_STATE_CHANGED: return "ATOM_USB_CONNECTOR_STATE_CHANGED";
case AtomId.ATOM_SPEAKER_IMPEDANCE_REPORTED: return "ATOM_SPEAKER_IMPEDANCE_REPORTED";
case AtomId.ATOM_HARDWARE_FAILED: return "ATOM_HARDWARE_FAILED";
case AtomId.ATOM_PHYSICAL_DROP_DETECTED: return "ATOM_PHYSICAL_DROP_DETECTED";
case AtomId.ATOM_CHARGE_CYCLES_REPORTED: return "ATOM_CHARGE_CYCLES_REPORTED";
case AtomId.ATOM_MOBILE_CONNECTION_STATE_CHANGED: return "ATOM_MOBILE_CONNECTION_STATE_CHANGED";
case AtomId.ATOM_MOBILE_RADIO_TECHNOLOGY_CHANGED: return "ATOM_MOBILE_RADIO_TECHNOLOGY_CHANGED";
case AtomId.ATOM_USB_DEVICE_ATTACHED: return "ATOM_USB_DEVICE_ATTACHED";
case AtomId.ATOM_APP_CRASH_OCCURRED: return "ATOM_APP_CRASH_OCCURRED";
case AtomId.ATOM_ANR_OCCURRED: return "ATOM_ANR_OCCURRED";
case AtomId.ATOM_WTF_OCCURRED: return "ATOM_WTF_OCCURRED";
case AtomId.ATOM_LOW_MEM_REPORTED: return "ATOM_LOW_MEM_REPORTED";
case AtomId.ATOM_GENERIC_ATOM: return "ATOM_GENERIC_ATOM";
case AtomId.ATOM_VIBRATOR_STATE_CHANGED: return "ATOM_VIBRATOR_STATE_CHANGED";
case AtomId.ATOM_DEFERRED_JOB_STATS_REPORTED: return "ATOM_DEFERRED_JOB_STATS_REPORTED";
case AtomId.ATOM_THERMAL_THROTTLING: return "ATOM_THERMAL_THROTTLING";
case AtomId.ATOM_BIOMETRIC_ACQUIRED: return "ATOM_BIOMETRIC_ACQUIRED";
case AtomId.ATOM_BIOMETRIC_AUTHENTICATED: return "ATOM_BIOMETRIC_AUTHENTICATED";
case AtomId.ATOM_BIOMETRIC_ERROR_OCCURRED: return "ATOM_BIOMETRIC_ERROR_OCCURRED";
case AtomId.ATOM_UI_EVENT_REPORTED: return "ATOM_UI_EVENT_REPORTED";
case AtomId.ATOM_BATTERY_HEALTH_SNAPSHOT: return "ATOM_BATTERY_HEALTH_SNAPSHOT";
case AtomId.ATOM_SLOW_IO: return "ATOM_SLOW_IO";
case AtomId.ATOM_BATTERY_CAUSED_SHUTDOWN: return "ATOM_BATTERY_CAUSED_SHUTDOWN";
case AtomId.ATOM_PHONE_SERVICE_STATE_CHANGED: return "ATOM_PHONE_SERVICE_STATE_CHANGED";
case AtomId.ATOM_PHONE_STATE_CHANGED: return "ATOM_PHONE_STATE_CHANGED";
case AtomId.ATOM_USER_RESTRICTION_CHANGED: return "ATOM_USER_RESTRICTION_CHANGED";
case AtomId.ATOM_SETTINGS_UI_CHANGED: return "ATOM_SETTINGS_UI_CHANGED";
case AtomId.ATOM_CONNECTIVITY_STATE_CHANGED: return "ATOM_CONNECTIVITY_STATE_CHANGED";
case AtomId.ATOM_SERVICE_STATE_CHANGED: return "ATOM_SERVICE_STATE_CHANGED";
case AtomId.ATOM_SERVICE_LAUNCH_REPORTED: return "ATOM_SERVICE_LAUNCH_REPORTED";
case AtomId.ATOM_FLAG_FLIP_UPDATE_OCCURRED: return "ATOM_FLAG_FLIP_UPDATE_OCCURRED";
case AtomId.ATOM_BINARY_PUSH_STATE_CHANGED: return "ATOM_BINARY_PUSH_STATE_CHANGED";
case AtomId.ATOM_DEVICE_POLICY_EVENT: return "ATOM_DEVICE_POLICY_EVENT";
case AtomId.ATOM_DOCS_UI_FILE_OP_CANCELED: return "ATOM_DOCS_UI_FILE_OP_CANCELED";
case AtomId.ATOM_DOCS_UI_FILE_OP_COPY_MOVE_MODE_REPORTED: return "ATOM_DOCS_UI_FILE_OP_COPY_MOVE_MODE_REPORTED";
case AtomId.ATOM_DOCS_UI_FILE_OP_FAILURE: return "ATOM_DOCS_UI_FILE_OP_FAILURE";
case AtomId.ATOM_DOCS_UI_PROVIDER_FILE_OP: return "ATOM_DOCS_UI_PROVIDER_FILE_OP";
case AtomId.ATOM_DOCS_UI_INVALID_SCOPED_ACCESS_REQUEST: return "ATOM_DOCS_UI_INVALID_SCOPED_ACCESS_REQUEST";
case AtomId.ATOM_DOCS_UI_LAUNCH_REPORTED: return "ATOM_DOCS_UI_LAUNCH_REPORTED";
case AtomId.ATOM_DOCS_UI_ROOT_VISITED: return "ATOM_DOCS_UI_ROOT_VISITED";
case AtomId.ATOM_DOCS_UI_STARTUP_MS: return "ATOM_DOCS_UI_STARTUP_MS";
case AtomId.ATOM_DOCS_UI_USER_ACTION_REPORTED: return "ATOM_DOCS_UI_USER_ACTION_REPORTED";
case AtomId.ATOM_WIFI_ENABLED_STATE_CHANGED: return "ATOM_WIFI_ENABLED_STATE_CHANGED";
case AtomId.ATOM_WIFI_RUNNING_STATE_CHANGED: return "ATOM_WIFI_RUNNING_STATE_CHANGED";
case AtomId.ATOM_APP_COMPACTED: return "ATOM_APP_COMPACTED";
case AtomId.ATOM_NETWORK_DNS_EVENT_REPORTED: return "ATOM_NETWORK_DNS_EVENT_REPORTED";
case AtomId.ATOM_DOCS_UI_PICKER_LAUNCHED_FROM_REPORTED: return "ATOM_DOCS_UI_PICKER_LAUNCHED_FROM_REPORTED";
case AtomId.ATOM_DOCS_UI_PICK_RESULT_REPORTED: return "ATOM_DOCS_UI_PICK_RESULT_REPORTED";
case AtomId.ATOM_DOCS_UI_SEARCH_MODE_REPORTED: return "ATOM_DOCS_UI_SEARCH_MODE_REPORTED";
case AtomId.ATOM_DOCS_UI_SEARCH_TYPE_REPORTED: return "ATOM_DOCS_UI_SEARCH_TYPE_REPORTED";
case AtomId.ATOM_DATA_STALL_EVENT: return "ATOM_DATA_STALL_EVENT";
case AtomId.ATOM_RESCUE_PARTY_RESET_REPORTED: return "ATOM_RESCUE_PARTY_RESET_REPORTED";
case AtomId.ATOM_SIGNED_CONFIG_REPORTED: return "ATOM_SIGNED_CONFIG_REPORTED";
case AtomId.ATOM_GNSS_NI_EVENT_REPORTED: return "ATOM_GNSS_NI_EVENT_REPORTED";
case AtomId.ATOM_BLUETOOTH_LINK_LAYER_CONNECTION_EVENT: return "ATOM_BLUETOOTH_LINK_LAYER_CONNECTION_EVENT";
case AtomId.ATOM_BLUETOOTH_ACL_CONNECTION_STATE_CHANGED: return "ATOM_BLUETOOTH_ACL_CONNECTION_STATE_CHANGED";
case AtomId.ATOM_BLUETOOTH_SCO_CONNECTION_STATE_CHANGED: return "ATOM_BLUETOOTH_SCO_CONNECTION_STATE_CHANGED";
case AtomId.ATOM_APP_DOWNGRADED: return "ATOM_APP_DOWNGRADED";
case AtomId.ATOM_APP_OPTIMIZED_AFTER_DOWNGRADED: return "ATOM_APP_OPTIMIZED_AFTER_DOWNGRADED";
case AtomId.ATOM_LOW_STORAGE_STATE_CHANGED: return "ATOM_LOW_STORAGE_STATE_CHANGED";
case AtomId.ATOM_GNSS_NFW_NOTIFICATION_REPORTED: return "ATOM_GNSS_NFW_NOTIFICATION_REPORTED";
case AtomId.ATOM_GNSS_CONFIGURATION_REPORTED: return "ATOM_GNSS_CONFIGURATION_REPORTED";
case AtomId.ATOM_USB_PORT_OVERHEAT_EVENT_REPORTED: return "ATOM_USB_PORT_OVERHEAT_EVENT_REPORTED";
case AtomId.ATOM_NFC_ERROR_OCCURRED: return "ATOM_NFC_ERROR_OCCURRED";
case AtomId.ATOM_NFC_STATE_CHANGED: return "ATOM_NFC_STATE_CHANGED";
case AtomId.ATOM_NFC_BEAM_OCCURRED: return "ATOM_NFC_BEAM_OCCURRED";
case AtomId.ATOM_NFC_CARDEMULATION_OCCURRED: return "ATOM_NFC_CARDEMULATION_OCCURRED";
case AtomId.ATOM_NFC_TAG_OCCURRED: return "ATOM_NFC_TAG_OCCURRED";
case AtomId.ATOM_NFC_HCE_TRANSACTION_OCCURRED: return "ATOM_NFC_HCE_TRANSACTION_OCCURRED";
case AtomId.ATOM_SE_STATE_CHANGED: return "ATOM_SE_STATE_CHANGED";
case AtomId.ATOM_SE_OMAPI_REPORTED: return "ATOM_SE_OMAPI_REPORTED";
case AtomId.ATOM_BROADCAST_DISPATCH_LATENCY_REPORTED: return "ATOM_BROADCAST_DISPATCH_LATENCY_REPORTED";
case AtomId.ATOM_ATTENTION_MANAGER_SERVICE_RESULT_REPORTED: return "ATOM_ATTENTION_MANAGER_SERVICE_RESULT_REPORTED";
case AtomId.ATOM_ADB_CONNECTION_CHANGED: return "ATOM_ADB_CONNECTION_CHANGED";
case AtomId.ATOM_SPEECH_DSP_STAT_REPORTED: return "ATOM_SPEECH_DSP_STAT_REPORTED";
case AtomId.ATOM_USB_CONTAMINANT_REPORTED: return "ATOM_USB_CONTAMINANT_REPORTED";
case AtomId.ATOM_WATCHDOG_ROLLBACK_OCCURRED: return "ATOM_WATCHDOG_ROLLBACK_OCCURRED";
case AtomId.ATOM_BIOMETRIC_SYSTEM_HEALTH_ISSUE_DETECTED: return "ATOM_BIOMETRIC_SYSTEM_HEALTH_ISSUE_DETECTED";
case AtomId.ATOM_BUBBLE_UI_CHANGED: return "ATOM_BUBBLE_UI_CHANGED";
case AtomId.ATOM_SCHEDULED_JOB_CONSTRAINT_CHANGED: return "ATOM_SCHEDULED_JOB_CONSTRAINT_CHANGED";
case AtomId.ATOM_BLUETOOTH_ACTIVE_DEVICE_CHANGED: return "ATOM_BLUETOOTH_ACTIVE_DEVICE_CHANGED";
case AtomId.ATOM_BLUETOOTH_A2DP_PLAYBACK_STATE_CHANGED: return "ATOM_BLUETOOTH_A2DP_PLAYBACK_STATE_CHANGED";
case AtomId.ATOM_BLUETOOTH_A2DP_CODEC_CONFIG_CHANGED: return "ATOM_BLUETOOTH_A2DP_CODEC_CONFIG_CHANGED";
case AtomId.ATOM_BLUETOOTH_A2DP_CODEC_CAPABILITY_CHANGED: return "ATOM_BLUETOOTH_A2DP_CODEC_CAPABILITY_CHANGED";
case AtomId.ATOM_BLUETOOTH_A2DP_AUDIO_UNDERRUN_REPORTED: return "ATOM_BLUETOOTH_A2DP_AUDIO_UNDERRUN_REPORTED";
case AtomId.ATOM_BLUETOOTH_A2DP_AUDIO_OVERRUN_REPORTED: return "ATOM_BLUETOOTH_A2DP_AUDIO_OVERRUN_REPORTED";
case AtomId.ATOM_BLUETOOTH_DEVICE_RSSI_REPORTED: return "ATOM_BLUETOOTH_DEVICE_RSSI_REPORTED";
case AtomId.ATOM_BLUETOOTH_DEVICE_FAILED_CONTACT_COUNTER_REPORTED: return "ATOM_BLUETOOTH_DEVICE_FAILED_CONTACT_COUNTER_REPORTED";
case AtomId.ATOM_BLUETOOTH_DEVICE_TX_POWER_LEVEL_REPORTED: return "ATOM_BLUETOOTH_DEVICE_TX_POWER_LEVEL_REPORTED";
case AtomId.ATOM_BLUETOOTH_HCI_TIMEOUT_REPORTED: return "ATOM_BLUETOOTH_HCI_TIMEOUT_REPORTED";
case AtomId.ATOM_BLUETOOTH_QUALITY_REPORT_REPORTED: return "ATOM_BLUETOOTH_QUALITY_REPORT_REPORTED";
case AtomId.ATOM_BLUETOOTH_DEVICE_INFO_REPORTED: return "ATOM_BLUETOOTH_DEVICE_INFO_REPORTED";
case AtomId.ATOM_BLUETOOTH_REMOTE_VERSION_INFO_REPORTED: return "ATOM_BLUETOOTH_REMOTE_VERSION_INFO_REPORTED";
case AtomId.ATOM_BLUETOOTH_SDP_ATTRIBUTE_REPORTED: return "ATOM_BLUETOOTH_SDP_ATTRIBUTE_REPORTED";
case AtomId.ATOM_BLUETOOTH_BOND_STATE_CHANGED: return "ATOM_BLUETOOTH_BOND_STATE_CHANGED";
case AtomId.ATOM_BLUETOOTH_CLASSIC_PAIRING_EVENT_REPORTED: return "ATOM_BLUETOOTH_CLASSIC_PAIRING_EVENT_REPORTED";
case AtomId.ATOM_BLUETOOTH_SMP_PAIRING_EVENT_REPORTED: return "ATOM_BLUETOOTH_SMP_PAIRING_EVENT_REPORTED";
case AtomId.ATOM_SCREEN_TIMEOUT_EXTENSION_REPORTED: return "ATOM_SCREEN_TIMEOUT_EXTENSION_REPORTED";
case AtomId.ATOM_PROCESS_START_TIME: return "ATOM_PROCESS_START_TIME";
case AtomId.ATOM_PERMISSION_GRANT_REQUEST_RESULT_REPORTED: return "ATOM_PERMISSION_GRANT_REQUEST_RESULT_REPORTED";
case AtomId.ATOM_BLUETOOTH_SOCKET_CONNECTION_STATE_CHANGED: return "ATOM_BLUETOOTH_SOCKET_CONNECTION_STATE_CHANGED";
case AtomId.ATOM_DEVICE_IDENTIFIER_ACCESS_DENIED: return "ATOM_DEVICE_IDENTIFIER_ACCESS_DENIED";
case AtomId.ATOM_BUBBLE_DEVELOPER_ERROR_REPORTED: return "ATOM_BUBBLE_DEVELOPER_ERROR_REPORTED";
case AtomId.ATOM_ASSIST_GESTURE_STAGE_REPORTED: return "ATOM_ASSIST_GESTURE_STAGE_REPORTED";
case AtomId.ATOM_ASSIST_GESTURE_FEEDBACK_REPORTED: return "ATOM_ASSIST_GESTURE_FEEDBACK_REPORTED";
case AtomId.ATOM_ASSIST_GESTURE_PROGRESS_REPORTED: return "ATOM_ASSIST_GESTURE_PROGRESS_REPORTED";
case AtomId.ATOM_TOUCH_GESTURE_CLASSIFIED: return "ATOM_TOUCH_GESTURE_CLASSIFIED";
case AtomId.ATOM_HIDDEN_API_USED: return "ATOM_HIDDEN_API_USED";
case AtomId.ATOM_STYLE_UI_CHANGED: return "ATOM_STYLE_UI_CHANGED";
case AtomId.ATOM_PRIVACY_INDICATORS_INTERACTED: return "ATOM_PRIVACY_INDICATORS_INTERACTED";
case AtomId.ATOM_APP_INSTALL_ON_EXTERNAL_STORAGE_REPORTED: return "ATOM_APP_INSTALL_ON_EXTERNAL_STORAGE_REPORTED";
case AtomId.ATOM_NETWORK_STACK_REPORTED: return "ATOM_NETWORK_STACK_REPORTED";
case AtomId.ATOM_APP_MOVED_STORAGE_REPORTED: return "ATOM_APP_MOVED_STORAGE_REPORTED";
case AtomId.ATOM_BIOMETRIC_ENROLLED: return "ATOM_BIOMETRIC_ENROLLED";
case AtomId.ATOM_SYSTEM_SERVER_WATCHDOG_OCCURRED: return "ATOM_SYSTEM_SERVER_WATCHDOG_OCCURRED";
case AtomId.ATOM_TOMB_STONE_OCCURRED: return "ATOM_TOMB_STONE_OCCURRED";
case AtomId.ATOM_BLUETOOTH_CLASS_OF_DEVICE_REPORTED: return "ATOM_BLUETOOTH_CLASS_OF_DEVICE_REPORTED";
case AtomId.ATOM_INTELLIGENCE_EVENT_REPORTED: return "ATOM_INTELLIGENCE_EVENT_REPORTED";
case AtomId.ATOM_THERMAL_THROTTLING_SEVERITY_STATE_CHANGED: return "ATOM_THERMAL_THROTTLING_SEVERITY_STATE_CHANGED";
case AtomId.ATOM_ROLE_REQUEST_RESULT_REPORTED: return "ATOM_ROLE_REQUEST_RESULT_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_AUDIOPOLICY_REPORTED: return "ATOM_MEDIAMETRICS_AUDIOPOLICY_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_AUDIORECORD_REPORTED: return "ATOM_MEDIAMETRICS_AUDIORECORD_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_AUDIOTHREAD_REPORTED: return "ATOM_MEDIAMETRICS_AUDIOTHREAD_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_AUDIOTRACK_REPORTED: return "ATOM_MEDIAMETRICS_AUDIOTRACK_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_CODEC_REPORTED: return "ATOM_MEDIAMETRICS_CODEC_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_DRM_WIDEVINE_REPORTED: return "ATOM_MEDIAMETRICS_DRM_WIDEVINE_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_EXTRACTOR_REPORTED: return "ATOM_MEDIAMETRICS_EXTRACTOR_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_MEDIADRM_REPORTED: return "ATOM_MEDIAMETRICS_MEDIADRM_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_NUPLAYER_REPORTED: return "ATOM_MEDIAMETRICS_NUPLAYER_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_RECORDER_REPORTED: return "ATOM_MEDIAMETRICS_RECORDER_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_DRMMANAGER_REPORTED: return "ATOM_MEDIAMETRICS_DRMMANAGER_REPORTED";
case AtomId.ATOM_CAR_POWER_STATE_CHANGED: return "ATOM_CAR_POWER_STATE_CHANGED";
case AtomId.ATOM_GARAGE_MODE_INFO: return "ATOM_GARAGE_MODE_INFO";
case AtomId.ATOM_TEST_ATOM_REPORTED: return "ATOM_TEST_ATOM_REPORTED";
case AtomId.ATOM_CONTENT_CAPTURE_CALLER_MISMATCH_REPORTED: return "ATOM_CONTENT_CAPTURE_CALLER_MISMATCH_REPORTED";
case AtomId.ATOM_CONTENT_CAPTURE_SERVICE_EVENTS: return "ATOM_CONTENT_CAPTURE_SERVICE_EVENTS";
case AtomId.ATOM_CONTENT_CAPTURE_SESSION_EVENTS: return "ATOM_CONTENT_CAPTURE_SESSION_EVENTS";
case AtomId.ATOM_CONTENT_CAPTURE_FLUSHED: return "ATOM_CONTENT_CAPTURE_FLUSHED";
case AtomId.ATOM_LOCATION_MANAGER_API_USAGE_REPORTED: return "ATOM_LOCATION_MANAGER_API_USAGE_REPORTED";
case AtomId.ATOM_REVIEW_PERMISSIONS_FRAGMENT_RESULT_REPORTED: return "ATOM_REVIEW_PERMISSIONS_FRAGMENT_RESULT_REPORTED";
case AtomId.ATOM_RUNTIME_PERMISSIONS_UPGRADE_RESULT: return "ATOM_RUNTIME_PERMISSIONS_UPGRADE_RESULT";
case AtomId.ATOM_GRANT_PERMISSIONS_ACTIVITY_BUTTON_ACTIONS: return "ATOM_GRANT_PERMISSIONS_ACTIVITY_BUTTON_ACTIONS";
case AtomId.ATOM_LOCATION_ACCESS_CHECK_NOTIFICATION_ACTION: return "ATOM_LOCATION_ACCESS_CHECK_NOTIFICATION_ACTION";
case AtomId.ATOM_APP_PERMISSION_FRAGMENT_ACTION_REPORTED: return "ATOM_APP_PERMISSION_FRAGMENT_ACTION_REPORTED";
case AtomId.ATOM_APP_PERMISSION_FRAGMENT_VIEWED: return "ATOM_APP_PERMISSION_FRAGMENT_VIEWED";
case AtomId.ATOM_APP_PERMISSIONS_FRAGMENT_VIEWED: return "ATOM_APP_PERMISSIONS_FRAGMENT_VIEWED";
case AtomId.ATOM_PERMISSION_APPS_FRAGMENT_VIEWED: return "ATOM_PERMISSION_APPS_FRAGMENT_VIEWED";
case AtomId.ATOM_TEXT_SELECTION_EVENT: return "ATOM_TEXT_SELECTION_EVENT";
case AtomId.ATOM_TEXT_LINKIFY_EVENT: return "ATOM_TEXT_LINKIFY_EVENT";
case AtomId.ATOM_CONVERSATION_ACTIONS_EVENT: return "ATOM_CONVERSATION_ACTIONS_EVENT";
case AtomId.ATOM_LANGUAGE_DETECTION_EVENT: return "ATOM_LANGUAGE_DETECTION_EVENT";
case AtomId.ATOM_EXCLUSION_RECT_STATE_CHANGED: return "ATOM_EXCLUSION_RECT_STATE_CHANGED";
case AtomId.ATOM_BACK_GESTURE_REPORTED_REPORTED: return "ATOM_BACK_GESTURE_REPORTED_REPORTED";
case AtomId.ATOM_UPDATE_ENGINE_UPDATE_ATTEMPT_REPORTED: return "ATOM_UPDATE_ENGINE_UPDATE_ATTEMPT_REPORTED";
case AtomId.ATOM_UPDATE_ENGINE_SUCCESSFUL_UPDATE_REPORTED: return "ATOM_UPDATE_ENGINE_SUCCESSFUL_UPDATE_REPORTED";
case AtomId.ATOM_CAMERA_ACTION_EVENT: return "ATOM_CAMERA_ACTION_EVENT";
case AtomId.ATOM_APP_COMPATIBILITY_CHANGE_REPORTED: return "ATOM_APP_COMPATIBILITY_CHANGE_REPORTED";
case AtomId.ATOM_PERFETTO_UPLOADED: return "ATOM_PERFETTO_UPLOADED";
case AtomId.ATOM_VMS_CLIENT_CONNECTION_STATE_CHANGED: return "ATOM_VMS_CLIENT_CONNECTION_STATE_CHANGED";
case AtomId.ATOM_MEDIA_PROVIDER_SCAN_OCCURRED: return "ATOM_MEDIA_PROVIDER_SCAN_OCCURRED";
case AtomId.ATOM_MEDIA_CONTENT_DELETED: return "ATOM_MEDIA_CONTENT_DELETED";
case AtomId.ATOM_MEDIA_PROVIDER_PERMISSION_REQUESTED: return "ATOM_MEDIA_PROVIDER_PERMISSION_REQUESTED";
case AtomId.ATOM_MEDIA_PROVIDER_SCHEMA_CHANGED: return "ATOM_MEDIA_PROVIDER_SCHEMA_CHANGED";
case AtomId.ATOM_MEDIA_PROVIDER_IDLE_MAINTENANCE_FINISHED: return "ATOM_MEDIA_PROVIDER_IDLE_MAINTENANCE_FINISHED";
case AtomId.ATOM_REBOOT_ESCROW_RECOVERY_REPORTED: return "ATOM_REBOOT_ESCROW_RECOVERY_REPORTED";
case AtomId.ATOM_BOOT_TIME_EVENT_DURATION_REPORTED: return "ATOM_BOOT_TIME_EVENT_DURATION_REPORTED";
case AtomId.ATOM_BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED: return "ATOM_BOOT_TIME_EVENT_ELAPSED_TIME_REPORTED";
case AtomId.ATOM_BOOT_TIME_EVENT_UTC_TIME_REPORTED: return "ATOM_BOOT_TIME_EVENT_UTC_TIME_REPORTED";
case AtomId.ATOM_BOOT_TIME_EVENT_ERROR_CODE_REPORTED: return "ATOM_BOOT_TIME_EVENT_ERROR_CODE_REPORTED";
case AtomId.ATOM_USERSPACE_REBOOT_REPORTED: return "ATOM_USERSPACE_REBOOT_REPORTED";
case AtomId.ATOM_NOTIFICATION_REPORTED: return "ATOM_NOTIFICATION_REPORTED";
case AtomId.ATOM_NOTIFICATION_PANEL_REPORTED: return "ATOM_NOTIFICATION_PANEL_REPORTED";
case AtomId.ATOM_NOTIFICATION_CHANNEL_MODIFIED: return "ATOM_NOTIFICATION_CHANNEL_MODIFIED";
case AtomId.ATOM_INTEGRITY_CHECK_RESULT_REPORTED: return "ATOM_INTEGRITY_CHECK_RESULT_REPORTED";
case AtomId.ATOM_INTEGRITY_RULES_PUSHED: return "ATOM_INTEGRITY_RULES_PUSHED";
case AtomId.ATOM_CB_MESSAGE_REPORTED: return "ATOM_CB_MESSAGE_REPORTED";
case AtomId.ATOM_CB_MESSAGE_ERROR: return "ATOM_CB_MESSAGE_ERROR";
case AtomId.ATOM_WIFI_HEALTH_STAT_REPORTED: return "ATOM_WIFI_HEALTH_STAT_REPORTED";
case AtomId.ATOM_WIFI_FAILURE_STAT_REPORTED: return "ATOM_WIFI_FAILURE_STAT_REPORTED";
case AtomId.ATOM_WIFI_CONNECTION_RESULT_REPORTED: return "ATOM_WIFI_CONNECTION_RESULT_REPORTED";
case AtomId.ATOM_APP_FREEZE_CHANGED: return "ATOM_APP_FREEZE_CHANGED";
case AtomId.ATOM_SNAPSHOT_MERGE_REPORTED: return "ATOM_SNAPSHOT_MERGE_REPORTED";
case AtomId.ATOM_FOREGROUND_SERVICE_APP_OP_SESSION_ENDED: return "ATOM_FOREGROUND_SERVICE_APP_OP_SESSION_ENDED";
case AtomId.ATOM_DISPLAY_JANK_REPORTED: return "ATOM_DISPLAY_JANK_REPORTED";
case AtomId.ATOM_APP_STANDBY_BUCKET_CHANGED: return "ATOM_APP_STANDBY_BUCKET_CHANGED";
case AtomId.ATOM_SHARESHEET_STARTED: return "ATOM_SHARESHEET_STARTED";
case AtomId.ATOM_RANKING_SELECTED: return "ATOM_RANKING_SELECTED";
case AtomId.ATOM_TVSETTINGS_UI_INTERACTED: return "ATOM_TVSETTINGS_UI_INTERACTED";
case AtomId.ATOM_LAUNCHER_SNAPSHOT: return "ATOM_LAUNCHER_SNAPSHOT";
case AtomId.ATOM_PACKAGE_INSTALLER_V2_REPORTED: return "ATOM_PACKAGE_INSTALLER_V2_REPORTED";
case AtomId.ATOM_USER_LIFECYCLE_JOURNEY_REPORTED: return "ATOM_USER_LIFECYCLE_JOURNEY_REPORTED";
case AtomId.ATOM_USER_LIFECYCLE_EVENT_OCCURRED: return "ATOM_USER_LIFECYCLE_EVENT_OCCURRED";
case AtomId.ATOM_ACCESSIBILITY_SHORTCUT_REPORTED: return "ATOM_ACCESSIBILITY_SHORTCUT_REPORTED";
case AtomId.ATOM_ACCESSIBILITY_SERVICE_REPORTED: return "ATOM_ACCESSIBILITY_SERVICE_REPORTED";
case AtomId.ATOM_DOCS_UI_DRAG_AND_DROP_REPORTED: return "ATOM_DOCS_UI_DRAG_AND_DROP_REPORTED";
case AtomId.ATOM_APP_USAGE_EVENT_OCCURRED: return "ATOM_APP_USAGE_EVENT_OCCURRED";
case AtomId.ATOM_AUTO_REVOKE_NOTIFICATION_CLICKED: return "ATOM_AUTO_REVOKE_NOTIFICATION_CLICKED";
case AtomId.ATOM_AUTO_REVOKE_FRAGMENT_APP_VIEWED: return "ATOM_AUTO_REVOKE_FRAGMENT_APP_VIEWED";
case AtomId.ATOM_AUTO_REVOKED_APP_INTERACTION: return "ATOM_AUTO_REVOKED_APP_INTERACTION";
case AtomId.ATOM_APP_PERMISSION_GROUPS_FRAGMENT_AUTO_REVOKE_ACTION: return "ATOM_APP_PERMISSION_GROUPS_FRAGMENT_AUTO_REVOKE_ACTION";
case AtomId.ATOM_EVS_USAGE_STATS_REPORTED: return "ATOM_EVS_USAGE_STATS_REPORTED";
case AtomId.ATOM_AUDIO_POWER_USAGE_DATA_REPORTED: return "ATOM_AUDIO_POWER_USAGE_DATA_REPORTED";
case AtomId.ATOM_TV_TUNER_STATE_CHANGED: return "ATOM_TV_TUNER_STATE_CHANGED";
case AtomId.ATOM_MEDIAOUTPUT_OP_SWITCH_REPORTED: return "ATOM_MEDIAOUTPUT_OP_SWITCH_REPORTED";
case AtomId.ATOM_CB_MESSAGE_FILTERED: return "ATOM_CB_MESSAGE_FILTERED";
case AtomId.ATOM_TV_TUNER_DVR_STATUS: return "ATOM_TV_TUNER_DVR_STATUS";
case AtomId.ATOM_TV_CAS_SESSION_OPEN_STATUS: return "ATOM_TV_CAS_SESSION_OPEN_STATUS";
case AtomId.ATOM_ASSISTANT_INVOCATION_REPORTED: return "ATOM_ASSISTANT_INVOCATION_REPORTED";
case AtomId.ATOM_DISPLAY_WAKE_REPORTED: return "ATOM_DISPLAY_WAKE_REPORTED";
case AtomId.ATOM_CAR_USER_HAL_MODIFY_USER_REQUEST_REPORTED: return "ATOM_CAR_USER_HAL_MODIFY_USER_REQUEST_REPORTED";
case AtomId.ATOM_CAR_USER_HAL_MODIFY_USER_RESPONSE_REPORTED: return "ATOM_CAR_USER_HAL_MODIFY_USER_RESPONSE_REPORTED";
case AtomId.ATOM_CAR_USER_HAL_POST_SWITCH_RESPONSE_REPORTED: return "ATOM_CAR_USER_HAL_POST_SWITCH_RESPONSE_REPORTED";
case AtomId.ATOM_CAR_USER_HAL_INITIAL_USER_INFO_REQUEST_REPORTED: return "ATOM_CAR_USER_HAL_INITIAL_USER_INFO_REQUEST_REPORTED";
case AtomId.ATOM_CAR_USER_HAL_INITIAL_USER_INFO_RESPONSE_REPORTED: return "ATOM_CAR_USER_HAL_INITIAL_USER_INFO_RESPONSE_REPORTED";
case AtomId.ATOM_CAR_USER_HAL_USER_ASSOCIATION_REQUEST_REPORTED: return "ATOM_CAR_USER_HAL_USER_ASSOCIATION_REQUEST_REPORTED";
case AtomId.ATOM_CAR_USER_HAL_SET_USER_ASSOCIATION_RESPONSE_REPORTED: return "ATOM_CAR_USER_HAL_SET_USER_ASSOCIATION_RESPONSE_REPORTED";
case AtomId.ATOM_NETWORK_IP_PROVISIONING_REPORTED: return "ATOM_NETWORK_IP_PROVISIONING_REPORTED";
case AtomId.ATOM_NETWORK_DHCP_RENEW_REPORTED: return "ATOM_NETWORK_DHCP_RENEW_REPORTED";
case AtomId.ATOM_NETWORK_VALIDATION_REPORTED: return "ATOM_NETWORK_VALIDATION_REPORTED";
case AtomId.ATOM_NETWORK_STACK_QUIRK_REPORTED: return "ATOM_NETWORK_STACK_QUIRK_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_AUDIORECORDDEVICEUSAGE_REPORTED: return "ATOM_MEDIAMETRICS_AUDIORECORDDEVICEUSAGE_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_AUDIOTHREADDEVICEUSAGE_REPORTED: return "ATOM_MEDIAMETRICS_AUDIOTHREADDEVICEUSAGE_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_AUDIOTRACKDEVICEUSAGE_REPORTED: return "ATOM_MEDIAMETRICS_AUDIOTRACKDEVICEUSAGE_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_AUDIODEVICECONNECTION_REPORTED: return "ATOM_MEDIAMETRICS_AUDIODEVICECONNECTION_REPORTED";
case AtomId.ATOM_BLOB_COMMITTED: return "ATOM_BLOB_COMMITTED";
case AtomId.ATOM_BLOB_LEASED: return "ATOM_BLOB_LEASED";
case AtomId.ATOM_BLOB_OPENED: return "ATOM_BLOB_OPENED";
case AtomId.ATOM_CONTACTS_PROVIDER_STATUS_REPORTED: return "ATOM_CONTACTS_PROVIDER_STATUS_REPORTED";
case AtomId.ATOM_KEYSTORE_KEY_EVENT_REPORTED: return "ATOM_KEYSTORE_KEY_EVENT_REPORTED";
case AtomId.ATOM_NETWORK_TETHERING_REPORTED: return "ATOM_NETWORK_TETHERING_REPORTED";
case AtomId.ATOM_IME_TOUCH_REPORTED: return "ATOM_IME_TOUCH_REPORTED";
case AtomId.ATOM_UI_INTERACTION_FRAME_INFO_REPORTED: return "ATOM_UI_INTERACTION_FRAME_INFO_REPORTED";
case AtomId.ATOM_UI_ACTION_LATENCY_REPORTED: return "ATOM_UI_ACTION_LATENCY_REPORTED";
case AtomId.ATOM_WIFI_DISCONNECT_REPORTED: return "ATOM_WIFI_DISCONNECT_REPORTED";
case AtomId.ATOM_WIFI_CONNECTION_STATE_CHANGED: return "ATOM_WIFI_CONNECTION_STATE_CHANGED";
case AtomId.ATOM_HDMI_CEC_ACTIVE_SOURCE_CHANGED: return "ATOM_HDMI_CEC_ACTIVE_SOURCE_CHANGED";
case AtomId.ATOM_HDMI_CEC_MESSAGE_REPORTED: return "ATOM_HDMI_CEC_MESSAGE_REPORTED";
case AtomId.ATOM_AIRPLANE_MODE: return "ATOM_AIRPLANE_MODE";
case AtomId.ATOM_MODEM_RESTART: return "ATOM_MODEM_RESTART";
case AtomId.ATOM_CARRIER_ID_MISMATCH_REPORTED: return "ATOM_CARRIER_ID_MISMATCH_REPORTED";
case AtomId.ATOM_CARRIER_ID_TABLE_UPDATED: return "ATOM_CARRIER_ID_TABLE_UPDATED";
case AtomId.ATOM_DATA_STALL_RECOVERY_REPORTED: return "ATOM_DATA_STALL_RECOVERY_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_MEDIAPARSER_REPORTED: return "ATOM_MEDIAMETRICS_MEDIAPARSER_REPORTED";
case AtomId.ATOM_TLS_HANDSHAKE_REPORTED: return "ATOM_TLS_HANDSHAKE_REPORTED";
case AtomId.ATOM_TEXT_CLASSIFIER_API_USAGE_REPORTED: return "ATOM_TEXT_CLASSIFIER_API_USAGE_REPORTED";
case AtomId.ATOM_CAR_WATCHDOG_KILL_STATS_REPORTED: return "ATOM_CAR_WATCHDOG_KILL_STATS_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_PLAYBACK_REPORTED: return "ATOM_MEDIAMETRICS_PLAYBACK_REPORTED";
case AtomId.ATOM_MEDIA_NETWORK_INFO_CHANGED: return "ATOM_MEDIA_NETWORK_INFO_CHANGED";
case AtomId.ATOM_MEDIA_PLAYBACK_STATE_CHANGED: return "ATOM_MEDIA_PLAYBACK_STATE_CHANGED";
case AtomId.ATOM_MEDIA_PLAYBACK_ERROR_REPORTED: return "ATOM_MEDIA_PLAYBACK_ERROR_REPORTED";
case AtomId.ATOM_MEDIA_PLAYBACK_TRACK_CHANGED: return "ATOM_MEDIA_PLAYBACK_TRACK_CHANGED";
case AtomId.ATOM_WIFI_SCAN_REPORTED: return "ATOM_WIFI_SCAN_REPORTED";
case AtomId.ATOM_WIFI_PNO_SCAN_REPORTED: return "ATOM_WIFI_PNO_SCAN_REPORTED";
case AtomId.ATOM_TIF_TUNE_CHANGED: return "ATOM_TIF_TUNE_CHANGED";
case AtomId.ATOM_AUTO_ROTATE_REPORTED: return "ATOM_AUTO_ROTATE_REPORTED";
case AtomId.ATOM_PERFETTO_TRIGGER: return "ATOM_PERFETTO_TRIGGER";
case AtomId.ATOM_TRANSCODING_DATA: return "ATOM_TRANSCODING_DATA";
case AtomId.ATOM_IMS_SERVICE_ENTITLEMENT_UPDATED: return "ATOM_IMS_SERVICE_ENTITLEMENT_UPDATED";
case AtomId.ATOM_DEVICE_ROTATED: return "ATOM_DEVICE_ROTATED";
case AtomId.ATOM_SIM_SPECIFIC_SETTINGS_RESTORED: return "ATOM_SIM_SPECIFIC_SETTINGS_RESTORED";
case AtomId.ATOM_TEXT_CLASSIFIER_DOWNLOAD_REPORTED: return "ATOM_TEXT_CLASSIFIER_DOWNLOAD_REPORTED";
case AtomId.ATOM_PIN_STORAGE_EVENT: return "ATOM_PIN_STORAGE_EVENT";
case AtomId.ATOM_FACE_DOWN_REPORTED: return "ATOM_FACE_DOWN_REPORTED";
case AtomId.ATOM_BLUETOOTH_HAL_CRASH_REASON_REPORTED: return "ATOM_BLUETOOTH_HAL_CRASH_REASON_REPORTED";
case AtomId.ATOM_REBOOT_ESCROW_PREPARATION_REPORTED: return "ATOM_REBOOT_ESCROW_PREPARATION_REPORTED";
case AtomId.ATOM_REBOOT_ESCROW_LSKF_CAPTURE_REPORTED: return "ATOM_REBOOT_ESCROW_LSKF_CAPTURE_REPORTED";
case AtomId.ATOM_REBOOT_ESCROW_REBOOT_REPORTED: return "ATOM_REBOOT_ESCROW_REBOOT_REPORTED";
case AtomId.ATOM_BINDER_LATENCY_REPORTED: return "ATOM_BINDER_LATENCY_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_AAUDIOSTREAM_REPORTED: return "ATOM_MEDIAMETRICS_AAUDIOSTREAM_REPORTED";
case AtomId.ATOM_MEDIA_TRANSCODING_SESSION_ENDED: return "ATOM_MEDIA_TRANSCODING_SESSION_ENDED";
case AtomId.ATOM_MAGNIFICATION_USAGE_REPORTED: return "ATOM_MAGNIFICATION_USAGE_REPORTED";
case AtomId.ATOM_MAGNIFICATION_MODE_WITH_IME_ON_REPORTED: return "ATOM_MAGNIFICATION_MODE_WITH_IME_ON_REPORTED";
case AtomId.ATOM_APP_SEARCH_CALL_STATS_REPORTED: return "ATOM_APP_SEARCH_CALL_STATS_REPORTED";
case AtomId.ATOM_APP_SEARCH_PUT_DOCUMENT_STATS_REPORTED: return "ATOM_APP_SEARCH_PUT_DOCUMENT_STATS_REPORTED";
case AtomId.ATOM_DEVICE_CONTROL_CHANGED: return "ATOM_DEVICE_CONTROL_CHANGED";
case AtomId.ATOM_DEVICE_STATE_CHANGED: return "ATOM_DEVICE_STATE_CHANGED";
case AtomId.ATOM_INPUTDEVICE_REGISTERED: return "ATOM_INPUTDEVICE_REGISTERED";
case AtomId.ATOM_SMARTSPACE_CARD_REPORTED: return "ATOM_SMARTSPACE_CARD_REPORTED";
case AtomId.ATOM_AUTH_PROMPT_AUTHENTICATE_INVOKED: return "ATOM_AUTH_PROMPT_AUTHENTICATE_INVOKED";
case AtomId.ATOM_AUTH_MANAGER_CAN_AUTHENTICATE_INVOKED: return "ATOM_AUTH_MANAGER_CAN_AUTHENTICATE_INVOKED";
case AtomId.ATOM_AUTH_ENROLL_ACTION_INVOKED: return "ATOM_AUTH_ENROLL_ACTION_INVOKED";
case AtomId.ATOM_AUTH_DEPRECATED_API_USED: return "ATOM_AUTH_DEPRECATED_API_USED";
case AtomId.ATOM_UNATTENDED_REBOOT_OCCURRED: return "ATOM_UNATTENDED_REBOOT_OCCURRED";
case AtomId.ATOM_LONG_REBOOT_BLOCKING_REPORTED: return "ATOM_LONG_REBOOT_BLOCKING_REPORTED";
case AtomId.ATOM_LOCATION_TIME_ZONE_PROVIDER_STATE_CHANGED: return "ATOM_LOCATION_TIME_ZONE_PROVIDER_STATE_CHANGED";
case AtomId.ATOM_FDTRACK_EVENT_OCCURRED: return "ATOM_FDTRACK_EVENT_OCCURRED";
case AtomId.ATOM_TIMEOUT_AUTO_EXTENDED_REPORTED: return "ATOM_TIMEOUT_AUTO_EXTENDED_REPORTED";
case AtomId.ATOM_ALARM_BATCH_DELIVERED: return "ATOM_ALARM_BATCH_DELIVERED";
case AtomId.ATOM_ALARM_SCHEDULED: return "ATOM_ALARM_SCHEDULED";
case AtomId.ATOM_CAR_WATCHDOG_IO_OVERUSE_STATS_REPORTED: return "ATOM_CAR_WATCHDOG_IO_OVERUSE_STATS_REPORTED";
case AtomId.ATOM_USER_LEVEL_HIBERNATION_STATE_CHANGED: return "ATOM_USER_LEVEL_HIBERNATION_STATE_CHANGED";
case AtomId.ATOM_APP_SEARCH_INITIALIZE_STATS_REPORTED: return "ATOM_APP_SEARCH_INITIALIZE_STATS_REPORTED";
case AtomId.ATOM_APP_SEARCH_QUERY_STATS_REPORTED: return "ATOM_APP_SEARCH_QUERY_STATS_REPORTED";
case AtomId.ATOM_APP_PROCESS_DIED: return "ATOM_APP_PROCESS_DIED";
case AtomId.ATOM_NETWORK_IP_REACHABILITY_MONITOR_REPORTED: return "ATOM_NETWORK_IP_REACHABILITY_MONITOR_REPORTED";
case AtomId.ATOM_SLOW_INPUT_EVENT_REPORTED: return "ATOM_SLOW_INPUT_EVENT_REPORTED";
case AtomId.ATOM_ANR_OCCURRED_PROCESSING_STARTED: return "ATOM_ANR_OCCURRED_PROCESSING_STARTED";
case AtomId.ATOM_APP_SEARCH_REMOVE_STATS_REPORTED: return "ATOM_APP_SEARCH_REMOVE_STATS_REPORTED";
case AtomId.ATOM_MEDIA_CODEC_REPORTED: return "ATOM_MEDIA_CODEC_REPORTED";
case AtomId.ATOM_PERMISSION_USAGE_FRAGMENT_INTERACTION: return "ATOM_PERMISSION_USAGE_FRAGMENT_INTERACTION";
case AtomId.ATOM_PERMISSION_DETAILS_INTERACTION: return "ATOM_PERMISSION_DETAILS_INTERACTION";
case AtomId.ATOM_PRIVACY_SENSOR_TOGGLE_INTERACTION: return "ATOM_PRIVACY_SENSOR_TOGGLE_INTERACTION";
case AtomId.ATOM_PRIVACY_TOGGLE_DIALOG_INTERACTION: return "ATOM_PRIVACY_TOGGLE_DIALOG_INTERACTION";
case AtomId.ATOM_APP_SEARCH_OPTIMIZE_STATS_REPORTED: return "ATOM_APP_SEARCH_OPTIMIZE_STATS_REPORTED";
case AtomId.ATOM_NON_A11Y_TOOL_SERVICE_WARNING_REPORT: return "ATOM_NON_A11Y_TOOL_SERVICE_WARNING_REPORT";
case AtomId.ATOM_APP_COMPAT_STATE_CHANGED: return "ATOM_APP_COMPAT_STATE_CHANGED";
case AtomId.ATOM_SIZE_COMPAT_RESTART_BUTTON_EVENT_REPORTED: return "ATOM_SIZE_COMPAT_RESTART_BUTTON_EVENT_REPORTED";
case AtomId.ATOM_SPLITSCREEN_UI_CHANGED: return "ATOM_SPLITSCREEN_UI_CHANGED";
case AtomId.ATOM_NETWORK_DNS_HANDSHAKE_REPORTED: return "ATOM_NETWORK_DNS_HANDSHAKE_REPORTED";
case AtomId.ATOM_BLUETOOTH_CODE_PATH_COUNTER: return "ATOM_BLUETOOTH_CODE_PATH_COUNTER";
case AtomId.ATOM_BLUETOOTH_LE_BATCH_SCAN_REPORT_DELAY: return "ATOM_BLUETOOTH_LE_BATCH_SCAN_REPORT_DELAY";
case AtomId.ATOM_ACCESSIBILITY_FLOATING_MENU_UI_CHANGED: return "ATOM_ACCESSIBILITY_FLOATING_MENU_UI_CHANGED";
case AtomId.ATOM_NEURALNETWORKS_COMPILATION_COMPLETED: return "ATOM_NEURALNETWORKS_COMPILATION_COMPLETED";
case AtomId.ATOM_NEURALNETWORKS_EXECUTION_COMPLETED: return "ATOM_NEURALNETWORKS_EXECUTION_COMPLETED";
case AtomId.ATOM_NEURALNETWORKS_COMPILATION_FAILED: return "ATOM_NEURALNETWORKS_COMPILATION_FAILED";
case AtomId.ATOM_NEURALNETWORKS_EXECUTION_FAILED: return "ATOM_NEURALNETWORKS_EXECUTION_FAILED";
case AtomId.ATOM_CONTEXT_HUB_BOOTED: return "ATOM_CONTEXT_HUB_BOOTED";
case AtomId.ATOM_CONTEXT_HUB_RESTARTED: return "ATOM_CONTEXT_HUB_RESTARTED";
case AtomId.ATOM_CONTEXT_HUB_LOADED_NANOAPP_SNAPSHOT_REPORTED: return "ATOM_CONTEXT_HUB_LOADED_NANOAPP_SNAPSHOT_REPORTED";
case AtomId.ATOM_CHRE_CODE_DOWNLOAD_TRANSACTED: return "ATOM_CHRE_CODE_DOWNLOAD_TRANSACTED";
case AtomId.ATOM_UWB_SESSION_INITED: return "ATOM_UWB_SESSION_INITED";
case AtomId.ATOM_UWB_SESSION_CLOSED: return "ATOM_UWB_SESSION_CLOSED";
case AtomId.ATOM_UWB_FIRST_RANGING_RECEIVED: return "ATOM_UWB_FIRST_RANGING_RECEIVED";
case AtomId.ATOM_UWB_RANGING_MEASUREMENT_RECEIVED: return "ATOM_UWB_RANGING_MEASUREMENT_RECEIVED";
case AtomId.ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_SCHEDULED: return "ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_SCHEDULED";
case AtomId.ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_COMPLETED: return "ATOM_TEXT_CLASSIFIER_DOWNLOAD_WORK_COMPLETED";
case AtomId.ATOM_CLIPBOARD_CLEARED: return "ATOM_CLIPBOARD_CLEARED";
case AtomId.ATOM_VM_CREATION_REQUESTED: return "ATOM_VM_CREATION_REQUESTED";
case AtomId.ATOM_NEARBY_DEVICE_SCAN_STATE_CHANGED: return "ATOM_NEARBY_DEVICE_SCAN_STATE_CHANGED";
case AtomId.ATOM_APPLICATION_LOCALES_CHANGED: return "ATOM_APPLICATION_LOCALES_CHANGED";
case AtomId.ATOM_MEDIAMETRICS_AUDIOTRACKSTATUS_REPORTED: return "ATOM_MEDIAMETRICS_AUDIOTRACKSTATUS_REPORTED";
case AtomId.ATOM_FOLD_STATE_DURATION_REPORTED: return "ATOM_FOLD_STATE_DURATION_REPORTED";
case AtomId.ATOM_LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED: return "ATOM_LOCATION_TIME_ZONE_PROVIDER_CONTROLLER_STATE_CHANGED";
case AtomId.ATOM_DISPLAY_HBM_STATE_CHANGED: return "ATOM_DISPLAY_HBM_STATE_CHANGED";
case AtomId.ATOM_DISPLAY_HBM_BRIGHTNESS_CHANGED: return "ATOM_DISPLAY_HBM_BRIGHTNESS_CHANGED";
case AtomId.ATOM_PERSISTENT_URI_PERMISSIONS_FLUSHED: return "ATOM_PERSISTENT_URI_PERMISSIONS_FLUSHED";
case AtomId.ATOM_EARLY_BOOT_COMP_OS_ARTIFACTS_CHECK_REPORTED: return "ATOM_EARLY_BOOT_COMP_OS_ARTIFACTS_CHECK_REPORTED";
case AtomId.ATOM_VBMETA_DIGEST_REPORTED: return "ATOM_VBMETA_DIGEST_REPORTED";
case AtomId.ATOM_APEX_INFO_GATHERED: return "ATOM_APEX_INFO_GATHERED";
case AtomId.ATOM_PVM_INFO_GATHERED: return "ATOM_PVM_INFO_GATHERED";
case AtomId.ATOM_WEAR_SETTINGS_UI_INTERACTED: return "ATOM_WEAR_SETTINGS_UI_INTERACTED";
case AtomId.ATOM_TRACING_SERVICE_REPORT_EVENT: return "ATOM_TRACING_SERVICE_REPORT_EVENT";
case AtomId.ATOM_MEDIAMETRICS_AUDIORECORDSTATUS_REPORTED: return "ATOM_MEDIAMETRICS_AUDIORECORDSTATUS_REPORTED";
case AtomId.ATOM_LAUNCHER_LATENCY: return "ATOM_LAUNCHER_LATENCY";
case AtomId.ATOM_DROPBOX_ENTRY_DROPPED: return "ATOM_DROPBOX_ENTRY_DROPPED";
case AtomId.ATOM_WIFI_P2P_CONNECTION_REPORTED: return "ATOM_WIFI_P2P_CONNECTION_REPORTED";
case AtomId.ATOM_GAME_STATE_CHANGED: return "ATOM_GAME_STATE_CHANGED";
case AtomId.ATOM_HOTWORD_DETECTOR_CREATE_REQUESTED: return "ATOM_HOTWORD_DETECTOR_CREATE_REQUESTED";
case AtomId.ATOM_HOTWORD_DETECTION_SERVICE_INIT_RESULT_REPORTED: return "ATOM_HOTWORD_DETECTION_SERVICE_INIT_RESULT_REPORTED";
case AtomId.ATOM_HOTWORD_DETECTION_SERVICE_RESTARTED: return "ATOM_HOTWORD_DETECTION_SERVICE_RESTARTED";
case AtomId.ATOM_HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED: return "ATOM_HOTWORD_DETECTOR_KEYPHRASE_TRIGGERED";
case AtomId.ATOM_HOTWORD_DETECTOR_EVENTS: return "ATOM_HOTWORD_DETECTOR_EVENTS";
case AtomId.ATOM_BOOT_COMPLETED_BROADCAST_COMPLETION_LATENCY_REPORTED: return "ATOM_BOOT_COMPLETED_BROADCAST_COMPLETION_LATENCY_REPORTED";
case AtomId.ATOM_CONTACTS_INDEXER_UPDATE_STATS_REPORTED: return "ATOM_CONTACTS_INDEXER_UPDATE_STATS_REPORTED";
case AtomId.ATOM_APP_BACKGROUND_RESTRICTIONS_INFO: return "ATOM_APP_BACKGROUND_RESTRICTIONS_INFO";
case AtomId.ATOM_MMS_SMS_PROVIDER_GET_THREAD_ID_FAILED: return "ATOM_MMS_SMS_PROVIDER_GET_THREAD_ID_FAILED";
case AtomId.ATOM_MMS_SMS_DATABASE_HELPER_ON_UPGRADE_FAILED: return "ATOM_MMS_SMS_DATABASE_HELPER_ON_UPGRADE_FAILED";
case AtomId.ATOM_PERMISSION_REMINDER_NOTIFICATION_INTERACTED: return "ATOM_PERMISSION_REMINDER_NOTIFICATION_INTERACTED";
case AtomId.ATOM_RECENT_PERMISSION_DECISIONS_INTERACTED: return "ATOM_RECENT_PERMISSION_DECISIONS_INTERACTED";
case AtomId.ATOM_GNSS_PSDS_DOWNLOAD_REPORTED: return "ATOM_GNSS_PSDS_DOWNLOAD_REPORTED";
case AtomId.ATOM_LE_AUDIO_CONNECTION_SESSION_REPORTED: return "ATOM_LE_AUDIO_CONNECTION_SESSION_REPORTED";
case AtomId.ATOM_LE_AUDIO_BROADCAST_SESSION_REPORTED: return "ATOM_LE_AUDIO_BROADCAST_SESSION_REPORTED";
case AtomId.ATOM_DREAM_UI_EVENT_REPORTED: return "ATOM_DREAM_UI_EVENT_REPORTED";
case AtomId.ATOM_TASK_MANAGER_EVENT_REPORTED: return "ATOM_TASK_MANAGER_EVENT_REPORTED";
case AtomId.ATOM_CDM_ASSOCIATION_ACTION: return "ATOM_CDM_ASSOCIATION_ACTION";
case AtomId.ATOM_MAGNIFICATION_TRIPLE_TAP_AND_HOLD_ACTIVATED_SESSION_REPORTED: return "ATOM_MAGNIFICATION_TRIPLE_TAP_AND_HOLD_ACTIVATED_SESSION_REPORTED";
case AtomId.ATOM_MAGNIFICATION_FOLLOW_TYPING_FOCUS_ACTIVATED_SESSION_REPORTED: return "ATOM_MAGNIFICATION_FOLLOW_TYPING_FOCUS_ACTIVATED_SESSION_REPORTED";
case AtomId.ATOM_ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED: return "ATOM_ACCESSIBILITY_TEXT_READING_OPTIONS_CHANGED";
case AtomId.ATOM_WIFI_SETUP_FAILURE_CRASH_REPORTED: return "ATOM_WIFI_SETUP_FAILURE_CRASH_REPORTED";
case AtomId.ATOM_UWB_DEVICE_ERROR_REPORTED: return "ATOM_UWB_DEVICE_ERROR_REPORTED";
case AtomId.ATOM_ISOLATED_COMPILATION_SCHEDULED: return "ATOM_ISOLATED_COMPILATION_SCHEDULED";
case AtomId.ATOM_ISOLATED_COMPILATION_ENDED: return "ATOM_ISOLATED_COMPILATION_ENDED";
case AtomId.ATOM_ONS_OPPORTUNISTIC_ESIM_PROVISIONING_COMPLETE: return "ATOM_ONS_OPPORTUNISTIC_ESIM_PROVISIONING_COMPLETE";
case AtomId.ATOM_SYSTEM_SERVER_PRE_WATCHDOG_OCCURRED: return "ATOM_SYSTEM_SERVER_PRE_WATCHDOG_OCCURRED";
case AtomId.ATOM_TELEPHONY_ANOMALY_DETECTED: return "ATOM_TELEPHONY_ANOMALY_DETECTED";
case AtomId.ATOM_LETTERBOX_POSITION_CHANGED: return "ATOM_LETTERBOX_POSITION_CHANGED";
case AtomId.ATOM_REMOTE_KEY_PROVISIONING_ATTEMPT: return "ATOM_REMOTE_KEY_PROVISIONING_ATTEMPT";
case AtomId.ATOM_REMOTE_KEY_PROVISIONING_NETWORK_INFO: return "ATOM_REMOTE_KEY_PROVISIONING_NETWORK_INFO";
case AtomId.ATOM_REMOTE_KEY_PROVISIONING_TIMING: return "ATOM_REMOTE_KEY_PROVISIONING_TIMING";
case AtomId.ATOM_MEDIAOUTPUT_OP_INTERACTION_REPORT: return "ATOM_MEDIAOUTPUT_OP_INTERACTION_REPORT";
case AtomId.ATOM_SYNC_EXEMPTION_OCCURRED: return "ATOM_SYNC_EXEMPTION_OCCURRED";
case AtomId.ATOM_AUTOFILL_PRESENTATION_EVENT_REPORTED: return "ATOM_AUTOFILL_PRESENTATION_EVENT_REPORTED";
case AtomId.ATOM_DOCK_STATE_CHANGED: return "ATOM_DOCK_STATE_CHANGED";
case AtomId.ATOM_SAFETY_SOURCE_STATE_COLLECTED: return "ATOM_SAFETY_SOURCE_STATE_COLLECTED";
case AtomId.ATOM_SAFETY_CENTER_SYSTEM_EVENT_REPORTED: return "ATOM_SAFETY_CENTER_SYSTEM_EVENT_REPORTED";
case AtomId.ATOM_SAFETY_CENTER_INTERACTION_REPORTED: return "ATOM_SAFETY_CENTER_INTERACTION_REPORTED";
case AtomId.ATOM_SETTINGS_PROVIDER_SETTING_CHANGED: return "ATOM_SETTINGS_PROVIDER_SETTING_CHANGED";
case AtomId.ATOM_BROADCAST_DELIVERY_EVENT_REPORTED: return "ATOM_BROADCAST_DELIVERY_EVENT_REPORTED";
case AtomId.ATOM_SERVICE_REQUEST_EVENT_REPORTED: return "ATOM_SERVICE_REQUEST_EVENT_REPORTED";
case AtomId.ATOM_PROVIDER_ACQUISITION_EVENT_REPORTED: return "ATOM_PROVIDER_ACQUISITION_EVENT_REPORTED";
case AtomId.ATOM_BLUETOOTH_DEVICE_NAME_REPORTED: return "ATOM_BLUETOOTH_DEVICE_NAME_REPORTED";
case AtomId.ATOM_CB_CONFIG_UPDATED: return "ATOM_CB_CONFIG_UPDATED";
case AtomId.ATOM_CB_MODULE_ERROR_REPORTED: return "ATOM_CB_MODULE_ERROR_REPORTED";
case AtomId.ATOM_CB_SERVICE_FEATURE_CHANGED: return "ATOM_CB_SERVICE_FEATURE_CHANGED";
case AtomId.ATOM_CB_RECEIVER_FEATURE_CHANGED: return "ATOM_CB_RECEIVER_FEATURE_CHANGED";
case AtomId.ATOM_PRIVACY_SIGNAL_NOTIFICATION_INTERACTION: return "ATOM_PRIVACY_SIGNAL_NOTIFICATION_INTERACTION";
case AtomId.ATOM_PRIVACY_SIGNAL_ISSUE_CARD_INTERACTION: return "ATOM_PRIVACY_SIGNAL_ISSUE_CARD_INTERACTION";
case AtomId.ATOM_PRIVACY_SIGNALS_JOB_FAILURE: return "ATOM_PRIVACY_SIGNALS_JOB_FAILURE";
case AtomId.ATOM_VIBRATION_REPORTED: return "ATOM_VIBRATION_REPORTED";
case AtomId.ATOM_UWB_RANGING_START: return "ATOM_UWB_RANGING_START";
case AtomId.ATOM_APP_COMPACTED_V2: return "ATOM_APP_COMPACTED_V2";
case AtomId.ATOM_DISPLAY_BRIGHTNESS_CHANGED: return "ATOM_DISPLAY_BRIGHTNESS_CHANGED";
case AtomId.ATOM_ACTIVITY_ACTION_BLOCKED: return "ATOM_ACTIVITY_ACTION_BLOCKED";
case AtomId.ATOM_NETWORK_DNS_SERVER_SUPPORT_REPORTED: return "ATOM_NETWORK_DNS_SERVER_SUPPORT_REPORTED";
case AtomId.ATOM_VM_BOOTED: return "ATOM_VM_BOOTED";
case AtomId.ATOM_VM_EXITED: return "ATOM_VM_EXITED";
case AtomId.ATOM_AMBIENT_BRIGHTNESS_STATS_REPORTED: return "ATOM_AMBIENT_BRIGHTNESS_STATS_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_SPATIALIZERCAPABILITIES_REPORTED: return "ATOM_MEDIAMETRICS_SPATIALIZERCAPABILITIES_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_SPATIALIZERDEVICEENABLED_REPORTED: return "ATOM_MEDIAMETRICS_SPATIALIZERDEVICEENABLED_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_HEADTRACKERDEVICEENABLED_REPORTED: return "ATOM_MEDIAMETRICS_HEADTRACKERDEVICEENABLED_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_HEADTRACKERDEVICESUPPORTED_REPORTED: return "ATOM_MEDIAMETRICS_HEADTRACKERDEVICESUPPORTED_REPORTED";
case AtomId.ATOM_HEARING_AID_INFO_REPORTED: return "ATOM_HEARING_AID_INFO_REPORTED";
case AtomId.ATOM_DEVICE_WIDE_JOB_CONSTRAINT_CHANGED: return "ATOM_DEVICE_WIDE_JOB_CONSTRAINT_CHANGED";
case AtomId.ATOM_AMBIENT_MODE_CHANGED: return "ATOM_AMBIENT_MODE_CHANGED";
case AtomId.ATOM_ANR_LATENCY_REPORTED: return "ATOM_ANR_LATENCY_REPORTED";
case AtomId.ATOM_RESOURCE_API_INFO: return "ATOM_RESOURCE_API_INFO";
case AtomId.ATOM_SYSTEM_DEFAULT_NETWORK_CHANGED: return "ATOM_SYSTEM_DEFAULT_NETWORK_CHANGED";
case AtomId.ATOM_IWLAN_SETUP_DATA_CALL_RESULT_REPORTED: return "ATOM_IWLAN_SETUP_DATA_CALL_RESULT_REPORTED";
case AtomId.ATOM_IWLAN_PDN_DISCONNECTED_REASON_REPORTED: return "ATOM_IWLAN_PDN_DISCONNECTED_REASON_REPORTED";
case AtomId.ATOM_AIRPLANE_MODE_SESSION_REPORTED: return "ATOM_AIRPLANE_MODE_SESSION_REPORTED";
case AtomId.ATOM_VM_CPU_STATUS_REPORTED: return "ATOM_VM_CPU_STATUS_REPORTED";
case AtomId.ATOM_VM_MEM_STATUS_REPORTED: return "ATOM_VM_MEM_STATUS_REPORTED";
case AtomId.ATOM_PACKAGE_INSTALLATION_SESSION_REPORTED: return "ATOM_PACKAGE_INSTALLATION_SESSION_REPORTED";
case AtomId.ATOM_DEFAULT_NETWORK_REMATCH_INFO: return "ATOM_DEFAULT_NETWORK_REMATCH_INFO";
case AtomId.ATOM_NETWORK_SELECTION_PERFORMANCE: return "ATOM_NETWORK_SELECTION_PERFORMANCE";
case AtomId.ATOM_NETWORK_NSD_REPORTED: return "ATOM_NETWORK_NSD_REPORTED";
case AtomId.ATOM_BLUETOOTH_DISCONNECTION_REASON_REPORTED: return "ATOM_BLUETOOTH_DISCONNECTION_REASON_REPORTED";
case AtomId.ATOM_BLUETOOTH_LOCAL_VERSIONS_REPORTED: return "ATOM_BLUETOOTH_LOCAL_VERSIONS_REPORTED";
case AtomId.ATOM_BLUETOOTH_REMOTE_SUPPORTED_FEATURES_REPORTED: return "ATOM_BLUETOOTH_REMOTE_SUPPORTED_FEATURES_REPORTED";
case AtomId.ATOM_BLUETOOTH_LOCAL_SUPPORTED_FEATURES_REPORTED: return "ATOM_BLUETOOTH_LOCAL_SUPPORTED_FEATURES_REPORTED";
case AtomId.ATOM_BLUETOOTH_GATT_APP_INFO: return "ATOM_BLUETOOTH_GATT_APP_INFO";
case AtomId.ATOM_BRIGHTNESS_CONFIGURATION_UPDATED: return "ATOM_BRIGHTNESS_CONFIGURATION_UPDATED";
case AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_LAUNCHED: return "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_LAUNCHED";
case AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FINISHED: return "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FINISHED";
case AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECTION_REPORTED: return "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECTION_REPORTED";
case AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_TRIGGERED: return "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_TRIGGERED";
case AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FIRST_DEVICE_SCAN_LATENCY: return "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FIRST_DEVICE_SCAN_LATENCY";
case AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECT_DEVICE_LATENCY: return "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_CONNECT_DEVICE_LATENCY";
case AtomId.ATOM_PACKAGE_MANAGER_SNAPSHOT_REPORTED: return "ATOM_PACKAGE_MANAGER_SNAPSHOT_REPORTED";
case AtomId.ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_BUILD_REPORTED: return "ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_BUILD_REPORTED";
case AtomId.ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_UPDATE_REPORTED: return "ATOM_PACKAGE_MANAGER_APPS_FILTER_CACHE_UPDATE_REPORTED";
case AtomId.ATOM_LAUNCHER_IMPRESSION_EVENT: return "ATOM_LAUNCHER_IMPRESSION_EVENT";
case AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_ALL_DEVICES_SCAN_LATENCY: return "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_ALL_DEVICES_SCAN_LATENCY";
case AtomId.ATOM_WS_WATCH_FACE_EDITED: return "ATOM_WS_WATCH_FACE_EDITED";
case AtomId.ATOM_WS_WATCH_FACE_FAVORITE_ACTION_REPORTED: return "ATOM_WS_WATCH_FACE_FAVORITE_ACTION_REPORTED";
case AtomId.ATOM_WS_WATCH_FACE_SET_ACTION_REPORTED: return "ATOM_WS_WATCH_FACE_SET_ACTION_REPORTED";
case AtomId.ATOM_PACKAGE_UNINSTALLATION_REPORTED: return "ATOM_PACKAGE_UNINSTALLATION_REPORTED";
case AtomId.ATOM_GAME_MODE_CHANGED: return "ATOM_GAME_MODE_CHANGED";
case AtomId.ATOM_GAME_MODE_CONFIGURATION_CHANGED: return "ATOM_GAME_MODE_CONFIGURATION_CHANGED";
case AtomId.ATOM_BEDTIME_MODE_STATE_CHANGED: return "ATOM_BEDTIME_MODE_STATE_CHANGED";
case AtomId.ATOM_NETWORK_SLICE_SESSION_ENDED: return "ATOM_NETWORK_SLICE_SESSION_ENDED";
case AtomId.ATOM_NETWORK_SLICE_DAILY_DATA_USAGE_REPORTED: return "ATOM_NETWORK_SLICE_DAILY_DATA_USAGE_REPORTED";
case AtomId.ATOM_NFC_TAG_TYPE_OCCURRED: return "ATOM_NFC_TAG_TYPE_OCCURRED";
case AtomId.ATOM_NFC_AID_CONFLICT_OCCURRED: return "ATOM_NFC_AID_CONFLICT_OCCURRED";
case AtomId.ATOM_NFC_READER_CONFLICT_OCCURRED: return "ATOM_NFC_READER_CONFLICT_OCCURRED";
case AtomId.ATOM_WS_TILE_LIST_CHANGED: return "ATOM_WS_TILE_LIST_CHANGED";
case AtomId.ATOM_GET_TYPE_ACCESSED_WITHOUT_PERMISSION: return "ATOM_GET_TYPE_ACCESSED_WITHOUT_PERMISSION";
case AtomId.ATOM_MOBILE_BUNDLED_APP_INFO_GATHERED: return "ATOM_MOBILE_BUNDLED_APP_INFO_GATHERED";
case AtomId.ATOM_WS_WATCH_FACE_COMPLICATION_SET_CHANGED: return "ATOM_WS_WATCH_FACE_COMPLICATION_SET_CHANGED";
case AtomId.ATOM_MEDIA_DRM_CREATED: return "ATOM_MEDIA_DRM_CREATED";
case AtomId.ATOM_MEDIA_DRM_ERRORED: return "ATOM_MEDIA_DRM_ERRORED";
case AtomId.ATOM_MEDIA_DRM_SESSION_OPENED: return "ATOM_MEDIA_DRM_SESSION_OPENED";
case AtomId.ATOM_MEDIA_DRM_SESSION_CLOSED: return "ATOM_MEDIA_DRM_SESSION_CLOSED";
case AtomId.ATOM_USER_SELECTED_RESOLUTION: return "ATOM_USER_SELECTED_RESOLUTION";
case AtomId.ATOM_UNSAFE_INTENT_EVENT_REPORTED: return "ATOM_UNSAFE_INTENT_EVENT_REPORTED";
case AtomId.ATOM_PERFORMANCE_HINT_SESSION_REPORTED: return "ATOM_PERFORMANCE_HINT_SESSION_REPORTED";
case AtomId.ATOM_MEDIAMETRICS_MIDI_DEVICE_CLOSE_REPORTED: return "ATOM_MEDIAMETRICS_MIDI_DEVICE_CLOSE_REPORTED";
case AtomId.ATOM_BIOMETRIC_TOUCH_REPORTED: return "ATOM_BIOMETRIC_TOUCH_REPORTED";
case AtomId.ATOM_HOTWORD_AUDIO_EGRESS_EVENT_REPORTED: return "ATOM_HOTWORD_AUDIO_EGRESS_EVENT_REPORTED";
case AtomId.ATOM_LOCATION_ENABLED_STATE_CHANGED: return "ATOM_LOCATION_ENABLED_STATE_CHANGED";
case AtomId.ATOM_IME_REQUEST_FINISHED: return "ATOM_IME_REQUEST_FINISHED";
case AtomId.ATOM_USB_COMPLIANCE_WARNINGS_REPORTED: return "ATOM_USB_COMPLIANCE_WARNINGS_REPORTED";
case AtomId.ATOM_APP_SUPPORTED_LOCALES_CHANGED: return "ATOM_APP_SUPPORTED_LOCALES_CHANGED";
case AtomId.ATOM_MEDIA_PROVIDER_VOLUME_RECOVERY_REPORTED: return "ATOM_MEDIA_PROVIDER_VOLUME_RECOVERY_REPORTED";
case AtomId.ATOM_BIOMETRIC_PROPERTIES_COLLECTED: return "ATOM_BIOMETRIC_PROPERTIES_COLLECTED";
case AtomId.ATOM_KERNEL_WAKEUP_ATTRIBUTED: return "ATOM_KERNEL_WAKEUP_ATTRIBUTED";
case AtomId.ATOM_SCREEN_STATE_CHANGED_V2: return "ATOM_SCREEN_STATE_CHANGED_V2";
case AtomId.ATOM_WS_BACKUP_ACTION_REPORTED: return "ATOM_WS_BACKUP_ACTION_REPORTED";
case AtomId.ATOM_WS_RESTORE_ACTION_REPORTED: return "ATOM_WS_RESTORE_ACTION_REPORTED";
case AtomId.ATOM_DEVICE_LOG_ACCESS_EVENT_REPORTED: return "ATOM_DEVICE_LOG_ACCESS_EVENT_REPORTED";
case AtomId.ATOM_MEDIA_SESSION_UPDATED: return "ATOM_MEDIA_SESSION_UPDATED";
case AtomId.ATOM_WEAR_OOBE_STATE_CHANGED: return "ATOM_WEAR_OOBE_STATE_CHANGED";
case AtomId.ATOM_WS_NOTIFICATION_UPDATED: return "ATOM_WS_NOTIFICATION_UPDATED";
case AtomId.ATOM_NETWORK_VALIDATION_FAILURE_STATS_DAILY_REPORTED: return "ATOM_NETWORK_VALIDATION_FAILURE_STATS_DAILY_REPORTED";
case AtomId.ATOM_WS_COMPLICATION_TAPPED: return "ATOM_WS_COMPLICATION_TAPPED";
case AtomId.ATOM_WS_NOTIFICATION_BLOCKING: return "ATOM_WS_NOTIFICATION_BLOCKING";
case AtomId.ATOM_WS_NOTIFICATION_BRIDGEMODE_UPDATED: return "ATOM_WS_NOTIFICATION_BRIDGEMODE_UPDATED";
case AtomId.ATOM_WS_NOTIFICATION_DISMISSAL_ACTIONED: return "ATOM_WS_NOTIFICATION_DISMISSAL_ACTIONED";
case AtomId.ATOM_WS_NOTIFICATION_ACTIONED: return "ATOM_WS_NOTIFICATION_ACTIONED";
case AtomId.ATOM_WS_NOTIFICATION_LATENCY: return "ATOM_WS_NOTIFICATION_LATENCY";
case AtomId.ATOM_WIFI_BYTES_TRANSFER: return "ATOM_WIFI_BYTES_TRANSFER";
case AtomId.ATOM_WIFI_BYTES_TRANSFER_BY_FG_BG: return "ATOM_WIFI_BYTES_TRANSFER_BY_FG_BG";
case AtomId.ATOM_MOBILE_BYTES_TRANSFER: return "ATOM_MOBILE_BYTES_TRANSFER";
case AtomId.ATOM_MOBILE_BYTES_TRANSFER_BY_FG_BG: return "ATOM_MOBILE_BYTES_TRANSFER_BY_FG_BG";
case AtomId.ATOM_BLUETOOTH_BYTES_TRANSFER: return "ATOM_BLUETOOTH_BYTES_TRANSFER";
case AtomId.ATOM_KERNEL_WAKELOCK: return "ATOM_KERNEL_WAKELOCK";
case AtomId.ATOM_SUBSYSTEM_SLEEP_STATE: return "ATOM_SUBSYSTEM_SLEEP_STATE";
case AtomId.ATOM_CPU_TIME_PER_UID: return "ATOM_CPU_TIME_PER_UID";
case AtomId.ATOM_CPU_TIME_PER_UID_FREQ: return "ATOM_CPU_TIME_PER_UID_FREQ";
case AtomId.ATOM_WIFI_ACTIVITY_INFO: return "ATOM_WIFI_ACTIVITY_INFO";
case AtomId.ATOM_MODEM_ACTIVITY_INFO: return "ATOM_MODEM_ACTIVITY_INFO";
case AtomId.ATOM_BLUETOOTH_ACTIVITY_INFO: return "ATOM_BLUETOOTH_ACTIVITY_INFO";
case AtomId.ATOM_PROCESS_MEMORY_STATE: return "ATOM_PROCESS_MEMORY_STATE";
case AtomId.ATOM_SYSTEM_ELAPSED_REALTIME: return "ATOM_SYSTEM_ELAPSED_REALTIME";
case AtomId.ATOM_SYSTEM_UPTIME: return "ATOM_SYSTEM_UPTIME";
case AtomId.ATOM_CPU_ACTIVE_TIME: return "ATOM_CPU_ACTIVE_TIME";
case AtomId.ATOM_CPU_CLUSTER_TIME: return "ATOM_CPU_CLUSTER_TIME";
case AtomId.ATOM_DISK_SPACE: return "ATOM_DISK_SPACE";
case AtomId.ATOM_REMAINING_BATTERY_CAPACITY: return "ATOM_REMAINING_BATTERY_CAPACITY";
case AtomId.ATOM_FULL_BATTERY_CAPACITY: return "ATOM_FULL_BATTERY_CAPACITY";
case AtomId.ATOM_TEMPERATURE: return "ATOM_TEMPERATURE";
case AtomId.ATOM_BINDER_CALLS: return "ATOM_BINDER_CALLS";
case AtomId.ATOM_BINDER_CALLS_EXCEPTIONS: return "ATOM_BINDER_CALLS_EXCEPTIONS";
case AtomId.ATOM_LOOPER_STATS: return "ATOM_LOOPER_STATS";
case AtomId.ATOM_DISK_STATS: return "ATOM_DISK_STATS";
case AtomId.ATOM_DIRECTORY_USAGE: return "ATOM_DIRECTORY_USAGE";
case AtomId.ATOM_APP_SIZE: return "ATOM_APP_SIZE";
case AtomId.ATOM_CATEGORY_SIZE: return "ATOM_CATEGORY_SIZE";
case AtomId.ATOM_PROC_STATS: return "ATOM_PROC_STATS";
case AtomId.ATOM_BATTERY_VOLTAGE: return "ATOM_BATTERY_VOLTAGE";
case AtomId.ATOM_NUM_FINGERPRINTS_ENROLLED: return "ATOM_NUM_FINGERPRINTS_ENROLLED";
case AtomId.ATOM_DISK_IO: return "ATOM_DISK_IO";
case AtomId.ATOM_POWER_PROFILE: return "ATOM_POWER_PROFILE";
case AtomId.ATOM_PROC_STATS_PKG_PROC: return "ATOM_PROC_STATS_PKG_PROC";
case AtomId.ATOM_PROCESS_CPU_TIME: return "ATOM_PROCESS_CPU_TIME";
case AtomId.ATOM_CPU_TIME_PER_THREAD_FREQ: return "ATOM_CPU_TIME_PER_THREAD_FREQ";
case AtomId.ATOM_ON_DEVICE_POWER_MEASUREMENT: return "ATOM_ON_DEVICE_POWER_MEASUREMENT";
case AtomId.ATOM_DEVICE_CALCULATED_POWER_USE: return "ATOM_DEVICE_CALCULATED_POWER_USE";
case AtomId.ATOM_PROCESS_MEMORY_HIGH_WATER_MARK: return "ATOM_PROCESS_MEMORY_HIGH_WATER_MARK";
case AtomId.ATOM_BATTERY_LEVEL: return "ATOM_BATTERY_LEVEL";
case AtomId.ATOM_BUILD_INFORMATION: return "ATOM_BUILD_INFORMATION";
case AtomId.ATOM_BATTERY_CYCLE_COUNT: return "ATOM_BATTERY_CYCLE_COUNT";
case AtomId.ATOM_DEBUG_ELAPSED_CLOCK: return "ATOM_DEBUG_ELAPSED_CLOCK";
case AtomId.ATOM_DEBUG_FAILING_ELAPSED_CLOCK: return "ATOM_DEBUG_FAILING_ELAPSED_CLOCK";
case AtomId.ATOM_NUM_FACES_ENROLLED: return "ATOM_NUM_FACES_ENROLLED";
case AtomId.ATOM_ROLE_HOLDER: return "ATOM_ROLE_HOLDER";
case AtomId.ATOM_DANGEROUS_PERMISSION_STATE: return "ATOM_DANGEROUS_PERMISSION_STATE";
case AtomId.ATOM_TRAIN_INFO: return "ATOM_TRAIN_INFO";
case AtomId.ATOM_TIME_ZONE_DATA_INFO: return "ATOM_TIME_ZONE_DATA_INFO";
case AtomId.ATOM_EXTERNAL_STORAGE_INFO: return "ATOM_EXTERNAL_STORAGE_INFO";
case AtomId.ATOM_GPU_STATS_GLOBAL_INFO: return "ATOM_GPU_STATS_GLOBAL_INFO";
case AtomId.ATOM_GPU_STATS_APP_INFO: return "ATOM_GPU_STATS_APP_INFO";
case AtomId.ATOM_SYSTEM_ION_HEAP_SIZE: return "ATOM_SYSTEM_ION_HEAP_SIZE";
case AtomId.ATOM_APPS_ON_EXTERNAL_STORAGE_INFO: return "ATOM_APPS_ON_EXTERNAL_STORAGE_INFO";
case AtomId.ATOM_FACE_SETTINGS: return "ATOM_FACE_SETTINGS";
case AtomId.ATOM_COOLING_DEVICE: return "ATOM_COOLING_DEVICE";
case AtomId.ATOM_APP_OPS: return "ATOM_APP_OPS";
case AtomId.ATOM_PROCESS_SYSTEM_ION_HEAP_SIZE: return "ATOM_PROCESS_SYSTEM_ION_HEAP_SIZE";
case AtomId.ATOM_SURFACEFLINGER_STATS_GLOBAL_INFO: return "ATOM_SURFACEFLINGER_STATS_GLOBAL_INFO";
case AtomId.ATOM_SURFACEFLINGER_STATS_LAYER_INFO: return "ATOM_SURFACEFLINGER_STATS_LAYER_INFO";
case AtomId.ATOM_PROCESS_MEMORY_SNAPSHOT: return "ATOM_PROCESS_MEMORY_SNAPSHOT";
case AtomId.ATOM_VMS_CLIENT_STATS: return "ATOM_VMS_CLIENT_STATS";
case AtomId.ATOM_NOTIFICATION_REMOTE_VIEWS: return "ATOM_NOTIFICATION_REMOTE_VIEWS";
case AtomId.ATOM_DANGEROUS_PERMISSION_STATE_SAMPLED: return "ATOM_DANGEROUS_PERMISSION_STATE_SAMPLED";
case AtomId.ATOM_GRAPHICS_STATS: return "ATOM_GRAPHICS_STATS";
case AtomId.ATOM_RUNTIME_APP_OP_ACCESS: return "ATOM_RUNTIME_APP_OP_ACCESS";
case AtomId.ATOM_ION_HEAP_SIZE: return "ATOM_ION_HEAP_SIZE";
case AtomId.ATOM_PACKAGE_NOTIFICATION_PREFERENCES: return "ATOM_PACKAGE_NOTIFICATION_PREFERENCES";
case AtomId.ATOM_PACKAGE_NOTIFICATION_CHANNEL_PREFERENCES: return "ATOM_PACKAGE_NOTIFICATION_CHANNEL_PREFERENCES";
case AtomId.ATOM_PACKAGE_NOTIFICATION_CHANNEL_GROUP_PREFERENCES: return "ATOM_PACKAGE_NOTIFICATION_CHANNEL_GROUP_PREFERENCES";
case AtomId.ATOM_GNSS_STATS: return "ATOM_GNSS_STATS";
case AtomId.ATOM_ATTRIBUTED_APP_OPS: return "ATOM_ATTRIBUTED_APP_OPS";
case AtomId.ATOM_VOICE_CALL_SESSION: return "ATOM_VOICE_CALL_SESSION";
case AtomId.ATOM_VOICE_CALL_RAT_USAGE: return "ATOM_VOICE_CALL_RAT_USAGE";
case AtomId.ATOM_SIM_SLOT_STATE: return "ATOM_SIM_SLOT_STATE";
case AtomId.ATOM_SUPPORTED_RADIO_ACCESS_FAMILY: return "ATOM_SUPPORTED_RADIO_ACCESS_FAMILY";
case AtomId.ATOM_SETTING_SNAPSHOT: return "ATOM_SETTING_SNAPSHOT";
case AtomId.ATOM_BLOB_INFO: return "ATOM_BLOB_INFO";
case AtomId.ATOM_DATA_USAGE_BYTES_TRANSFER: return "ATOM_DATA_USAGE_BYTES_TRANSFER";
case AtomId.ATOM_BYTES_TRANSFER_BY_TAG_AND_METERED: return "ATOM_BYTES_TRANSFER_BY_TAG_AND_METERED";
case AtomId.ATOM_DND_MODE_RULE: return "ATOM_DND_MODE_RULE";
case AtomId.ATOM_GENERAL_EXTERNAL_STORAGE_ACCESS_STATS: return "ATOM_GENERAL_EXTERNAL_STORAGE_ACCESS_STATS";
case AtomId.ATOM_INCOMING_SMS: return "ATOM_INCOMING_SMS";
case AtomId.ATOM_OUTGOING_SMS: return "ATOM_OUTGOING_SMS";
case AtomId.ATOM_CARRIER_ID_TABLE_VERSION: return "ATOM_CARRIER_ID_TABLE_VERSION";
case AtomId.ATOM_DATA_CALL_SESSION: return "ATOM_DATA_CALL_SESSION";
case AtomId.ATOM_CELLULAR_SERVICE_STATE: return "ATOM_CELLULAR_SERVICE_STATE";
case AtomId.ATOM_CELLULAR_DATA_SERVICE_SWITCH: return "ATOM_CELLULAR_DATA_SERVICE_SWITCH";
case AtomId.ATOM_SYSTEM_MEMORY: return "ATOM_SYSTEM_MEMORY";
case AtomId.ATOM_IMS_REGISTRATION_TERMINATION: return "ATOM_IMS_REGISTRATION_TERMINATION";
case AtomId.ATOM_IMS_REGISTRATION_STATS: return "ATOM_IMS_REGISTRATION_STATS";
case AtomId.ATOM_CPU_TIME_PER_CLUSTER_FREQ: return "ATOM_CPU_TIME_PER_CLUSTER_FREQ";
case AtomId.ATOM_CPU_CYCLES_PER_UID_CLUSTER: return "ATOM_CPU_CYCLES_PER_UID_CLUSTER";
case AtomId.ATOM_DEVICE_ROTATED_DATA: return "ATOM_DEVICE_ROTATED_DATA";
case AtomId.ATOM_CPU_CYCLES_PER_THREAD_GROUP_CLUSTER: return "ATOM_CPU_CYCLES_PER_THREAD_GROUP_CLUSTER";
case AtomId.ATOM_MEDIA_DRM_ACTIVITY_INFO: return "ATOM_MEDIA_DRM_ACTIVITY_INFO";
case AtomId.ATOM_OEM_MANAGED_BYTES_TRANSFER: return "ATOM_OEM_MANAGED_BYTES_TRANSFER";
case AtomId.ATOM_GNSS_POWER_STATS: return "ATOM_GNSS_POWER_STATS";
case AtomId.ATOM_TIME_ZONE_DETECTOR_STATE: return "ATOM_TIME_ZONE_DETECTOR_STATE";
case AtomId.ATOM_KEYSTORE2_STORAGE_STATS: return "ATOM_KEYSTORE2_STORAGE_STATS";
case AtomId.ATOM_RKP_POOL_STATS: return "ATOM_RKP_POOL_STATS";
case AtomId.ATOM_PROCESS_DMABUF_MEMORY: return "ATOM_PROCESS_DMABUF_MEMORY";
case AtomId.ATOM_PENDING_ALARM_INFO: return "ATOM_PENDING_ALARM_INFO";
case AtomId.ATOM_USER_LEVEL_HIBERNATED_APPS: return "ATOM_USER_LEVEL_HIBERNATED_APPS";
case AtomId.ATOM_LAUNCHER_LAYOUT_SNAPSHOT: return "ATOM_LAUNCHER_LAYOUT_SNAPSHOT";
case AtomId.ATOM_GLOBAL_HIBERNATED_APPS: return "ATOM_GLOBAL_HIBERNATED_APPS";
case AtomId.ATOM_INPUT_EVENT_LATENCY_SKETCH: return "ATOM_INPUT_EVENT_LATENCY_SKETCH";
case AtomId.ATOM_BATTERY_USAGE_STATS_BEFORE_RESET: return "ATOM_BATTERY_USAGE_STATS_BEFORE_RESET";
case AtomId.ATOM_BATTERY_USAGE_STATS_SINCE_RESET: return "ATOM_BATTERY_USAGE_STATS_SINCE_RESET";
case AtomId.ATOM_BATTERY_USAGE_STATS_SINCE_RESET_USING_POWER_PROFILE_MODEL: return "ATOM_BATTERY_USAGE_STATS_SINCE_RESET_USING_POWER_PROFILE_MODEL";
case AtomId.ATOM_INSTALLED_INCREMENTAL_PACKAGE: return "ATOM_INSTALLED_INCREMENTAL_PACKAGE";
case AtomId.ATOM_TELEPHONY_NETWORK_REQUESTS: return "ATOM_TELEPHONY_NETWORK_REQUESTS";
case AtomId.ATOM_APP_SEARCH_STORAGE_INFO: return "ATOM_APP_SEARCH_STORAGE_INFO";
case AtomId.ATOM_VMSTAT: return "ATOM_VMSTAT";
case AtomId.ATOM_KEYSTORE2_KEY_CREATION_WITH_GENERAL_INFO: return "ATOM_KEYSTORE2_KEY_CREATION_WITH_GENERAL_INFO";
case AtomId.ATOM_KEYSTORE2_KEY_CREATION_WITH_AUTH_INFO: return "ATOM_KEYSTORE2_KEY_CREATION_WITH_AUTH_INFO";
case AtomId.ATOM_KEYSTORE2_KEY_CREATION_WITH_PURPOSE_AND_MODES_INFO: return "ATOM_KEYSTORE2_KEY_CREATION_WITH_PURPOSE_AND_MODES_INFO";
case AtomId.ATOM_KEYSTORE2_ATOM_WITH_OVERFLOW: return "ATOM_KEYSTORE2_ATOM_WITH_OVERFLOW";
case AtomId.ATOM_KEYSTORE2_KEY_OPERATION_WITH_PURPOSE_AND_MODES_INFO: return "ATOM_KEYSTORE2_KEY_OPERATION_WITH_PURPOSE_AND_MODES_INFO";
case AtomId.ATOM_KEYSTORE2_KEY_OPERATION_WITH_GENERAL_INFO: return "ATOM_KEYSTORE2_KEY_OPERATION_WITH_GENERAL_INFO";
case AtomId.ATOM_RKP_ERROR_STATS: return "ATOM_RKP_ERROR_STATS";
case AtomId.ATOM_KEYSTORE2_CRASH_STATS: return "ATOM_KEYSTORE2_CRASH_STATS";
case AtomId.ATOM_VENDOR_APEX_INFO: return "ATOM_VENDOR_APEX_INFO";
case AtomId.ATOM_ACCESSIBILITY_SHORTCUT_STATS: return "ATOM_ACCESSIBILITY_SHORTCUT_STATS";
case AtomId.ATOM_ACCESSIBILITY_FLOATING_MENU_STATS: return "ATOM_ACCESSIBILITY_FLOATING_MENU_STATS";
case AtomId.ATOM_DATA_USAGE_BYTES_TRANSFER_V2: return "ATOM_DATA_USAGE_BYTES_TRANSFER_V2";
case AtomId.ATOM_MEDIA_CAPABILITIES: return "ATOM_MEDIA_CAPABILITIES";
case AtomId.ATOM_CAR_WATCHDOG_SYSTEM_IO_USAGE_SUMMARY: return "ATOM_CAR_WATCHDOG_SYSTEM_IO_USAGE_SUMMARY";
case AtomId.ATOM_CAR_WATCHDOG_UID_IO_USAGE_SUMMARY: return "ATOM_CAR_WATCHDOG_UID_IO_USAGE_SUMMARY";
case AtomId.ATOM_IMS_REGISTRATION_FEATURE_TAG_STATS: return "ATOM_IMS_REGISTRATION_FEATURE_TAG_STATS";
case AtomId.ATOM_RCS_CLIENT_PROVISIONING_STATS: return "ATOM_RCS_CLIENT_PROVISIONING_STATS";
case AtomId.ATOM_RCS_ACS_PROVISIONING_STATS: return "ATOM_RCS_ACS_PROVISIONING_STATS";
case AtomId.ATOM_SIP_DELEGATE_STATS: return "ATOM_SIP_DELEGATE_STATS";
case AtomId.ATOM_SIP_TRANSPORT_FEATURE_TAG_STATS: return "ATOM_SIP_TRANSPORT_FEATURE_TAG_STATS";
case AtomId.ATOM_SIP_MESSAGE_RESPONSE: return "ATOM_SIP_MESSAGE_RESPONSE";
case AtomId.ATOM_SIP_TRANSPORT_SESSION: return "ATOM_SIP_TRANSPORT_SESSION";
case AtomId.ATOM_IMS_DEDICATED_BEARER_LISTENER_EVENT: return "ATOM_IMS_DEDICATED_BEARER_LISTENER_EVENT";
case AtomId.ATOM_IMS_DEDICATED_BEARER_EVENT: return "ATOM_IMS_DEDICATED_BEARER_EVENT";
case AtomId.ATOM_IMS_REGISTRATION_SERVICE_DESC_STATS: return "ATOM_IMS_REGISTRATION_SERVICE_DESC_STATS";
case AtomId.ATOM_UCE_EVENT_STATS: return "ATOM_UCE_EVENT_STATS";
case AtomId.ATOM_PRESENCE_NOTIFY_EVENT: return "ATOM_PRESENCE_NOTIFY_EVENT";
case AtomId.ATOM_GBA_EVENT: return "ATOM_GBA_EVENT";
case AtomId.ATOM_PER_SIM_STATUS: return "ATOM_PER_SIM_STATUS";
case AtomId.ATOM_GPU_WORK_PER_UID: return "ATOM_GPU_WORK_PER_UID";
case AtomId.ATOM_PERSISTENT_URI_PERMISSIONS_AMOUNT_PER_PACKAGE: return "ATOM_PERSISTENT_URI_PERMISSIONS_AMOUNT_PER_PACKAGE";
case AtomId.ATOM_SIGNED_PARTITION_INFO: return "ATOM_SIGNED_PARTITION_INFO";
case AtomId.ATOM_PINNED_FILE_SIZES_PER_PACKAGE: return "ATOM_PINNED_FILE_SIZES_PER_PACKAGE";
case AtomId.ATOM_PENDING_INTENTS_PER_PACKAGE: return "ATOM_PENDING_INTENTS_PER_PACKAGE";
case AtomId.ATOM_USER_INFO: return "ATOM_USER_INFO";
case AtomId.ATOM_TELEPHONY_NETWORK_REQUESTS_V2: return "ATOM_TELEPHONY_NETWORK_REQUESTS_V2";
case AtomId.ATOM_DEVICE_TELEPHONY_PROPERTIES: return "ATOM_DEVICE_TELEPHONY_PROPERTIES";
case AtomId.ATOM_REMOTE_KEY_PROVISIONING_ERROR_COUNTS: return "ATOM_REMOTE_KEY_PROVISIONING_ERROR_COUNTS";
case AtomId.ATOM_SAFETY_STATE: return "ATOM_SAFETY_STATE";
case AtomId.ATOM_INCOMING_MMS: return "ATOM_INCOMING_MMS";
case AtomId.ATOM_OUTGOING_MMS: return "ATOM_OUTGOING_MMS";
case AtomId.ATOM_MULTI_USER_INFO: return "ATOM_MULTI_USER_INFO";
case AtomId.ATOM_NETWORK_BPF_MAP_INFO: return "ATOM_NETWORK_BPF_MAP_INFO";
case AtomId.ATOM_OUTGOING_SHORT_CODE_SMS: return "ATOM_OUTGOING_SHORT_CODE_SMS";
case AtomId.ATOM_CONNECTIVITY_STATE_SAMPLE: return "ATOM_CONNECTIVITY_STATE_SAMPLE";
case AtomId.ATOM_NETWORK_SELECTION_REMATCH_REASONS_INFO: return "ATOM_NETWORK_SELECTION_REMATCH_REASONS_INFO";
case AtomId.ATOM_GAME_MODE_INFO: return "ATOM_GAME_MODE_INFO";
case AtomId.ATOM_GAME_MODE_CONFIGURATION: return "ATOM_GAME_MODE_CONFIGURATION";
case AtomId.ATOM_GAME_MODE_LISTENER: return "ATOM_GAME_MODE_LISTENER";
case AtomId.ATOM_NETWORK_SLICE_REQUEST_COUNT: return "ATOM_NETWORK_SLICE_REQUEST_COUNT";
case AtomId.ATOM_WS_TILE_SNAPSHOT: return "ATOM_WS_TILE_SNAPSHOT";
case AtomId.ATOM_WS_ACTIVE_WATCH_FACE_COMPLICATION_SET_SNAPSHOT: return "ATOM_WS_ACTIVE_WATCH_FACE_COMPLICATION_SET_SNAPSHOT";
case AtomId.ATOM_PROCESS_STATE: return "ATOM_PROCESS_STATE";
case AtomId.ATOM_PROCESS_ASSOCIATION: return "ATOM_PROCESS_ASSOCIATION";
case AtomId.ATOM_ADPF_SYSTEM_COMPONENT_INFO: return "ATOM_ADPF_SYSTEM_COMPONENT_INFO";
case AtomId.ATOM_NOTIFICATION_MEMORY_USE: return "ATOM_NOTIFICATION_MEMORY_USE";
case AtomId.ATOM_HDR_CAPABILITIES: return "ATOM_HDR_CAPABILITIES";
case AtomId.ATOM_WS_FAVOURITE_WATCH_FACE_LIST_SNAPSHOT: return "ATOM_WS_FAVOURITE_WATCH_FACE_LIST_SNAPSHOT";
case AtomId.ATOM_ACCESSIBILITY_CHECK_RESULT_REPORTED: return "ATOM_ACCESSIBILITY_CHECK_RESULT_REPORTED";
case AtomId.ATOM_ADAPTIVE_AUTH_UNLOCK_AFTER_LOCK_REPORTED: return "ATOM_ADAPTIVE_AUTH_UNLOCK_AFTER_LOCK_REPORTED";
case AtomId.ATOM_THERMAL_STATUS_CALLED: return "ATOM_THERMAL_STATUS_CALLED";
case AtomId.ATOM_THERMAL_HEADROOM_CALLED: return "ATOM_THERMAL_HEADROOM_CALLED";
case AtomId.ATOM_THERMAL_HEADROOM_THRESHOLDS_CALLED: return "ATOM_THERMAL_HEADROOM_THRESHOLDS_CALLED";
case AtomId.ATOM_ADPF_HINT_SESSION_TID_CLEANUP: return "ATOM_ADPF_HINT_SESSION_TID_CLEANUP";
case AtomId.ATOM_THERMAL_HEADROOM_THRESHOLDS: return "ATOM_THERMAL_HEADROOM_THRESHOLDS";
case AtomId.ATOM_ADPF_SESSION_SNAPSHOT: return "ATOM_ADPF_SESSION_SNAPSHOT";
case AtomId.ATOM_JSSCRIPTENGINE_LATENCY_REPORTED: return "ATOM_JSSCRIPTENGINE_LATENCY_REPORTED";
case AtomId.ATOM_AD_SERVICES_API_CALLED: return "ATOM_AD_SERVICES_API_CALLED";
case AtomId.ATOM_AD_SERVICES_MESUREMENT_REPORTS_UPLOADED: return "ATOM_AD_SERVICES_MESUREMENT_REPORTS_UPLOADED";
case AtomId.ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STATUS_REPORTED: return "ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STATUS_REPORTED";
case AtomId.ATOM_MOBILE_DATA_DOWNLOAD_DOWNLOAD_RESULT_REPORTED: return "ATOM_MOBILE_DATA_DOWNLOAD_DOWNLOAD_RESULT_REPORTED";
case AtomId.ATOM_AD_SERVICES_SETTINGS_USAGE_REPORTED: return "ATOM_AD_SERVICES_SETTINGS_USAGE_REPORTED";
case AtomId.ATOM_BACKGROUND_FETCH_PROCESS_REPORTED: return "ATOM_BACKGROUND_FETCH_PROCESS_REPORTED";
case AtomId.ATOM_UPDATE_CUSTOM_AUDIENCE_PROCESS_REPORTED: return "ATOM_UPDATE_CUSTOM_AUDIENCE_PROCESS_REPORTED";
case AtomId.ATOM_RUN_AD_BIDDING_PROCESS_REPORTED: return "ATOM_RUN_AD_BIDDING_PROCESS_REPORTED";
case AtomId.ATOM_RUN_AD_SCORING_PROCESS_REPORTED: return "ATOM_RUN_AD_SCORING_PROCESS_REPORTED";
case AtomId.ATOM_RUN_AD_SELECTION_PROCESS_REPORTED: return "ATOM_RUN_AD_SELECTION_PROCESS_REPORTED";
case AtomId.ATOM_RUN_AD_BIDDING_PER_CA_PROCESS_REPORTED: return "ATOM_RUN_AD_BIDDING_PER_CA_PROCESS_REPORTED";
case AtomId.ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STORAGE_STATS_REPORTED: return "ATOM_MOBILE_DATA_DOWNLOAD_FILE_GROUP_STORAGE_STATS_REPORTED";
case AtomId.ATOM_AD_SERVICES_MEASUREMENT_REGISTRATIONS: return "ATOM_AD_SERVICES_MEASUREMENT_REGISTRATIONS";
case AtomId.ATOM_AD_SERVICES_GET_TOPICS_REPORTED: return "ATOM_AD_SERVICES_GET_TOPICS_REPORTED";
case AtomId.ATOM_AD_SERVICES_EPOCH_COMPUTATION_GET_TOP_TOPICS_REPORTED: return "ATOM_AD_SERVICES_EPOCH_COMPUTATION_GET_TOP_TOPICS_REPORTED";
case AtomId.ATOM_AD_SERVICES_EPOCH_COMPUTATION_CLASSIFIER_REPORTED: return "ATOM_AD_SERVICES_EPOCH_COMPUTATION_CLASSIFIER_REPORTED";
case AtomId.ATOM_AD_SERVICES_BACK_COMPAT_GET_TOPICS_REPORTED: return "ATOM_AD_SERVICES_BACK_COMPAT_GET_TOPICS_REPORTED";
case AtomId.ATOM_AD_SERVICES_BACK_COMPAT_EPOCH_COMPUTATION_CLASSIFIER_REPORTED: return "ATOM_AD_SERVICES_BACK_COMPAT_EPOCH_COMPUTATION_CLASSIFIER_REPORTED";
case AtomId.ATOM_AD_SERVICES_MEASUREMENT_DEBUG_KEYS: return "ATOM_AD_SERVICES_MEASUREMENT_DEBUG_KEYS";
case AtomId.ATOM_AD_SERVICES_ERROR_REPORTED: return "ATOM_AD_SERVICES_ERROR_REPORTED";
case AtomId.ATOM_AD_SERVICES_BACKGROUND_JOBS_EXECUTION_REPORTED: return "ATOM_AD_SERVICES_BACKGROUND_JOBS_EXECUTION_REPORTED";
case AtomId.ATOM_AD_SERVICES_MEASUREMENT_DELAYED_SOURCE_REGISTRATION: return "ATOM_AD_SERVICES_MEASUREMENT_DELAYED_SOURCE_REGISTRATION";
case AtomId.ATOM_AD_SERVICES_MEASUREMENT_ATTRIBUTION: return "ATOM_AD_SERVICES_MEASUREMENT_ATTRIBUTION";
case AtomId.ATOM_AD_SERVICES_MEASUREMENT_JOBS: return "ATOM_AD_SERVICES_MEASUREMENT_JOBS";
case AtomId.ATOM_AD_SERVICES_MEASUREMENT_WIPEOUT: return "ATOM_AD_SERVICES_MEASUREMENT_WIPEOUT";
case AtomId.ATOM_AD_SERVICES_MEASUREMENT_AD_ID_MATCH_FOR_DEBUG_KEYS: return "ATOM_AD_SERVICES_MEASUREMENT_AD_ID_MATCH_FOR_DEBUG_KEYS";
case AtomId.ATOM_AD_SERVICES_ENROLLMENT_DATA_STORED: return "ATOM_AD_SERVICES_ENROLLMENT_DATA_STORED";
case AtomId.ATOM_AD_SERVICES_ENROLLMENT_FILE_DOWNLOADED: return "ATOM_AD_SERVICES_ENROLLMENT_FILE_DOWNLOADED";
case AtomId.ATOM_AD_SERVICES_ENROLLMENT_MATCHED: return "ATOM_AD_SERVICES_ENROLLMENT_MATCHED";
case AtomId.ATOM_AD_SERVICES_CONSENT_MIGRATED: return "ATOM_AD_SERVICES_CONSENT_MIGRATED";
case AtomId.ATOM_AD_SERVICES_ENROLLMENT_FAILED: return "ATOM_AD_SERVICES_ENROLLMENT_FAILED";
case AtomId.ATOM_AD_SERVICES_MEASUREMENT_CLICK_VERIFICATION: return "ATOM_AD_SERVICES_MEASUREMENT_CLICK_VERIFICATION";
case AtomId.ATOM_AD_SERVICES_ENCRYPTION_KEY_FETCHED: return "ATOM_AD_SERVICES_ENCRYPTION_KEY_FETCHED";
case AtomId.ATOM_AD_SERVICES_ENCRYPTION_KEY_DB_TRANSACTION_ENDED: return "ATOM_AD_SERVICES_ENCRYPTION_KEY_DB_TRANSACTION_ENDED";
case AtomId.ATOM_DESTINATION_REGISTERED_BEACONS: return "ATOM_DESTINATION_REGISTERED_BEACONS";
case AtomId.ATOM_REPORT_INTERACTION_API_CALLED: return "ATOM_REPORT_INTERACTION_API_CALLED";
case AtomId.ATOM_INTERACTION_REPORTING_TABLE_CLEARED: return "ATOM_INTERACTION_REPORTING_TABLE_CLEARED";
case AtomId.ATOM_APP_MANIFEST_CONFIG_HELPER_CALLED: return "ATOM_APP_MANIFEST_CONFIG_HELPER_CALLED";
case AtomId.ATOM_AD_FILTERING_PROCESS_JOIN_CA_REPORTED: return "ATOM_AD_FILTERING_PROCESS_JOIN_CA_REPORTED";
case AtomId.ATOM_AD_FILTERING_PROCESS_AD_SELECTION_REPORTED: return "ATOM_AD_FILTERING_PROCESS_AD_SELECTION_REPORTED";
case AtomId.ATOM_AD_COUNTER_HISTOGRAM_UPDATER_REPORTED: return "ATOM_AD_COUNTER_HISTOGRAM_UPDATER_REPORTED";
case AtomId.ATOM_SIGNATURE_VERIFICATION: return "ATOM_SIGNATURE_VERIFICATION";
case AtomId.ATOM_K_ANON_IMMEDIATE_SIGN_JOIN_STATUS_REPORTED: return "ATOM_K_ANON_IMMEDIATE_SIGN_JOIN_STATUS_REPORTED";
case AtomId.ATOM_K_ANON_BACKGROUND_JOB_STATUS_REPORTED: return "ATOM_K_ANON_BACKGROUND_JOB_STATUS_REPORTED";
case AtomId.ATOM_K_ANON_INITIALIZE_STATUS_REPORTED: return "ATOM_K_ANON_INITIALIZE_STATUS_REPORTED";
case AtomId.ATOM_K_ANON_SIGN_STATUS_REPORTED: return "ATOM_K_ANON_SIGN_STATUS_REPORTED";
case AtomId.ATOM_K_ANON_JOIN_STATUS_REPORTED: return "ATOM_K_ANON_JOIN_STATUS_REPORTED";
case AtomId.ATOM_K_ANON_KEY_ATTESTATION_STATUS_REPORTED: return "ATOM_K_ANON_KEY_ATTESTATION_STATUS_REPORTED";
case AtomId.ATOM_GET_AD_SELECTION_DATA_API_CALLED: return "ATOM_GET_AD_SELECTION_DATA_API_CALLED";
case AtomId.ATOM_GET_AD_SELECTION_DATA_BUYER_INPUT_GENERATED: return "ATOM_GET_AD_SELECTION_DATA_BUYER_INPUT_GENERATED";
case AtomId.ATOM_BACKGROUND_JOB_SCHEDULING_REPORTED: return "ATOM_BACKGROUND_JOB_SCHEDULING_REPORTED";
case AtomId.ATOM_TOPICS_ENCRYPTION_EPOCH_COMPUTATION_REPORTED: return "ATOM_TOPICS_ENCRYPTION_EPOCH_COMPUTATION_REPORTED";
case AtomId.ATOM_TOPICS_ENCRYPTION_GET_TOPICS_REPORTED: return "ATOM_TOPICS_ENCRYPTION_GET_TOPICS_REPORTED";
case AtomId.ATOM_ADSERVICES_SHELL_COMMAND_CALLED: return "ATOM_ADSERVICES_SHELL_COMMAND_CALLED";
case AtomId.ATOM_UPDATE_SIGNALS_API_CALLED: return "ATOM_UPDATE_SIGNALS_API_CALLED";
case AtomId.ATOM_ENCODING_JOB_RUN: return "ATOM_ENCODING_JOB_RUN";
case AtomId.ATOM_ENCODING_JS_FETCH: return "ATOM_ENCODING_JS_FETCH";
case AtomId.ATOM_ENCODING_JS_EXECUTION: return "ATOM_ENCODING_JS_EXECUTION";
case AtomId.ATOM_PERSIST_AD_SELECTION_RESULT_CALLED: return "ATOM_PERSIST_AD_SELECTION_RESULT_CALLED";
case AtomId.ATOM_SERVER_AUCTION_KEY_FETCH_CALLED: return "ATOM_SERVER_AUCTION_KEY_FETCH_CALLED";
case AtomId.ATOM_SERVER_AUCTION_BACKGROUND_KEY_FETCH_ENABLED: return "ATOM_SERVER_AUCTION_BACKGROUND_KEY_FETCH_ENABLED";
case AtomId.ATOM_AD_SERVICES_MEASUREMENT_PROCESS_ODP_REGISTRATION: return "ATOM_AD_SERVICES_MEASUREMENT_PROCESS_ODP_REGISTRATION";
case AtomId.ATOM_AD_SERVICES_MEASUREMENT_NOTIFY_REGISTRATION_TO_ODP: return "ATOM_AD_SERVICES_MEASUREMENT_NOTIFY_REGISTRATION_TO_ODP";
case AtomId.ATOM_SELECT_ADS_FROM_OUTCOMES_API_CALLED: return "ATOM_SELECT_ADS_FROM_OUTCOMES_API_CALLED";
case AtomId.ATOM_REPORT_IMPRESSION_API_CALLED: return "ATOM_REPORT_IMPRESSION_API_CALLED";
case AtomId.ATOM_AD_SERVICES_ENROLLMENT_TRANSACTION_STATS: return "ATOM_AD_SERVICES_ENROLLMENT_TRANSACTION_STATS";
case AtomId.ATOM_AD_SERVICES_COBALT_LOGGER_EVENT_REPORTED: return "ATOM_AD_SERVICES_COBALT_LOGGER_EVENT_REPORTED";
case AtomId.ATOM_AD_SERVICES_COBALT_PERIODIC_JOB_EVENT_REPORTED: return "ATOM_AD_SERVICES_COBALT_PERIODIC_JOB_EVENT_REPORTED";
case AtomId.ATOM_UPDATE_SIGNALS_PROCESS_REPORTED: return "ATOM_UPDATE_SIGNALS_PROCESS_REPORTED";
case AtomId.ATOM_TOPICS_SCHEDULE_EPOCH_JOB_SETTING_REPORTED: return "ATOM_TOPICS_SCHEDULE_EPOCH_JOB_SETTING_REPORTED";
case AtomId.ATOM_AI_WALLPAPERS_BUTTON_PRESSED: return "ATOM_AI_WALLPAPERS_BUTTON_PRESSED";
case AtomId.ATOM_AI_WALLPAPERS_TEMPLATE_SELECTED: return "ATOM_AI_WALLPAPERS_TEMPLATE_SELECTED";
case AtomId.ATOM_AI_WALLPAPERS_TERM_SELECTED: return "ATOM_AI_WALLPAPERS_TERM_SELECTED";
case AtomId.ATOM_AI_WALLPAPERS_WALLPAPER_SET: return "ATOM_AI_WALLPAPERS_WALLPAPER_SET";
case AtomId.ATOM_AI_WALLPAPERS_SESSION_SUMMARY: return "ATOM_AI_WALLPAPERS_SESSION_SUMMARY";
case AtomId.ATOM_APEX_INSTALLATION_REQUESTED: return "ATOM_APEX_INSTALLATION_REQUESTED";
case AtomId.ATOM_APEX_INSTALLATION_STAGED: return "ATOM_APEX_INSTALLATION_STAGED";
case AtomId.ATOM_APEX_INSTALLATION_ENDED: return "ATOM_APEX_INSTALLATION_ENDED";
case AtomId.ATOM_APP_SEARCH_SET_SCHEMA_STATS_REPORTED: return "ATOM_APP_SEARCH_SET_SCHEMA_STATS_REPORTED";
case AtomId.ATOM_APP_SEARCH_SCHEMA_MIGRATION_STATS_REPORTED: return "ATOM_APP_SEARCH_SCHEMA_MIGRATION_STATS_REPORTED";
case AtomId.ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_STATS_REPORTED: return "ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_STATS_REPORTED";
case AtomId.ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_RAW_QUERY_STATS_REPORTED: return "ATOM_APP_SEARCH_USAGE_SEARCH_INTENT_RAW_QUERY_STATS_REPORTED";
case AtomId.ATOM_APP_SEARCH_APPS_INDEXER_STATS_REPORTED: return "ATOM_APP_SEARCH_APPS_INDEXER_STATS_REPORTED";
case AtomId.ATOM_ART_DATUM_REPORTED: return "ATOM_ART_DATUM_REPORTED";
case AtomId.ATOM_ART_DEVICE_DATUM_REPORTED: return "ATOM_ART_DEVICE_DATUM_REPORTED";
case AtomId.ATOM_ART_DATUM_DELTA_REPORTED: return "ATOM_ART_DATUM_DELTA_REPORTED";
case AtomId.ATOM_ART_DEX2OAT_REPORTED: return "ATOM_ART_DEX2OAT_REPORTED";
case AtomId.ATOM_ART_DEVICE_STATUS: return "ATOM_ART_DEVICE_STATUS";
case AtomId.ATOM_BACKGROUND_DEXOPT_JOB_ENDED: return "ATOM_BACKGROUND_DEXOPT_JOB_ENDED";
case AtomId.ATOM_PREREBOOT_DEXOPT_JOB_ENDED: return "ATOM_PREREBOOT_DEXOPT_JOB_ENDED";
case AtomId.ATOM_ODREFRESH_REPORTED: return "ATOM_ODREFRESH_REPORTED";
case AtomId.ATOM_ODSIGN_REPORTED: return "ATOM_ODSIGN_REPORTED";
case AtomId.ATOM_AUTOFILL_UI_EVENT_REPORTED: return "ATOM_AUTOFILL_UI_EVENT_REPORTED";
case AtomId.ATOM_AUTOFILL_FILL_REQUEST_REPORTED: return "ATOM_AUTOFILL_FILL_REQUEST_REPORTED";
case AtomId.ATOM_AUTOFILL_FILL_RESPONSE_REPORTED: return "ATOM_AUTOFILL_FILL_RESPONSE_REPORTED";
case AtomId.ATOM_AUTOFILL_SAVE_EVENT_REPORTED: return "ATOM_AUTOFILL_SAVE_EVENT_REPORTED";
case AtomId.ATOM_AUTOFILL_SESSION_COMMITTED: return "ATOM_AUTOFILL_SESSION_COMMITTED";
case AtomId.ATOM_AUTOFILL_FIELD_CLASSIFICATION_EVENT_REPORTED: return "ATOM_AUTOFILL_FIELD_CLASSIFICATION_EVENT_REPORTED";
case AtomId.ATOM_CAR_RECENTS_EVENT_REPORTED: return "ATOM_CAR_RECENTS_EVENT_REPORTED";
case AtomId.ATOM_CAR_CALM_MODE_EVENT_REPORTED: return "ATOM_CAR_CALM_MODE_EVENT_REPORTED";
case AtomId.ATOM_CAR_WAKEUP_FROM_SUSPEND_REPORTED: return "ATOM_CAR_WAKEUP_FROM_SUSPEND_REPORTED";
case AtomId.ATOM_PLUGIN_INITIALIZED: return "ATOM_PLUGIN_INITIALIZED";
case AtomId.ATOM_BLUETOOTH_HASHED_DEVICE_NAME_REPORTED: return "ATOM_BLUETOOTH_HASHED_DEVICE_NAME_REPORTED";
case AtomId.ATOM_BLUETOOTH_L2CAP_COC_CLIENT_CONNECTION: return "ATOM_BLUETOOTH_L2CAP_COC_CLIENT_CONNECTION";
case AtomId.ATOM_BLUETOOTH_L2CAP_COC_SERVER_CONNECTION: return "ATOM_BLUETOOTH_L2CAP_COC_SERVER_CONNECTION";
case AtomId.ATOM_BLUETOOTH_LE_SESSION_CONNECTED: return "ATOM_BLUETOOTH_LE_SESSION_CONNECTED";
case AtomId.ATOM_RESTRICTED_BLUETOOTH_DEVICE_NAME_REPORTED: return "ATOM_RESTRICTED_BLUETOOTH_DEVICE_NAME_REPORTED";
case AtomId.ATOM_BLUETOOTH_PROFILE_CONNECTION_ATTEMPTED: return "ATOM_BLUETOOTH_PROFILE_CONNECTION_ATTEMPTED";
case AtomId.ATOM_BLUETOOTH_CONTENT_PROFILE_ERROR_REPORTED: return "ATOM_BLUETOOTH_CONTENT_PROFILE_ERROR_REPORTED";
case AtomId.ATOM_BLUETOOTH_RFCOMM_CONNECTION_ATTEMPTED: return "ATOM_BLUETOOTH_RFCOMM_CONNECTION_ATTEMPTED";
case AtomId.ATOM_REMOTE_DEVICE_INFORMATION_WITH_METRIC_ID: return "ATOM_REMOTE_DEVICE_INFORMATION_WITH_METRIC_ID";
case AtomId.ATOM_LE_APP_SCAN_STATE_CHANGED: return "ATOM_LE_APP_SCAN_STATE_CHANGED";
case AtomId.ATOM_LE_RADIO_SCAN_STOPPED: return "ATOM_LE_RADIO_SCAN_STOPPED";
case AtomId.ATOM_LE_SCAN_RESULT_RECEIVED: return "ATOM_LE_SCAN_RESULT_RECEIVED";
case AtomId.ATOM_LE_SCAN_ABUSED: return "ATOM_LE_SCAN_ABUSED";
case AtomId.ATOM_LE_ADV_STATE_CHANGED: return "ATOM_LE_ADV_STATE_CHANGED";
case AtomId.ATOM_LE_ADV_ERROR_REPORTED: return "ATOM_LE_ADV_ERROR_REPORTED";
case AtomId.ATOM_A2DP_SESSION_REPORTED: return "ATOM_A2DP_SESSION_REPORTED";
case AtomId.ATOM_BLUETOOTH_CROSS_LAYER_EVENT_REPORTED: return "ATOM_BLUETOOTH_CROSS_LAYER_EVENT_REPORTED";
case AtomId.ATOM_BROADCAST_AUDIO_SESSION_REPORTED: return "ATOM_BROADCAST_AUDIO_SESSION_REPORTED";
case AtomId.ATOM_BROADCAST_AUDIO_SYNC_REPORTED: return "ATOM_BROADCAST_AUDIO_SYNC_REPORTED";
case AtomId.ATOM_BLUETOOTH_RFCOMM_CONNECTION_REPORTED_AT_CLOSE: return "ATOM_BLUETOOTH_RFCOMM_CONNECTION_REPORTED_AT_CLOSE";
case AtomId.ATOM_BLUETOOTH_LE_CONNECTION: return "ATOM_BLUETOOTH_LE_CONNECTION";
case AtomId.ATOM_BROADCAST_SENT: return "ATOM_BROADCAST_SENT";
case AtomId.ATOM_CAMERA_FEATURE_COMBINATION_QUERY_EVENT: return "ATOM_CAMERA_FEATURE_COMBINATION_QUERY_EVENT";
case AtomId.ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_STATE_CHANGED: return "ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_STATE_CHANGED";
case AtomId.ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_UPDATE_FAILED: return "ATOM_CERTIFICATE_TRANSPARENCY_LOG_LIST_UPDATE_FAILED";
case AtomId.ATOM_DAILY_KEEPALIVE_INFO_REPORTED: return "ATOM_DAILY_KEEPALIVE_INFO_REPORTED";
case AtomId.ATOM_NETWORK_REQUEST_STATE_CHANGED: return "ATOM_NETWORK_REQUEST_STATE_CHANGED";
case AtomId.ATOM_TETHERING_ACTIVE_SESSIONS_REPORTED: return "ATOM_TETHERING_ACTIVE_SESSIONS_REPORTED";
case AtomId.ATOM_NETWORK_STATS_RECORDER_FILE_OPERATED: return "ATOM_NETWORK_STATS_RECORDER_FILE_OPERATED";
case AtomId.ATOM_CORE_NETWORKING_TERRIBLE_ERROR_OCCURRED: return "ATOM_CORE_NETWORKING_TERRIBLE_ERROR_OCCURRED";
case AtomId.ATOM_APF_SESSION_INFO_REPORTED: return "ATOM_APF_SESSION_INFO_REPORTED";
case AtomId.ATOM_IP_CLIENT_RA_INFO_REPORTED: return "ATOM_IP_CLIENT_RA_INFO_REPORTED";
case AtomId.ATOM_VPN_CONNECTION_STATE_CHANGED: return "ATOM_VPN_CONNECTION_STATE_CHANGED";
case AtomId.ATOM_VPN_CONNECTION_REPORTED: return "ATOM_VPN_CONNECTION_REPORTED";
case AtomId.ATOM_CPU_POLICY: return "ATOM_CPU_POLICY";
case AtomId.ATOM_CREDENTIAL_MANAGER_API_CALLED: return "ATOM_CREDENTIAL_MANAGER_API_CALLED";
case AtomId.ATOM_CREDENTIAL_MANAGER_INIT_PHASE_REPORTED: return "ATOM_CREDENTIAL_MANAGER_INIT_PHASE_REPORTED";
case AtomId.ATOM_CREDENTIAL_MANAGER_CANDIDATE_PHASE_REPORTED: return "ATOM_CREDENTIAL_MANAGER_CANDIDATE_PHASE_REPORTED";
case AtomId.ATOM_CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED: return "ATOM_CREDENTIAL_MANAGER_FINAL_PHASE_REPORTED";
case AtomId.ATOM_CREDENTIAL_MANAGER_TOTAL_REPORTED: return "ATOM_CREDENTIAL_MANAGER_TOTAL_REPORTED";
case AtomId.ATOM_CREDENTIAL_MANAGER_FINALNOUID_REPORTED: return "ATOM_CREDENTIAL_MANAGER_FINALNOUID_REPORTED";
case AtomId.ATOM_CREDENTIAL_MANAGER_GET_REPORTED: return "ATOM_CREDENTIAL_MANAGER_GET_REPORTED";
case AtomId.ATOM_CREDENTIAL_MANAGER_AUTH_CLICK_REPORTED: return "ATOM_CREDENTIAL_MANAGER_AUTH_CLICK_REPORTED";
case AtomId.ATOM_CREDENTIAL_MANAGER_APIV2_CALLED: return "ATOM_CREDENTIAL_MANAGER_APIV2_CALLED";
case AtomId.ATOM_CRONET_ENGINE_CREATED: return "ATOM_CRONET_ENGINE_CREATED";
case AtomId.ATOM_CRONET_TRAFFIC_REPORTED: return "ATOM_CRONET_TRAFFIC_REPORTED";
case AtomId.ATOM_CRONET_ENGINE_BUILDER_INITIALIZED: return "ATOM_CRONET_ENGINE_BUILDER_INITIALIZED";
case AtomId.ATOM_CRONET_HTTP_FLAGS_INITIALIZED: return "ATOM_CRONET_HTTP_FLAGS_INITIALIZED";
case AtomId.ATOM_CRONET_INITIALIZED: return "ATOM_CRONET_INITIALIZED";
case AtomId.ATOM_DESKTOP_MODE_UI_CHANGED: return "ATOM_DESKTOP_MODE_UI_CHANGED";
case AtomId.ATOM_DESKTOP_MODE_SESSION_TASK_UPDATE: return "ATOM_DESKTOP_MODE_SESSION_TASK_UPDATE";
case AtomId.ATOM_DESKTOP_MODE_TASK_SIZE_UPDATED: return "ATOM_DESKTOP_MODE_TASK_SIZE_UPDATED";
case AtomId.ATOM_DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED: return "ATOM_DEVICE_LOCK_CHECK_IN_REQUEST_REPORTED";
case AtomId.ATOM_DEVICE_LOCK_PROVISIONING_COMPLETE_REPORTED: return "ATOM_DEVICE_LOCK_PROVISIONING_COMPLETE_REPORTED";
case AtomId.ATOM_DEVICE_LOCK_KIOSK_APP_REQUEST_REPORTED: return "ATOM_DEVICE_LOCK_KIOSK_APP_REQUEST_REPORTED";
case AtomId.ATOM_DEVICE_LOCK_CHECK_IN_RETRY_REPORTED: return "ATOM_DEVICE_LOCK_CHECK_IN_RETRY_REPORTED";
case AtomId.ATOM_DEVICE_LOCK_PROVISION_FAILURE_REPORTED: return "ATOM_DEVICE_LOCK_PROVISION_FAILURE_REPORTED";
case AtomId.ATOM_DEVICE_LOCK_LOCK_UNLOCK_DEVICE_FAILURE_REPORTED: return "ATOM_DEVICE_LOCK_LOCK_UNLOCK_DEVICE_FAILURE_REPORTED";
case AtomId.ATOM_DEVICE_POLICY_MANAGEMENT_MODE: return "ATOM_DEVICE_POLICY_MANAGEMENT_MODE";
case AtomId.ATOM_DEVICE_POLICY_STATE: return "ATOM_DEVICE_POLICY_STATE";
case AtomId.ATOM_DISPLAY_MODE_DIRECTOR_VOTE_CHANGED: return "ATOM_DISPLAY_MODE_DIRECTOR_VOTE_CHANGED";
case AtomId.ATOM_EXTERNAL_DISPLAY_STATE_CHANGED: return "ATOM_EXTERNAL_DISPLAY_STATE_CHANGED";
case AtomId.ATOM_DND_STATE_CHANGED: return "ATOM_DND_STATE_CHANGED";
case AtomId.ATOM_DREAM_SETTING_CHANGED: return "ATOM_DREAM_SETTING_CHANGED";
case AtomId.ATOM_DREAM_SETTING_SNAPSHOT: return "ATOM_DREAM_SETTING_SNAPSHOT";
case AtomId.ATOM_EXPRESS_EVENT_REPORTED: return "ATOM_EXPRESS_EVENT_REPORTED";
case AtomId.ATOM_EXPRESS_HISTOGRAM_SAMPLE_REPORTED: return "ATOM_EXPRESS_HISTOGRAM_SAMPLE_REPORTED";
case AtomId.ATOM_EXPRESS_UID_EVENT_REPORTED: return "ATOM_EXPRESS_UID_EVENT_REPORTED";
case AtomId.ATOM_EXPRESS_UID_HISTOGRAM_SAMPLE_REPORTED: return "ATOM_EXPRESS_UID_HISTOGRAM_SAMPLE_REPORTED";
case AtomId.ATOM_FEDERATED_COMPUTE_API_CALLED: return "ATOM_FEDERATED_COMPUTE_API_CALLED";
case AtomId.ATOM_FEDERATED_COMPUTE_TRAINING_EVENT_REPORTED: return "ATOM_FEDERATED_COMPUTE_TRAINING_EVENT_REPORTED";
case AtomId.ATOM_EXAMPLE_ITERATOR_NEXT_LATENCY_REPORTED: return "ATOM_EXAMPLE_ITERATOR_NEXT_LATENCY_REPORTED";
case AtomId.ATOM_FULL_SCREEN_INTENT_LAUNCHED: return "ATOM_FULL_SCREEN_INTENT_LAUNCHED";
case AtomId.ATOM_BAL_ALLOWED: return "ATOM_BAL_ALLOWED";
case AtomId.ATOM_IN_TASK_ACTIVITY_STARTED: return "ATOM_IN_TASK_ACTIVITY_STARTED";
case AtomId.ATOM_DEVICE_ORIENTATION_CHANGED: return "ATOM_DEVICE_ORIENTATION_CHANGED";
case AtomId.ATOM_CACHED_APPS_HIGH_WATERMARK: return "ATOM_CACHED_APPS_HIGH_WATERMARK";
case AtomId.ATOM_STYLUS_PREDICTION_METRICS_REPORTED: return "ATOM_STYLUS_PREDICTION_METRICS_REPORTED";
case AtomId.ATOM_USER_RISK_EVENT_REPORTED: return "ATOM_USER_RISK_EVENT_REPORTED";
case AtomId.ATOM_MEDIA_PROJECTION_STATE_CHANGED: return "ATOM_MEDIA_PROJECTION_STATE_CHANGED";
case AtomId.ATOM_MEDIA_PROJECTION_TARGET_CHANGED: return "ATOM_MEDIA_PROJECTION_TARGET_CHANGED";
case AtomId.ATOM_EXCESSIVE_BINDER_PROXY_COUNT_REPORTED: return "ATOM_EXCESSIVE_BINDER_PROXY_COUNT_REPORTED";
case AtomId.ATOM_PROXY_BYTES_TRANSFER_BY_FG_BG: return "ATOM_PROXY_BYTES_TRANSFER_BY_FG_BG";
case AtomId.ATOM_MOBILE_BYTES_TRANSFER_BY_PROC_STATE: return "ATOM_MOBILE_BYTES_TRANSFER_BY_PROC_STATE";
case AtomId.ATOM_BIOMETRIC_FRR_NOTIFICATION: return "ATOM_BIOMETRIC_FRR_NOTIFICATION";
case AtomId.ATOM_SENSITIVE_CONTENT_MEDIA_PROJECTION_SESSION: return "ATOM_SENSITIVE_CONTENT_MEDIA_PROJECTION_SESSION";
case AtomId.ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_SESSION: return "ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_SESSION";
case AtomId.ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_APPLIED: return "ATOM_SENSITIVE_NOTIFICATION_APP_PROTECTION_APPLIED";
case AtomId.ATOM_SENSITIVE_NOTIFICATION_REDACTION: return "ATOM_SENSITIVE_NOTIFICATION_REDACTION";
case AtomId.ATOM_SENSITIVE_CONTENT_APP_PROTECTION: return "ATOM_SENSITIVE_CONTENT_APP_PROTECTION";
case AtomId.ATOM_APP_RESTRICTION_STATE_CHANGED: return "ATOM_APP_RESTRICTION_STATE_CHANGED";
case AtomId.ATOM_BATTERY_USAGE_STATS_PER_UID: return "ATOM_BATTERY_USAGE_STATS_PER_UID";
case AtomId.ATOM_POSTGC_MEMORY_SNAPSHOT: return "ATOM_POSTGC_MEMORY_SNAPSHOT";
case AtomId.ATOM_POWER_SAVE_TEMP_ALLOWLIST_CHANGED: return "ATOM_POWER_SAVE_TEMP_ALLOWLIST_CHANGED";
case AtomId.ATOM_APP_OP_ACCESS_TRACKED: return "ATOM_APP_OP_ACCESS_TRACKED";
case AtomId.ATOM_CONTENT_OR_FILE_URI_EVENT_REPORTED: return "ATOM_CONTENT_OR_FILE_URI_EVENT_REPORTED";
case AtomId.ATOM_APPLICATION_GRAMMATICAL_INFLECTION_CHANGED: return "ATOM_APPLICATION_GRAMMATICAL_INFLECTION_CHANGED";
case AtomId.ATOM_SYSTEM_GRAMMATICAL_INFLECTION_CHANGED: return "ATOM_SYSTEM_GRAMMATICAL_INFLECTION_CHANGED";
case AtomId.ATOM_BATTERY_HEALTH: return "ATOM_BATTERY_HEALTH";
case AtomId.ATOM_HDMI_EARC_STATUS_REPORTED: return "ATOM_HDMI_EARC_STATUS_REPORTED";
case AtomId.ATOM_HDMI_SOUNDBAR_MODE_STATUS_REPORTED: return "ATOM_HDMI_SOUNDBAR_MODE_STATUS_REPORTED";
case AtomId.ATOM_HEALTH_CONNECT_API_CALLED: return "ATOM_HEALTH_CONNECT_API_CALLED";
case AtomId.ATOM_HEALTH_CONNECT_USAGE_STATS: return "ATOM_HEALTH_CONNECT_USAGE_STATS";
case AtomId.ATOM_HEALTH_CONNECT_STORAGE_STATS: return "ATOM_HEALTH_CONNECT_STORAGE_STATS";
case AtomId.ATOM_HEALTH_CONNECT_API_INVOKED: return "ATOM_HEALTH_CONNECT_API_INVOKED";
case AtomId.ATOM_EXERCISE_ROUTE_API_CALLED: return "ATOM_EXERCISE_ROUTE_API_CALLED";
case AtomId.ATOM_HEALTH_CONNECT_EXPORT_INVOKED: return "ATOM_HEALTH_CONNECT_EXPORT_INVOKED";
case AtomId.ATOM_HEALTH_CONNECT_IMPORT_INVOKED: return "ATOM_HEALTH_CONNECT_IMPORT_INVOKED";
case AtomId.ATOM_HEALTH_CONNECT_EXPORT_IMPORT_STATS_REPORTED: return "ATOM_HEALTH_CONNECT_EXPORT_IMPORT_STATS_REPORTED";
case AtomId.ATOM_HEALTH_CONNECT_UI_IMPRESSION: return "ATOM_HEALTH_CONNECT_UI_IMPRESSION";
case AtomId.ATOM_HEALTH_CONNECT_UI_INTERACTION: return "ATOM_HEALTH_CONNECT_UI_INTERACTION";
case AtomId.ATOM_HEALTH_CONNECT_APP_OPENED_REPORTED: return "ATOM_HEALTH_CONNECT_APP_OPENED_REPORTED";
case AtomId.ATOM_HOTWORD_EGRESS_SIZE_ATOM_REPORTED: return "ATOM_HOTWORD_EGRESS_SIZE_ATOM_REPORTED";
case AtomId.ATOM_IKE_SESSION_TERMINATED: return "ATOM_IKE_SESSION_TERMINATED";
case AtomId.ATOM_IKE_LIVENESS_CHECK_SESSION_VALIDATED: return "ATOM_IKE_LIVENESS_CHECK_SESSION_VALIDATED";
case AtomId.ATOM_NEGOTIATED_SECURITY_ASSOCIATION: return "ATOM_NEGOTIATED_SECURITY_ASSOCIATION";
case AtomId.ATOM_KEYBOARD_CONFIGURED: return "ATOM_KEYBOARD_CONFIGURED";
case AtomId.ATOM_KEYBOARD_SYSTEMS_EVENT_REPORTED: return "ATOM_KEYBOARD_SYSTEMS_EVENT_REPORTED";
case AtomId.ATOM_INPUTDEVICE_USAGE_REPORTED: return "ATOM_INPUTDEVICE_USAGE_REPORTED";
case AtomId.ATOM_INPUT_EVENT_LATENCY_REPORTED: return "ATOM_INPUT_EVENT_LATENCY_REPORTED";
case AtomId.ATOM_TOUCHPAD_USAGE: return "ATOM_TOUCHPAD_USAGE";
case AtomId.ATOM_KERNEL_OOM_KILL_OCCURRED: return "ATOM_KERNEL_OOM_KILL_OCCURRED";
case AtomId.ATOM_EMERGENCY_STATE_CHANGED: return "ATOM_EMERGENCY_STATE_CHANGED";
case AtomId.ATOM_CHRE_SIGNIFICANT_MOTION_STATE_CHANGED: return "ATOM_CHRE_SIGNIFICANT_MOTION_STATE_CHANGED";
case AtomId.ATOM_POPULATION_DENSITY_PROVIDER_LOADING_REPORTED: return "ATOM_POPULATION_DENSITY_PROVIDER_LOADING_REPORTED";
case AtomId.ATOM_DENSITY_BASED_COARSE_LOCATIONS_USAGE_REPORTED: return "ATOM_DENSITY_BASED_COARSE_LOCATIONS_USAGE_REPORTED";
case AtomId.ATOM_DENSITY_BASED_COARSE_LOCATIONS_PROVIDER_QUERY_REPORTED: return "ATOM_DENSITY_BASED_COARSE_LOCATIONS_PROVIDER_QUERY_REPORTED";
case AtomId.ATOM_MEDIA_CODEC_RECLAIM_REQUEST_COMPLETED: return "ATOM_MEDIA_CODEC_RECLAIM_REQUEST_COMPLETED";
case AtomId.ATOM_MEDIA_CODEC_STARTED: return "ATOM_MEDIA_CODEC_STARTED";
case AtomId.ATOM_MEDIA_CODEC_STOPPED: return "ATOM_MEDIA_CODEC_STOPPED";
case AtomId.ATOM_MEDIA_CODEC_RENDERED: return "ATOM_MEDIA_CODEC_RENDERED";
case AtomId.ATOM_MEDIA_EDITING_ENDED_REPORTED: return "ATOM_MEDIA_EDITING_ENDED_REPORTED";
case AtomId.ATOM_MTE_STATE: return "ATOM_MTE_STATE";
case AtomId.ATOM_MICROXR_DEVICE_BOOT_COMPLETE_REPORTED: return "ATOM_MICROXR_DEVICE_BOOT_COMPLETE_REPORTED";
case AtomId.ATOM_NFC_OBSERVE_MODE_STATE_CHANGED: return "ATOM_NFC_OBSERVE_MODE_STATE_CHANGED";
case AtomId.ATOM_NFC_FIELD_CHANGED: return "ATOM_NFC_FIELD_CHANGED";
case AtomId.ATOM_NFC_POLLING_LOOP_NOTIFICATION_REPORTED: return "ATOM_NFC_POLLING_LOOP_NOTIFICATION_REPORTED";
case AtomId.ATOM_NFC_PROPRIETARY_CAPABILITIES_REPORTED: return "ATOM_NFC_PROPRIETARY_CAPABILITIES_REPORTED";
case AtomId.ATOM_ONDEVICEPERSONALIZATION_API_CALLED: return "ATOM_ONDEVICEPERSONALIZATION_API_CALLED";
case AtomId.ATOM_COMPONENT_STATE_CHANGED_REPORTED: return "ATOM_COMPONENT_STATE_CHANGED_REPORTED";
case AtomId.ATOM_PDF_LOAD_REPORTED: return "ATOM_PDF_LOAD_REPORTED";
case AtomId.ATOM_PDF_API_USAGE_REPORTED: return "ATOM_PDF_API_USAGE_REPORTED";
case AtomId.ATOM_PDF_SEARCH_REPORTED: return "ATOM_PDF_SEARCH_REPORTED";
case AtomId.ATOM_PRESSURE_STALL_INFORMATION: return "ATOM_PRESSURE_STALL_INFORMATION";
case AtomId.ATOM_PERMISSION_RATIONALE_DIALOG_VIEWED: return "ATOM_PERMISSION_RATIONALE_DIALOG_VIEWED";
case AtomId.ATOM_PERMISSION_RATIONALE_DIALOG_ACTION_REPORTED: return "ATOM_PERMISSION_RATIONALE_DIALOG_ACTION_REPORTED";
case AtomId.ATOM_APP_DATA_SHARING_UPDATES_NOTIFICATION_INTERACTION: return "ATOM_APP_DATA_SHARING_UPDATES_NOTIFICATION_INTERACTION";
case AtomId.ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_VIEWED: return "ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_VIEWED";
case AtomId.ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_ACTION_REPORTED: return "ATOM_APP_DATA_SHARING_UPDATES_FRAGMENT_ACTION_REPORTED";
case AtomId.ATOM_ENHANCED_CONFIRMATION_DIALOG_RESULT_REPORTED: return "ATOM_ENHANCED_CONFIRMATION_DIALOG_RESULT_REPORTED";
case AtomId.ATOM_ENHANCED_CONFIRMATION_RESTRICTION_CLEARED: return "ATOM_ENHANCED_CONFIRMATION_RESTRICTION_CLEARED";
case AtomId.ATOM_PHOTOPICKER_SESSION_INFO_REPORTED: return "ATOM_PHOTOPICKER_SESSION_INFO_REPORTED";
case AtomId.ATOM_PHOTOPICKER_API_INFO_REPORTED: return "ATOM_PHOTOPICKER_API_INFO_REPORTED";
case AtomId.ATOM_PHOTOPICKER_UI_EVENT_LOGGED: return "ATOM_PHOTOPICKER_UI_EVENT_LOGGED";
case AtomId.ATOM_PHOTOPICKER_MEDIA_ITEM_STATUS_REPORTED: return "ATOM_PHOTOPICKER_MEDIA_ITEM_STATUS_REPORTED";
case AtomId.ATOM_PHOTOPICKER_PREVIEW_INFO_LOGGED: return "ATOM_PHOTOPICKER_PREVIEW_INFO_LOGGED";
case AtomId.ATOM_PHOTOPICKER_MENU_INTERACTION_LOGGED: return "ATOM_PHOTOPICKER_MENU_INTERACTION_LOGGED";
case AtomId.ATOM_PHOTOPICKER_BANNER_INTERACTION_LOGGED: return "ATOM_PHOTOPICKER_BANNER_INTERACTION_LOGGED";
case AtomId.ATOM_PHOTOPICKER_MEDIA_LIBRARY_INFO_LOGGED: return "ATOM_PHOTOPICKER_MEDIA_LIBRARY_INFO_LOGGED";
case AtomId.ATOM_PHOTOPICKER_PAGE_INFO_LOGGED: return "ATOM_PHOTOPICKER_PAGE_INFO_LOGGED";
case AtomId.ATOM_PHOTOPICKER_MEDIA_GRID_SYNC_INFO_REPORTED: return "ATOM_PHOTOPICKER_MEDIA_GRID_SYNC_INFO_REPORTED";
case AtomId.ATOM_PHOTOPICKER_ALBUM_SYNC_INFO_REPORTED: return "ATOM_PHOTOPICKER_ALBUM_SYNC_INFO_REPORTED";
case AtomId.ATOM_PHOTOPICKER_SEARCH_INFO_REPORTED: return "ATOM_PHOTOPICKER_SEARCH_INFO_REPORTED";
case AtomId.ATOM_SEARCH_DATA_EXTRACTION_DETAILS_REPORTED: return "ATOM_SEARCH_DATA_EXTRACTION_DETAILS_REPORTED";
case AtomId.ATOM_EMBEDDED_PHOTOPICKER_INFO_REPORTED: return "ATOM_EMBEDDED_PHOTOPICKER_INFO_REPORTED";
case AtomId.ATOM_ATOM_9999: return "ATOM_ATOM_9999";
case AtomId.ATOM_ATOM_99999: return "ATOM_ATOM_99999";
case AtomId.ATOM_SCREEN_OFF_REPORTED: return "ATOM_SCREEN_OFF_REPORTED";
case AtomId.ATOM_SCREEN_TIMEOUT_OVERRIDE_REPORTED: return "ATOM_SCREEN_TIMEOUT_OVERRIDE_REPORTED";
case AtomId.ATOM_SCREEN_INTERACTIVE_SESSION_REPORTED: return "ATOM_SCREEN_INTERACTIVE_SESSION_REPORTED";
case AtomId.ATOM_SCREEN_DIM_REPORTED: return "ATOM_SCREEN_DIM_REPORTED";
case AtomId.ATOM_MEDIA_PROVIDER_DATABASE_ROLLBACK_REPORTED: return "ATOM_MEDIA_PROVIDER_DATABASE_ROLLBACK_REPORTED";
case AtomId.ATOM_BACKUP_SETUP_STATUS_REPORTED: return "ATOM_BACKUP_SETUP_STATUS_REPORTED";
case AtomId.ATOM_RANGING_SESSION_CONFIGURED: return "ATOM_RANGING_SESSION_CONFIGURED";
case AtomId.ATOM_RANGING_SESSION_STARTED: return "ATOM_RANGING_SESSION_STARTED";
case AtomId.ATOM_RANGING_SESSION_CLOSED: return "ATOM_RANGING_SESSION_CLOSED";
case AtomId.ATOM_RANGING_TECHNOLOGY_STARTED: return "ATOM_RANGING_TECHNOLOGY_STARTED";
case AtomId.ATOM_RANGING_TECHNOLOGY_STOPPED: return "ATOM_RANGING_TECHNOLOGY_STOPPED";
case AtomId.ATOM_RKPD_POOL_STATS: return "ATOM_RKPD_POOL_STATS";
case AtomId.ATOM_RKPD_CLIENT_OPERATION: return "ATOM_RKPD_CLIENT_OPERATION";
case AtomId.ATOM_SANDBOX_API_CALLED: return "ATOM_SANDBOX_API_CALLED";
case AtomId.ATOM_SANDBOX_ACTIVITY_EVENT_OCCURRED: return "ATOM_SANDBOX_ACTIVITY_EVENT_OCCURRED";
case AtomId.ATOM_SDK_SANDBOX_RESTRICTED_ACCESS_IN_SESSION: return "ATOM_SDK_SANDBOX_RESTRICTED_ACCESS_IN_SESSION";
case AtomId.ATOM_SANDBOX_SDK_STORAGE: return "ATOM_SANDBOX_SDK_STORAGE";
case AtomId.ATOM_SELINUX_AUDIT_LOG: return "ATOM_SELINUX_AUDIT_LOG";
case AtomId.ATOM_SETTINGS_SPA_REPORTED: return "ATOM_SETTINGS_SPA_REPORTED";
case AtomId.ATOM_TEST_EXTENSION_ATOM_REPORTED: return "ATOM_TEST_EXTENSION_ATOM_REPORTED";
case AtomId.ATOM_TEST_RESTRICTED_ATOM_REPORTED: return "ATOM_TEST_RESTRICTED_ATOM_REPORTED";
case AtomId.ATOM_STATS_SOCKET_LOSS_REPORTED: return "ATOM_STATS_SOCKET_LOSS_REPORTED";
case AtomId.ATOM_LOCKSCREEN_SHORTCUT_SELECTED: return "ATOM_LOCKSCREEN_SHORTCUT_SELECTED";
case AtomId.ATOM_LOCKSCREEN_SHORTCUT_TRIGGERED: return "ATOM_LOCKSCREEN_SHORTCUT_TRIGGERED";
case AtomId.ATOM_LAUNCHER_IMPRESSION_EVENT_V2: return "ATOM_LAUNCHER_IMPRESSION_EVENT_V2";
case AtomId.ATOM_DISPLAY_SWITCH_LATENCY_TRACKED: return "ATOM_DISPLAY_SWITCH_LATENCY_TRACKED";
case AtomId.ATOM_NOTIFICATION_LISTENER_SERVICE: return "ATOM_NOTIFICATION_LISTENER_SERVICE";
case AtomId.ATOM_NAV_HANDLE_TOUCH_POINTS: return "ATOM_NAV_HANDLE_TOUCH_POINTS";
case AtomId.ATOM_COMMUNAL_HUB_WIDGET_EVENT_REPORTED: return "ATOM_COMMUNAL_HUB_WIDGET_EVENT_REPORTED";
case AtomId.ATOM_COMMUNAL_HUB_SNAPSHOT: return "ATOM_COMMUNAL_HUB_SNAPSHOT";
case AtomId.ATOM_EMERGENCY_NUMBER_DIALED: return "ATOM_EMERGENCY_NUMBER_DIALED";
case AtomId.ATOM_CALL_STATS: return "ATOM_CALL_STATS";
case AtomId.ATOM_CALL_AUDIO_ROUTE_STATS: return "ATOM_CALL_AUDIO_ROUTE_STATS";
case AtomId.ATOM_TELECOM_API_STATS: return "ATOM_TELECOM_API_STATS";
case AtomId.ATOM_TELECOM_ERROR_STATS: return "ATOM_TELECOM_ERROR_STATS";
case AtomId.ATOM_CELLULAR_RADIO_POWER_STATE_CHANGED: return "ATOM_CELLULAR_RADIO_POWER_STATE_CHANGED";
case AtomId.ATOM_EMERGENCY_NUMBERS_INFO: return "ATOM_EMERGENCY_NUMBERS_INFO";
case AtomId.ATOM_DATA_NETWORK_VALIDATION: return "ATOM_DATA_NETWORK_VALIDATION";
case AtomId.ATOM_DATA_RAT_STATE_CHANGED: return "ATOM_DATA_RAT_STATE_CHANGED";
case AtomId.ATOM_CONNECTED_CHANNEL_CHANGED: return "ATOM_CONNECTED_CHANNEL_CHANGED";
case AtomId.ATOM_IWLAN_UNDERLYING_NETWORK_VALIDATION_RESULT_REPORTED: return "ATOM_IWLAN_UNDERLYING_NETWORK_VALIDATION_RESULT_REPORTED";
case AtomId.ATOM_QUALIFIED_RAT_LIST_CHANGED: return "ATOM_QUALIFIED_RAT_LIST_CHANGED";
case AtomId.ATOM_QNS_IMS_CALL_DROP_STATS: return "ATOM_QNS_IMS_CALL_DROP_STATS";
case AtomId.ATOM_QNS_FALLBACK_RESTRICTION_CHANGED: return "ATOM_QNS_FALLBACK_RESTRICTION_CHANGED";
case AtomId.ATOM_QNS_RAT_PREFERENCE_MISMATCH_INFO: return "ATOM_QNS_RAT_PREFERENCE_MISMATCH_INFO";
case AtomId.ATOM_QNS_HANDOVER_TIME_MILLIS: return "ATOM_QNS_HANDOVER_TIME_MILLIS";
case AtomId.ATOM_QNS_HANDOVER_PINGPONG: return "ATOM_QNS_HANDOVER_PINGPONG";
case AtomId.ATOM_SATELLITE_CONTROLLER: return "ATOM_SATELLITE_CONTROLLER";
case AtomId.ATOM_SATELLITE_SESSION: return "ATOM_SATELLITE_SESSION";
case AtomId.ATOM_SATELLITE_INCOMING_DATAGRAM: return "ATOM_SATELLITE_INCOMING_DATAGRAM";
case AtomId.ATOM_SATELLITE_OUTGOING_DATAGRAM: return "ATOM_SATELLITE_OUTGOING_DATAGRAM";
case AtomId.ATOM_SATELLITE_PROVISION: return "ATOM_SATELLITE_PROVISION";
case AtomId.ATOM_SATELLITE_SOS_MESSAGE_RECOMMENDER: return "ATOM_SATELLITE_SOS_MESSAGE_RECOMMENDER";
case AtomId.ATOM_CARRIER_ROAMING_SATELLITE_SESSION: return "ATOM_CARRIER_ROAMING_SATELLITE_SESSION";
case AtomId.ATOM_CARRIER_ROAMING_SATELLITE_CONTROLLER_STATS: return "ATOM_CARRIER_ROAMING_SATELLITE_CONTROLLER_STATS";
case AtomId.ATOM_CONTROLLER_STATS_PER_PACKAGE: return "ATOM_CONTROLLER_STATS_PER_PACKAGE";
case AtomId.ATOM_SATELLITE_ENTITLEMENT: return "ATOM_SATELLITE_ENTITLEMENT";
case AtomId.ATOM_SATELLITE_CONFIG_UPDATER: return "ATOM_SATELLITE_CONFIG_UPDATER";
case AtomId.ATOM_SATELLITE_ACCESS_CONTROLLER: return "ATOM_SATELLITE_ACCESS_CONTROLLER";
case AtomId.ATOM_CELLULAR_IDENTIFIER_DISCLOSED: return "ATOM_CELLULAR_IDENTIFIER_DISCLOSED";
case AtomId.ATOM_THREADNETWORK_TELEMETRY_DATA_REPORTED: return "ATOM_THREADNETWORK_TELEMETRY_DATA_REPORTED";
case AtomId.ATOM_THREADNETWORK_TOPO_ENTRY_REPEATED: return "ATOM_THREADNETWORK_TOPO_ENTRY_REPEATED";
case AtomId.ATOM_THREADNETWORK_DEVICE_INFO_REPORTED: return "ATOM_THREADNETWORK_DEVICE_INFO_REPORTED";
case AtomId.ATOM_BOOT_INTEGRITY_INFO_REPORTED: return "ATOM_BOOT_INTEGRITY_INFO_REPORTED";
case AtomId.ATOM_TV_LOW_POWER_STANDBY_POLICY: return "ATOM_TV_LOW_POWER_STANDBY_POLICY";
case AtomId.ATOM_EXTERNAL_TV_INPUT_EVENT: return "ATOM_EXTERNAL_TV_INPUT_EVENT";
case AtomId.ATOM_TEST_UPROBESTATS_ATOM_REPORTED: return "ATOM_TEST_UPROBESTATS_ATOM_REPORTED";
case AtomId.ATOM_UWB_ACTIVITY_INFO: return "ATOM_UWB_ACTIVITY_INFO";
case AtomId.ATOM_MEDIATOR_UPDATED: return "ATOM_MEDIATOR_UPDATED";
case AtomId.ATOM_SYSPROXY_BLUETOOTH_BYTES_TRANSFER: return "ATOM_SYSPROXY_BLUETOOTH_BYTES_TRANSFER";
case AtomId.ATOM_SYSPROXY_CONNECTION_UPDATED: return "ATOM_SYSPROXY_CONNECTION_UPDATED";
case AtomId.ATOM_WEAR_COMPANION_CONNECTION_STATE: return "ATOM_WEAR_COMPANION_CONNECTION_STATE";
case AtomId.ATOM_MEDIA_ACTION_REPORTED: return "ATOM_MEDIA_ACTION_REPORTED";
case AtomId.ATOM_MEDIA_CONTROLS_LAUNCHED: return "ATOM_MEDIA_CONTROLS_LAUNCHED";
case AtomId.ATOM_MEDIA_SESSION_STATE_CHANGED: return "ATOM_MEDIA_SESSION_STATE_CHANGED";
case AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_API_LATENCY: return "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_DEVICE_SCAN_API_LATENCY";
case AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_SASS_DEVICE_UNAVAILABLE: return "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_SASS_DEVICE_UNAVAILABLE";
case AtomId.ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FASTPAIR_API_TIMEOUT: return "ATOM_WEAR_MEDIA_OUTPUT_SWITCHER_FASTPAIR_API_TIMEOUT";
case AtomId.ATOM_WEAR_MODE_STATE_CHANGED: return "ATOM_WEAR_MODE_STATE_CHANGED";
case AtomId.ATOM_RENDERER_INITIALIZED: return "ATOM_RENDERER_INITIALIZED";
case AtomId.ATOM_SCHEMA_VERSION_RECEIVED: return "ATOM_SCHEMA_VERSION_RECEIVED";
case AtomId.ATOM_LAYOUT_INSPECTED: return "ATOM_LAYOUT_INSPECTED";
case AtomId.ATOM_LAYOUT_EXPRESSION_INSPECTED: return "ATOM_LAYOUT_EXPRESSION_INSPECTED";
case AtomId.ATOM_LAYOUT_ANIMATIONS_INSPECTED: return "ATOM_LAYOUT_ANIMATIONS_INSPECTED";
case AtomId.ATOM_MATERIAL_COMPONENTS_INSPECTED: return "ATOM_MATERIAL_COMPONENTS_INSPECTED";
case AtomId.ATOM_TILE_REQUESTED: return "ATOM_TILE_REQUESTED";
case AtomId.ATOM_STATE_RESPONSE_RECEIVED: return "ATOM_STATE_RESPONSE_RECEIVED";
case AtomId.ATOM_TILE_RESPONSE_RECEIVED: return "ATOM_TILE_RESPONSE_RECEIVED";
case AtomId.ATOM_INFLATION_FINISHED: return "ATOM_INFLATION_FINISHED";
case AtomId.ATOM_INFLATION_FAILED: return "ATOM_INFLATION_FAILED";
case AtomId.ATOM_IGNORED_INFLATION_FAILURES_REPORTED: return "ATOM_IGNORED_INFLATION_FAILURES_REPORTED";
case AtomId.ATOM_DRAWABLE_RENDERED: return "ATOM_DRAWABLE_RENDERED";
case AtomId.ATOM_WEAR_TIME_SYNC_REQUESTED: return "ATOM_WEAR_TIME_SYNC_REQUESTED";
case AtomId.ATOM_WEAR_TIME_UPDATE_STARTED: return "ATOM_WEAR_TIME_UPDATE_STARTED";
case AtomId.ATOM_WEAR_TIME_SYNC_ATTEMPT_COMPLETED: return "ATOM_WEAR_TIME_SYNC_ATTEMPT_COMPLETED";
case AtomId.ATOM_WEAR_TIME_CHANGED: return "ATOM_WEAR_TIME_CHANGED";
case AtomId.ATOM_WEAR_ADAPTIVE_SUSPEND_STATS_REPORTED: return "ATOM_WEAR_ADAPTIVE_SUSPEND_STATS_REPORTED";
case AtomId.ATOM_WEAR_POWER_ANOMALY_SERVICE_OPERATIONAL_STATS_REPORTED: return "ATOM_WEAR_POWER_ANOMALY_SERVICE_OPERATIONAL_STATS_REPORTED";
case AtomId.ATOM_WEAR_POWER_ANOMALY_SERVICE_EVENT_STATS_REPORTED: return "ATOM_WEAR_POWER_ANOMALY_SERVICE_EVENT_STATS_REPORTED";
case AtomId.ATOM_WS_WEAR_TIME_SESSION: return "ATOM_WS_WEAR_TIME_SESSION";
case AtomId.ATOM_WS_INCOMING_CALL_ACTION_REPORTED: return "ATOM_WS_INCOMING_CALL_ACTION_REPORTED";
case AtomId.ATOM_WS_CALL_DISCONNECTION_REPORTED: return "ATOM_WS_CALL_DISCONNECTION_REPORTED";
case AtomId.ATOM_WS_CALL_DURATION_REPORTED: return "ATOM_WS_CALL_DURATION_REPORTED";
case AtomId.ATOM_WS_CALL_USER_EXPERIENCE_LATENCY_REPORTED: return "ATOM_WS_CALL_USER_EXPERIENCE_LATENCY_REPORTED";
case AtomId.ATOM_WS_CALL_INTERACTION_REPORTED: return "ATOM_WS_CALL_INTERACTION_REPORTED";
case AtomId.ATOM_WS_ON_BODY_STATE_CHANGED: return "ATOM_WS_ON_BODY_STATE_CHANGED";
case AtomId.ATOM_WS_WATCH_FACE_RESTRICTED_COMPLICATIONS_IMPACTED: return "ATOM_WS_WATCH_FACE_RESTRICTED_COMPLICATIONS_IMPACTED";
case AtomId.ATOM_WS_WATCH_FACE_DEFAULT_RESTRICTED_COMPLICATIONS_REMOVED: return "ATOM_WS_WATCH_FACE_DEFAULT_RESTRICTED_COMPLICATIONS_REMOVED";
case AtomId.ATOM_WS_COMPLICATIONS_IMPACTED_NOTIFICATION_EVENT_REPORTED: return "ATOM_WS_COMPLICATIONS_IMPACTED_NOTIFICATION_EVENT_REPORTED";
case AtomId.ATOM_WS_REMOTE_EVENT_USAGE_REPORTED: return "ATOM_WS_REMOTE_EVENT_USAGE_REPORTED";
case AtomId.ATOM_WS_BUGREPORT_REQUESTED: return "ATOM_WS_BUGREPORT_REQUESTED";
case AtomId.ATOM_WS_BUGREPORT_TRIGGERED: return "ATOM_WS_BUGREPORT_TRIGGERED";
case AtomId.ATOM_WS_BUGREPORT_FINISHED: return "ATOM_WS_BUGREPORT_FINISHED";
case AtomId.ATOM_WS_BUGREPORT_RESULT_RECEIVED: return "ATOM_WS_BUGREPORT_RESULT_RECEIVED";
case AtomId.ATOM_WS_STANDALONE_MODE_SNAPSHOT: return "ATOM_WS_STANDALONE_MODE_SNAPSHOT";
case AtomId.ATOM_WS_FAVORITE_WATCH_FACE_SNAPSHOT: return "ATOM_WS_FAVORITE_WATCH_FACE_SNAPSHOT";
case AtomId.ATOM_WS_PHOTOS_WATCH_FACE_FEATURE_SNAPSHOT: return "ATOM_WS_PHOTOS_WATCH_FACE_FEATURE_SNAPSHOT";
case AtomId.ATOM_WS_WATCH_FACE_CUSTOMIZATION_SNAPSHOT: return "ATOM_WS_WATCH_FACE_CUSTOMIZATION_SNAPSHOT";
case AtomId.ATOM_WEAR_POWER_MENU_OPENED: return "ATOM_WEAR_POWER_MENU_OPENED";
case AtomId.ATOM_WEAR_ASSISTANT_OPENED: return "ATOM_WEAR_ASSISTANT_OPENED";
case AtomId.ATOM_FIRST_OVERLAY_STATE_CHANGED: return "ATOM_FIRST_OVERLAY_STATE_CHANGED";
case AtomId.ATOM_WIFI_AWARE_NDP_REPORTED: return "ATOM_WIFI_AWARE_NDP_REPORTED";
case AtomId.ATOM_WIFI_AWARE_ATTACH_REPORTED: return "ATOM_WIFI_AWARE_ATTACH_REPORTED";
case AtomId.ATOM_WIFI_SELF_RECOVERY_TRIGGERED: return "ATOM_WIFI_SELF_RECOVERY_TRIGGERED";
case AtomId.ATOM_SOFT_AP_STARTED: return "ATOM_SOFT_AP_STARTED";
case AtomId.ATOM_SOFT_AP_STOPPED: return "ATOM_SOFT_AP_STOPPED";
case AtomId.ATOM_WIFI_LOCK_RELEASED: return "ATOM_WIFI_LOCK_RELEASED";
case AtomId.ATOM_WIFI_LOCK_DEACTIVATED: return "ATOM_WIFI_LOCK_DEACTIVATED";
case AtomId.ATOM_WIFI_CONFIG_SAVED: return "ATOM_WIFI_CONFIG_SAVED";
case AtomId.ATOM_WIFI_AWARE_RESOURCE_USING_CHANGED: return "ATOM_WIFI_AWARE_RESOURCE_USING_CHANGED";
case AtomId.ATOM_WIFI_AWARE_HAL_API_CALLED: return "ATOM_WIFI_AWARE_HAL_API_CALLED";
case AtomId.ATOM_WIFI_LOCAL_ONLY_REQUEST_RECEIVED: return "ATOM_WIFI_LOCAL_ONLY_REQUEST_RECEIVED";
case AtomId.ATOM_WIFI_LOCAL_ONLY_REQUEST_SCAN_TRIGGERED: return "ATOM_WIFI_LOCAL_ONLY_REQUEST_SCAN_TRIGGERED";
case AtomId.ATOM_WIFI_THREAD_TASK_EXECUTED: return "ATOM_WIFI_THREAD_TASK_EXECUTED";
case AtomId.ATOM_WIFI_STATE_CHANGED: return "ATOM_WIFI_STATE_CHANGED";
case AtomId.ATOM_PNO_SCAN_STARTED: return "ATOM_PNO_SCAN_STARTED";
case AtomId.ATOM_PNO_SCAN_STOPPED: return "ATOM_PNO_SCAN_STOPPED";
case AtomId.ATOM_WIFI_IS_UNUSABLE_REPORTED: return "ATOM_WIFI_IS_UNUSABLE_REPORTED";
case AtomId.ATOM_WIFI_AP_CAPABILITIES_REPORTED: return "ATOM_WIFI_AP_CAPABILITIES_REPORTED";
case AtomId.ATOM_SOFT_AP_STATE_CHANGED: return "ATOM_SOFT_AP_STATE_CHANGED";
case AtomId.ATOM_SCORER_PREDICTION_RESULT_REPORTED: return "ATOM_SCORER_PREDICTION_RESULT_REPORTED";
case AtomId.ATOM_WIFI_AWARE_CAPABILITIES: return "ATOM_WIFI_AWARE_CAPABILITIES";
case AtomId.ATOM_WIFI_MODULE_INFO: return "ATOM_WIFI_MODULE_INFO";
case AtomId.ATOM_WIFI_SETTING_INFO: return "ATOM_WIFI_SETTING_INFO";
case AtomId.ATOM_WIFI_COMPLEX_SETTING_INFO: return "ATOM_WIFI_COMPLEX_SETTING_INFO";
case AtomId.ATOM_WIFI_CONFIGURED_NETWORK_INFO: return "ATOM_WIFI_CONFIGURED_NETWORK_INFO";
case AtomId.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/** Counter definitions for Linux's /proc/meminfo. */
export enum MeminfoCounters {
MEMINFO_UNSPECIFIED = 0,
MEMINFO_MEM_TOTAL = 1,
MEMINFO_MEM_FREE = 2,
MEMINFO_MEM_AVAILABLE = 3,
MEMINFO_BUFFERS = 4,
MEMINFO_CACHED = 5,
MEMINFO_SWAP_CACHED = 6,
MEMINFO_ACTIVE = 7,
MEMINFO_INACTIVE = 8,
MEMINFO_ACTIVE_ANON = 9,
MEMINFO_INACTIVE_ANON = 10,
MEMINFO_ACTIVE_FILE = 11,
MEMINFO_INACTIVE_FILE = 12,
MEMINFO_UNEVICTABLE = 13,
MEMINFO_MLOCKED = 14,
MEMINFO_SWAP_TOTAL = 15,
MEMINFO_SWAP_FREE = 16,
MEMINFO_DIRTY = 17,
MEMINFO_WRITEBACK = 18,
MEMINFO_ANON_PAGES = 19,
MEMINFO_MAPPED = 20,
MEMINFO_SHMEM = 21,
MEMINFO_SLAB = 22,
MEMINFO_SLAB_RECLAIMABLE = 23,
MEMINFO_SLAB_UNRECLAIMABLE = 24,
MEMINFO_KERNEL_STACK = 25,
MEMINFO_PAGE_TABLES = 26,
MEMINFO_COMMIT_LIMIT = 27,
MEMINFO_COMMITED_AS = 28,
MEMINFO_VMALLOC_TOTAL = 29,
MEMINFO_VMALLOC_USED = 30,
MEMINFO_VMALLOC_CHUNK = 31,
MEMINFO_CMA_TOTAL = 32,
MEMINFO_CMA_FREE = 33,
MEMINFO_GPU = 34,
MEMINFO_ZRAM = 35,
MEMINFO_MISC = 36,
MEMINFO_ION_HEAP = 37,
MEMINFO_ION_HEAP_POOL = 38,
UNRECOGNIZED = -1,
}

export function meminfoCountersFromJSON(object: any): MeminfoCounters {
switch (object) {
case 0:
      case "MEMINFO_UNSPECIFIED":
        return MeminfoCounters.MEMINFO_UNSPECIFIED;
case 1:
      case "MEMINFO_MEM_TOTAL":
        return MeminfoCounters.MEMINFO_MEM_TOTAL;
case 2:
      case "MEMINFO_MEM_FREE":
        return MeminfoCounters.MEMINFO_MEM_FREE;
case 3:
      case "MEMINFO_MEM_AVAILABLE":
        return MeminfoCounters.MEMINFO_MEM_AVAILABLE;
case 4:
      case "MEMINFO_BUFFERS":
        return MeminfoCounters.MEMINFO_BUFFERS;
case 5:
      case "MEMINFO_CACHED":
        return MeminfoCounters.MEMINFO_CACHED;
case 6:
      case "MEMINFO_SWAP_CACHED":
        return MeminfoCounters.MEMINFO_SWAP_CACHED;
case 7:
      case "MEMINFO_ACTIVE":
        return MeminfoCounters.MEMINFO_ACTIVE;
case 8:
      case "MEMINFO_INACTIVE":
        return MeminfoCounters.MEMINFO_INACTIVE;
case 9:
      case "MEMINFO_ACTIVE_ANON":
        return MeminfoCounters.MEMINFO_ACTIVE_ANON;
case 10:
      case "MEMINFO_INACTIVE_ANON":
        return MeminfoCounters.MEMINFO_INACTIVE_ANON;
case 11:
      case "MEMINFO_ACTIVE_FILE":
        return MeminfoCounters.MEMINFO_ACTIVE_FILE;
case 12:
      case "MEMINFO_INACTIVE_FILE":
        return MeminfoCounters.MEMINFO_INACTIVE_FILE;
case 13:
      case "MEMINFO_UNEVICTABLE":
        return MeminfoCounters.MEMINFO_UNEVICTABLE;
case 14:
      case "MEMINFO_MLOCKED":
        return MeminfoCounters.MEMINFO_MLOCKED;
case 15:
      case "MEMINFO_SWAP_TOTAL":
        return MeminfoCounters.MEMINFO_SWAP_TOTAL;
case 16:
      case "MEMINFO_SWAP_FREE":
        return MeminfoCounters.MEMINFO_SWAP_FREE;
case 17:
      case "MEMINFO_DIRTY":
        return MeminfoCounters.MEMINFO_DIRTY;
case 18:
      case "MEMINFO_WRITEBACK":
        return MeminfoCounters.MEMINFO_WRITEBACK;
case 19:
      case "MEMINFO_ANON_PAGES":
        return MeminfoCounters.MEMINFO_ANON_PAGES;
case 20:
      case "MEMINFO_MAPPED":
        return MeminfoCounters.MEMINFO_MAPPED;
case 21:
      case "MEMINFO_SHMEM":
        return MeminfoCounters.MEMINFO_SHMEM;
case 22:
      case "MEMINFO_SLAB":
        return MeminfoCounters.MEMINFO_SLAB;
case 23:
      case "MEMINFO_SLAB_RECLAIMABLE":
        return MeminfoCounters.MEMINFO_SLAB_RECLAIMABLE;
case 24:
      case "MEMINFO_SLAB_UNRECLAIMABLE":
        return MeminfoCounters.MEMINFO_SLAB_UNRECLAIMABLE;
case 25:
      case "MEMINFO_KERNEL_STACK":
        return MeminfoCounters.MEMINFO_KERNEL_STACK;
case 26:
      case "MEMINFO_PAGE_TABLES":
        return MeminfoCounters.MEMINFO_PAGE_TABLES;
case 27:
      case "MEMINFO_COMMIT_LIMIT":
        return MeminfoCounters.MEMINFO_COMMIT_LIMIT;
case 28:
      case "MEMINFO_COMMITED_AS":
        return MeminfoCounters.MEMINFO_COMMITED_AS;
case 29:
      case "MEMINFO_VMALLOC_TOTAL":
        return MeminfoCounters.MEMINFO_VMALLOC_TOTAL;
case 30:
      case "MEMINFO_VMALLOC_USED":
        return MeminfoCounters.MEMINFO_VMALLOC_USED;
case 31:
      case "MEMINFO_VMALLOC_CHUNK":
        return MeminfoCounters.MEMINFO_VMALLOC_CHUNK;
case 32:
      case "MEMINFO_CMA_TOTAL":
        return MeminfoCounters.MEMINFO_CMA_TOTAL;
case 33:
      case "MEMINFO_CMA_FREE":
        return MeminfoCounters.MEMINFO_CMA_FREE;
case 34:
      case "MEMINFO_GPU":
        return MeminfoCounters.MEMINFO_GPU;
case 35:
      case "MEMINFO_ZRAM":
        return MeminfoCounters.MEMINFO_ZRAM;
case 36:
      case "MEMINFO_MISC":
        return MeminfoCounters.MEMINFO_MISC;
case 37:
      case "MEMINFO_ION_HEAP":
        return MeminfoCounters.MEMINFO_ION_HEAP;
case 38:
      case "MEMINFO_ION_HEAP_POOL":
        return MeminfoCounters.MEMINFO_ION_HEAP_POOL;
case -1:
        case "UNRECOGNIZED":
        default:
          return MeminfoCounters.UNRECOGNIZED;
}
}

export function meminfoCountersToJSON(object: MeminfoCounters): string {
switch (object) {
case MeminfoCounters.MEMINFO_UNSPECIFIED: return "MEMINFO_UNSPECIFIED";
case MeminfoCounters.MEMINFO_MEM_TOTAL: return "MEMINFO_MEM_TOTAL";
case MeminfoCounters.MEMINFO_MEM_FREE: return "MEMINFO_MEM_FREE";
case MeminfoCounters.MEMINFO_MEM_AVAILABLE: return "MEMINFO_MEM_AVAILABLE";
case MeminfoCounters.MEMINFO_BUFFERS: return "MEMINFO_BUFFERS";
case MeminfoCounters.MEMINFO_CACHED: return "MEMINFO_CACHED";
case MeminfoCounters.MEMINFO_SWAP_CACHED: return "MEMINFO_SWAP_CACHED";
case MeminfoCounters.MEMINFO_ACTIVE: return "MEMINFO_ACTIVE";
case MeminfoCounters.MEMINFO_INACTIVE: return "MEMINFO_INACTIVE";
case MeminfoCounters.MEMINFO_ACTIVE_ANON: return "MEMINFO_ACTIVE_ANON";
case MeminfoCounters.MEMINFO_INACTIVE_ANON: return "MEMINFO_INACTIVE_ANON";
case MeminfoCounters.MEMINFO_ACTIVE_FILE: return "MEMINFO_ACTIVE_FILE";
case MeminfoCounters.MEMINFO_INACTIVE_FILE: return "MEMINFO_INACTIVE_FILE";
case MeminfoCounters.MEMINFO_UNEVICTABLE: return "MEMINFO_UNEVICTABLE";
case MeminfoCounters.MEMINFO_MLOCKED: return "MEMINFO_MLOCKED";
case MeminfoCounters.MEMINFO_SWAP_TOTAL: return "MEMINFO_SWAP_TOTAL";
case MeminfoCounters.MEMINFO_SWAP_FREE: return "MEMINFO_SWAP_FREE";
case MeminfoCounters.MEMINFO_DIRTY: return "MEMINFO_DIRTY";
case MeminfoCounters.MEMINFO_WRITEBACK: return "MEMINFO_WRITEBACK";
case MeminfoCounters.MEMINFO_ANON_PAGES: return "MEMINFO_ANON_PAGES";
case MeminfoCounters.MEMINFO_MAPPED: return "MEMINFO_MAPPED";
case MeminfoCounters.MEMINFO_SHMEM: return "MEMINFO_SHMEM";
case MeminfoCounters.MEMINFO_SLAB: return "MEMINFO_SLAB";
case MeminfoCounters.MEMINFO_SLAB_RECLAIMABLE: return "MEMINFO_SLAB_RECLAIMABLE";
case MeminfoCounters.MEMINFO_SLAB_UNRECLAIMABLE: return "MEMINFO_SLAB_UNRECLAIMABLE";
case MeminfoCounters.MEMINFO_KERNEL_STACK: return "MEMINFO_KERNEL_STACK";
case MeminfoCounters.MEMINFO_PAGE_TABLES: return "MEMINFO_PAGE_TABLES";
case MeminfoCounters.MEMINFO_COMMIT_LIMIT: return "MEMINFO_COMMIT_LIMIT";
case MeminfoCounters.MEMINFO_COMMITED_AS: return "MEMINFO_COMMITED_AS";
case MeminfoCounters.MEMINFO_VMALLOC_TOTAL: return "MEMINFO_VMALLOC_TOTAL";
case MeminfoCounters.MEMINFO_VMALLOC_USED: return "MEMINFO_VMALLOC_USED";
case MeminfoCounters.MEMINFO_VMALLOC_CHUNK: return "MEMINFO_VMALLOC_CHUNK";
case MeminfoCounters.MEMINFO_CMA_TOTAL: return "MEMINFO_CMA_TOTAL";
case MeminfoCounters.MEMINFO_CMA_FREE: return "MEMINFO_CMA_FREE";
case MeminfoCounters.MEMINFO_GPU: return "MEMINFO_GPU";
case MeminfoCounters.MEMINFO_ZRAM: return "MEMINFO_ZRAM";
case MeminfoCounters.MEMINFO_MISC: return "MEMINFO_MISC";
case MeminfoCounters.MEMINFO_ION_HEAP: return "MEMINFO_ION_HEAP";
case MeminfoCounters.MEMINFO_ION_HEAP_POOL: return "MEMINFO_ION_HEAP_POOL";
case MeminfoCounters.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/** Counter definitions for Linux's /proc/vmstat. */
export enum VmstatCounters {
VMSTAT_UNSPECIFIED = 0,
VMSTAT_NR_FREE_PAGES = 1,
VMSTAT_NR_ALLOC_BATCH = 2,
VMSTAT_NR_INACTIVE_ANON = 3,
VMSTAT_NR_ACTIVE_ANON = 4,
VMSTAT_NR_INACTIVE_FILE = 5,
VMSTAT_NR_ACTIVE_FILE = 6,
VMSTAT_NR_UNEVICTABLE = 7,
VMSTAT_NR_MLOCK = 8,
VMSTAT_NR_ANON_PAGES = 9,
VMSTAT_NR_MAPPED = 10,
VMSTAT_NR_FILE_PAGES = 11,
VMSTAT_NR_DIRTY = 12,
VMSTAT_NR_WRITEBACK = 13,
VMSTAT_NR_SLAB_RECLAIMABLE = 14,
VMSTAT_NR_SLAB_UNRECLAIMABLE = 15,
VMSTAT_NR_PAGE_TABLE_PAGES = 16,
VMSTAT_NR_KERNEL_STACK = 17,
VMSTAT_NR_OVERHEAD = 18,
VMSTAT_NR_UNSTABLE = 19,
VMSTAT_NR_BOUNCE = 20,
VMSTAT_NR_VMSCAN_WRITE = 21,
VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM = 22,
VMSTAT_NR_WRITEBACK_TEMP = 23,
VMSTAT_NR_ISOLATED_ANON = 24,
VMSTAT_NR_ISOLATED_FILE = 25,
VMSTAT_NR_SHMEM = 26,
VMSTAT_NR_DIRTIED = 27,
VMSTAT_NR_WRITTEN = 28,
VMSTAT_NR_PAGES_SCANNED = 29,
VMSTAT_WORKINGSET_REFAULT = 30,
VMSTAT_WORKINGSET_ACTIVATE = 31,
VMSTAT_WORKINGSET_NODERECLAIM = 32,
VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES = 33,
VMSTAT_NR_FREE_CMA = 34,
VMSTAT_NR_SWAPCACHE = 35,
VMSTAT_NR_DIRTY_THRESHOLD = 36,
VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD = 37,
VMSTAT_PGPGIN = 38,
VMSTAT_PGPGOUT = 39,
VMSTAT_PGPGOUTCLEAN = 40,
VMSTAT_PSWPIN = 41,
VMSTAT_PSWPOUT = 42,
VMSTAT_PGALLOC_DMA = 43,
VMSTAT_PGALLOC_NORMAL = 44,
VMSTAT_PGALLOC_MOVABLE = 45,
VMSTAT_PGFREE = 46,
VMSTAT_PGACTIVATE = 47,
VMSTAT_PGDEACTIVATE = 48,
VMSTAT_PGFAULT = 49,
VMSTAT_PGMAJFAULT = 50,
VMSTAT_PGREFILL_DMA = 51,
VMSTAT_PGREFILL_NORMAL = 52,
VMSTAT_PGREFILL_MOVABLE = 53,
VMSTAT_PGSTEAL_KSWAPD_DMA = 54,
VMSTAT_PGSTEAL_KSWAPD_NORMAL = 55,
VMSTAT_PGSTEAL_KSWAPD_MOVABLE = 56,
VMSTAT_PGSTEAL_DIRECT_DMA = 57,
VMSTAT_PGSTEAL_DIRECT_NORMAL = 58,
VMSTAT_PGSTEAL_DIRECT_MOVABLE = 59,
VMSTAT_PGSCAN_KSWAPD_DMA = 60,
VMSTAT_PGSCAN_KSWAPD_NORMAL = 61,
VMSTAT_PGSCAN_KSWAPD_MOVABLE = 62,
VMSTAT_PGSCAN_DIRECT_DMA = 63,
VMSTAT_PGSCAN_DIRECT_NORMAL = 64,
VMSTAT_PGSCAN_DIRECT_MOVABLE = 65,
VMSTAT_PGSCAN_DIRECT_THROTTLE = 66,
VMSTAT_PGINODESTEAL = 67,
VMSTAT_SLABS_SCANNED = 68,
VMSTAT_KSWAPD_INODESTEAL = 69,
VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY = 70,
VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY = 71,
VMSTAT_PAGEOUTRUN = 72,
VMSTAT_ALLOCSTALL = 73,
VMSTAT_PGROTATED = 74,
VMSTAT_DROP_PAGECACHE = 75,
VMSTAT_DROP_SLAB = 76,
VMSTAT_PGMIGRATE_SUCCESS = 77,
VMSTAT_PGMIGRATE_FAIL = 78,
VMSTAT_COMPACT_MIGRATE_SCANNED = 79,
VMSTAT_COMPACT_FREE_SCANNED = 80,
VMSTAT_COMPACT_ISOLATED = 81,
VMSTAT_COMPACT_STALL = 82,
VMSTAT_COMPACT_FAIL = 83,
VMSTAT_COMPACT_SUCCESS = 84,
VMSTAT_COMPACT_DAEMON_WAKE = 85,
VMSTAT_UNEVICTABLE_PGS_CULLED = 86,
VMSTAT_UNEVICTABLE_PGS_SCANNED = 87,
VMSTAT_UNEVICTABLE_PGS_RESCUED = 88,
VMSTAT_UNEVICTABLE_PGS_MLOCKED = 89,
VMSTAT_UNEVICTABLE_PGS_MUNLOCKED = 90,
VMSTAT_UNEVICTABLE_PGS_CLEARED = 91,
VMSTAT_UNEVICTABLE_PGS_STRANDED = 92,
VMSTAT_NR_ZSPAGES = 93,
VMSTAT_NR_ION_HEAP = 94,
VMSTAT_NR_GPU_HEAP = 95,
VMSTAT_ALLOCSTALL_DMA = 96,
VMSTAT_ALLOCSTALL_MOVABLE = 97,
VMSTAT_ALLOCSTALL_NORMAL = 98,
VMSTAT_COMPACT_DAEMON_FREE_SCANNED = 99,
VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED = 100,
VMSTAT_NR_FASTRPC = 101,
VMSTAT_NR_INDIRECTLY_RECLAIMABLE = 102,
VMSTAT_NR_ION_HEAP_POOL = 103,
VMSTAT_NR_KERNEL_MISC_RECLAIMABLE = 104,
VMSTAT_NR_SHADOW_CALL_STACK_BYTES = 105,
VMSTAT_NR_SHMEM_HUGEPAGES = 106,
VMSTAT_NR_SHMEM_PMDMAPPED = 107,
VMSTAT_NR_UNRECLAIMABLE_PAGES = 108,
VMSTAT_NR_ZONE_ACTIVE_ANON = 109,
VMSTAT_NR_ZONE_ACTIVE_FILE = 110,
VMSTAT_NR_ZONE_INACTIVE_ANON = 111,
VMSTAT_NR_ZONE_INACTIVE_FILE = 112,
VMSTAT_NR_ZONE_UNEVICTABLE = 113,
VMSTAT_NR_ZONE_WRITE_PENDING = 114,
VMSTAT_OOM_KILL = 115,
VMSTAT_PGLAZYFREE = 116,
VMSTAT_PGLAZYFREED = 117,
VMSTAT_PGREFILL = 118,
VMSTAT_PGSCAN_DIRECT = 119,
VMSTAT_PGSCAN_KSWAPD = 120,
VMSTAT_PGSKIP_DMA = 121,
VMSTAT_PGSKIP_MOVABLE = 122,
VMSTAT_PGSKIP_NORMAL = 123,
VMSTAT_PGSTEAL_DIRECT = 124,
VMSTAT_PGSTEAL_KSWAPD = 125,
VMSTAT_SWAP_RA = 126,
VMSTAT_SWAP_RA_HIT = 127,
VMSTAT_WORKINGSET_RESTORE = 128,
VMSTAT_ALLOCSTALL_DEVICE = 129,
VMSTAT_ALLOCSTALL_DMA32 = 130,
VMSTAT_BALLOON_DEFLATE = 131,
VMSTAT_BALLOON_INFLATE = 132,
VMSTAT_BALLOON_MIGRATE = 133,
VMSTAT_CMA_ALLOC_FAIL = 134,
VMSTAT_CMA_ALLOC_SUCCESS = 135,
VMSTAT_NR_FILE_HUGEPAGES = 136,
VMSTAT_NR_FILE_PMDMAPPED = 137,
VMSTAT_NR_FOLL_PIN_ACQUIRED = 138,
VMSTAT_NR_FOLL_PIN_RELEASED = 139,
VMSTAT_NR_SEC_PAGE_TABLE_PAGES = 140,
VMSTAT_NR_SHADOW_CALL_STACK = 141,
VMSTAT_NR_SWAPCACHED = 142,
VMSTAT_NR_THROTTLED_WRITTEN = 143,
VMSTAT_PGALLOC_DEVICE = 144,
VMSTAT_PGALLOC_DMA32 = 145,
VMSTAT_PGDEMOTE_DIRECT = 146,
VMSTAT_PGDEMOTE_KSWAPD = 147,
VMSTAT_PGREUSE = 148,
VMSTAT_PGSCAN_ANON = 149,
VMSTAT_PGSCAN_FILE = 150,
VMSTAT_PGSKIP_DEVICE = 151,
VMSTAT_PGSKIP_DMA32 = 152,
VMSTAT_PGSTEAL_ANON = 153,
VMSTAT_PGSTEAL_FILE = 154,
VMSTAT_THP_COLLAPSE_ALLOC = 155,
VMSTAT_THP_COLLAPSE_ALLOC_FAILED = 156,
VMSTAT_THP_DEFERRED_SPLIT_PAGE = 157,
VMSTAT_THP_FAULT_ALLOC = 158,
VMSTAT_THP_FAULT_FALLBACK = 159,
VMSTAT_THP_FAULT_FALLBACK_CHARGE = 160,
VMSTAT_THP_FILE_ALLOC = 161,
VMSTAT_THP_FILE_FALLBACK = 162,
VMSTAT_THP_FILE_FALLBACK_CHARGE = 163,
VMSTAT_THP_FILE_MAPPED = 164,
VMSTAT_THP_MIGRATION_FAIL = 165,
VMSTAT_THP_MIGRATION_SPLIT = 166,
VMSTAT_THP_MIGRATION_SUCCESS = 167,
VMSTAT_THP_SCAN_EXCEED_NONE_PTE = 168,
VMSTAT_THP_SCAN_EXCEED_SHARE_PTE = 169,
VMSTAT_THP_SCAN_EXCEED_SWAP_PTE = 170,
VMSTAT_THP_SPLIT_PAGE = 171,
VMSTAT_THP_SPLIT_PAGE_FAILED = 172,
VMSTAT_THP_SPLIT_PMD = 173,
VMSTAT_THP_SWPOUT = 174,
VMSTAT_THP_SWPOUT_FALLBACK = 175,
VMSTAT_THP_ZERO_PAGE_ALLOC = 176,
VMSTAT_THP_ZERO_PAGE_ALLOC_FAILED = 177,
VMSTAT_VMA_LOCK_ABORT = 178,
VMSTAT_VMA_LOCK_MISS = 179,
VMSTAT_VMA_LOCK_RETRY = 180,
VMSTAT_VMA_LOCK_SUCCESS = 181,
VMSTAT_WORKINGSET_ACTIVATE_ANON = 182,
VMSTAT_WORKINGSET_ACTIVATE_FILE = 183,
VMSTAT_WORKINGSET_NODES = 184,
VMSTAT_WORKINGSET_REFAULT_ANON = 185,
VMSTAT_WORKINGSET_REFAULT_FILE = 186,
VMSTAT_WORKINGSET_RESTORE_ANON = 187,
VMSTAT_WORKINGSET_RESTORE_FILE = 188,
UNRECOGNIZED = -1,
}

export function vmstatCountersFromJSON(object: any): VmstatCounters {
switch (object) {
case 0:
      case "VMSTAT_UNSPECIFIED":
        return VmstatCounters.VMSTAT_UNSPECIFIED;
case 1:
      case "VMSTAT_NR_FREE_PAGES":
        return VmstatCounters.VMSTAT_NR_FREE_PAGES;
case 2:
      case "VMSTAT_NR_ALLOC_BATCH":
        return VmstatCounters.VMSTAT_NR_ALLOC_BATCH;
case 3:
      case "VMSTAT_NR_INACTIVE_ANON":
        return VmstatCounters.VMSTAT_NR_INACTIVE_ANON;
case 4:
      case "VMSTAT_NR_ACTIVE_ANON":
        return VmstatCounters.VMSTAT_NR_ACTIVE_ANON;
case 5:
      case "VMSTAT_NR_INACTIVE_FILE":
        return VmstatCounters.VMSTAT_NR_INACTIVE_FILE;
case 6:
      case "VMSTAT_NR_ACTIVE_FILE":
        return VmstatCounters.VMSTAT_NR_ACTIVE_FILE;
case 7:
      case "VMSTAT_NR_UNEVICTABLE":
        return VmstatCounters.VMSTAT_NR_UNEVICTABLE;
case 8:
      case "VMSTAT_NR_MLOCK":
        return VmstatCounters.VMSTAT_NR_MLOCK;
case 9:
      case "VMSTAT_NR_ANON_PAGES":
        return VmstatCounters.VMSTAT_NR_ANON_PAGES;
case 10:
      case "VMSTAT_NR_MAPPED":
        return VmstatCounters.VMSTAT_NR_MAPPED;
case 11:
      case "VMSTAT_NR_FILE_PAGES":
        return VmstatCounters.VMSTAT_NR_FILE_PAGES;
case 12:
      case "VMSTAT_NR_DIRTY":
        return VmstatCounters.VMSTAT_NR_DIRTY;
case 13:
      case "VMSTAT_NR_WRITEBACK":
        return VmstatCounters.VMSTAT_NR_WRITEBACK;
case 14:
      case "VMSTAT_NR_SLAB_RECLAIMABLE":
        return VmstatCounters.VMSTAT_NR_SLAB_RECLAIMABLE;
case 15:
      case "VMSTAT_NR_SLAB_UNRECLAIMABLE":
        return VmstatCounters.VMSTAT_NR_SLAB_UNRECLAIMABLE;
case 16:
      case "VMSTAT_NR_PAGE_TABLE_PAGES":
        return VmstatCounters.VMSTAT_NR_PAGE_TABLE_PAGES;
case 17:
      case "VMSTAT_NR_KERNEL_STACK":
        return VmstatCounters.VMSTAT_NR_KERNEL_STACK;
case 18:
      case "VMSTAT_NR_OVERHEAD":
        return VmstatCounters.VMSTAT_NR_OVERHEAD;
case 19:
      case "VMSTAT_NR_UNSTABLE":
        return VmstatCounters.VMSTAT_NR_UNSTABLE;
case 20:
      case "VMSTAT_NR_BOUNCE":
        return VmstatCounters.VMSTAT_NR_BOUNCE;
case 21:
      case "VMSTAT_NR_VMSCAN_WRITE":
        return VmstatCounters.VMSTAT_NR_VMSCAN_WRITE;
case 22:
      case "VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM":
        return VmstatCounters.VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM;
case 23:
      case "VMSTAT_NR_WRITEBACK_TEMP":
        return VmstatCounters.VMSTAT_NR_WRITEBACK_TEMP;
case 24:
      case "VMSTAT_NR_ISOLATED_ANON":
        return VmstatCounters.VMSTAT_NR_ISOLATED_ANON;
case 25:
      case "VMSTAT_NR_ISOLATED_FILE":
        return VmstatCounters.VMSTAT_NR_ISOLATED_FILE;
case 26:
      case "VMSTAT_NR_SHMEM":
        return VmstatCounters.VMSTAT_NR_SHMEM;
case 27:
      case "VMSTAT_NR_DIRTIED":
        return VmstatCounters.VMSTAT_NR_DIRTIED;
case 28:
      case "VMSTAT_NR_WRITTEN":
        return VmstatCounters.VMSTAT_NR_WRITTEN;
case 29:
      case "VMSTAT_NR_PAGES_SCANNED":
        return VmstatCounters.VMSTAT_NR_PAGES_SCANNED;
case 30:
      case "VMSTAT_WORKINGSET_REFAULT":
        return VmstatCounters.VMSTAT_WORKINGSET_REFAULT;
case 31:
      case "VMSTAT_WORKINGSET_ACTIVATE":
        return VmstatCounters.VMSTAT_WORKINGSET_ACTIVATE;
case 32:
      case "VMSTAT_WORKINGSET_NODERECLAIM":
        return VmstatCounters.VMSTAT_WORKINGSET_NODERECLAIM;
case 33:
      case "VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES":
        return VmstatCounters.VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES;
case 34:
      case "VMSTAT_NR_FREE_CMA":
        return VmstatCounters.VMSTAT_NR_FREE_CMA;
case 35:
      case "VMSTAT_NR_SWAPCACHE":
        return VmstatCounters.VMSTAT_NR_SWAPCACHE;
case 36:
      case "VMSTAT_NR_DIRTY_THRESHOLD":
        return VmstatCounters.VMSTAT_NR_DIRTY_THRESHOLD;
case 37:
      case "VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD":
        return VmstatCounters.VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD;
case 38:
      case "VMSTAT_PGPGIN":
        return VmstatCounters.VMSTAT_PGPGIN;
case 39:
      case "VMSTAT_PGPGOUT":
        return VmstatCounters.VMSTAT_PGPGOUT;
case 40:
      case "VMSTAT_PGPGOUTCLEAN":
        return VmstatCounters.VMSTAT_PGPGOUTCLEAN;
case 41:
      case "VMSTAT_PSWPIN":
        return VmstatCounters.VMSTAT_PSWPIN;
case 42:
      case "VMSTAT_PSWPOUT":
        return VmstatCounters.VMSTAT_PSWPOUT;
case 43:
      case "VMSTAT_PGALLOC_DMA":
        return VmstatCounters.VMSTAT_PGALLOC_DMA;
case 44:
      case "VMSTAT_PGALLOC_NORMAL":
        return VmstatCounters.VMSTAT_PGALLOC_NORMAL;
case 45:
      case "VMSTAT_PGALLOC_MOVABLE":
        return VmstatCounters.VMSTAT_PGALLOC_MOVABLE;
case 46:
      case "VMSTAT_PGFREE":
        return VmstatCounters.VMSTAT_PGFREE;
case 47:
      case "VMSTAT_PGACTIVATE":
        return VmstatCounters.VMSTAT_PGACTIVATE;
case 48:
      case "VMSTAT_PGDEACTIVATE":
        return VmstatCounters.VMSTAT_PGDEACTIVATE;
case 49:
      case "VMSTAT_PGFAULT":
        return VmstatCounters.VMSTAT_PGFAULT;
case 50:
      case "VMSTAT_PGMAJFAULT":
        return VmstatCounters.VMSTAT_PGMAJFAULT;
case 51:
      case "VMSTAT_PGREFILL_DMA":
        return VmstatCounters.VMSTAT_PGREFILL_DMA;
case 52:
      case "VMSTAT_PGREFILL_NORMAL":
        return VmstatCounters.VMSTAT_PGREFILL_NORMAL;
case 53:
      case "VMSTAT_PGREFILL_MOVABLE":
        return VmstatCounters.VMSTAT_PGREFILL_MOVABLE;
case 54:
      case "VMSTAT_PGSTEAL_KSWAPD_DMA":
        return VmstatCounters.VMSTAT_PGSTEAL_KSWAPD_DMA;
case 55:
      case "VMSTAT_PGSTEAL_KSWAPD_NORMAL":
        return VmstatCounters.VMSTAT_PGSTEAL_KSWAPD_NORMAL;
case 56:
      case "VMSTAT_PGSTEAL_KSWAPD_MOVABLE":
        return VmstatCounters.VMSTAT_PGSTEAL_KSWAPD_MOVABLE;
case 57:
      case "VMSTAT_PGSTEAL_DIRECT_DMA":
        return VmstatCounters.VMSTAT_PGSTEAL_DIRECT_DMA;
case 58:
      case "VMSTAT_PGSTEAL_DIRECT_NORMAL":
        return VmstatCounters.VMSTAT_PGSTEAL_DIRECT_NORMAL;
case 59:
      case "VMSTAT_PGSTEAL_DIRECT_MOVABLE":
        return VmstatCounters.VMSTAT_PGSTEAL_DIRECT_MOVABLE;
case 60:
      case "VMSTAT_PGSCAN_KSWAPD_DMA":
        return VmstatCounters.VMSTAT_PGSCAN_KSWAPD_DMA;
case 61:
      case "VMSTAT_PGSCAN_KSWAPD_NORMAL":
        return VmstatCounters.VMSTAT_PGSCAN_KSWAPD_NORMAL;
case 62:
      case "VMSTAT_PGSCAN_KSWAPD_MOVABLE":
        return VmstatCounters.VMSTAT_PGSCAN_KSWAPD_MOVABLE;
case 63:
      case "VMSTAT_PGSCAN_DIRECT_DMA":
        return VmstatCounters.VMSTAT_PGSCAN_DIRECT_DMA;
case 64:
      case "VMSTAT_PGSCAN_DIRECT_NORMAL":
        return VmstatCounters.VMSTAT_PGSCAN_DIRECT_NORMAL;
case 65:
      case "VMSTAT_PGSCAN_DIRECT_MOVABLE":
        return VmstatCounters.VMSTAT_PGSCAN_DIRECT_MOVABLE;
case 66:
      case "VMSTAT_PGSCAN_DIRECT_THROTTLE":
        return VmstatCounters.VMSTAT_PGSCAN_DIRECT_THROTTLE;
case 67:
      case "VMSTAT_PGINODESTEAL":
        return VmstatCounters.VMSTAT_PGINODESTEAL;
case 68:
      case "VMSTAT_SLABS_SCANNED":
        return VmstatCounters.VMSTAT_SLABS_SCANNED;
case 69:
      case "VMSTAT_KSWAPD_INODESTEAL":
        return VmstatCounters.VMSTAT_KSWAPD_INODESTEAL;
case 70:
      case "VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY":
        return VmstatCounters.VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY;
case 71:
      case "VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY":
        return VmstatCounters.VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY;
case 72:
      case "VMSTAT_PAGEOUTRUN":
        return VmstatCounters.VMSTAT_PAGEOUTRUN;
case 73:
      case "VMSTAT_ALLOCSTALL":
        return VmstatCounters.VMSTAT_ALLOCSTALL;
case 74:
      case "VMSTAT_PGROTATED":
        return VmstatCounters.VMSTAT_PGROTATED;
case 75:
      case "VMSTAT_DROP_PAGECACHE":
        return VmstatCounters.VMSTAT_DROP_PAGECACHE;
case 76:
      case "VMSTAT_DROP_SLAB":
        return VmstatCounters.VMSTAT_DROP_SLAB;
case 77:
      case "VMSTAT_PGMIGRATE_SUCCESS":
        return VmstatCounters.VMSTAT_PGMIGRATE_SUCCESS;
case 78:
      case "VMSTAT_PGMIGRATE_FAIL":
        return VmstatCounters.VMSTAT_PGMIGRATE_FAIL;
case 79:
      case "VMSTAT_COMPACT_MIGRATE_SCANNED":
        return VmstatCounters.VMSTAT_COMPACT_MIGRATE_SCANNED;
case 80:
      case "VMSTAT_COMPACT_FREE_SCANNED":
        return VmstatCounters.VMSTAT_COMPACT_FREE_SCANNED;
case 81:
      case "VMSTAT_COMPACT_ISOLATED":
        return VmstatCounters.VMSTAT_COMPACT_ISOLATED;
case 82:
      case "VMSTAT_COMPACT_STALL":
        return VmstatCounters.VMSTAT_COMPACT_STALL;
case 83:
      case "VMSTAT_COMPACT_FAIL":
        return VmstatCounters.VMSTAT_COMPACT_FAIL;
case 84:
      case "VMSTAT_COMPACT_SUCCESS":
        return VmstatCounters.VMSTAT_COMPACT_SUCCESS;
case 85:
      case "VMSTAT_COMPACT_DAEMON_WAKE":
        return VmstatCounters.VMSTAT_COMPACT_DAEMON_WAKE;
case 86:
      case "VMSTAT_UNEVICTABLE_PGS_CULLED":
        return VmstatCounters.VMSTAT_UNEVICTABLE_PGS_CULLED;
case 87:
      case "VMSTAT_UNEVICTABLE_PGS_SCANNED":
        return VmstatCounters.VMSTAT_UNEVICTABLE_PGS_SCANNED;
case 88:
      case "VMSTAT_UNEVICTABLE_PGS_RESCUED":
        return VmstatCounters.VMSTAT_UNEVICTABLE_PGS_RESCUED;
case 89:
      case "VMSTAT_UNEVICTABLE_PGS_MLOCKED":
        return VmstatCounters.VMSTAT_UNEVICTABLE_PGS_MLOCKED;
case 90:
      case "VMSTAT_UNEVICTABLE_PGS_MUNLOCKED":
        return VmstatCounters.VMSTAT_UNEVICTABLE_PGS_MUNLOCKED;
case 91:
      case "VMSTAT_UNEVICTABLE_PGS_CLEARED":
        return VmstatCounters.VMSTAT_UNEVICTABLE_PGS_CLEARED;
case 92:
      case "VMSTAT_UNEVICTABLE_PGS_STRANDED":
        return VmstatCounters.VMSTAT_UNEVICTABLE_PGS_STRANDED;
case 93:
      case "VMSTAT_NR_ZSPAGES":
        return VmstatCounters.VMSTAT_NR_ZSPAGES;
case 94:
      case "VMSTAT_NR_ION_HEAP":
        return VmstatCounters.VMSTAT_NR_ION_HEAP;
case 95:
      case "VMSTAT_NR_GPU_HEAP":
        return VmstatCounters.VMSTAT_NR_GPU_HEAP;
case 96:
      case "VMSTAT_ALLOCSTALL_DMA":
        return VmstatCounters.VMSTAT_ALLOCSTALL_DMA;
case 97:
      case "VMSTAT_ALLOCSTALL_MOVABLE":
        return VmstatCounters.VMSTAT_ALLOCSTALL_MOVABLE;
case 98:
      case "VMSTAT_ALLOCSTALL_NORMAL":
        return VmstatCounters.VMSTAT_ALLOCSTALL_NORMAL;
case 99:
      case "VMSTAT_COMPACT_DAEMON_FREE_SCANNED":
        return VmstatCounters.VMSTAT_COMPACT_DAEMON_FREE_SCANNED;
case 100:
      case "VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED":
        return VmstatCounters.VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED;
case 101:
      case "VMSTAT_NR_FASTRPC":
        return VmstatCounters.VMSTAT_NR_FASTRPC;
case 102:
      case "VMSTAT_NR_INDIRECTLY_RECLAIMABLE":
        return VmstatCounters.VMSTAT_NR_INDIRECTLY_RECLAIMABLE;
case 103:
      case "VMSTAT_NR_ION_HEAP_POOL":
        return VmstatCounters.VMSTAT_NR_ION_HEAP_POOL;
case 104:
      case "VMSTAT_NR_KERNEL_MISC_RECLAIMABLE":
        return VmstatCounters.VMSTAT_NR_KERNEL_MISC_RECLAIMABLE;
case 105:
      case "VMSTAT_NR_SHADOW_CALL_STACK_BYTES":
        return VmstatCounters.VMSTAT_NR_SHADOW_CALL_STACK_BYTES;
case 106:
      case "VMSTAT_NR_SHMEM_HUGEPAGES":
        return VmstatCounters.VMSTAT_NR_SHMEM_HUGEPAGES;
case 107:
      case "VMSTAT_NR_SHMEM_PMDMAPPED":
        return VmstatCounters.VMSTAT_NR_SHMEM_PMDMAPPED;
case 108:
      case "VMSTAT_NR_UNRECLAIMABLE_PAGES":
        return VmstatCounters.VMSTAT_NR_UNRECLAIMABLE_PAGES;
case 109:
      case "VMSTAT_NR_ZONE_ACTIVE_ANON":
        return VmstatCounters.VMSTAT_NR_ZONE_ACTIVE_ANON;
case 110:
      case "VMSTAT_NR_ZONE_ACTIVE_FILE":
        return VmstatCounters.VMSTAT_NR_ZONE_ACTIVE_FILE;
case 111:
      case "VMSTAT_NR_ZONE_INACTIVE_ANON":
        return VmstatCounters.VMSTAT_NR_ZONE_INACTIVE_ANON;
case 112:
      case "VMSTAT_NR_ZONE_INACTIVE_FILE":
        return VmstatCounters.VMSTAT_NR_ZONE_INACTIVE_FILE;
case 113:
      case "VMSTAT_NR_ZONE_UNEVICTABLE":
        return VmstatCounters.VMSTAT_NR_ZONE_UNEVICTABLE;
case 114:
      case "VMSTAT_NR_ZONE_WRITE_PENDING":
        return VmstatCounters.VMSTAT_NR_ZONE_WRITE_PENDING;
case 115:
      case "VMSTAT_OOM_KILL":
        return VmstatCounters.VMSTAT_OOM_KILL;
case 116:
      case "VMSTAT_PGLAZYFREE":
        return VmstatCounters.VMSTAT_PGLAZYFREE;
case 117:
      case "VMSTAT_PGLAZYFREED":
        return VmstatCounters.VMSTAT_PGLAZYFREED;
case 118:
      case "VMSTAT_PGREFILL":
        return VmstatCounters.VMSTAT_PGREFILL;
case 119:
      case "VMSTAT_PGSCAN_DIRECT":
        return VmstatCounters.VMSTAT_PGSCAN_DIRECT;
case 120:
      case "VMSTAT_PGSCAN_KSWAPD":
        return VmstatCounters.VMSTAT_PGSCAN_KSWAPD;
case 121:
      case "VMSTAT_PGSKIP_DMA":
        return VmstatCounters.VMSTAT_PGSKIP_DMA;
case 122:
      case "VMSTAT_PGSKIP_MOVABLE":
        return VmstatCounters.VMSTAT_PGSKIP_MOVABLE;
case 123:
      case "VMSTAT_PGSKIP_NORMAL":
        return VmstatCounters.VMSTAT_PGSKIP_NORMAL;
case 124:
      case "VMSTAT_PGSTEAL_DIRECT":
        return VmstatCounters.VMSTAT_PGSTEAL_DIRECT;
case 125:
      case "VMSTAT_PGSTEAL_KSWAPD":
        return VmstatCounters.VMSTAT_PGSTEAL_KSWAPD;
case 126:
      case "VMSTAT_SWAP_RA":
        return VmstatCounters.VMSTAT_SWAP_RA;
case 127:
      case "VMSTAT_SWAP_RA_HIT":
        return VmstatCounters.VMSTAT_SWAP_RA_HIT;
case 128:
      case "VMSTAT_WORKINGSET_RESTORE":
        return VmstatCounters.VMSTAT_WORKINGSET_RESTORE;
case 129:
      case "VMSTAT_ALLOCSTALL_DEVICE":
        return VmstatCounters.VMSTAT_ALLOCSTALL_DEVICE;
case 130:
      case "VMSTAT_ALLOCSTALL_DMA32":
        return VmstatCounters.VMSTAT_ALLOCSTALL_DMA32;
case 131:
      case "VMSTAT_BALLOON_DEFLATE":
        return VmstatCounters.VMSTAT_BALLOON_DEFLATE;
case 132:
      case "VMSTAT_BALLOON_INFLATE":
        return VmstatCounters.VMSTAT_BALLOON_INFLATE;
case 133:
      case "VMSTAT_BALLOON_MIGRATE":
        return VmstatCounters.VMSTAT_BALLOON_MIGRATE;
case 134:
      case "VMSTAT_CMA_ALLOC_FAIL":
        return VmstatCounters.VMSTAT_CMA_ALLOC_FAIL;
case 135:
      case "VMSTAT_CMA_ALLOC_SUCCESS":
        return VmstatCounters.VMSTAT_CMA_ALLOC_SUCCESS;
case 136:
      case "VMSTAT_NR_FILE_HUGEPAGES":
        return VmstatCounters.VMSTAT_NR_FILE_HUGEPAGES;
case 137:
      case "VMSTAT_NR_FILE_PMDMAPPED":
        return VmstatCounters.VMSTAT_NR_FILE_PMDMAPPED;
case 138:
      case "VMSTAT_NR_FOLL_PIN_ACQUIRED":
        return VmstatCounters.VMSTAT_NR_FOLL_PIN_ACQUIRED;
case 139:
      case "VMSTAT_NR_FOLL_PIN_RELEASED":
        return VmstatCounters.VMSTAT_NR_FOLL_PIN_RELEASED;
case 140:
      case "VMSTAT_NR_SEC_PAGE_TABLE_PAGES":
        return VmstatCounters.VMSTAT_NR_SEC_PAGE_TABLE_PAGES;
case 141:
      case "VMSTAT_NR_SHADOW_CALL_STACK":
        return VmstatCounters.VMSTAT_NR_SHADOW_CALL_STACK;
case 142:
      case "VMSTAT_NR_SWAPCACHED":
        return VmstatCounters.VMSTAT_NR_SWAPCACHED;
case 143:
      case "VMSTAT_NR_THROTTLED_WRITTEN":
        return VmstatCounters.VMSTAT_NR_THROTTLED_WRITTEN;
case 144:
      case "VMSTAT_PGALLOC_DEVICE":
        return VmstatCounters.VMSTAT_PGALLOC_DEVICE;
case 145:
      case "VMSTAT_PGALLOC_DMA32":
        return VmstatCounters.VMSTAT_PGALLOC_DMA32;
case 146:
      case "VMSTAT_PGDEMOTE_DIRECT":
        return VmstatCounters.VMSTAT_PGDEMOTE_DIRECT;
case 147:
      case "VMSTAT_PGDEMOTE_KSWAPD":
        return VmstatCounters.VMSTAT_PGDEMOTE_KSWAPD;
case 148:
      case "VMSTAT_PGREUSE":
        return VmstatCounters.VMSTAT_PGREUSE;
case 149:
      case "VMSTAT_PGSCAN_ANON":
        return VmstatCounters.VMSTAT_PGSCAN_ANON;
case 150:
      case "VMSTAT_PGSCAN_FILE":
        return VmstatCounters.VMSTAT_PGSCAN_FILE;
case 151:
      case "VMSTAT_PGSKIP_DEVICE":
        return VmstatCounters.VMSTAT_PGSKIP_DEVICE;
case 152:
      case "VMSTAT_PGSKIP_DMA32":
        return VmstatCounters.VMSTAT_PGSKIP_DMA32;
case 153:
      case "VMSTAT_PGSTEAL_ANON":
        return VmstatCounters.VMSTAT_PGSTEAL_ANON;
case 154:
      case "VMSTAT_PGSTEAL_FILE":
        return VmstatCounters.VMSTAT_PGSTEAL_FILE;
case 155:
      case "VMSTAT_THP_COLLAPSE_ALLOC":
        return VmstatCounters.VMSTAT_THP_COLLAPSE_ALLOC;
case 156:
      case "VMSTAT_THP_COLLAPSE_ALLOC_FAILED":
        return VmstatCounters.VMSTAT_THP_COLLAPSE_ALLOC_FAILED;
case 157:
      case "VMSTAT_THP_DEFERRED_SPLIT_PAGE":
        return VmstatCounters.VMSTAT_THP_DEFERRED_SPLIT_PAGE;
case 158:
      case "VMSTAT_THP_FAULT_ALLOC":
        return VmstatCounters.VMSTAT_THP_FAULT_ALLOC;
case 159:
      case "VMSTAT_THP_FAULT_FALLBACK":
        return VmstatCounters.VMSTAT_THP_FAULT_FALLBACK;
case 160:
      case "VMSTAT_THP_FAULT_FALLBACK_CHARGE":
        return VmstatCounters.VMSTAT_THP_FAULT_FALLBACK_CHARGE;
case 161:
      case "VMSTAT_THP_FILE_ALLOC":
        return VmstatCounters.VMSTAT_THP_FILE_ALLOC;
case 162:
      case "VMSTAT_THP_FILE_FALLBACK":
        return VmstatCounters.VMSTAT_THP_FILE_FALLBACK;
case 163:
      case "VMSTAT_THP_FILE_FALLBACK_CHARGE":
        return VmstatCounters.VMSTAT_THP_FILE_FALLBACK_CHARGE;
case 164:
      case "VMSTAT_THP_FILE_MAPPED":
        return VmstatCounters.VMSTAT_THP_FILE_MAPPED;
case 165:
      case "VMSTAT_THP_MIGRATION_FAIL":
        return VmstatCounters.VMSTAT_THP_MIGRATION_FAIL;
case 166:
      case "VMSTAT_THP_MIGRATION_SPLIT":
        return VmstatCounters.VMSTAT_THP_MIGRATION_SPLIT;
case 167:
      case "VMSTAT_THP_MIGRATION_SUCCESS":
        return VmstatCounters.VMSTAT_THP_MIGRATION_SUCCESS;
case 168:
      case "VMSTAT_THP_SCAN_EXCEED_NONE_PTE":
        return VmstatCounters.VMSTAT_THP_SCAN_EXCEED_NONE_PTE;
case 169:
      case "VMSTAT_THP_SCAN_EXCEED_SHARE_PTE":
        return VmstatCounters.VMSTAT_THP_SCAN_EXCEED_SHARE_PTE;
case 170:
      case "VMSTAT_THP_SCAN_EXCEED_SWAP_PTE":
        return VmstatCounters.VMSTAT_THP_SCAN_EXCEED_SWAP_PTE;
case 171:
      case "VMSTAT_THP_SPLIT_PAGE":
        return VmstatCounters.VMSTAT_THP_SPLIT_PAGE;
case 172:
      case "VMSTAT_THP_SPLIT_PAGE_FAILED":
        return VmstatCounters.VMSTAT_THP_SPLIT_PAGE_FAILED;
case 173:
      case "VMSTAT_THP_SPLIT_PMD":
        return VmstatCounters.VMSTAT_THP_SPLIT_PMD;
case 174:
      case "VMSTAT_THP_SWPOUT":
        return VmstatCounters.VMSTAT_THP_SWPOUT;
case 175:
      case "VMSTAT_THP_SWPOUT_FALLBACK":
        return VmstatCounters.VMSTAT_THP_SWPOUT_FALLBACK;
case 176:
      case "VMSTAT_THP_ZERO_PAGE_ALLOC":
        return VmstatCounters.VMSTAT_THP_ZERO_PAGE_ALLOC;
case 177:
      case "VMSTAT_THP_ZERO_PAGE_ALLOC_FAILED":
        return VmstatCounters.VMSTAT_THP_ZERO_PAGE_ALLOC_FAILED;
case 178:
      case "VMSTAT_VMA_LOCK_ABORT":
        return VmstatCounters.VMSTAT_VMA_LOCK_ABORT;
case 179:
      case "VMSTAT_VMA_LOCK_MISS":
        return VmstatCounters.VMSTAT_VMA_LOCK_MISS;
case 180:
      case "VMSTAT_VMA_LOCK_RETRY":
        return VmstatCounters.VMSTAT_VMA_LOCK_RETRY;
case 181:
      case "VMSTAT_VMA_LOCK_SUCCESS":
        return VmstatCounters.VMSTAT_VMA_LOCK_SUCCESS;
case 182:
      case "VMSTAT_WORKINGSET_ACTIVATE_ANON":
        return VmstatCounters.VMSTAT_WORKINGSET_ACTIVATE_ANON;
case 183:
      case "VMSTAT_WORKINGSET_ACTIVATE_FILE":
        return VmstatCounters.VMSTAT_WORKINGSET_ACTIVATE_FILE;
case 184:
      case "VMSTAT_WORKINGSET_NODES":
        return VmstatCounters.VMSTAT_WORKINGSET_NODES;
case 185:
      case "VMSTAT_WORKINGSET_REFAULT_ANON":
        return VmstatCounters.VMSTAT_WORKINGSET_REFAULT_ANON;
case 186:
      case "VMSTAT_WORKINGSET_REFAULT_FILE":
        return VmstatCounters.VMSTAT_WORKINGSET_REFAULT_FILE;
case 187:
      case "VMSTAT_WORKINGSET_RESTORE_ANON":
        return VmstatCounters.VMSTAT_WORKINGSET_RESTORE_ANON;
case 188:
      case "VMSTAT_WORKINGSET_RESTORE_FILE":
        return VmstatCounters.VMSTAT_WORKINGSET_RESTORE_FILE;
case -1:
        case "UNRECOGNIZED":
        default:
          return VmstatCounters.UNRECOGNIZED;
}
}

export function vmstatCountersToJSON(object: VmstatCounters): string {
switch (object) {
case VmstatCounters.VMSTAT_UNSPECIFIED: return "VMSTAT_UNSPECIFIED";
case VmstatCounters.VMSTAT_NR_FREE_PAGES: return "VMSTAT_NR_FREE_PAGES";
case VmstatCounters.VMSTAT_NR_ALLOC_BATCH: return "VMSTAT_NR_ALLOC_BATCH";
case VmstatCounters.VMSTAT_NR_INACTIVE_ANON: return "VMSTAT_NR_INACTIVE_ANON";
case VmstatCounters.VMSTAT_NR_ACTIVE_ANON: return "VMSTAT_NR_ACTIVE_ANON";
case VmstatCounters.VMSTAT_NR_INACTIVE_FILE: return "VMSTAT_NR_INACTIVE_FILE";
case VmstatCounters.VMSTAT_NR_ACTIVE_FILE: return "VMSTAT_NR_ACTIVE_FILE";
case VmstatCounters.VMSTAT_NR_UNEVICTABLE: return "VMSTAT_NR_UNEVICTABLE";
case VmstatCounters.VMSTAT_NR_MLOCK: return "VMSTAT_NR_MLOCK";
case VmstatCounters.VMSTAT_NR_ANON_PAGES: return "VMSTAT_NR_ANON_PAGES";
case VmstatCounters.VMSTAT_NR_MAPPED: return "VMSTAT_NR_MAPPED";
case VmstatCounters.VMSTAT_NR_FILE_PAGES: return "VMSTAT_NR_FILE_PAGES";
case VmstatCounters.VMSTAT_NR_DIRTY: return "VMSTAT_NR_DIRTY";
case VmstatCounters.VMSTAT_NR_WRITEBACK: return "VMSTAT_NR_WRITEBACK";
case VmstatCounters.VMSTAT_NR_SLAB_RECLAIMABLE: return "VMSTAT_NR_SLAB_RECLAIMABLE";
case VmstatCounters.VMSTAT_NR_SLAB_UNRECLAIMABLE: return "VMSTAT_NR_SLAB_UNRECLAIMABLE";
case VmstatCounters.VMSTAT_NR_PAGE_TABLE_PAGES: return "VMSTAT_NR_PAGE_TABLE_PAGES";
case VmstatCounters.VMSTAT_NR_KERNEL_STACK: return "VMSTAT_NR_KERNEL_STACK";
case VmstatCounters.VMSTAT_NR_OVERHEAD: return "VMSTAT_NR_OVERHEAD";
case VmstatCounters.VMSTAT_NR_UNSTABLE: return "VMSTAT_NR_UNSTABLE";
case VmstatCounters.VMSTAT_NR_BOUNCE: return "VMSTAT_NR_BOUNCE";
case VmstatCounters.VMSTAT_NR_VMSCAN_WRITE: return "VMSTAT_NR_VMSCAN_WRITE";
case VmstatCounters.VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM: return "VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM";
case VmstatCounters.VMSTAT_NR_WRITEBACK_TEMP: return "VMSTAT_NR_WRITEBACK_TEMP";
case VmstatCounters.VMSTAT_NR_ISOLATED_ANON: return "VMSTAT_NR_ISOLATED_ANON";
case VmstatCounters.VMSTAT_NR_ISOLATED_FILE: return "VMSTAT_NR_ISOLATED_FILE";
case VmstatCounters.VMSTAT_NR_SHMEM: return "VMSTAT_NR_SHMEM";
case VmstatCounters.VMSTAT_NR_DIRTIED: return "VMSTAT_NR_DIRTIED";
case VmstatCounters.VMSTAT_NR_WRITTEN: return "VMSTAT_NR_WRITTEN";
case VmstatCounters.VMSTAT_NR_PAGES_SCANNED: return "VMSTAT_NR_PAGES_SCANNED";
case VmstatCounters.VMSTAT_WORKINGSET_REFAULT: return "VMSTAT_WORKINGSET_REFAULT";
case VmstatCounters.VMSTAT_WORKINGSET_ACTIVATE: return "VMSTAT_WORKINGSET_ACTIVATE";
case VmstatCounters.VMSTAT_WORKINGSET_NODERECLAIM: return "VMSTAT_WORKINGSET_NODERECLAIM";
case VmstatCounters.VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES: return "VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES";
case VmstatCounters.VMSTAT_NR_FREE_CMA: return "VMSTAT_NR_FREE_CMA";
case VmstatCounters.VMSTAT_NR_SWAPCACHE: return "VMSTAT_NR_SWAPCACHE";
case VmstatCounters.VMSTAT_NR_DIRTY_THRESHOLD: return "VMSTAT_NR_DIRTY_THRESHOLD";
case VmstatCounters.VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD: return "VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD";
case VmstatCounters.VMSTAT_PGPGIN: return "VMSTAT_PGPGIN";
case VmstatCounters.VMSTAT_PGPGOUT: return "VMSTAT_PGPGOUT";
case VmstatCounters.VMSTAT_PGPGOUTCLEAN: return "VMSTAT_PGPGOUTCLEAN";
case VmstatCounters.VMSTAT_PSWPIN: return "VMSTAT_PSWPIN";
case VmstatCounters.VMSTAT_PSWPOUT: return "VMSTAT_PSWPOUT";
case VmstatCounters.VMSTAT_PGALLOC_DMA: return "VMSTAT_PGALLOC_DMA";
case VmstatCounters.VMSTAT_PGALLOC_NORMAL: return "VMSTAT_PGALLOC_NORMAL";
case VmstatCounters.VMSTAT_PGALLOC_MOVABLE: return "VMSTAT_PGALLOC_MOVABLE";
case VmstatCounters.VMSTAT_PGFREE: return "VMSTAT_PGFREE";
case VmstatCounters.VMSTAT_PGACTIVATE: return "VMSTAT_PGACTIVATE";
case VmstatCounters.VMSTAT_PGDEACTIVATE: return "VMSTAT_PGDEACTIVATE";
case VmstatCounters.VMSTAT_PGFAULT: return "VMSTAT_PGFAULT";
case VmstatCounters.VMSTAT_PGMAJFAULT: return "VMSTAT_PGMAJFAULT";
case VmstatCounters.VMSTAT_PGREFILL_DMA: return "VMSTAT_PGREFILL_DMA";
case VmstatCounters.VMSTAT_PGREFILL_NORMAL: return "VMSTAT_PGREFILL_NORMAL";
case VmstatCounters.VMSTAT_PGREFILL_MOVABLE: return "VMSTAT_PGREFILL_MOVABLE";
case VmstatCounters.VMSTAT_PGSTEAL_KSWAPD_DMA: return "VMSTAT_PGSTEAL_KSWAPD_DMA";
case VmstatCounters.VMSTAT_PGSTEAL_KSWAPD_NORMAL: return "VMSTAT_PGSTEAL_KSWAPD_NORMAL";
case VmstatCounters.VMSTAT_PGSTEAL_KSWAPD_MOVABLE: return "VMSTAT_PGSTEAL_KSWAPD_MOVABLE";
case VmstatCounters.VMSTAT_PGSTEAL_DIRECT_DMA: return "VMSTAT_PGSTEAL_DIRECT_DMA";
case VmstatCounters.VMSTAT_PGSTEAL_DIRECT_NORMAL: return "VMSTAT_PGSTEAL_DIRECT_NORMAL";
case VmstatCounters.VMSTAT_PGSTEAL_DIRECT_MOVABLE: return "VMSTAT_PGSTEAL_DIRECT_MOVABLE";
case VmstatCounters.VMSTAT_PGSCAN_KSWAPD_DMA: return "VMSTAT_PGSCAN_KSWAPD_DMA";
case VmstatCounters.VMSTAT_PGSCAN_KSWAPD_NORMAL: return "VMSTAT_PGSCAN_KSWAPD_NORMAL";
case VmstatCounters.VMSTAT_PGSCAN_KSWAPD_MOVABLE: return "VMSTAT_PGSCAN_KSWAPD_MOVABLE";
case VmstatCounters.VMSTAT_PGSCAN_DIRECT_DMA: return "VMSTAT_PGSCAN_DIRECT_DMA";
case VmstatCounters.VMSTAT_PGSCAN_DIRECT_NORMAL: return "VMSTAT_PGSCAN_DIRECT_NORMAL";
case VmstatCounters.VMSTAT_PGSCAN_DIRECT_MOVABLE: return "VMSTAT_PGSCAN_DIRECT_MOVABLE";
case VmstatCounters.VMSTAT_PGSCAN_DIRECT_THROTTLE: return "VMSTAT_PGSCAN_DIRECT_THROTTLE";
case VmstatCounters.VMSTAT_PGINODESTEAL: return "VMSTAT_PGINODESTEAL";
case VmstatCounters.VMSTAT_SLABS_SCANNED: return "VMSTAT_SLABS_SCANNED";
case VmstatCounters.VMSTAT_KSWAPD_INODESTEAL: return "VMSTAT_KSWAPD_INODESTEAL";
case VmstatCounters.VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY: return "VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY";
case VmstatCounters.VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY: return "VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY";
case VmstatCounters.VMSTAT_PAGEOUTRUN: return "VMSTAT_PAGEOUTRUN";
case VmstatCounters.VMSTAT_ALLOCSTALL: return "VMSTAT_ALLOCSTALL";
case VmstatCounters.VMSTAT_PGROTATED: return "VMSTAT_PGROTATED";
case VmstatCounters.VMSTAT_DROP_PAGECACHE: return "VMSTAT_DROP_PAGECACHE";
case VmstatCounters.VMSTAT_DROP_SLAB: return "VMSTAT_DROP_SLAB";
case VmstatCounters.VMSTAT_PGMIGRATE_SUCCESS: return "VMSTAT_PGMIGRATE_SUCCESS";
case VmstatCounters.VMSTAT_PGMIGRATE_FAIL: return "VMSTAT_PGMIGRATE_FAIL";
case VmstatCounters.VMSTAT_COMPACT_MIGRATE_SCANNED: return "VMSTAT_COMPACT_MIGRATE_SCANNED";
case VmstatCounters.VMSTAT_COMPACT_FREE_SCANNED: return "VMSTAT_COMPACT_FREE_SCANNED";
case VmstatCounters.VMSTAT_COMPACT_ISOLATED: return "VMSTAT_COMPACT_ISOLATED";
case VmstatCounters.VMSTAT_COMPACT_STALL: return "VMSTAT_COMPACT_STALL";
case VmstatCounters.VMSTAT_COMPACT_FAIL: return "VMSTAT_COMPACT_FAIL";
case VmstatCounters.VMSTAT_COMPACT_SUCCESS: return "VMSTAT_COMPACT_SUCCESS";
case VmstatCounters.VMSTAT_COMPACT_DAEMON_WAKE: return "VMSTAT_COMPACT_DAEMON_WAKE";
case VmstatCounters.VMSTAT_UNEVICTABLE_PGS_CULLED: return "VMSTAT_UNEVICTABLE_PGS_CULLED";
case VmstatCounters.VMSTAT_UNEVICTABLE_PGS_SCANNED: return "VMSTAT_UNEVICTABLE_PGS_SCANNED";
case VmstatCounters.VMSTAT_UNEVICTABLE_PGS_RESCUED: return "VMSTAT_UNEVICTABLE_PGS_RESCUED";
case VmstatCounters.VMSTAT_UNEVICTABLE_PGS_MLOCKED: return "VMSTAT_UNEVICTABLE_PGS_MLOCKED";
case VmstatCounters.VMSTAT_UNEVICTABLE_PGS_MUNLOCKED: return "VMSTAT_UNEVICTABLE_PGS_MUNLOCKED";
case VmstatCounters.VMSTAT_UNEVICTABLE_PGS_CLEARED: return "VMSTAT_UNEVICTABLE_PGS_CLEARED";
case VmstatCounters.VMSTAT_UNEVICTABLE_PGS_STRANDED: return "VMSTAT_UNEVICTABLE_PGS_STRANDED";
case VmstatCounters.VMSTAT_NR_ZSPAGES: return "VMSTAT_NR_ZSPAGES";
case VmstatCounters.VMSTAT_NR_ION_HEAP: return "VMSTAT_NR_ION_HEAP";
case VmstatCounters.VMSTAT_NR_GPU_HEAP: return "VMSTAT_NR_GPU_HEAP";
case VmstatCounters.VMSTAT_ALLOCSTALL_DMA: return "VMSTAT_ALLOCSTALL_DMA";
case VmstatCounters.VMSTAT_ALLOCSTALL_MOVABLE: return "VMSTAT_ALLOCSTALL_MOVABLE";
case VmstatCounters.VMSTAT_ALLOCSTALL_NORMAL: return "VMSTAT_ALLOCSTALL_NORMAL";
case VmstatCounters.VMSTAT_COMPACT_DAEMON_FREE_SCANNED: return "VMSTAT_COMPACT_DAEMON_FREE_SCANNED";
case VmstatCounters.VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED: return "VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED";
case VmstatCounters.VMSTAT_NR_FASTRPC: return "VMSTAT_NR_FASTRPC";
case VmstatCounters.VMSTAT_NR_INDIRECTLY_RECLAIMABLE: return "VMSTAT_NR_INDIRECTLY_RECLAIMABLE";
case VmstatCounters.VMSTAT_NR_ION_HEAP_POOL: return "VMSTAT_NR_ION_HEAP_POOL";
case VmstatCounters.VMSTAT_NR_KERNEL_MISC_RECLAIMABLE: return "VMSTAT_NR_KERNEL_MISC_RECLAIMABLE";
case VmstatCounters.VMSTAT_NR_SHADOW_CALL_STACK_BYTES: return "VMSTAT_NR_SHADOW_CALL_STACK_BYTES";
case VmstatCounters.VMSTAT_NR_SHMEM_HUGEPAGES: return "VMSTAT_NR_SHMEM_HUGEPAGES";
case VmstatCounters.VMSTAT_NR_SHMEM_PMDMAPPED: return "VMSTAT_NR_SHMEM_PMDMAPPED";
case VmstatCounters.VMSTAT_NR_UNRECLAIMABLE_PAGES: return "VMSTAT_NR_UNRECLAIMABLE_PAGES";
case VmstatCounters.VMSTAT_NR_ZONE_ACTIVE_ANON: return "VMSTAT_NR_ZONE_ACTIVE_ANON";
case VmstatCounters.VMSTAT_NR_ZONE_ACTIVE_FILE: return "VMSTAT_NR_ZONE_ACTIVE_FILE";
case VmstatCounters.VMSTAT_NR_ZONE_INACTIVE_ANON: return "VMSTAT_NR_ZONE_INACTIVE_ANON";
case VmstatCounters.VMSTAT_NR_ZONE_INACTIVE_FILE: return "VMSTAT_NR_ZONE_INACTIVE_FILE";
case VmstatCounters.VMSTAT_NR_ZONE_UNEVICTABLE: return "VMSTAT_NR_ZONE_UNEVICTABLE";
case VmstatCounters.VMSTAT_NR_ZONE_WRITE_PENDING: return "VMSTAT_NR_ZONE_WRITE_PENDING";
case VmstatCounters.VMSTAT_OOM_KILL: return "VMSTAT_OOM_KILL";
case VmstatCounters.VMSTAT_PGLAZYFREE: return "VMSTAT_PGLAZYFREE";
case VmstatCounters.VMSTAT_PGLAZYFREED: return "VMSTAT_PGLAZYFREED";
case VmstatCounters.VMSTAT_PGREFILL: return "VMSTAT_PGREFILL";
case VmstatCounters.VMSTAT_PGSCAN_DIRECT: return "VMSTAT_PGSCAN_DIRECT";
case VmstatCounters.VMSTAT_PGSCAN_KSWAPD: return "VMSTAT_PGSCAN_KSWAPD";
case VmstatCounters.VMSTAT_PGSKIP_DMA: return "VMSTAT_PGSKIP_DMA";
case VmstatCounters.VMSTAT_PGSKIP_MOVABLE: return "VMSTAT_PGSKIP_MOVABLE";
case VmstatCounters.VMSTAT_PGSKIP_NORMAL: return "VMSTAT_PGSKIP_NORMAL";
case VmstatCounters.VMSTAT_PGSTEAL_DIRECT: return "VMSTAT_PGSTEAL_DIRECT";
case VmstatCounters.VMSTAT_PGSTEAL_KSWAPD: return "VMSTAT_PGSTEAL_KSWAPD";
case VmstatCounters.VMSTAT_SWAP_RA: return "VMSTAT_SWAP_RA";
case VmstatCounters.VMSTAT_SWAP_RA_HIT: return "VMSTAT_SWAP_RA_HIT";
case VmstatCounters.VMSTAT_WORKINGSET_RESTORE: return "VMSTAT_WORKINGSET_RESTORE";
case VmstatCounters.VMSTAT_ALLOCSTALL_DEVICE: return "VMSTAT_ALLOCSTALL_DEVICE";
case VmstatCounters.VMSTAT_ALLOCSTALL_DMA32: return "VMSTAT_ALLOCSTALL_DMA32";
case VmstatCounters.VMSTAT_BALLOON_DEFLATE: return "VMSTAT_BALLOON_DEFLATE";
case VmstatCounters.VMSTAT_BALLOON_INFLATE: return "VMSTAT_BALLOON_INFLATE";
case VmstatCounters.VMSTAT_BALLOON_MIGRATE: return "VMSTAT_BALLOON_MIGRATE";
case VmstatCounters.VMSTAT_CMA_ALLOC_FAIL: return "VMSTAT_CMA_ALLOC_FAIL";
case VmstatCounters.VMSTAT_CMA_ALLOC_SUCCESS: return "VMSTAT_CMA_ALLOC_SUCCESS";
case VmstatCounters.VMSTAT_NR_FILE_HUGEPAGES: return "VMSTAT_NR_FILE_HUGEPAGES";
case VmstatCounters.VMSTAT_NR_FILE_PMDMAPPED: return "VMSTAT_NR_FILE_PMDMAPPED";
case VmstatCounters.VMSTAT_NR_FOLL_PIN_ACQUIRED: return "VMSTAT_NR_FOLL_PIN_ACQUIRED";
case VmstatCounters.VMSTAT_NR_FOLL_PIN_RELEASED: return "VMSTAT_NR_FOLL_PIN_RELEASED";
case VmstatCounters.VMSTAT_NR_SEC_PAGE_TABLE_PAGES: return "VMSTAT_NR_SEC_PAGE_TABLE_PAGES";
case VmstatCounters.VMSTAT_NR_SHADOW_CALL_STACK: return "VMSTAT_NR_SHADOW_CALL_STACK";
case VmstatCounters.VMSTAT_NR_SWAPCACHED: return "VMSTAT_NR_SWAPCACHED";
case VmstatCounters.VMSTAT_NR_THROTTLED_WRITTEN: return "VMSTAT_NR_THROTTLED_WRITTEN";
case VmstatCounters.VMSTAT_PGALLOC_DEVICE: return "VMSTAT_PGALLOC_DEVICE";
case VmstatCounters.VMSTAT_PGALLOC_DMA32: return "VMSTAT_PGALLOC_DMA32";
case VmstatCounters.VMSTAT_PGDEMOTE_DIRECT: return "VMSTAT_PGDEMOTE_DIRECT";
case VmstatCounters.VMSTAT_PGDEMOTE_KSWAPD: return "VMSTAT_PGDEMOTE_KSWAPD";
case VmstatCounters.VMSTAT_PGREUSE: return "VMSTAT_PGREUSE";
case VmstatCounters.VMSTAT_PGSCAN_ANON: return "VMSTAT_PGSCAN_ANON";
case VmstatCounters.VMSTAT_PGSCAN_FILE: return "VMSTAT_PGSCAN_FILE";
case VmstatCounters.VMSTAT_PGSKIP_DEVICE: return "VMSTAT_PGSKIP_DEVICE";
case VmstatCounters.VMSTAT_PGSKIP_DMA32: return "VMSTAT_PGSKIP_DMA32";
case VmstatCounters.VMSTAT_PGSTEAL_ANON: return "VMSTAT_PGSTEAL_ANON";
case VmstatCounters.VMSTAT_PGSTEAL_FILE: return "VMSTAT_PGSTEAL_FILE";
case VmstatCounters.VMSTAT_THP_COLLAPSE_ALLOC: return "VMSTAT_THP_COLLAPSE_ALLOC";
case VmstatCounters.VMSTAT_THP_COLLAPSE_ALLOC_FAILED: return "VMSTAT_THP_COLLAPSE_ALLOC_FAILED";
case VmstatCounters.VMSTAT_THP_DEFERRED_SPLIT_PAGE: return "VMSTAT_THP_DEFERRED_SPLIT_PAGE";
case VmstatCounters.VMSTAT_THP_FAULT_ALLOC: return "VMSTAT_THP_FAULT_ALLOC";
case VmstatCounters.VMSTAT_THP_FAULT_FALLBACK: return "VMSTAT_THP_FAULT_FALLBACK";
case VmstatCounters.VMSTAT_THP_FAULT_FALLBACK_CHARGE: return "VMSTAT_THP_FAULT_FALLBACK_CHARGE";
case VmstatCounters.VMSTAT_THP_FILE_ALLOC: return "VMSTAT_THP_FILE_ALLOC";
case VmstatCounters.VMSTAT_THP_FILE_FALLBACK: return "VMSTAT_THP_FILE_FALLBACK";
case VmstatCounters.VMSTAT_THP_FILE_FALLBACK_CHARGE: return "VMSTAT_THP_FILE_FALLBACK_CHARGE";
case VmstatCounters.VMSTAT_THP_FILE_MAPPED: return "VMSTAT_THP_FILE_MAPPED";
case VmstatCounters.VMSTAT_THP_MIGRATION_FAIL: return "VMSTAT_THP_MIGRATION_FAIL";
case VmstatCounters.VMSTAT_THP_MIGRATION_SPLIT: return "VMSTAT_THP_MIGRATION_SPLIT";
case VmstatCounters.VMSTAT_THP_MIGRATION_SUCCESS: return "VMSTAT_THP_MIGRATION_SUCCESS";
case VmstatCounters.VMSTAT_THP_SCAN_EXCEED_NONE_PTE: return "VMSTAT_THP_SCAN_EXCEED_NONE_PTE";
case VmstatCounters.VMSTAT_THP_SCAN_EXCEED_SHARE_PTE: return "VMSTAT_THP_SCAN_EXCEED_SHARE_PTE";
case VmstatCounters.VMSTAT_THP_SCAN_EXCEED_SWAP_PTE: return "VMSTAT_THP_SCAN_EXCEED_SWAP_PTE";
case VmstatCounters.VMSTAT_THP_SPLIT_PAGE: return "VMSTAT_THP_SPLIT_PAGE";
case VmstatCounters.VMSTAT_THP_SPLIT_PAGE_FAILED: return "VMSTAT_THP_SPLIT_PAGE_FAILED";
case VmstatCounters.VMSTAT_THP_SPLIT_PMD: return "VMSTAT_THP_SPLIT_PMD";
case VmstatCounters.VMSTAT_THP_SWPOUT: return "VMSTAT_THP_SWPOUT";
case VmstatCounters.VMSTAT_THP_SWPOUT_FALLBACK: return "VMSTAT_THP_SWPOUT_FALLBACK";
case VmstatCounters.VMSTAT_THP_ZERO_PAGE_ALLOC: return "VMSTAT_THP_ZERO_PAGE_ALLOC";
case VmstatCounters.VMSTAT_THP_ZERO_PAGE_ALLOC_FAILED: return "VMSTAT_THP_ZERO_PAGE_ALLOC_FAILED";
case VmstatCounters.VMSTAT_VMA_LOCK_ABORT: return "VMSTAT_VMA_LOCK_ABORT";
case VmstatCounters.VMSTAT_VMA_LOCK_MISS: return "VMSTAT_VMA_LOCK_MISS";
case VmstatCounters.VMSTAT_VMA_LOCK_RETRY: return "VMSTAT_VMA_LOCK_RETRY";
case VmstatCounters.VMSTAT_VMA_LOCK_SUCCESS: return "VMSTAT_VMA_LOCK_SUCCESS";
case VmstatCounters.VMSTAT_WORKINGSET_ACTIVATE_ANON: return "VMSTAT_WORKINGSET_ACTIVATE_ANON";
case VmstatCounters.VMSTAT_WORKINGSET_ACTIVATE_FILE: return "VMSTAT_WORKINGSET_ACTIVATE_FILE";
case VmstatCounters.VMSTAT_WORKINGSET_NODES: return "VMSTAT_WORKINGSET_NODES";
case VmstatCounters.VMSTAT_WORKINGSET_REFAULT_ANON: return "VMSTAT_WORKINGSET_REFAULT_ANON";
case VmstatCounters.VMSTAT_WORKINGSET_REFAULT_FILE: return "VMSTAT_WORKINGSET_REFAULT_FILE";
case VmstatCounters.VMSTAT_WORKINGSET_RESTORE_ANON: return "VMSTAT_WORKINGSET_RESTORE_ANON";
case VmstatCounters.VMSTAT_WORKINGSET_RESTORE_FILE: return "VMSTAT_WORKINGSET_RESTORE_FILE";
case VmstatCounters.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export interface FtraceDescriptor {
/**
 * Report the available atrace categories.
 * 
 * Used by Traceur via `perfetto --query`.
 */
atraceCategories?: FtraceDescriptor_AtraceCategory[] | undefined,
}

export interface FtraceDescriptor_AtraceCategory {
name?: string | undefined,
description?: string | undefined,
}

/**
 * Description of GPU counters.
 * This message is sent by a GPU counter producer to specify the counters
 * available in the hardware.
 */
export interface GpuCounterDescriptor {
specs?: GpuCounterDescriptor_GpuCounterSpec[] | undefined,
blocks?: GpuCounterDescriptor_GpuCounterBlock[] | undefined,
counterGroups?: GpuCounterDescriptor_GpuCounterGroupSpec[] | undefined,
/**
 * optional.  Minimum sampling period supported by the producer in
 * nanoseconds.
 */
minSamplingPeriodNs?: number | undefined,
/**
 * optional.  Maximum sampling period supported by the producer in
 * nanoseconds.
 */
maxSamplingPeriodNs?: number | undefined,
/**
 * optional.  The producer supports counter sampling by instrumenting the
 * command buffer.
 */
supportsInstrumentedSampling?: boolean | undefined,
/**
 * optional.  The producer supports selecting counters by name via
 * GpuCounterConfig.counter_names. Not all producers support this; Android
 * GPU producers typically do not.
 */
supportsCounterNames?: boolean | undefined,
/**
 * optional.  The producer supports glob patterns in
 * GpuCounterConfig.counter_names for matching multiple counters by name.
 */
supportsCounterNameGlobs?: boolean | undefined,
}

/**
 * Logical groups for a counter.  This is used in the UI to present the
 * related counters together.
 */
export enum GpuCounterDescriptor_GpuCounterGroup {
UNCLASSIFIED = 0,
SYSTEM = 1,
VERTICES = 2,
FRAGMENTS = 3,
PRIMITIVES = 4,
/** MEMORY - Includes counters relating to caching and bandwidth. */
MEMORY = 5,
COMPUTE = 6,
RAY_TRACING = 7,
UNRECOGNIZED = -1,
}

export function gpuCounterDescriptor_GpuCounterGroupFromJSON(object: any): GpuCounterDescriptor_GpuCounterGroup {
switch (object) {
case 0:
      case "UNCLASSIFIED":
        return GpuCounterDescriptor_GpuCounterGroup.UNCLASSIFIED;
case 1:
      case "SYSTEM":
        return GpuCounterDescriptor_GpuCounterGroup.SYSTEM;
case 2:
      case "VERTICES":
        return GpuCounterDescriptor_GpuCounterGroup.VERTICES;
case 3:
      case "FRAGMENTS":
        return GpuCounterDescriptor_GpuCounterGroup.FRAGMENTS;
case 4:
      case "PRIMITIVES":
        return GpuCounterDescriptor_GpuCounterGroup.PRIMITIVES;
case 5:
      case "MEMORY":
        return GpuCounterDescriptor_GpuCounterGroup.MEMORY;
case 6:
      case "COMPUTE":
        return GpuCounterDescriptor_GpuCounterGroup.COMPUTE;
case 7:
      case "RAY_TRACING":
        return GpuCounterDescriptor_GpuCounterGroup.RAY_TRACING;
case -1:
        case "UNRECOGNIZED":
        default:
          return GpuCounterDescriptor_GpuCounterGroup.UNRECOGNIZED;
}
}

export function gpuCounterDescriptor_GpuCounterGroupToJSON(object: GpuCounterDescriptor_GpuCounterGroup): string {
switch (object) {
case GpuCounterDescriptor_GpuCounterGroup.UNCLASSIFIED: return "UNCLASSIFIED";
case GpuCounterDescriptor_GpuCounterGroup.SYSTEM: return "SYSTEM";
case GpuCounterDescriptor_GpuCounterGroup.VERTICES: return "VERTICES";
case GpuCounterDescriptor_GpuCounterGroup.FRAGMENTS: return "FRAGMENTS";
case GpuCounterDescriptor_GpuCounterGroup.PRIMITIVES: return "PRIMITIVES";
case GpuCounterDescriptor_GpuCounterGroup.MEMORY: return "MEMORY";
case GpuCounterDescriptor_GpuCounterGroup.COMPUTE: return "COMPUTE";
case GpuCounterDescriptor_GpuCounterGroup.RAY_TRACING: return "RAY_TRACING";
case GpuCounterDescriptor_GpuCounterGroup.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/** next id: 41 */
export enum GpuCounterDescriptor_MeasureUnit {
NONE = 0,
BIT = 1,
KILOBIT = 2,
MEGABIT = 3,
GIGABIT = 4,
TERABIT = 5,
PETABIT = 6,
BYTE = 7,
KILOBYTE = 8,
MEGABYTE = 9,
GIGABYTE = 10,
TERABYTE = 11,
PETABYTE = 12,
HERTZ = 13,
KILOHERTZ = 14,
MEGAHERTZ = 15,
GIGAHERTZ = 16,
TERAHERTZ = 17,
PETAHERTZ = 18,
NANOSECOND = 19,
MICROSECOND = 20,
MILLISECOND = 21,
SECOND = 22,
MINUTE = 23,
HOUR = 24,
VERTEX = 25,
PIXEL = 26,
TRIANGLE = 27,
PRIMITIVE = 38,
FRAGMENT = 39,
MILLIWATT = 28,
WATT = 29,
KILOWATT = 30,
JOULE = 31,
VOLT = 32,
AMPERE = 33,
CELSIUS = 34,
FAHRENHEIT = 35,
KELVIN = 36,
/** PERCENT - Values should be out of 100. */
PERCENT = 37,
INSTRUCTION = 40,
UNRECOGNIZED = -1,
}

export function gpuCounterDescriptor_MeasureUnitFromJSON(object: any): GpuCounterDescriptor_MeasureUnit {
switch (object) {
case 0:
      case "NONE":
        return GpuCounterDescriptor_MeasureUnit.NONE;
case 1:
      case "BIT":
        return GpuCounterDescriptor_MeasureUnit.BIT;
case 2:
      case "KILOBIT":
        return GpuCounterDescriptor_MeasureUnit.KILOBIT;
case 3:
      case "MEGABIT":
        return GpuCounterDescriptor_MeasureUnit.MEGABIT;
case 4:
      case "GIGABIT":
        return GpuCounterDescriptor_MeasureUnit.GIGABIT;
case 5:
      case "TERABIT":
        return GpuCounterDescriptor_MeasureUnit.TERABIT;
case 6:
      case "PETABIT":
        return GpuCounterDescriptor_MeasureUnit.PETABIT;
case 7:
      case "BYTE":
        return GpuCounterDescriptor_MeasureUnit.BYTE;
case 8:
      case "KILOBYTE":
        return GpuCounterDescriptor_MeasureUnit.KILOBYTE;
case 9:
      case "MEGABYTE":
        return GpuCounterDescriptor_MeasureUnit.MEGABYTE;
case 10:
      case "GIGABYTE":
        return GpuCounterDescriptor_MeasureUnit.GIGABYTE;
case 11:
      case "TERABYTE":
        return GpuCounterDescriptor_MeasureUnit.TERABYTE;
case 12:
      case "PETABYTE":
        return GpuCounterDescriptor_MeasureUnit.PETABYTE;
case 13:
      case "HERTZ":
        return GpuCounterDescriptor_MeasureUnit.HERTZ;
case 14:
      case "KILOHERTZ":
        return GpuCounterDescriptor_MeasureUnit.KILOHERTZ;
case 15:
      case "MEGAHERTZ":
        return GpuCounterDescriptor_MeasureUnit.MEGAHERTZ;
case 16:
      case "GIGAHERTZ":
        return GpuCounterDescriptor_MeasureUnit.GIGAHERTZ;
case 17:
      case "TERAHERTZ":
        return GpuCounterDescriptor_MeasureUnit.TERAHERTZ;
case 18:
      case "PETAHERTZ":
        return GpuCounterDescriptor_MeasureUnit.PETAHERTZ;
case 19:
      case "NANOSECOND":
        return GpuCounterDescriptor_MeasureUnit.NANOSECOND;
case 20:
      case "MICROSECOND":
        return GpuCounterDescriptor_MeasureUnit.MICROSECOND;
case 21:
      case "MILLISECOND":
        return GpuCounterDescriptor_MeasureUnit.MILLISECOND;
case 22:
      case "SECOND":
        return GpuCounterDescriptor_MeasureUnit.SECOND;
case 23:
      case "MINUTE":
        return GpuCounterDescriptor_MeasureUnit.MINUTE;
case 24:
      case "HOUR":
        return GpuCounterDescriptor_MeasureUnit.HOUR;
case 25:
      case "VERTEX":
        return GpuCounterDescriptor_MeasureUnit.VERTEX;
case 26:
      case "PIXEL":
        return GpuCounterDescriptor_MeasureUnit.PIXEL;
case 27:
      case "TRIANGLE":
        return GpuCounterDescriptor_MeasureUnit.TRIANGLE;
case 38:
      case "PRIMITIVE":
        return GpuCounterDescriptor_MeasureUnit.PRIMITIVE;
case 39:
      case "FRAGMENT":
        return GpuCounterDescriptor_MeasureUnit.FRAGMENT;
case 28:
      case "MILLIWATT":
        return GpuCounterDescriptor_MeasureUnit.MILLIWATT;
case 29:
      case "WATT":
        return GpuCounterDescriptor_MeasureUnit.WATT;
case 30:
      case "KILOWATT":
        return GpuCounterDescriptor_MeasureUnit.KILOWATT;
case 31:
      case "JOULE":
        return GpuCounterDescriptor_MeasureUnit.JOULE;
case 32:
      case "VOLT":
        return GpuCounterDescriptor_MeasureUnit.VOLT;
case 33:
      case "AMPERE":
        return GpuCounterDescriptor_MeasureUnit.AMPERE;
case 34:
      case "CELSIUS":
        return GpuCounterDescriptor_MeasureUnit.CELSIUS;
case 35:
      case "FAHRENHEIT":
        return GpuCounterDescriptor_MeasureUnit.FAHRENHEIT;
case 36:
      case "KELVIN":
        return GpuCounterDescriptor_MeasureUnit.KELVIN;
case 37:
      case "PERCENT":
        return GpuCounterDescriptor_MeasureUnit.PERCENT;
case 40:
      case "INSTRUCTION":
        return GpuCounterDescriptor_MeasureUnit.INSTRUCTION;
case -1:
        case "UNRECOGNIZED":
        default:
          return GpuCounterDescriptor_MeasureUnit.UNRECOGNIZED;
}
}

export function gpuCounterDescriptor_MeasureUnitToJSON(object: GpuCounterDescriptor_MeasureUnit): string {
switch (object) {
case GpuCounterDescriptor_MeasureUnit.NONE: return "NONE";
case GpuCounterDescriptor_MeasureUnit.BIT: return "BIT";
case GpuCounterDescriptor_MeasureUnit.KILOBIT: return "KILOBIT";
case GpuCounterDescriptor_MeasureUnit.MEGABIT: return "MEGABIT";
case GpuCounterDescriptor_MeasureUnit.GIGABIT: return "GIGABIT";
case GpuCounterDescriptor_MeasureUnit.TERABIT: return "TERABIT";
case GpuCounterDescriptor_MeasureUnit.PETABIT: return "PETABIT";
case GpuCounterDescriptor_MeasureUnit.BYTE: return "BYTE";
case GpuCounterDescriptor_MeasureUnit.KILOBYTE: return "KILOBYTE";
case GpuCounterDescriptor_MeasureUnit.MEGABYTE: return "MEGABYTE";
case GpuCounterDescriptor_MeasureUnit.GIGABYTE: return "GIGABYTE";
case GpuCounterDescriptor_MeasureUnit.TERABYTE: return "TERABYTE";
case GpuCounterDescriptor_MeasureUnit.PETABYTE: return "PETABYTE";
case GpuCounterDescriptor_MeasureUnit.HERTZ: return "HERTZ";
case GpuCounterDescriptor_MeasureUnit.KILOHERTZ: return "KILOHERTZ";
case GpuCounterDescriptor_MeasureUnit.MEGAHERTZ: return "MEGAHERTZ";
case GpuCounterDescriptor_MeasureUnit.GIGAHERTZ: return "GIGAHERTZ";
case GpuCounterDescriptor_MeasureUnit.TERAHERTZ: return "TERAHERTZ";
case GpuCounterDescriptor_MeasureUnit.PETAHERTZ: return "PETAHERTZ";
case GpuCounterDescriptor_MeasureUnit.NANOSECOND: return "NANOSECOND";
case GpuCounterDescriptor_MeasureUnit.MICROSECOND: return "MICROSECOND";
case GpuCounterDescriptor_MeasureUnit.MILLISECOND: return "MILLISECOND";
case GpuCounterDescriptor_MeasureUnit.SECOND: return "SECOND";
case GpuCounterDescriptor_MeasureUnit.MINUTE: return "MINUTE";
case GpuCounterDescriptor_MeasureUnit.HOUR: return "HOUR";
case GpuCounterDescriptor_MeasureUnit.VERTEX: return "VERTEX";
case GpuCounterDescriptor_MeasureUnit.PIXEL: return "PIXEL";
case GpuCounterDescriptor_MeasureUnit.TRIANGLE: return "TRIANGLE";
case GpuCounterDescriptor_MeasureUnit.PRIMITIVE: return "PRIMITIVE";
case GpuCounterDescriptor_MeasureUnit.FRAGMENT: return "FRAGMENT";
case GpuCounterDescriptor_MeasureUnit.MILLIWATT: return "MILLIWATT";
case GpuCounterDescriptor_MeasureUnit.WATT: return "WATT";
case GpuCounterDescriptor_MeasureUnit.KILOWATT: return "KILOWATT";
case GpuCounterDescriptor_MeasureUnit.JOULE: return "JOULE";
case GpuCounterDescriptor_MeasureUnit.VOLT: return "VOLT";
case GpuCounterDescriptor_MeasureUnit.AMPERE: return "AMPERE";
case GpuCounterDescriptor_MeasureUnit.CELSIUS: return "CELSIUS";
case GpuCounterDescriptor_MeasureUnit.FAHRENHEIT: return "FAHRENHEIT";
case GpuCounterDescriptor_MeasureUnit.KELVIN: return "KELVIN";
case GpuCounterDescriptor_MeasureUnit.PERCENT: return "PERCENT";
case GpuCounterDescriptor_MeasureUnit.INSTRUCTION: return "INSTRUCTION";
case GpuCounterDescriptor_MeasureUnit.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export interface GpuCounterDescriptor_GpuCounterSpec {
counterId?: number | undefined,
name?: string | undefined,
description?: string | undefined,
intPeakValue?: number | undefined,
doublePeakValue?: number | undefined,
numeratorUnits?: GpuCounterDescriptor_MeasureUnit[] | undefined,
denominatorUnits?: GpuCounterDescriptor_MeasureUnit[] | undefined,
selectByDefault?: boolean | undefined,
groups?: GpuCounterDescriptor_GpuCounterGroup[] | undefined,
valueDirection?: GpuCounterDescriptor_GpuCounterSpec_ValueDirection | undefined,
}

/**
 * Direction of the time interval that each emitted sample applies to.
 * A GPU counter is sampled at discrete timestamps, but its value really
 * represents a measurement over some interval around that timestamp
 * (e.g. average GPU utilization over the sampling window). This field
 * tells trace processor on which side of the timestamp that interval
 * lies, which controls where the value is drawn in the UI.
 * 
 * Example: samples at t=10, 20, 30 with values 5, 7, 0.
 *   BACKWARDS_LOOKING: 5 covers (-inf, 10], 7 covers (10, 20], 0 covers
 *     (20, 30]; the UI draws 7 between t=10 and t=20.
 *   FORWARDS_LOOKING:  5 covers [10, 20), 7 covers [20, 30), 0 covers
 *     [30, +inf); the UI draws 5 between t=10 and t=20.
 */
export enum GpuCounterDescriptor_GpuCounterSpec_ValueDirection {
/** VALUE_DIRECTION_UNSPECIFIED - Treated as BACKWARDS_LOOKING (the historical default). */
VALUE_DIRECTION_UNSPECIFIED = 0,
/**
 * VALUE_DIRECTION_BACKWARDS_LOOKING - The value applies to the interval ending at this event's timestamp.
 * This is the convention used by AGI and most existing GPU producers,
 * where a sample reports what happened during the window leading up
 * to the timestamp.
 */
VALUE_DIRECTION_BACKWARDS_LOOKING = 1,
/**
 * VALUE_DIRECTION_FORWARDS_LOOKING - The value applies to the interval starting at this event's
 * timestamp, matching standard Perfetto counters. Producers that emit
 * explicit zero samples to denote "no activity from here on" should
 * use this so the zero is not back-propagated over earlier non-zero
 * samples (https://github.com/google/perfetto/issues/5683).
 */
VALUE_DIRECTION_FORWARDS_LOOKING = 2,
UNRECOGNIZED = -1,
}

export function gpuCounterDescriptor_GpuCounterSpec_ValueDirectionFromJSON(object: any): GpuCounterDescriptor_GpuCounterSpec_ValueDirection {
switch (object) {
case 0:
      case "VALUE_DIRECTION_UNSPECIFIED":
        return GpuCounterDescriptor_GpuCounterSpec_ValueDirection.VALUE_DIRECTION_UNSPECIFIED;
case 1:
      case "VALUE_DIRECTION_BACKWARDS_LOOKING":
        return GpuCounterDescriptor_GpuCounterSpec_ValueDirection.VALUE_DIRECTION_BACKWARDS_LOOKING;
case 2:
      case "VALUE_DIRECTION_FORWARDS_LOOKING":
        return GpuCounterDescriptor_GpuCounterSpec_ValueDirection.VALUE_DIRECTION_FORWARDS_LOOKING;
case -1:
        case "UNRECOGNIZED":
        default:
          return GpuCounterDescriptor_GpuCounterSpec_ValueDirection.UNRECOGNIZED;
}
}

export function gpuCounterDescriptor_GpuCounterSpec_ValueDirectionToJSON(object: GpuCounterDescriptor_GpuCounterSpec_ValueDirection): string {
switch (object) {
case GpuCounterDescriptor_GpuCounterSpec_ValueDirection.VALUE_DIRECTION_UNSPECIFIED: return "VALUE_DIRECTION_UNSPECIFIED";
case GpuCounterDescriptor_GpuCounterSpec_ValueDirection.VALUE_DIRECTION_BACKWARDS_LOOKING: return "VALUE_DIRECTION_BACKWARDS_LOOKING";
case GpuCounterDescriptor_GpuCounterSpec_ValueDirection.VALUE_DIRECTION_FORWARDS_LOOKING: return "VALUE_DIRECTION_FORWARDS_LOOKING";
case GpuCounterDescriptor_GpuCounterSpec_ValueDirection.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * Allow producer to group counters into block to represent counter islands.
 * A capacity may be specified to indicate the number of counters that can be
 * enable simultaneously in that block.
 */
export interface GpuCounterDescriptor_GpuCounterBlock {
/** required. Unique ID for the counter group. */
blockId?: number | undefined,
/** optional. Number of counters supported by the block. No limit if unset. */
blockCapacity?: number | undefined,
/** optional. Name of block. */
name?: string | undefined,
/** optional. Description for the block. */
description?: string | undefined,
/** list of counters that are part of the block. */
counterIds?: number[] | undefined,
}

/**
 * Allow producer to define custom counter groups. Unlike the fixed
 * GpuCounterGroup enum (which provides broad categories), these groups
 * let the producer define hardware-specific groupings that the UI uses
 * to organize counter tracks. Can also be used to provide display names
 * and descriptions for the fixed GpuCounterGroup enum values by setting
 * group_id to the enum value.
 */
export interface GpuCounterDescriptor_GpuCounterGroupSpec {
/** required. Unique ID for this group within the descriptor. */
groupId?: number | undefined,
/** optional. Display name for the group. */
name?: string | undefined,
/** optional. Description of the group. */
description?: string | undefined,
/** Counters that belong directly to this group (by counter_id). */
counterIds?: number[] | undefined,
}

export interface TrackEventCategory {
name?: string | undefined,
description?: string | undefined,
tags?: string[] | undefined,
}

export interface TrackEventDescriptor {
availableCategories?: TrackEventCategory[] | undefined,
}

export interface VmProgram {
version?: number | undefined,
instructions?: VmInstruction[] | undefined,
}

export interface VmInstruction {
select?: VmOpSelect | undefined,
regLoad?: VmOpRegLoad | undefined,
merge?: VmOpMerge | undefined,
set?: VmOpSet | undefined,
del?: VmOpDel | undefined,
abortLevel?: VmInstruction_AbortLevel | undefined,
/** Sub-instructions executed if the current instruction succeeds */
nestedInstructions?: VmInstruction[] | undefined,
}

export enum VmInstruction_AbortLevel {
/** SKIP_CURRENT_INSTRUCTION - Skip current instruction but execute following ones */
SKIP_CURRENT_INSTRUCTION = 1,
/** SKIP_CURRENT_INSTRUCTION_AND_BREAK_OUTER - Skip current instruction as well as following ones (default) */
SKIP_CURRENT_INSTRUCTION_AND_BREAK_OUTER = 2,
/** ABORT - Abort whole program */
ABORT = 3,
UNRECOGNIZED = -1,
}

export function vmInstruction_AbortLevelFromJSON(object: any): VmInstruction_AbortLevel {
switch (object) {
case 1:
      case "SKIP_CURRENT_INSTRUCTION":
        return VmInstruction_AbortLevel.SKIP_CURRENT_INSTRUCTION;
case 2:
      case "SKIP_CURRENT_INSTRUCTION_AND_BREAK_OUTER":
        return VmInstruction_AbortLevel.SKIP_CURRENT_INSTRUCTION_AND_BREAK_OUTER;
case 3:
      case "ABORT":
        return VmInstruction_AbortLevel.ABORT;
case -1:
        case "UNRECOGNIZED":
        default:
          return VmInstruction_AbortLevel.UNRECOGNIZED;
}
}

export function vmInstruction_AbortLevelToJSON(object: VmInstruction_AbortLevel): string {
switch (object) {
case VmInstruction_AbortLevel.SKIP_CURRENT_INSTRUCTION: return "SKIP_CURRENT_INSTRUCTION";
case VmInstruction_AbortLevel.SKIP_CURRENT_INSTRUCTION_AND_BREAK_OUTER: return "SKIP_CURRENT_INSTRUCTION_AND_BREAK_OUTER";
case VmInstruction_AbortLevel.ABORT: return "ABORT";
case VmInstruction_AbortLevel.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export interface VmOpSelect {
/** Enum SRC|DST|BOTH. Default=SRC. */
cursor?: VmCursorEnum | undefined,
relativePath?: VmOpSelect_PathComponent[] | undefined,
/**
 * Creates the submessage if doesn't exist in the DST cursor
 * (think of mkdir -p). Only valid when cursor=DST|BOTH.
 */
createIfNotExist?: boolean | undefined,
}

/**
 * A path component is either: (1) a field id to descend into (common case);
 * (2) an array index (for repeated fields); (3) a map lookup operation (for
 * repeated fields, where we snoop a sub-field as a map key)
 */
export interface VmOpSelect_PathComponent {
fieldId?: number | undefined,
arrayIndex?: number | undefined,
/**
 * The ID of the field in the repeated submessage that we
 * use as a key (e.g. LayerState.layer_id). When setting this
 * register_to_match must also be set, to tell what's the
 * expected value of the key we are looking up.
 */
mapKeyFieldId?: number | undefined,
/**
 * Only valid when using field_id. This makes select have foreach
 * semantics. This means that the body of nested_instructions is
 * executed several times, once per each repeated submessage.
 */
isRepeated?: boolean | undefined,
/**
 * Only valid when using map_key_field_id. This defines which
 * register (R1..R32) should be used to match the key of the dict
 * in a map lookup operation.
 * In other words:
 * foreach msg in repeated message {
 *   if msg[map_key_field_id] == R[register_to_match] {
 *      break;  // Lookup succeeded, PathComponent resolves here.
 *   }
 * }
 */
registerToMatch?: number | undefined,
/**
 * Only valid when using field_id and is_repeated=true. When iterating
 * over repeated fields, stores the current iteration index into the
 * the register R1..R32 defined below. This can be used to do complex
 * operations like "find the entry in the array that has width==100,
 * remember its offset in the SRC array and overwrite the matching
 * i-th element in the DST array. We will probably never implement
 * this but it's here for completeness.
 */
storeForeachIndexIntoRegister?: number | undefined,
}

export interface VmOpRegLoad {
/** SRC(default) | DST. */
cursor?: VmCursorEnum | undefined,
/** 1=R1, 2=R2... 32=R32 */
dstRegister?: number | undefined,
}

/** Merges SRC into DST. Both need to point to a message (not a field). */
export interface VmOpMerge {
/**
 * When true, the merge operation will skip any field that is already
 * resolved as a message node in the destination tree.
 * 
 * This is used to support merging of nested messages. Because ProtoVM
 * does not know the schema, a standard MERGE cannot distinguish
 * between a string and a message on the wire and it would overwrite
 * the entire blob, destroying granular updates.
 * 
 * By setting this to true, a program can be implemented to do a
 * bottom-up, multi-step merge by traversing into and merging
 * the deepest submessages first, then moving up to the parent
 * message and merging it with skip_submessages = true.
 */
skipSubmessages?: boolean | undefined,
/**
 * When true, the merge operation will remove the dst field if the src field
 * is empty.
 * 
 * This can be used to replicate the removal of a subobject within the
 * producer's state. E.g.
 * This event on the producer side: mProducerState.mSubobject = nullptr
 * can be represented by this patch: { producer_state { subobject {} }}
 */
delIfSrcEmpty?: boolean | undefined,
}

/**
 * Copies SRC into DST. If a message, replaces the DST node, discarding any
 * pre-existing field.
 */
export interface VmOpSet {
}

/** Delete the field or message pointed by DST. */
export interface VmOpDel {
}

/**
 * This message is sent from Producer(s) to the tracing Service when registering
 * to advertise their capabilities. It describes the structure of tracing
 * protos that will be produced by the data source and the supported filters.
 */
export interface DataSourceDescriptor {
/** e.g., "linux.ftrace", "chromium.tracing" */
name?: string | undefined,
/**
 * When non-zero, this is a unique ID within the scope of the Producer for
 * this data source (it is NOT globally unique). This is useful to
 * differentiate between data sources with matching names when calling
 * UpdateDataSource(). This field has been introduced in November 2021
 * (v22, Android T) and is not supported on older versions.
 */
id?: number | undefined,
/**
 * When true the data source is expected to ack the stop request through the
 * NotifyDataSourceStopped() IPC. This field has been introduced after
 * Android P in Jul 2018 and is not supported on older versions.
 */
willNotifyOnStop?: boolean | undefined,
/**
 * When true the data source is expected to ack the start request through the
 * NotifyDataSourceStarted() IPC. This field has been introduced after
 * Android P in March 2019 and is not supported on older versions.
 */
willNotifyOnStart?: boolean | undefined,
/**
 * If true, opt into receiving the ClearIncrementalState() IPC. This should be
 * set if the data source writes packets that refer to previous trace
 * contents, and knows how to stop referring to the already-emitted data.
 */
handlesIncrementalStateClear?: boolean | undefined,
/**
 * If true, indicates that the data source does nothing upon Flush. This
 * allows the service to reduce the flush-related IPC traffic and better deal
 * with frozen producers (see go/perfetto-frozen). This is usually the case
 * for data sources like 'track_event' that don't have access to the various
 * thread task runners to post a flush task and rely purely on server-side
 * scraping.
 * Introduced in v39 / Android V.
 */
noFlush?: boolean | undefined,
/**
 * If present, the tracing service executes this program within a ProtoVM to
 * process overwritten packets (patches). The service computes a hash of the
 * program to detect and disambiguate between different versions; if multiple
 * versions (from different producers) are specified for the same data source,
 * the service instantiates a dedicated ProtoVM for each.
 */
protovmProgram?: VmProgram | undefined,
/** Optional specification about available GPU counters. */
gpuCounterDescriptor?: GpuCounterDescriptor | undefined,
trackEventDescriptor?: TrackEventDescriptor | undefined,
ftraceDescriptor?: FtraceDescriptor | undefined,
}

/**
 * Reports the state of the tracing service. Used to gather details about the
 * data sources connected.
 * See ConsumerPort::QueryServiceState().
 */
export interface TracingServiceState {
/** Lists all the producers connected. */
producers?: TracingServiceState_Producer[] | undefined,
/** Lists the data sources available. */
dataSources?: TracingServiceState_DataSource[] | undefined,
/**
 * Lists the tracing sessions active AND owned by a consumer that has the same
 * UID of the caller (or all of them if the caller is root).
 * Introduced in v24 / Android T.
 */
tracingSessions?: TracingServiceState_TracingSession[] | undefined,
/**
 * This is always set to true from v24 and beyond. This flag is only used to
 * tell the difference between: (1) talking to a recent service which happens
 * to have no tracing session active; (2) talking to an older version of the
 * service which will never report any tracing session.
 */
supportsTracingSessions?: boolean | undefined,
/** Total number of tracing sessions. */
numSessions?: number | undefined,
/** Number of tracing sessions in the started state. Always <= num_sessions. */
numSessionsStarted?: number | undefined,
/**
 * The version of traced (the same returned by `traced --version`).
 * This is a human readable string with and its format varies depending on
 * the build system and the repo (standalone vs AOSP).
 * This is intended for human debugging only.
 */
tracingServiceVersion?: string | undefined,
}

/** Describes a producer process. */
export interface TracingServiceState_Producer {
/** Unique ID of the producer (monotonic counter). */
id?: number | undefined,
/** Typically matches the process name. */
name?: string | undefined,
/**
 * Unix pid of the remote process. Supported only on Linux-based systems.
 * Introduced in v24 / Android T.
 */
pid?: number | undefined,
/** Unix uid of the remote process. */
uid?: number | undefined,
/**
 * The version of the client library used by the producer.
 * This is a human readable string with and its format varies depending on
 * the build system and the repo (standalone vs AOSP).
 * This is intended for human debugging only.
 */
sdkVersion?: string | undefined,
/**
 * Returns true if the process appears to be frozen (Android only).
 * Introduced in Perfetto V49 / Android 24Q4.
 */
frozen?: boolean | undefined,
/**
 * Identifies the machine this producer is connected from in multi-machine
 * tracing setups (e.g. when going through traced_relay). Unset (or zero)
 * means the producer is connected from the local/host machine where the
 * tracing service is running.
 * Introduced in Perfetto V56 / Android 26Q3.
 */
machineId?: number | undefined,
/**
 * Human-readable name of the machine, as advertised by the relay (usually
 * the value of PERFETTO_MACHINE_NAME on the remote, falling back to the
 * remote's `uname -s`). Only set when machine_id is non-zero.
 * Introduced in Perfetto V56 / Android 26Q3.
 */
machineName?: string | undefined,
}

/**
 * Describes a data source registered by a producer. Data sources are listed
 * regardless of the fact that they are being used or not.
 */
export interface TracingServiceState_DataSource {
/** Descriptor passed by the data source when calling RegisterDataSource(). */
dsDescriptor?: DataSourceDescriptor | undefined,
/** ID of the producer, as per Producer.id. */
producerId?: number | undefined,
}

export interface TracingServiceState_TracingSession {
/** The TracingSessionID. */
id?: number | undefined,
/**
 * The Unix uid of the consumer that started the session.
 * This is meaningful only if the caller is root. In all other cases only
 * tracing sessions that match the caller UID will be displayed.
 */
consumerUid?: number | undefined,
/**
 * Internal state of the tracing session.
 * These strings are FYI only and subjected to change.
 */
state?: string | undefined,
/** The unique_session_name as set in the trace config (might be empty). */
uniqueSessionName?: string | undefined,
/** The number and size of each buffer. */
bufferSizeKb?: number[] | undefined,
/** Duration, as specified in the TraceConfig.duration_ms. */
durationMs?: number | undefined,
/** Number of data sources involved in the session. */
numDataSources?: number | undefined,
/**
 * Time when the session was started, in the CLOCK_REALTIME domain.
 * Available only on Linux-based systems.
 */
startRealtimeNs?: number | undefined,
/** The bugreport_score, as set in TraceConfig.bugreport_score. */
bugreportScore?: number | undefined,
/** As per TraceConfig.bugreport_filename. */
bugreportFilename?: string | undefined,
/**
 * If true, the session is in the STARTED state. If false the session is in
 * any other state (see `state` field).
 */
isStarted?: boolean | undefined,
}

/**
 * Options for the android.aflags data source.
 * This data source captures snapshots of Android aconfig flags.
 * See https://source.android.com/docs/setup/build/feature-flagging/declare-flag
 * for more information on aconfig flags.
 */
export interface AndroidAflagsConfig {
/**
 * Frequency of polling. If absent or 0, the state will be recorded once,
 * at the start of the trace.
 * 
 * It is recommended to either leave this absent or set it to a large
 * value as each invocation of the `aflags` tool can be time consuming
 * (approx. 350ms) and also triggers an expensive flush. This is required to
 * be > 1000ms if set, to avoid excessive CPU usage.
 */
pollMs?: number | undefined,
}

/**
 * Data source that lists game modes and game interventions of games
 * on an Android device.
 */
export interface AndroidGameInterventionListConfig {
/**
 * If not empty, emit info about only the following list of package names
 * (exact match, no regex). Otherwise, emit info about all packages.
 */
packageNameFilter?: string[] | undefined,
}

/**
 * Custom configuration for the "android.input.inputevent" data source.
 * 
 * NOTE: Input traces can only be taken on debuggable (userdebug/eng) builds!
 * 
 * Next ID: 6
 */
export interface AndroidInputEventConfig {
/**
 * The tracing mode to use. If unspecified, it will default to
 * TRACE_MODE_USE_RULES.
 */
mode?: AndroidInputEventConfig_TraceMode | undefined,
/**
 * The list of rules to use to determine the trace level of events.
 * Each event will be traced using the TraceLevel of the first rule that it
 * triggers from this list. The rules are evaluated in the order in which they
 * are specified. If an event does not match any of the rules,
 * TRACE_LEVEL_NONE will be used by default.
 */
rules?: AndroidInputEventConfig_TraceRule[] | undefined,
/**
 * Trace input events processed by the system as they are being dispatched
 * to application windows. All trace rules will apply.
 *   - If this flag is used without enabling trace_dispatcher_window_dispatch,
 *   it will
 *     trace InputDispatcher's inbound events (which does not include events
 *     synthesized within InputDispatcher) that match the rules.
 *   - If used with trace_dispatcher_window_dispatch, all inbound and outbound
 *   events
 *     matching the rules, including all events synthesized within
 *     InputDispatcher, will be traced.
 */
traceDispatcherInputEvents?: boolean | undefined,
/**
 * Trace details about which windows the system is sending each input event
 * to. All trace rules will apply.
 */
traceDispatcherWindowDispatch?: boolean | undefined,
/**
 * Trace evdev events received from the kernel, including device additions and
 * removals.
 */
traceEvdevEvents?: boolean | undefined,
}

/** Trace modes are tracing presets that are included in the system. */
export enum AndroidInputEventConfig_TraceMode {
/**
 * TRACE_MODE_TRACE_ALL - Preset mode for maximal tracing.
 * WARNING: This will bypass all privacy measures on debuggable builds, and
 * will record all
 *          input events processed by the system, regardless of the context
 *          in which they were processed. It should only be used for tracing
 *          on a local device or for tests. It should NEVER be used for
 *          field tracing.
 */
TRACE_MODE_TRACE_ALL = 0,
/**
 * TRACE_MODE_USE_RULES - Use the tracing rules defined in this config to specify what events to
 * trace.
 */
TRACE_MODE_USE_RULES = 1,
UNRECOGNIZED = -1,
}

export function androidInputEventConfig_TraceModeFromJSON(object: any): AndroidInputEventConfig_TraceMode {
switch (object) {
case 0:
      case "TRACE_MODE_TRACE_ALL":
        return AndroidInputEventConfig_TraceMode.TRACE_MODE_TRACE_ALL;
case 1:
      case "TRACE_MODE_USE_RULES":
        return AndroidInputEventConfig_TraceMode.TRACE_MODE_USE_RULES;
case -1:
        case "UNRECOGNIZED":
        default:
          return AndroidInputEventConfig_TraceMode.UNRECOGNIZED;
}
}

export function androidInputEventConfig_TraceModeToJSON(object: AndroidInputEventConfig_TraceMode): string {
switch (object) {
case AndroidInputEventConfig_TraceMode.TRACE_MODE_TRACE_ALL: return "TRACE_MODE_TRACE_ALL";
case AndroidInputEventConfig_TraceMode.TRACE_MODE_USE_RULES: return "TRACE_MODE_USE_RULES";
case AndroidInputEventConfig_TraceMode.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/** The level of tracing that should be applied to an event. */
export enum AndroidInputEventConfig_TraceLevel {
/** TRACE_LEVEL_NONE - Do not trace the input event. */
TRACE_LEVEL_NONE = 0,
/**
 * TRACE_LEVEL_REDACTED - Trace the event as a redacted event, where certain sensitive fields are
 * omitted from the trace, including the coordinates of pointer events and
 * the key/scan codes of key events.
 */
TRACE_LEVEL_REDACTED = 1,
/** TRACE_LEVEL_COMPLETE - Trace the complete event. */
TRACE_LEVEL_COMPLETE = 2,
UNRECOGNIZED = -1,
}

export function androidInputEventConfig_TraceLevelFromJSON(object: any): AndroidInputEventConfig_TraceLevel {
switch (object) {
case 0:
      case "TRACE_LEVEL_NONE":
        return AndroidInputEventConfig_TraceLevel.TRACE_LEVEL_NONE;
case 1:
      case "TRACE_LEVEL_REDACTED":
        return AndroidInputEventConfig_TraceLevel.TRACE_LEVEL_REDACTED;
case 2:
      case "TRACE_LEVEL_COMPLETE":
        return AndroidInputEventConfig_TraceLevel.TRACE_LEVEL_COMPLETE;
case -1:
        case "UNRECOGNIZED":
        default:
          return AndroidInputEventConfig_TraceLevel.UNRECOGNIZED;
}
}

export function androidInputEventConfig_TraceLevelToJSON(object: AndroidInputEventConfig_TraceLevel): string {
switch (object) {
case AndroidInputEventConfig_TraceLevel.TRACE_LEVEL_NONE: return "TRACE_LEVEL_NONE";
case AndroidInputEventConfig_TraceLevel.TRACE_LEVEL_REDACTED: return "TRACE_LEVEL_REDACTED";
case AndroidInputEventConfig_TraceLevel.TRACE_LEVEL_COMPLETE: return "TRACE_LEVEL_COMPLETE";
case AndroidInputEventConfig_TraceLevel.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * A rule that specifies the TraceLevel for an event based on matching
 * conditions. All matchers in the rule are optional. To trigger this rule, an
 * event must match all of its specified matchers (i.e. the matchers function
 * like a series of conditions connected by a logical 'AND' operator). A rule
 * with no specified matchers will match all events. Next ID: 6
 */
export interface AndroidInputEventConfig_TraceRule {
/**
 * The trace level to be used for events that trigger this rule.
 * If unspecified, TRACE_LEVEL_NONE will be used by default.
 */
traceLevel?: AndroidInputEventConfig_TraceLevel | undefined,
/**
 * Package matchers
 * 
 * Respectively matches if all or any of the target apps for this event are
 * contained in the specified list of package names.
 * 
 * Intended usage:
 *   - Use match_all_packages to selectively allow tracing for the listed
 *   packages.
 *   - Use match_any_packages to selectively deny tracing for certain
 *   packages.
 * 
 * WARNING: Great care must be taken when designing rules for field tracing!
 *          This is because each event is almost always sent to more than
 *          one app.
 *              For example, when allowing tracing for a package that has a
 *              spy window
 *          over the display (e.g. SystemUI) using match_any_packages,
 *          essentially all input will be recorded on that display. This is
 *          because the events will be sent to the spy as well as the
 *          foreground app, and regardless of what the foreground app is,
 *          the event will end up being traced.
 *              Alternatively, when attempting to block tracing for specific
 *              packages using
 *          match_all_packages, no events will likely be blocked. This is
 *          because the event will also be sent to other apps (such as, but
 *          not limited to, ones with spy windows), so the matcher will not
 *          match unless all other targets are also listed under the
 *          match_all_packages list.
 */
matchAllPackages?: string[] | undefined,
matchAnyPackages?: string[] | undefined,
/**
 * Matches if the event is secure, which means that at least one of the
 * targets of this event is using the window flag FLAG_SECURE.
 */
matchSecure?: boolean | undefined,
/**
 * Matches if there was an active IME connection while this event was being
 * processed.
 */
matchImeConnectionActive?: boolean | undefined,
}

export interface AndroidLogConfig {
logIds?: AndroidLogId[] | undefined,
/** If set ignores all log messages whose prio is < the given value. */
minPrio?: AndroidLogPriority | undefined,
/**
 * If non-empty ignores all log messages whose tag doesn't match one of the
 * specified values.
 */
filterTags?: string[] | undefined,
/**
 * If true, includes the contents of the logcat buffers that were already
 * present before the data source started. By default (false), only new
 * log entries produced after the data source starts are recorded.
 * Can be useful for boot traces or situations where logs from before
 * traced started are important.
 */
preserveLogBuffer?: boolean | undefined,
}

/**
 * Data source that polls for display state. This should only be used for
 * backward-compatibility; AndroidSystemPropertyConfig should be preferred.
 */
export interface AndroidPolledStateConfig {
/**
 * Frequency of polling. If absent the state will be recorded once, at the
 * start of the trace.
 * This is required to be > 100ms to avoid excessive CPU usage.
 */
pollMs?: number | undefined,
}

/**
 * Data source that controls the system properties used to guard initialization
 * of track_event producers (i.e. Skia) in apps using HWUI, and certain
 * processes like SurfaceFlinger.
 * 
 * This data source only tells Skia to initialized the Perfetto SDK and start
 * routing data to the Track Event system instead of ATrace. For those events
 * to actually show up in a trace, the track_event data source must be used as
 * well. The Perfetto SDK cannot be de-initialized, so some long-lived apps and
 * processes may need to be restarted for Skia to revert to using ATrace if
 * Track Events are no longer desired.
 * 
 * In addition to switching Skia to use Perfetto's track_event data source,
 * this "guard" also controls Skia's "broad tracing", which removes Skia's
 * internal tracing constraints and allows the track_event config to specify
 * which categories should be traced. Filtering to the "skia.always" category
 * *tag* in a track_event config can be used to re-enable the standard
 * constraints typically used with ATrace.
 * 
 * Data source name: android.sdk_sysprop_guard
 * Introduced in Android 14 (U) QPR1.
 * Next id: 4
 */
export interface AndroidSdkSyspropGuardConfig {
/**
 * If true, configures SurfaceFlinger to initialize Skia's Perfetto
 * integration with the track_event data source in RenderEngine.
 * If false or omitted, the simpler ATrace fallback is used.
 * 
 * NOTE: once enabled, Skia will only revert to ATrace if SurfaceFlinger is
 * restarted.
 * 
 * Specifically this sets the following system properties:
 *   - debug.tracing.ctl.renderengine.skia_tracing_enabled
 *   - debug.tracing.ctl.renderengine.skia_use_perfetto_track_events
 * 
 * Does not affect actual track_event data *collection*, which must be
 * configured separately.
 */
surfaceflingerSkiaTrackEvents?: boolean | undefined,
/**
 * If true, configures HWUI apps to initialize Skia's Perfetto integration
 * with the track_event data source. hwui_package_name_filter
 * can be used to control which apps are affected.
 * If false or omitted, the simpler ATrace fallback is used.
 * 
 * NOTE: once enabled, Skia will only revert to ATrace if the app is
 * restarted.
 * 
 * ATTENTION: affects ALL HWUI APPS if hwui_package_name_filter is not set!
 * If filtering is NOT set, this controls these GLOBAL system properties:
 *   - debug.tracing.ctl.hwui.skia_tracing_enabled
 *   - debug.tracing.ctl.hwui.skia_use_perfetto_track_events
 * If filtering IS set, this controls these APP-SPECIFIC system properties,
 * for each package listed in the filter:
 *   - debug.tracing.ctl.hwui.skia_tracing_enabled.<package.name>
 *   - debug.tracing.ctl.hwui.skia_use_perfetto_track_events.<package.name>
 * 
 * Does not affect actual track_event data *collection*, which must be
 * configured separately.
 */
hwuiSkiaTrackEvents?: boolean | undefined,
/**
 * If non-empty, hwui_skia_track_events applies to only the packages listed.
 * Otherwise, hwui_skia_track_events applies globally to all HWUI apps.
 */
hwuiPackageNameFilter?: string[] | undefined,
}

/** Data source that polls for system properties. */
export interface AndroidSystemPropertyConfig {
/**
 * Frequency of polling. If absent the state will be recorded once, at the
 * start of the trace.
 * This is required to be > 100ms to avoid excessive CPU usage.
 */
pollMs?: number | undefined,
/** Properties to poll. All property names must start with "debug.tracing.". */
propertyName?: string[] | undefined,
}

/** Configuration for the android.app_wakelocks data source. */
export interface AppWakelocksConfig {
/**
 * Specifies the delay (in milliseconds) after which the data source will
 * attempt to write events. Writing less frequently reduces the trace size by
 * making better use of the packed arrays and reducing the total number of
 * TracePackets needed (which each have dozens of bytes of overhead). The
 * suggested delay is 5000ms.
 */
writeDelayMs?: number | undefined,
/**
 * When set, wakelocks held for less than this amount of time are filtered
 * from the resulting trace. Note: duration is computed by matching wakelocks
 * with identical attributes, not by tracking the underlying objects. The
 * threshold should be < the trace's flush_period_ms.
 */
filterDurationBelowMs?: number | undefined,
/**
 * When true, the owner_pid is dropped from the resulting output, reducing the
 * size of the interning tables.
 */
dropOwnerPid?: boolean | undefined,
}

/** Data source that records CPU per UID data. */
export interface CpuPerUidConfig {
/** Record at this frequency. */
pollMs?: number | undefined,
}

/**
 * Config for the "android.display.video" data source. Unset/0 fields use
 * the producer's default.
 */
export interface DisplayVideoConfig {
/**
 * Scale applied to each display's resolution before capture (0.25 =
 * quarter size).
 */
scale?: number | undefined,
format?: DisplayVideoConfig_Format | undefined,
/** Keyframe interval in seconds. Smaller = snappier seeking, larger trace. */
keyFrameIntervalSecs?: number | undefined,
/**
 * Per-display cap on emitted bytes. On reaching it the stream is torn
 * down with a VideoFrameError (SIZE_CAP_HIT).
 */
maxStreamSizeBytes?: number | undefined,
}

export enum DisplayVideoConfig_Format {
/** FORMAT_UNSPECIFIED - Default (H.264). */
FORMAT_UNSPECIFIED = 0,
FORMAT_H264 = 1,
FORMAT_HEVC = 2,
UNRECOGNIZED = -1,
}

export function displayVideoConfig_FormatFromJSON(object: any): DisplayVideoConfig_Format {
switch (object) {
case 0:
      case "FORMAT_UNSPECIFIED":
        return DisplayVideoConfig_Format.FORMAT_UNSPECIFIED;
case 1:
      case "FORMAT_H264":
        return DisplayVideoConfig_Format.FORMAT_H264;
case 2:
      case "FORMAT_HEVC":
        return DisplayVideoConfig_Format.FORMAT_HEVC;
case -1:
        case "UNRECOGNIZED":
        default:
          return DisplayVideoConfig_Format.UNRECOGNIZED;
}
}

export function displayVideoConfig_FormatToJSON(object: DisplayVideoConfig_Format): string {
switch (object) {
case DisplayVideoConfig_Format.FORMAT_UNSPECIFIED: return "FORMAT_UNSPECIFIED";
case DisplayVideoConfig_Format.FORMAT_H264: return "FORMAT_H264";
case DisplayVideoConfig_Format.FORMAT_HEVC: return "FORMAT_HEVC";
case DisplayVideoConfig_Format.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/** Custom configuration for the "android.inputmethod" data source. */
export interface InputMethodConfig {
/** If true, enables tracing in the clients. */
client?: boolean | undefined,
/** If true, enables tracing in InputMethodService. */
service?: boolean | undefined,
/** If true, enables tracing in InputMethodManagerService. */
managerService?: boolean | undefined,
}

/** Data source that records kernel (and native) wakelock data. */
export interface KernelWakelocksConfig {
/** Record at this frequency. */
pollMs?: number | undefined,
}

/**
 * Network tracing data source that records details on all packets sent or
 * received by the network.
 */
export interface NetworkPacketTraceConfig {
/**
 * Polling frequency in milliseconds. Network tracing writes to a fixed size
 * ring buffer. The polling interval should be such that the ring buffer is
 * unlikely to fill in that interval (or that filling is an acceptable risk).
 * The minimum polling rate is 100ms (values below this are ignored).
 * Introduced in Android 14 (U).
 */
pollMs?: number | undefined,
/**
 * The aggregation_threshold is the number of packets at which an event will
 * switch from per-packet details to aggregate details. For example, a value
 * of 50 means that if a particular event (grouped by the unique combinations
 * of metadata fields: {interface, direction, uid, etc}) has fewer than 50
 * packets, the exact timestamp and length are recorded for each packet. If
 * there were 50 or more packets in an event, it would only record the total
 * duration, packets, and length. A value of zero or unspecified will always
 * / record per-packet details. A value of 1 always records aggregate details.
 */
aggregationThreshold?: number | undefined,
/**
 * Specifies the maximum number of packet contexts to intern at a time. This
 * prevents the interning table from growing too large and controls whether
 * interning is enabled or disabled (a value of zero disables interning and
 * is the default). When a data sources interning table reaches this amount,
 * packet contexts will be inlined into NetworkPacketEvents.
 */
internLimit?: number | undefined,
/**
 * The following fields specify whether certain fields should be dropped from
 * the output. Dropping fields improves normalization results, reduces the
 * size of the interning table, and slightly reduces event size.
 */
dropLocalPort?: boolean | undefined,
dropRemotePort?: boolean | undefined,
dropTcpFlags?: boolean | undefined,
}

/**
 * Data source that lists details (such as version code) about packages on an
 * Android device.
 */
export interface PackagesListConfig {
/**
 * If not empty, emit info about only the following list of package names
 * (exact match, no regex). Can be combined with
 * |package_name_regex_filter|: a package is included if it matches either
 * filter. If both filters are empty, emit info about all packages.
 */
packageNameFilter?: string[] | undefined,
/**
 * If not empty, emit info about only the packages whose names match any of
 * the following regexes (full match, not partial). Can be combined with
 * |package_name_filter|: a package is included if it matches either filter.
 * If both filters are empty, emit info about all packages.
 * This field was introduced in Android 26Q2 (Perfetto v55).
 */
packageNameRegexFilter?: string[] | undefined,
/**
 * If present and non-zero, the data source will periodically poll for CPU
 * use by packages and only emit results for those that it sees. If absent,
 * the data source will emit results for all packages at startup. The package
 * name filters apply either way.
 */
onlyWriteOnCpuUseEveryMs?: number | undefined,
}

/** Data source that records events from the modem. */
export interface PixelModemConfig {
eventGroup?: PixelModemConfig_EventGroup | undefined,
/** If set, record only events with these hashes. */
pigweedHashAllowList?: number[] | undefined,
/** If set and allow_list is not set, deny events with these hashes. */
pigweedHashDenyList?: number[] | undefined,
}

/** Event group to record, as defined by the modem. */
export enum PixelModemConfig_EventGroup {
EVENT_GROUP_UNKNOWN = 0,
/** EVENT_GROUP_LOW_BANDWIDTH - Events suitable for low bandwidth tracing only. */
EVENT_GROUP_LOW_BANDWIDTH = 1,
/** EVENT_GROUP_HIGH_AND_LOW_BANDWIDTH - Events suitable for high and low bandwidth tracing. */
EVENT_GROUP_HIGH_AND_LOW_BANDWIDTH = 2,
UNRECOGNIZED = -1,
}

export function pixelModemConfig_EventGroupFromJSON(object: any): PixelModemConfig_EventGroup {
switch (object) {
case 0:
      case "EVENT_GROUP_UNKNOWN":
        return PixelModemConfig_EventGroup.EVENT_GROUP_UNKNOWN;
case 1:
      case "EVENT_GROUP_LOW_BANDWIDTH":
        return PixelModemConfig_EventGroup.EVENT_GROUP_LOW_BANDWIDTH;
case 2:
      case "EVENT_GROUP_HIGH_AND_LOW_BANDWIDTH":
        return PixelModemConfig_EventGroup.EVENT_GROUP_HIGH_AND_LOW_BANDWIDTH;
case -1:
        case "UNRECOGNIZED":
        default:
          return PixelModemConfig_EventGroup.UNRECOGNIZED;
}
}

export function pixelModemConfig_EventGroupToJSON(object: PixelModemConfig_EventGroup): string {
switch (object) {
case PixelModemConfig_EventGroup.EVENT_GROUP_UNKNOWN: return "EVENT_GROUP_UNKNOWN";
case PixelModemConfig_EventGroup.EVENT_GROUP_LOW_BANDWIDTH: return "EVENT_GROUP_LOW_BANDWIDTH";
case PixelModemConfig_EventGroup.EVENT_GROUP_HIGH_AND_LOW_BANDWIDTH: return "EVENT_GROUP_HIGH_AND_LOW_BANDWIDTH";
case PixelModemConfig_EventGroup.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * Custom configuration for the "android.protolog" data source.
 * ProtoLog is a logging mechanism that is intented to be more efficient than
 * logcat. This configures what logs to capture in the tracing instance.
 */
export interface ProtoLogConfig {
/**
 * Specified the configurations for each of the logging groups. If none is
 * specified for a group the defaults will be used.
 */
groupOverrides?: ProtoLogGroup[] | undefined,
/** Specified what tracing mode to use for the tracing instance. */
tracingMode?: ProtoLogConfig_TracingMode | undefined,
/**
 * If set, any message with log level higher than this level (inclusive) will
 * be traced. Group overrides take precedence over this value.
 */
defaultLogFromLevel?: ProtoLogLevel | undefined,
}

export enum ProtoLogConfig_TracingMode {
/**
 * DEFAULT - When using the DEFAULT tracing mode, only log groups and levels specified
 * in the group_overrides are traced.
 */
DEFAULT = 0,
/**
 * ENABLE_ALL - When using the ENABLE_ALL tracing mode, all log groups and levels are
 * traced, unless specified in the group_overrides.
 */
ENABLE_ALL = 1,
UNRECOGNIZED = -1,
}

export function protoLogConfig_TracingModeFromJSON(object: any): ProtoLogConfig_TracingMode {
switch (object) {
case 0:
      case "DEFAULT":
        return ProtoLogConfig_TracingMode.DEFAULT;
case 1:
      case "ENABLE_ALL":
        return ProtoLogConfig_TracingMode.ENABLE_ALL;
case -1:
        case "UNRECOGNIZED":
        default:
          return ProtoLogConfig_TracingMode.UNRECOGNIZED;
}
}

export function protoLogConfig_TracingModeToJSON(object: ProtoLogConfig_TracingMode): string {
switch (object) {
case ProtoLogConfig_TracingMode.DEFAULT: return "DEFAULT";
case ProtoLogConfig_TracingMode.ENABLE_ALL: return "ENABLE_ALL";
case ProtoLogConfig_TracingMode.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export interface ProtoLogGroup {
/** The ProtoLog group name this configuration entry applies to. */
groupName?: string | undefined,
/**
 * Specify the level from which to start capturing protologs.
 * e.g. if ProtoLogLevel.WARN is specified only warning, errors and fatal log
 * message will be traced.
 */
logFrom?: ProtoLogLevel | undefined,
/**
 * When set to true we will collect the stacktrace for each protolog message
 * in this group that we are tracing.
 */
collectStacktrace?: boolean | undefined,
}

/** Custom configuration for the "android.surfaceflinger.layers" data source. */
export interface SurfaceFlingerLayersConfig {
mode?: SurfaceFlingerLayersConfig_Mode | undefined,
traceFlags?: SurfaceFlingerLayersConfig_TraceFlag[] | undefined,
}

export enum SurfaceFlingerLayersConfig_Mode {
MODE_UNSPECIFIED = 0,
/**
 * MODE_ACTIVE - Trace layers snapshots. A snapshot is taken every time a layers change
 * occurs.
 */
MODE_ACTIVE = 1,
/**
 * MODE_GENERATED - Generate layers snapshots from the transactions kept in the
 * SurfaceFlinger's internal ring buffer.
 * The layers snapshots generation occurs when this data source is flushed.
 */
MODE_GENERATED = 2,
/** MODE_DUMP - Trace a single layers snapshot. */
MODE_DUMP = 3,
/**
 * MODE_GENERATED_BUGREPORT_ONLY - Default mode (applied by SurfaceFlinger if no mode is specified).
 * Same as MODE_GENERATED, but triggers the layers snapshots generation only
 * when a bugreport is taken.
 */
MODE_GENERATED_BUGREPORT_ONLY = 4,
/** MODE_PROTOVM - Layer snapshots are generated by ProtoVM from layer patches */
MODE_PROTOVM = 5,
UNRECOGNIZED = -1,
}

export function surfaceFlingerLayersConfig_ModeFromJSON(object: any): SurfaceFlingerLayersConfig_Mode {
switch (object) {
case 0:
      case "MODE_UNSPECIFIED":
        return SurfaceFlingerLayersConfig_Mode.MODE_UNSPECIFIED;
case 1:
      case "MODE_ACTIVE":
        return SurfaceFlingerLayersConfig_Mode.MODE_ACTIVE;
case 2:
      case "MODE_GENERATED":
        return SurfaceFlingerLayersConfig_Mode.MODE_GENERATED;
case 3:
      case "MODE_DUMP":
        return SurfaceFlingerLayersConfig_Mode.MODE_DUMP;
case 4:
      case "MODE_GENERATED_BUGREPORT_ONLY":
        return SurfaceFlingerLayersConfig_Mode.MODE_GENERATED_BUGREPORT_ONLY;
case 5:
      case "MODE_PROTOVM":
        return SurfaceFlingerLayersConfig_Mode.MODE_PROTOVM;
case -1:
        case "UNRECOGNIZED":
        default:
          return SurfaceFlingerLayersConfig_Mode.UNRECOGNIZED;
}
}

export function surfaceFlingerLayersConfig_ModeToJSON(object: SurfaceFlingerLayersConfig_Mode): string {
switch (object) {
case SurfaceFlingerLayersConfig_Mode.MODE_UNSPECIFIED: return "MODE_UNSPECIFIED";
case SurfaceFlingerLayersConfig_Mode.MODE_ACTIVE: return "MODE_ACTIVE";
case SurfaceFlingerLayersConfig_Mode.MODE_GENERATED: return "MODE_GENERATED";
case SurfaceFlingerLayersConfig_Mode.MODE_DUMP: return "MODE_DUMP";
case SurfaceFlingerLayersConfig_Mode.MODE_GENERATED_BUGREPORT_ONLY: return "MODE_GENERATED_BUGREPORT_ONLY";
case SurfaceFlingerLayersConfig_Mode.MODE_PROTOVM: return "MODE_PROTOVM";
case SurfaceFlingerLayersConfig_Mode.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export enum SurfaceFlingerLayersConfig_TraceFlag {
TRACE_FLAG_UNSPECIFIED = 0,
TRACE_FLAG_INPUT = 2,
TRACE_FLAG_COMPOSITION = 4,
TRACE_FLAG_EXTRA = 8,
TRACE_FLAG_HWC = 16,
TRACE_FLAG_BUFFERS = 32,
TRACE_FLAG_VIRTUAL_DISPLAYS = 64,
/** TRACE_FLAG_ALL - INPUT | COMPOSITION | EXTRA */
TRACE_FLAG_ALL = 14,
UNRECOGNIZED = -1,
}

export function surfaceFlingerLayersConfig_TraceFlagFromJSON(object: any): SurfaceFlingerLayersConfig_TraceFlag {
switch (object) {
case 0:
      case "TRACE_FLAG_UNSPECIFIED":
        return SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_UNSPECIFIED;
case 2:
      case "TRACE_FLAG_INPUT":
        return SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_INPUT;
case 4:
      case "TRACE_FLAG_COMPOSITION":
        return SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_COMPOSITION;
case 8:
      case "TRACE_FLAG_EXTRA":
        return SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_EXTRA;
case 16:
      case "TRACE_FLAG_HWC":
        return SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_HWC;
case 32:
      case "TRACE_FLAG_BUFFERS":
        return SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_BUFFERS;
case 64:
      case "TRACE_FLAG_VIRTUAL_DISPLAYS":
        return SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_VIRTUAL_DISPLAYS;
case 14:
      case "TRACE_FLAG_ALL":
        return SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_ALL;
case -1:
        case "UNRECOGNIZED":
        default:
          return SurfaceFlingerLayersConfig_TraceFlag.UNRECOGNIZED;
}
}

export function surfaceFlingerLayersConfig_TraceFlagToJSON(object: SurfaceFlingerLayersConfig_TraceFlag): string {
switch (object) {
case SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_UNSPECIFIED: return "TRACE_FLAG_UNSPECIFIED";
case SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_INPUT: return "TRACE_FLAG_INPUT";
case SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_COMPOSITION: return "TRACE_FLAG_COMPOSITION";
case SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_EXTRA: return "TRACE_FLAG_EXTRA";
case SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_HWC: return "TRACE_FLAG_HWC";
case SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_BUFFERS: return "TRACE_FLAG_BUFFERS";
case SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_VIRTUAL_DISPLAYS: return "TRACE_FLAG_VIRTUAL_DISPLAYS";
case SurfaceFlingerLayersConfig_TraceFlag.TRACE_FLAG_ALL: return "TRACE_FLAG_ALL";
case SurfaceFlingerLayersConfig_TraceFlag.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * Custom configuration for the "android.surfaceflinger.transactions" data
 * source.
 */
export interface SurfaceFlingerTransactionsConfig {
mode?: SurfaceFlingerTransactionsConfig_Mode | undefined,
}

export enum SurfaceFlingerTransactionsConfig_Mode {
MODE_UNSPECIFIED = 0,
/**
 * MODE_CONTINUOUS - Default mode (applied by SurfaceFlinger if no mode is specified).
 * SurfaceFlinger writes its internal ring buffer of transactions every time
 * the data source is flushed. The ring buffer contains the SurfaceFlinger's
 * initial state and the latest transactions.
 */
MODE_CONTINUOUS = 1,
/**
 * MODE_ACTIVE - SurfaceFlinger writes the initial state and then each incoming
 * transaction until the data source is stopped.
 */
MODE_ACTIVE = 2,
UNRECOGNIZED = -1,
}

export function surfaceFlingerTransactionsConfig_ModeFromJSON(object: any): SurfaceFlingerTransactionsConfig_Mode {
switch (object) {
case 0:
      case "MODE_UNSPECIFIED":
        return SurfaceFlingerTransactionsConfig_Mode.MODE_UNSPECIFIED;
case 1:
      case "MODE_CONTINUOUS":
        return SurfaceFlingerTransactionsConfig_Mode.MODE_CONTINUOUS;
case 2:
      case "MODE_ACTIVE":
        return SurfaceFlingerTransactionsConfig_Mode.MODE_ACTIVE;
case -1:
        case "UNRECOGNIZED":
        default:
          return SurfaceFlingerTransactionsConfig_Mode.UNRECOGNIZED;
}
}

export function surfaceFlingerTransactionsConfig_ModeToJSON(object: SurfaceFlingerTransactionsConfig_Mode): string {
switch (object) {
case SurfaceFlingerTransactionsConfig_Mode.MODE_UNSPECIFIED: return "MODE_UNSPECIFIED";
case SurfaceFlingerTransactionsConfig_Mode.MODE_CONTINUOUS: return "MODE_CONTINUOUS";
case SurfaceFlingerTransactionsConfig_Mode.MODE_ACTIVE: return "MODE_ACTIVE";
case SurfaceFlingerTransactionsConfig_Mode.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * Data source that lists details (such as version code) about users on an
 * Android device.
 */
export interface AndroidUserListConfig {
/**
 * An allowlist of user type strings, used to control the granularity of
 * user type information emitted in the trace. Exact, case-sensitive string
 * matching is used.
 * 
 * Any user type read from the device that is NOT present in the
 * effective allowlist will have its type reported as
 * "android.os.usertype.FILTERED".
 * 
 * The effective allowlist is determined as follows:
 * 
 * 1. If this 'user_type_filter' field is provided and non-empty:
 *    This list itself is the effective allowlist.
 *    Example TraceConfig:
 *    --------------------
 *    data_sources {
 *        config {
 *            name: "android.user_list"
 *            target_buffer: 0
 *            user_list_config {
 *              # Only report these specific types, others become FILTERED.
 *              user_type_filter: "android.os.usertype.full.SYSTEM"
 *              user_type_filter: "android.os.usertype.system.HEADLESS"
 *            }
 *        }
 *    }
 * 
 * 
 * Note: This field does not support regular expressions.
 */
userTypeFilter?: string[] | undefined,
}

/** Custom configuration for the "android.windowmanager" data source. */
export interface WindowManagerConfig {
logFrequency?: WindowManagerConfig_LogFrequency | undefined,
logLevel?: WindowManagerConfig_LogLevel | undefined,
logMode?: WindowManagerConfig_LogMode | undefined,
}

export enum WindowManagerConfig_LogFrequency {
LOG_FREQUENCY_UNSPECIFIED = 0,
/** LOG_FREQUENCY_FRAME - Trace state snapshots when a frame is committed. */
LOG_FREQUENCY_FRAME = 1,
/** LOG_FREQUENCY_TRANSACTION - Trace state snapshots every time a transaction is committed. */
LOG_FREQUENCY_TRANSACTION = 2,
/** LOG_FREQUENCY_SINGLE_DUMP - Trace single state snapshots when the data source is started. */
LOG_FREQUENCY_SINGLE_DUMP = 3,
UNRECOGNIZED = -1,
}

export function windowManagerConfig_LogFrequencyFromJSON(object: any): WindowManagerConfig_LogFrequency {
switch (object) {
case 0:
      case "LOG_FREQUENCY_UNSPECIFIED":
        return WindowManagerConfig_LogFrequency.LOG_FREQUENCY_UNSPECIFIED;
case 1:
      case "LOG_FREQUENCY_FRAME":
        return WindowManagerConfig_LogFrequency.LOG_FREQUENCY_FRAME;
case 2:
      case "LOG_FREQUENCY_TRANSACTION":
        return WindowManagerConfig_LogFrequency.LOG_FREQUENCY_TRANSACTION;
case 3:
      case "LOG_FREQUENCY_SINGLE_DUMP":
        return WindowManagerConfig_LogFrequency.LOG_FREQUENCY_SINGLE_DUMP;
case -1:
        case "UNRECOGNIZED":
        default:
          return WindowManagerConfig_LogFrequency.UNRECOGNIZED;
}
}

export function windowManagerConfig_LogFrequencyToJSON(object: WindowManagerConfig_LogFrequency): string {
switch (object) {
case WindowManagerConfig_LogFrequency.LOG_FREQUENCY_UNSPECIFIED: return "LOG_FREQUENCY_UNSPECIFIED";
case WindowManagerConfig_LogFrequency.LOG_FREQUENCY_FRAME: return "LOG_FREQUENCY_FRAME";
case WindowManagerConfig_LogFrequency.LOG_FREQUENCY_TRANSACTION: return "LOG_FREQUENCY_TRANSACTION";
case WindowManagerConfig_LogFrequency.LOG_FREQUENCY_SINGLE_DUMP: return "LOG_FREQUENCY_SINGLE_DUMP";
case WindowManagerConfig_LogFrequency.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export enum WindowManagerConfig_LogLevel {
LOG_LEVEL_UNSPECIFIED = 0,
/** LOG_LEVEL_VERBOSE - Logs all elements with maximum amount of information. */
LOG_LEVEL_VERBOSE = 1,
/** LOG_LEVEL_DEBUG - Logs all elements but doesn't write all configuration data. */
LOG_LEVEL_DEBUG = 2,
/**
 * LOG_LEVEL_CRITICAL - Logs only visible elements, with the minimum amount of performance
 * overhead
 */
LOG_LEVEL_CRITICAL = 3,
UNRECOGNIZED = -1,
}

export function windowManagerConfig_LogLevelFromJSON(object: any): WindowManagerConfig_LogLevel {
switch (object) {
case 0:
      case "LOG_LEVEL_UNSPECIFIED":
        return WindowManagerConfig_LogLevel.LOG_LEVEL_UNSPECIFIED;
case 1:
      case "LOG_LEVEL_VERBOSE":
        return WindowManagerConfig_LogLevel.LOG_LEVEL_VERBOSE;
case 2:
      case "LOG_LEVEL_DEBUG":
        return WindowManagerConfig_LogLevel.LOG_LEVEL_DEBUG;
case 3:
      case "LOG_LEVEL_CRITICAL":
        return WindowManagerConfig_LogLevel.LOG_LEVEL_CRITICAL;
case -1:
        case "UNRECOGNIZED":
        default:
          return WindowManagerConfig_LogLevel.UNRECOGNIZED;
}
}

export function windowManagerConfig_LogLevelToJSON(object: WindowManagerConfig_LogLevel): string {
switch (object) {
case WindowManagerConfig_LogLevel.LOG_LEVEL_UNSPECIFIED: return "LOG_LEVEL_UNSPECIFIED";
case WindowManagerConfig_LogLevel.LOG_LEVEL_VERBOSE: return "LOG_LEVEL_VERBOSE";
case WindowManagerConfig_LogLevel.LOG_LEVEL_DEBUG: return "LOG_LEVEL_DEBUG";
case WindowManagerConfig_LogLevel.LOG_LEVEL_CRITICAL: return "LOG_LEVEL_CRITICAL";
case WindowManagerConfig_LogLevel.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export enum WindowManagerConfig_LogMode {
LOG_MODE_UNSPECIFIED = 0,
/** LOG_MODE_FULL_STATE - Always logs a full state dump of the window hierarchy. */
LOG_MODE_FULL_STATE = 1,
/**
 * LOG_MODE_INCREMENTAL - Logs a full state dump of the window hierarchy only when tracing starts.
 * The following trace packets are lightweight patches containing only the
 * last changes.
 */
LOG_MODE_INCREMENTAL = 2,
UNRECOGNIZED = -1,
}

export function windowManagerConfig_LogModeFromJSON(object: any): WindowManagerConfig_LogMode {
switch (object) {
case 0:
      case "LOG_MODE_UNSPECIFIED":
        return WindowManagerConfig_LogMode.LOG_MODE_UNSPECIFIED;
case 1:
      case "LOG_MODE_FULL_STATE":
        return WindowManagerConfig_LogMode.LOG_MODE_FULL_STATE;
case 2:
      case "LOG_MODE_INCREMENTAL":
        return WindowManagerConfig_LogMode.LOG_MODE_INCREMENTAL;
case -1:
        case "UNRECOGNIZED":
        default:
          return WindowManagerConfig_LogMode.UNRECOGNIZED;
}
}

export function windowManagerConfig_LogModeToJSON(object: WindowManagerConfig_LogMode): string {
switch (object) {
case WindowManagerConfig_LogMode.LOG_MODE_UNSPECIFIED: return "LOG_MODE_UNSPECIFIED";
case WindowManagerConfig_LogMode.LOG_MODE_FULL_STATE: return "LOG_MODE_FULL_STATE";
case WindowManagerConfig_LogMode.LOG_MODE_INCREMENTAL: return "LOG_MODE_INCREMENTAL";
case WindowManagerConfig_LogMode.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export interface ChromeConfig {
traceConfig?: string | undefined,
/**
 * When enabled, the data source should only fill in fields in the output that
 * are not potentially privacy sensitive.
 */
privacyFilteringEnabled?: boolean | undefined,
/**
 * Instead of emitting binary protobuf, convert the trace data to the legacy
 * JSON format. Note that the trace data will still be returned as a series of
 * TracePackets, but the embedded data will be JSON instead of serialized
 * protobuf.
 */
convertToLegacyJson?: boolean | undefined,
clientPriority?: ChromeConfig_ClientPriority | undefined,
/**
 * Applicable only when using legacy JSON format.
 * If |json_agent_label_filter| is not empty, only data pertaining to
 * the specified tracing agent label (e.g. "traceEvents") will be returned.
 */
jsonAgentLabelFilter?: string | undefined,
/** When enabled, event names should not contain package names. */
eventPackageNameFilterEnabled?: boolean | undefined,
}

/**
 * Priority of the tracing session client. A higher priority session may
 * preempt a lower priority one in configurations where concurrent sessions
 * aren't supported.
 */
export enum ChromeConfig_ClientPriority {
UNKNOWN = 0,
BACKGROUND = 1,
USER_INITIATED = 2,
UNRECOGNIZED = -1,
}

export function chromeConfig_ClientPriorityFromJSON(object: any): ChromeConfig_ClientPriority {
switch (object) {
case 0:
      case "UNKNOWN":
        return ChromeConfig_ClientPriority.UNKNOWN;
case 1:
      case "BACKGROUND":
        return ChromeConfig_ClientPriority.BACKGROUND;
case 2:
      case "USER_INITIATED":
        return ChromeConfig_ClientPriority.USER_INITIATED;
case -1:
        case "UNRECOGNIZED":
        default:
          return ChromeConfig_ClientPriority.UNRECOGNIZED;
}
}

export function chromeConfig_ClientPriorityToJSON(object: ChromeConfig_ClientPriority): string {
switch (object) {
case ChromeConfig_ClientPriority.UNKNOWN: return "UNKNOWN";
case ChromeConfig_ClientPriority.BACKGROUND: return "BACKGROUND";
case ChromeConfig_ClientPriority.USER_INITIATED: return "USER_INITIATED";
case ChromeConfig_ClientPriority.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export interface ChromiumHistogramSamplesConfig {
/**
 * List of histograms to record. If no histogram is specified, all histograms
 * are recorded.
 */
histograms?: ChromiumHistogramSamplesConfig_HistogramSample[] | undefined,
/**
 * Default: false (i.e. histogram names are NOT filtered out by default)
 * When true, histogram_name will be filtered out.
 */
filterHistogramNames?: boolean | undefined,
}

/**
 * Records when a value within the specified bounds [min_value, max_value] is
 * emitted into a Chrome histogram.
 */
export interface ChromiumHistogramSamplesConfig_HistogramSample {
histogramName?: string | undefined,
minValue?: number | undefined,
maxValue?: number | undefined,
}

export interface ChromiumSystemMetricsConfig {
/** Samples counters every X ms. */
samplingIntervalMs?: number | undefined,
}

export interface V8Config {
/**
 * Whether to log the actual content of scripts (e.g. content of the JS file
 * that was compiled to generate code).
 * ATTENTION: This could considerably increase the size of the resuling trace
 *            file.
 */
logScriptSources?: boolean | undefined,
/**
 * Whether to log the generated code for jitted functions (machine code or
 * bytecode).
 * ATTENTION: This could considerably increase the size of the resuling trace
 *            file.
 */
logInstructions?: boolean | undefined,
}

/**
 * Proto definition based on the struct _EVENT_TRACE_PROPERTIES definition
 * See: https://learn.microsoft.com/en-us/windows/win32/api/evntrace/
 * ns-evntrace-event_trace_properties
 */
export interface EtwConfig {
/**
 * The kernel_flags determines the flags that will be used by the etw tracing
 * session. These kernel flags have been built to expose the useful events
 * captured from the kernel mode only.
 * 
 * @deprecated
 */
kernelFlags?: EtwConfig_KernelFlag[] | undefined,
/** Provides events relating to the scheduler. */
schedulerProviderEvents?: string[] | undefined,
/** Provides events relating to the memory manager. */
memoryProviderEvents?: string[] | undefined,
/**
 * Provides events relating to file I/O.
 * 
 * @deprecated
 */
fileProviderEvents?: string[] | undefined,
/** Events for which stacks should be collected. */
stackSamplingEvents?: string[] | undefined,
/**
 * Provides events relating to disk I/O.
 * 
 * @deprecated
 */
diskProviderEvents?: string[] | undefined,
/**
 * Provides events relating to multiple kinds of IO including disk, cache, and
 * network.
 */
systemIoProviderEvents?: string[] | undefined,
}

/**
 * The KernelFlag represent list of kernel flags that we are intrested in.
 * To get a more extensive list run 'xperf -providers k'.
 */
export enum EtwConfig_KernelFlag {
CSWITCH = 0,
DISPATCHER = 1,
UNRECOGNIZED = -1,
}

export function etwConfig_KernelFlagFromJSON(object: any): EtwConfig_KernelFlag {
switch (object) {
case 0:
      case "CSWITCH":
        return EtwConfig_KernelFlag.CSWITCH;
case 1:
      case "DISPATCHER":
        return EtwConfig_KernelFlag.DISPATCHER;
case -1:
        case "UNRECOGNIZED":
        default:
          return EtwConfig_KernelFlag.UNRECOGNIZED;
}
}

export function etwConfig_KernelFlagToJSON(object: EtwConfig_KernelFlag): string {
switch (object) {
case EtwConfig_KernelFlag.CSWITCH: return "CSWITCH";
case EtwConfig_KernelFlag.DISPATCHER: return "DISPATCHER";
case EtwConfig_KernelFlag.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export interface FrozenFtraceConfig {
/** The instance name which stores the previous boot ftrace data. Required. */
instanceName?: string | undefined,
}

/** Next id: 38 */
export interface FtraceConfig {
/** Ftrace events to record, example: "sched/sched_switch". */
ftraceEvents?: string[] | undefined,
/** Android-specific event categories: */
atraceCategories?: string[] | undefined,
atraceApps?: string[] | undefined,
/**
 * Some processes can emit data through atrace or through the perfetto SDK via
 * the "track_event" data source. For these categories, the SDK will be
 * preferred, if possible, for this config.
 */
atraceCategoriesPreferSdk?: string[] | undefined,
/**
 * If true, do *not* add in extra ftrace events when |atrace_categories| are
 * set. This skips the legacy "atrace" behaviour of adding hardcoded ftrace
 * events for convenience (and the vendor-specific events on top).
 * Introduced in: perfetto v52.
 */
atraceUserspaceOnly?: boolean | undefined,
/**
 * Size of each per-cpu kernel ftrace ring buffer.
 * Not guaranteed if there are multiple concurrent tracing sessions, as the
 * buffers cannot be resized without pausing recording in the kernel.
 */
bufferSizeKb?: number | undefined,
/**
 * If true, |buffer_size_kb| is interpreted as a lower bound, allowing the
 * implementation to choose a bigger buffer size.
 * 
 * Most configs for perfetto v43+ should simply leave both fields unset.
 * 
 * If you need a config compatible with a range of perfetto builds and you
 * used to set a non-default buffer_size_kb, consider setting both fields.
 * Example:
 *   buffer_size_kb: 4096
 *   buffer_size_lower_bound: true
 * On older builds, the per-cpu buffers will be exactly 4 MB.
 * On v43+, buffers will be at least 4 MB.
 * In both cases, neither is guaranteed if there are other concurrent
 * perfetto ftrace sessions, as the buffers cannot be resized without pausing
 * the recording in the kernel.
 * Introduced in: perfetto v43.
 */
bufferSizeLowerBound?: boolean | undefined,
/**
 * If set, specifies how often the tracing daemon reads from the kernel ring
 * buffer. Not guaranteed if there are multiple concurrent tracing sessions.
 * Leave unset unless you're fine-tuning a local config.
 */
drainPeriodMs?: number | undefined,
/**
 * If set, the tracing daemon will read kernel ring buffers as soon as
 * they're filled past this percentage of occupancy. In other words, a value
 * of 50 means that a read pass is triggered as soon as any per-cpu buffer is
 * half-full. Not guaranteed if there are multiple concurrent tracing
 * sessions.
 * Currently does nothing on Linux kernels below v6.9.
 * Introduced in: perfetto v48.
 */
drainBufferPercent?: number | undefined,
compactSched?: FtraceConfig_CompactSchedConfig | undefined,
printFilter?: FtraceConfig_PrintFilter | undefined,
/**
 * Enables symbol name resolution against /proc/kallsyms.
 * It requires that either traced_probes is running as root or that
 * kptr_restrict has been manually lowered.
 * It does not disclose KASLR, symbol addresses are mangled.
 */
symbolizeKsyms?: boolean | undefined,
ksymsMemPolicy?: FtraceConfig_KsymsMemPolicy | undefined,
/**
 * When this boolean is true AND the ftrace_events contains "kmem/rss_stat",
 * this option causes traced_probes to enable the "kmem/rss_stat_throttled"
 * event instead if present, and fall back to "kmem/rss_stat" if not present.
 * The historical context for this is the following:
 * - Up to Android S (12), the rss_stat was internally throttled in its
 *   kernel implementation.
 * - A change introduced in the kernels after S has introduced a new
 *   "rss_stat_throttled" making the original "rss_stat" event unthrottled
 *   (hence very spammy).
 * - Not all Android T/13 devices will receive a new kernel though, hence we
 *   need to deal with both cases.
 * For more context: go/rss-stat-throttled.
 */
throttleRssStat?: boolean | undefined,
/**
 * If true, use self-describing proto messages when writing events not known
 * at compile time (aka generic events). Each event bundle will have a set of
 * serialised proto descriptors for events within that bundle.
 * 
 * Default if unset:
 * * v53+: true
 * * before v53: false
 * 
 * Added in: perfetto v50.
 */
denserGenericEventEncoding?: boolean | undefined,
/**
 * If true, avoid enabling events that aren't statically known by
 * traced_probes. Otherwise, the default is to emit such events as
 * GenericFtraceEvent protos.
 * Prefer to keep this flag at its default. This was added for Android
 * tracing, where atrace categories and/or atrace HAL requested events can
 * expand to events that aren't of interest to the tracing user.
 * Introduced in: Android T.
 */
disableGenericEvents?: boolean | undefined,
/**
 * The subset of syscalls to record. To record all syscalls, leave this unset
 * and add "ftrace_events: raw_syscalls/sys_{enter,exit}" to the config.
 * * before perfetto v43, requires the config to also enable
 *   raw_syscalls/sys_{enter,exit}.
 * * perfetto v43+ does the right thing if you set only this field.
 * Example: ["sys_read", "sys_open"].
 * Introduced in: Android U.
 */
syscallEvents?: string[] | undefined,
/**
 * If true, enable the "function_graph" kernel tracer that emits events
 * whenever a kernel function is entered and exited
 * (funcgraph_entry/funcgraph_exit).
 * Notes on use:
 * * Requires |symbolize_ksyms| for function name resolution.
 * * Use |function_filters| or |function_graph_roots| to constrain the traced
 *   set of functions, otherwise the event bandwidth will be too high for
 *   practical use.
 * * The data source might be rejected if there is already a concurrent
 *   ftrace data source that does not use function graph itself, as we do not
 *   support switching kernel tracers mid-trace.
 * * Requires a kernel compiled with CONFIG_FUNCTION_GRAPH_TRACER. This is
 *   enabled if "cat /sys/kernel/tracing/available_tracers" includes
 *   "function_graph".
 * Android:
 * * Available only on debuggable builds.
 * * Introduced in: Android U.
 */
enableFunctionGraph?: boolean | undefined,
/**
 * Constrains the set of functions traced when |enable_function_graph| is
 * true. Supports globs, e.g. "sched*". You can specify multiple filters,
 * in which case all matching functions will be traced. See kernel
 * documentation on ftrace "set_ftrace_filter" file for more details.
 * Android:
 * * Available only on debuggable builds.
 * * Introduced in: Android U.
 */
functionFilters?: string[] | undefined,
/**
 * If |enable_function_graph| is true, trace this set of functions *and* all
 * of its callees. Supports globs. Can be set together with
 * |function_filters|, in which case only callees matching the filter will be
 * traced. If setting both, you most likely want all roots to also be
 * included in |function_filters|.
 * Android:
 * * Available only on debuggable builds.
 * * Introduced in: Android U.
 */
functionGraphRoots?: string[] | undefined,
/**
 * If |enable_function_graph| is true, only trace the specified
 * number of calls down the stack. Sets the max_graph_depth value
 * in sys/kernel/tracing/
 * 
 * Only respected for the first tracing session that enables
 * function_graph tracing.
 * 
 * Introduced in: perfetto v51.
 * Supported on: Android 25Q3+.
 */
functionGraphMaxDepth?: number | undefined,
/** Ftrace events to record, specific for kprobes and kretprobes */
kprobeEvents?: FtraceConfig_KprobeEvent[] | undefined,
/**
 * If true, does not clear kernel ftrace buffers when starting the trace.
 * This makes sense only if this is the first ftrace data source instance
 * created after the daemon has been started. Can be useful for gathering boot
 * traces, if ftrace has been separately configured (e.g. via kernel
 * commandline).
 * NB: when configuring the pre-perfetto ftrace, prefer to set
 * "/sys/kernel/tracing/trace_clock" to "boot" if your trace will contain
 * anything besides ftrace. Otherwise timestamps might be skewed.
 */
preserveFtraceBuffer?: boolean | undefined,
/**
 * If true, overrides the default timestamp clock and uses a raw hardware
 * based monotonic clock for getting timestamps.
 * * Introduced in: Android U.
 */
useMonotonicRawClock?: boolean | undefined,
/**
 * If |instance_name| is not empty, then attempt to use that tracefs instance
 * for event recording. Normally, this means
 * `/sys/kernel/tracing/instances/$instance_name`.
 * 
 * Names "hyp" and "hypervisor" are reserved.
 * 
 * The instance must already exist, the tracing daemon *will not* create it
 * for you as it typically doesn't have such permissions.
 * Only a subset of features is guaranteed to work with non-default instances,
 * at the time of writing:
 *  * ftrace_events
 *  * buffer_size_kb
 */
instanceName?: string | undefined,
/**
 * For perfetto developer use. If true and on a debuggable android build,
 * serialise raw tracing pages that the implementation cannot parse.
 */
debugFtraceAbi?: boolean | undefined,
/**
 * Filter ftrace events by Thread ID (TID).
 * This writes the TIDs to `/sys/kernel/tracing/set_event_pid`.
 * 
 * Note: this is an exclusive feature, see:
 * https://perfetto.dev/docs/learning-more/android#exclusive-tracing-sessions.
 * 
 * Introduced in: perfetto v52.
 * Supported on: Android 25Q3+.
 */
tidsToTrace?: number[] | undefined,
tracefsOptions?: FtraceConfig_TracefsOption[] | undefined,
/**
 * This mask restricts tracing to a specific set of CPUs using a
 * comma-separated hex mask. Each hex number (up to 8 digits) represents a
 * 32-bit chunk of the CPU mask.
 * 
 * The chunks are ordered from high CPUs to low CPUs (left to right):
 *    - Rightmost chunk: CPUs 0-31
 *    - 2nd chunk from right: CPUs 32-63
 *    - ...and so on.
 * 
 * Example (assuming NR_CPUS=128, requiring 4 chunks):
 * The full mask would be in the format: "chunk3,chunk2,chunk1,chunk0"
 * where chunk3 maps to CPUs 96-127, chunk2 to 64-95, chunk1 to 32-63, and
 * chunk0 to 0-31.
 *    - "ffffffff,0,0,0": Enables CPUs 96-127 only.
 *    - "f,ff": Enables CPUs 0-7 (from "ff") and CPUs 32-35 (from "f").
 * 
 * Note: This is an exclusive feature, see:
 * https://perfetto.dev/docs/learning-more/android#exclusive-tracing-sessions.
 * 
 * Introduced in: perfetto v52.
 * Supported on: Android 25Q3+.
 */
tracingCpumask?: string | undefined,
/**
 * No-op in perfetto v28+. Name preserved because of existing references in
 * textproto configs.
 * 
 * @deprecated
 */
initializeKsymsSynchronouslyForTesting?: boolean | undefined,
}

/**
 * When symbolize_ksyms=true, determines whether the traced_probes daemon
 * should keep the symbol map in memory (and reuse it for future tracing
 * sessions) or clear it (saving memory) and re-create it on each tracing
 * session (wasting cpu and wall time).
 * The tradeoff is roughly:
 *  KSYMS_RETAIN: pay a fixed ~1.2 MB cost after the first trace.
 *  KSYMS_CLEANUP_ON_STOP: pay a ~300-500ms cost when starting each trace.
 * Default behavior: KSYMS_CLEANUP_ON_STOP.
 */
export enum FtraceConfig_KsymsMemPolicy {
KSYMS_UNSPECIFIED = 0,
KSYMS_CLEANUP_ON_STOP = 1,
KSYMS_RETAIN = 2,
UNRECOGNIZED = -1,
}

export function ftraceConfig_KsymsMemPolicyFromJSON(object: any): FtraceConfig_KsymsMemPolicy {
switch (object) {
case 0:
      case "KSYMS_UNSPECIFIED":
        return FtraceConfig_KsymsMemPolicy.KSYMS_UNSPECIFIED;
case 1:
      case "KSYMS_CLEANUP_ON_STOP":
        return FtraceConfig_KsymsMemPolicy.KSYMS_CLEANUP_ON_STOP;
case 2:
      case "KSYMS_RETAIN":
        return FtraceConfig_KsymsMemPolicy.KSYMS_RETAIN;
case -1:
        case "UNRECOGNIZED":
        default:
          return FtraceConfig_KsymsMemPolicy.UNRECOGNIZED;
}
}

export function ftraceConfig_KsymsMemPolicyToJSON(object: FtraceConfig_KsymsMemPolicy): string {
switch (object) {
case FtraceConfig_KsymsMemPolicy.KSYMS_UNSPECIFIED: return "KSYMS_UNSPECIFIED";
case FtraceConfig_KsymsMemPolicy.KSYMS_CLEANUP_ON_STOP: return "KSYMS_CLEANUP_ON_STOP";
case FtraceConfig_KsymsMemPolicy.KSYMS_RETAIN: return "KSYMS_RETAIN";
case FtraceConfig_KsymsMemPolicy.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * Configuration for compact encoding of scheduler events. When enabled (and
 * recording the relevant ftrace events), specific high-volume events are
 * encoded in a denser format than normal.
 */
export interface FtraceConfig_CompactSchedConfig {
/**
 * If true, and sched_switch or sched_waking ftrace events are enabled,
 * record those events in the compact format.
 * 
 * If the field is unset, the default is:
 * * perfetto v42.0+: enabled
 * * before: disabled
 */
enabled?: boolean | undefined,
}

/**
 * Optional filter for "ftrace/print" events.
 * 
 * The filter consists of multiple rules. As soon as a rule matches (the rules
 * are processed in order), its `allow` field will be used as the outcome: if
 * `allow` is true, the event will be included in the trace, otherwise it will
 * be discarded. If an event does not match any rule, it will be allowed by
 * default (a rule with an empty prefix and allow=false, disallows everything
 * by default).
 */
export interface FtraceConfig_PrintFilter {
rules?: FtraceConfig_PrintFilter_Rule[] | undefined,
}

export interface FtraceConfig_PrintFilter_Rule {
/**
 * This rule matches if `prefix` matches exactly with the beginning of
 * the "ftrace/print" "buf" field.
 */
prefix?: string | undefined,
/**
 * This rule matches if the "buf" field contains an atrace-style print
 * message as specified in `atrace_msg`.
 */
atraceMsg?: FtraceConfig_PrintFilter_Rule_AtraceMessage | undefined,
allow?: boolean | undefined,
}

/**
 * Matches an atrace message of the form:
 * <type>|pid|<prefix>...
 */
export interface FtraceConfig_PrintFilter_Rule_AtraceMessage {
type?: string | undefined,
prefix?: string | undefined,
}

export interface FtraceConfig_KprobeEvent {
/** Kernel function name to attach to, for example "fuse_file_write_iter" */
probe?: string | undefined,
type?: FtraceConfig_KprobeEvent_KprobeType | undefined,
}

export enum FtraceConfig_KprobeEvent_KprobeType {
KPROBE_TYPE_UNKNOWN = 0,
KPROBE_TYPE_KPROBE = 1,
KPROBE_TYPE_KRETPROBE = 2,
KPROBE_TYPE_BOTH = 3,
UNRECOGNIZED = -1,
}

export function ftraceConfig_KprobeEvent_KprobeTypeFromJSON(object: any): FtraceConfig_KprobeEvent_KprobeType {
switch (object) {
case 0:
      case "KPROBE_TYPE_UNKNOWN":
        return FtraceConfig_KprobeEvent_KprobeType.KPROBE_TYPE_UNKNOWN;
case 1:
      case "KPROBE_TYPE_KPROBE":
        return FtraceConfig_KprobeEvent_KprobeType.KPROBE_TYPE_KPROBE;
case 2:
      case "KPROBE_TYPE_KRETPROBE":
        return FtraceConfig_KprobeEvent_KprobeType.KPROBE_TYPE_KRETPROBE;
case 3:
      case "KPROBE_TYPE_BOTH":
        return FtraceConfig_KprobeEvent_KprobeType.KPROBE_TYPE_BOTH;
case -1:
        case "UNRECOGNIZED":
        default:
          return FtraceConfig_KprobeEvent_KprobeType.UNRECOGNIZED;
}
}

export function ftraceConfig_KprobeEvent_KprobeTypeToJSON(object: FtraceConfig_KprobeEvent_KprobeType): string {
switch (object) {
case FtraceConfig_KprobeEvent_KprobeType.KPROBE_TYPE_UNKNOWN: return "KPROBE_TYPE_UNKNOWN";
case FtraceConfig_KprobeEvent_KprobeType.KPROBE_TYPE_KPROBE: return "KPROBE_TYPE_KPROBE";
case FtraceConfig_KprobeEvent_KprobeType.KPROBE_TYPE_KRETPROBE: return "KPROBE_TYPE_KRETPROBE";
case FtraceConfig_KprobeEvent_KprobeType.KPROBE_TYPE_BOTH: return "KPROBE_TYPE_BOTH";
case FtraceConfig_KprobeEvent_KprobeType.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * Tracefs options to set directly in the tracefs instance. This is a very
 * niche feature since almost all of the options deal with formatting textual
 * output (the /trace file), which perfetto doesn't use.
 * 
 * The options with a known use-case:
 * * event-fork: when using `tids_to_trace` above, the kernel will
 *   automatically add newly spawned descendant threads to the set of TIDs.
 * 
 * Full list of options is available at
 * https://docs.kernel.org/trace/ftrace.html#trace-options.
 * 
 * Note: this is an exclusive feature, see:
 * https://perfetto.dev/docs/learning-more/android#exclusive-tracing-sessions.
 * 
 * Introduced in: perfetto v52.
 * Supported on: Android 25Q3+.
 */
export interface FtraceConfig_TracefsOption {
/**
 * The name of the tracefs option as found in tracefs/trace_options (without
 * the "no" prefix).
 */
name?: string | undefined,
state?: FtraceConfig_TracefsOption_State | undefined,
}

export enum FtraceConfig_TracefsOption_State {
STATE_UNKNOWN = 0,
STATE_ENABLED = 1,
STATE_DISABLED = 2,
UNRECOGNIZED = -1,
}

export function ftraceConfig_TracefsOption_StateFromJSON(object: any): FtraceConfig_TracefsOption_State {
switch (object) {
case 0:
      case "STATE_UNKNOWN":
        return FtraceConfig_TracefsOption_State.STATE_UNKNOWN;
case 1:
      case "STATE_ENABLED":
        return FtraceConfig_TracefsOption_State.STATE_ENABLED;
case 2:
      case "STATE_DISABLED":
        return FtraceConfig_TracefsOption_State.STATE_DISABLED;
case -1:
        case "UNRECOGNIZED":
        default:
          return FtraceConfig_TracefsOption_State.UNRECOGNIZED;
}
}

export function ftraceConfig_TracefsOption_StateToJSON(object: FtraceConfig_TracefsOption_State): string {
switch (object) {
case FtraceConfig_TracefsOption_State.STATE_UNKNOWN: return "STATE_UNKNOWN";
case FtraceConfig_TracefsOption_State.STATE_ENABLED: return "STATE_ENABLED";
case FtraceConfig_TracefsOption_State.STATE_DISABLED: return "STATE_DISABLED";
case FtraceConfig_TracefsOption_State.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export interface GpuCounterConfig {
/** Desired sampling interval for counters. */
counterPeriodNs?: number | undefined,
/** List of counter IDs to be sampled. */
counterIds?: number[] | undefined,
/**
 * List of counter names to be sampled. Requires producer support; check
 * GpuCounterDescriptor.supports_counter_names in the data source descriptor.
 * Glob patterns may be used to match multiple counters by name; check
 * GpuCounterDescriptor.supports_counter_name_globs for support.
 */
counterNames?: string[] | undefined,
instrumentedSampling?: boolean | undefined,
instrumentedSamplingConfig?: GpuCounterConfig_InstrumentedSamplingConfig | undefined,
/** Fix gpu clock rate during trace session. */
fixGpuClock?: boolean | undefined,
}

/**
 * Configuration for sampling counters by instrumenting command buffers.
 * 
 * When instrumented_sampling_config is used (instead of the
 * instrumented_sampling bool), the following steps determine whether
 * instrumented counters are enabled for a given GPU activity:
 * 
 * 1. Activity name filtering: If activity_name_filters is non-empty, the
 *    activity must match at least one filter. If empty, all activities
 *    pass this step.
 * 2. TX range filtering: If activity_tx_include_globs is non-empty, the
 *    activity must fall within a matching TX range. Activities in TX
 *    ranges matching activity_tx_exclude_globs are excluded (excludes
 *    take precedence over includes). If both are empty, all activities
 *    pass this step.
 * 3. Range-based sampling: If activity_ranges is non-empty, only
 *    activities within the specified skip/count ranges are instrumented.
 *    If empty, all activities that passed the previous steps are
 *    instrumented.
 */
export interface GpuCounterConfig_InstrumentedSamplingConfig {
/** GPU activity name filters. An activity matches if it matches any filter. */
activityNameFilters?: GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter[] | undefined,
/**
 * Glob patterns to use for including GPU activities in TX ranges. TX
 * ranges are in-process annotations that mark different sections of GPU
 * work (e.g. NVTX ranges for CUDA). TX ranges can be nested, and an
 * activity is included if any range in its nesting hierarchy matches.
 * Only activities that fall within a matching TX range will be
 * instrumented.
 */
activityTxIncludeGlobs?: string[] | undefined,
/**
 * Glob patterns to use for excluding GPU activities from TX ranges.
 * TX ranges can be nested, and an activity is excluded if any range
 * in its nesting hierarchy matches. Excludes take precedence over
 * includes.
 */
activityTxExcludeGlobs?: string[] | undefined,
/**
 * Ranges of GPU activities to instrument. Applied after activity name
 * and TX range filters. If empty, all activities that passed the
 * previous filters are instrumented.
 */
activityRanges?: GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange[] | undefined,
}

/**
 * Filters GPU activities by name. Each filter specifies a glob pattern
 * and the basis for matching (mangled or demangled kernel name).
 */
export interface GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter {
/** required. Glob pattern to use for GPU activity name filtering. */
nameGlob?: string | undefined,
/**
 * Basis for name filtering. Defaults to MANGLED_KERNEL_NAME if not
 * specified.
 */
nameBase?: GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBase | undefined,
}

export enum GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBase {
/**
 * MANGLED_KERNEL_NAME - Match against the mangled (compiler-encoded) kernel name.
 * Example: for a kernel whose demangled name is
 * "matmul(float*,int,int)", the mangled name might be
 * "_Z6matmulPfii". The glob pattern is matched against this
 * mangled form.
 */
MANGLED_KERNEL_NAME = 0,
/**
 * DEMANGLED_KERNEL_NAME - Match against the fully demangled kernel name, including
 * parameters, templates, and qualifiers.
 * Example: "matmul(float*,int,int)". The glob pattern is
 * matched against this full demangled form.
 */
DEMANGLED_KERNEL_NAME = 1,
/**
 * FUNCTION_NAME - Match against only the function name portion of the
 * demangled kernel name, without parameters, templates,
 * return types, or namespaces.
 * Example: "matmul". The glob pattern is matched against
 * just the bare function name.
 */
FUNCTION_NAME = 2,
UNRECOGNIZED = -1,
}

export function gpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBaseFromJSON(object: any): GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBase {
switch (object) {
case 0:
      case "MANGLED_KERNEL_NAME":
        return GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBase.MANGLED_KERNEL_NAME;
case 1:
      case "DEMANGLED_KERNEL_NAME":
        return GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBase.DEMANGLED_KERNEL_NAME;
case 2:
      case "FUNCTION_NAME":
        return GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBase.FUNCTION_NAME;
case -1:
        case "UNRECOGNIZED":
        default:
          return GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBase.UNRECOGNIZED;
}
}

export function gpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBaseToJSON(object: GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBase): string {
switch (object) {
case GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBase.MANGLED_KERNEL_NAME: return "MANGLED_KERNEL_NAME";
case GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBase.DEMANGLED_KERNEL_NAME: return "DEMANGLED_KERNEL_NAME";
case GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBase.FUNCTION_NAME: return "FUNCTION_NAME";
case GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBase.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/** Defines a range of GPU activities to instrument. */
export interface GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange {
/**
 * Number of GPU activities to skip before starting to instrument
 * command buffers. Defaults to 0 if not specified.
 */
skip?: number | undefined,
/**
 * Limit for the number of GPU activities to sample counters for by
 * instrumenting command buffers. Defaults to UINT32_MAX (all
 * remaining activities) if not specified.
 */
count?: number | undefined,
}

export interface GpuRenderStagesConfig {
/**
 * Enable to separate the color and depth/stencil load and store stages
 * into a separate stages. If disabled, the depth/stencil load and store
 * stages will be combined.  Disabled by default. This option has no effect if
 * Low Overhead mode is enabled.
 */
fullLoadstore?: boolean | undefined,
/**
 * Use the low overhead mode for traces. In this mode render stages are
 * combined into a single workload stage. This provides less granular data but
 * induces minimal GPU overhead. Disabled by default.
 */
lowOverhead?: boolean | undefined,
/** Trace metrics to capture for each render stage */
traceMetrics?: string[] | undefined,
}

export interface VulkanMemoryConfig {
/** Tracking driver memory usage events */
trackDriverMemoryUsage?: boolean | undefined,
/** Tracking device memory usage events */
trackDeviceMemoryUsage?: boolean | undefined,
}

/**
 * WARNING: unmaintained and deprecated. Likely won't work at all on modern
 * systems.
 */
export interface InodeFileConfig {
/** How long to pause between batches. */
scanIntervalMs?: number | undefined,
/** How long to wait before the first scan in order to accumulate inodes. */
scanDelayMs?: number | undefined,
/** How many inodes to scan in one batch. */
scanBatchSize?: number | undefined,
/** Do not scan for inodes not found in the static map. */
doNotScan?: boolean | undefined,
/**
 * If non-empty, only scan inodes corresponding to block devices named in
 * this list.
 */
scanMountPoints?: string[] | undefined,
/**
 * When encountering an inode belonging to a block device corresponding
 * to one of the mount points in this map, scan its scan_roots instead.
 */
mountPointMapping?: InodeFileConfig_MountPointMappingEntry[] | undefined,
}

export interface InodeFileConfig_MountPointMappingEntry {
mountpoint?: string | undefined,
scanRoots?: string[] | undefined,
}

export interface ConsoleConfig {
output?: ConsoleConfig_Output | undefined,
enableColors?: boolean | undefined,
}

export enum ConsoleConfig_Output {
OUTPUT_UNSPECIFIED = 0,
OUTPUT_STDOUT = 1,
OUTPUT_STDERR = 2,
UNRECOGNIZED = -1,
}

export function consoleConfig_OutputFromJSON(object: any): ConsoleConfig_Output {
switch (object) {
case 0:
      case "OUTPUT_UNSPECIFIED":
        return ConsoleConfig_Output.OUTPUT_UNSPECIFIED;
case 1:
      case "OUTPUT_STDOUT":
        return ConsoleConfig_Output.OUTPUT_STDOUT;
case 2:
      case "OUTPUT_STDERR":
        return ConsoleConfig_Output.OUTPUT_STDERR;
case -1:
        case "UNRECOGNIZED":
        default:
          return ConsoleConfig_Output.UNRECOGNIZED;
}
}

export function consoleConfig_OutputToJSON(object: ConsoleConfig_Output): string {
switch (object) {
case ConsoleConfig_Output.OUTPUT_UNSPECIFIED: return "OUTPUT_UNSPECIFIED";
case ConsoleConfig_Output.OUTPUT_STDOUT: return "OUTPUT_STDOUT";
case ConsoleConfig_Output.OUTPUT_STDERR: return "OUTPUT_STDERR";
case ConsoleConfig_Output.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * Configuration for trace packet interception. Used for diverting trace data to
 * non-Perfetto sources (e.g., logging to the console, ETW) when using the
 * Perfetto SDK.
 */
export interface InterceptorConfig {
/** Matches the name given to RegisterInterceptor(). */
name?: string | undefined,
consoleConfig?: ConsoleConfig | undefined,
}

/**
 * Configuration for the "linux.systemd_journald" data source.
 * Next field id: 4
 */
export interface SystemdJournaldConfig {
/**
 * Minimum syslog priority level to capture (inclusive).
 * 0=EMERG, 1=ALERT, 2=CRIT, 3=ERR, 4=WARNING, 5=NOTICE, 6=INFO, 7=DEBUG.
 * Default (0 / unset): capture all priorities (equivalent to 7).
 */
minPrio?: number | undefined,
/**
 * If non-empty, only capture journal entries whose SYSLOG_IDENTIFIER
 * matches one of these strings.
 */
filterIdentifiers?: string[] | undefined,
/** If non-empty, only capture journal entries from these systemd unit names. */
filterUnits?: string[] | undefined,
}

export interface AndroidPowerConfig {
batteryPollMs?: number | undefined,
batteryCounters?: AndroidPowerConfig_BatteryCounters[] | undefined,
/** Where available enables per-power-rail measurements. */
collectPowerRails?: boolean | undefined,
/**
 * Provides a breakdown of energy estimation for various subsystem (e.g. GPU).
 * Available from Android S.
 */
collectEnergyEstimationBreakdown?: boolean | undefined,
/**
 * Provides a breakdown of time in state for various subsystems.
 * Available from Android U.
 */
collectEntityStateResidency?: boolean | undefined,
}

export enum AndroidPowerConfig_BatteryCounters {
BATTERY_COUNTER_UNSPECIFIED = 0,
/** BATTERY_COUNTER_CHARGE - Coulomb counter. */
BATTERY_COUNTER_CHARGE = 1,
/** BATTERY_COUNTER_CAPACITY_PERCENT - Charge (%). */
BATTERY_COUNTER_CAPACITY_PERCENT = 2,
/** BATTERY_COUNTER_CURRENT - Instantaneous current. */
BATTERY_COUNTER_CURRENT = 3,
/** BATTERY_COUNTER_CURRENT_AVG - Avg current. */
BATTERY_COUNTER_CURRENT_AVG = 4,
/** BATTERY_COUNTER_VOLTAGE - Instantaneous voltage. */
BATTERY_COUNTER_VOLTAGE = 5,
UNRECOGNIZED = -1,
}

export function androidPowerConfig_BatteryCountersFromJSON(object: any): AndroidPowerConfig_BatteryCounters {
switch (object) {
case 0:
      case "BATTERY_COUNTER_UNSPECIFIED":
        return AndroidPowerConfig_BatteryCounters.BATTERY_COUNTER_UNSPECIFIED;
case 1:
      case "BATTERY_COUNTER_CHARGE":
        return AndroidPowerConfig_BatteryCounters.BATTERY_COUNTER_CHARGE;
case 2:
      case "BATTERY_COUNTER_CAPACITY_PERCENT":
        return AndroidPowerConfig_BatteryCounters.BATTERY_COUNTER_CAPACITY_PERCENT;
case 3:
      case "BATTERY_COUNTER_CURRENT":
        return AndroidPowerConfig_BatteryCounters.BATTERY_COUNTER_CURRENT;
case 4:
      case "BATTERY_COUNTER_CURRENT_AVG":
        return AndroidPowerConfig_BatteryCounters.BATTERY_COUNTER_CURRENT_AVG;
case 5:
      case "BATTERY_COUNTER_VOLTAGE":
        return AndroidPowerConfig_BatteryCounters.BATTERY_COUNTER_VOLTAGE;
case -1:
        case "UNRECOGNIZED":
        default:
          return AndroidPowerConfig_BatteryCounters.UNRECOGNIZED;
}
}

export function androidPowerConfig_BatteryCountersToJSON(object: AndroidPowerConfig_BatteryCounters): string {
switch (object) {
case AndroidPowerConfig_BatteryCounters.BATTERY_COUNTER_UNSPECIFIED: return "BATTERY_COUNTER_UNSPECIFIED";
case AndroidPowerConfig_BatteryCounters.BATTERY_COUNTER_CHARGE: return "BATTERY_COUNTER_CHARGE";
case AndroidPowerConfig_BatteryCounters.BATTERY_COUNTER_CAPACITY_PERCENT: return "BATTERY_COUNTER_CAPACITY_PERCENT";
case AndroidPowerConfig_BatteryCounters.BATTERY_COUNTER_CURRENT: return "BATTERY_COUNTER_CURRENT";
case AndroidPowerConfig_BatteryCounters.BATTERY_COUNTER_CURRENT_AVG: return "BATTERY_COUNTER_CURRENT_AVG";
case AndroidPowerConfig_BatteryCounters.BATTERY_COUNTER_VOLTAGE: return "BATTERY_COUNTER_VOLTAGE";
case AndroidPowerConfig_BatteryCounters.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * Configuration that allows to boost the priority of the 'traced' or
 * 'traced_probs' processes, by changing the scheduler configuration.
 * Only supported on Linux and Android the boosted process must have
 * 'CAP_SYS_NICE' capability.
 */
export interface PriorityBoostConfig {
policy?: PriorityBoostConfig_BoostPolicy | undefined,
priority?: number | undefined,
}

export enum PriorityBoostConfig_BoostPolicy {
POLICY_UNSPECIFIED = 0,
/**
 * POLICY_SCHED_OTHER - The default policy (e.g., CFS on Linux). Priority range: [0; 20]
 * priority is interpreted as -(nice), i.e., 1 is slightly higher prio
 * than default 0, 20 is the highest priority.
 * Note: this is the opposite semantic of the cmdline nice, and is done for
 * consistency with POLICY_SCHED_FIFO, so higher number == higher prio.
 */
POLICY_SCHED_OTHER = 1,
/** POLICY_SCHED_FIFO - The Real-time policy, Priority range: [1; 99] */
POLICY_SCHED_FIFO = 2,
UNRECOGNIZED = -1,
}

export function priorityBoostConfig_BoostPolicyFromJSON(object: any): PriorityBoostConfig_BoostPolicy {
switch (object) {
case 0:
      case "POLICY_UNSPECIFIED":
        return PriorityBoostConfig_BoostPolicy.POLICY_UNSPECIFIED;
case 1:
      case "POLICY_SCHED_OTHER":
        return PriorityBoostConfig_BoostPolicy.POLICY_SCHED_OTHER;
case 2:
      case "POLICY_SCHED_FIFO":
        return PriorityBoostConfig_BoostPolicy.POLICY_SCHED_FIFO;
case -1:
        case "UNRECOGNIZED":
        default:
          return PriorityBoostConfig_BoostPolicy.UNRECOGNIZED;
}
}

export function priorityBoostConfig_BoostPolicyToJSON(object: PriorityBoostConfig_BoostPolicy): string {
switch (object) {
case PriorityBoostConfig_BoostPolicy.POLICY_UNSPECIFIED: return "POLICY_UNSPECIFIED";
case PriorityBoostConfig_BoostPolicy.POLICY_SCHED_OTHER: return "POLICY_SCHED_OTHER";
case PriorityBoostConfig_BoostPolicy.POLICY_SCHED_FIFO: return "POLICY_SCHED_FIFO";
case PriorityBoostConfig_BoostPolicy.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * Config for polling process-related information from /proc/pid/status and
 * related files on Linux.
 * 
 * Data source name: "linux.process_stats".
 */
export interface ProcessStatsConfig {
quirks?: ProcessStatsConfig_Quirks[] | undefined,
/** If enabled all processes will be scanned and dumped when the trace starts. */
scanAllProcessesOnStart?: boolean | undefined,
/**
 * If enabled thread names are also recoded (this is redundant if sched_switch
 * is enabled).
 */
recordThreadNames?: boolean | undefined,
/**
 * If > 0 samples counters (see process_stats.proto) from
 * /proc/pid/status and oom_score_adj every X ms.
 * This is required to be > 100ms to avoid excessive CPU usage.
 */
procStatsPollMs?: number | undefined,
/**
 * Explicit caching period during which the polling won't re-emit identical
 * counter values. This is required to be either = 0 or a multiple of
 * |proc_stats_poll_ms| (default: |proc_stats_poll_ms|). Non-multiples will be
 * rounded down to the nearest multiple.
 */
procStatsCacheTtlMs?: number | undefined,
/**
 * If true and |proc_stats_poll_ms| is set, sample memory stats from
 * /proc/pid/smaps_rollup.
 * 
 * Android: does NOT work with the system daemons by default, as it requires
 * running the recording process (traced_probes or tracebox) as root. It is
 * possible to avoid the root requirement, but the exact steps depend on the
 * Linux distibution. The proc file requires passing a PTRACE_MODE_READ
 * check, and might be further covered by the procfs "hidepid" mount option.
 */
scanSmapsRollup?: boolean | undefined,
/**
 * If true: process descriptions will include process age (starttime in
 * /proc/pid/stat).
 * Introduced in: perfetto v44.
 */
recordProcessAge?: boolean | undefined,
/**
 * If true and |proc_stats_poll_ms| is set, process stats will include time
 * spent running in user/kernel mode (utime/stime in /proc/pid/stat).
 * Introduced in: perfetto v44.
 */
recordProcessRuntime?: boolean | undefined,
/**
 * If true obtain per-process dmabuf resident set size from
 * /proc/pid/dmabuf_rss.
 * This feature is not in upstream linux, and is available only on some
 * Android kernels.
 */
recordProcessDmabufRss?: boolean | undefined,
/**
 * WARNING: unmaintained and deprecated. If true this will resolve file
 * descriptors for each process so these can be mapped to their actual device
 * or file. Requires raw_syscalls/sys_{enter,exit} ftrace events to be enabled
 * or new fds opened after initially scanning a process will not be
 * recognized.
 */
resolveProcessFds?: boolean | undefined,
/**
 * If true, do *not* write a ProcessTree::Thread message for the main thread
 * of a process. This was the default behaviour before perfetto v58.
 * 
 * Added in perfetto v58.
 */
skipMainThreadMessage?: boolean | undefined,
}

export enum ProcessStatsConfig_Quirks {
QUIRKS_UNSPECIFIED = 0,
/**
 * DISABLE_INITIAL_DUMP - This has been deprecated and ignored as per 2018-05-01. Full scan at
 * startup is now disabled by default and can be re-enabled using the
 * |scan_all_processes_on_start| arg.
 * 
 * @deprecated
 */
DISABLE_INITIAL_DUMP = 1,
/**
 * DISABLE_ON_DEMAND - If set, disables the special interaction with "linux.ftrace" data source,
 * where the process stats rescrapes any thread id seen in the ftrace
 * stream.
 */
DISABLE_ON_DEMAND = 2,
UNRECOGNIZED = -1,
}

export function processStatsConfig_QuirksFromJSON(object: any): ProcessStatsConfig_Quirks {
switch (object) {
case 0:
      case "QUIRKS_UNSPECIFIED":
        return ProcessStatsConfig_Quirks.QUIRKS_UNSPECIFIED;
case 1:
      case "DISABLE_INITIAL_DUMP":
        return ProcessStatsConfig_Quirks.DISABLE_INITIAL_DUMP;
case 2:
      case "DISABLE_ON_DEMAND":
        return ProcessStatsConfig_Quirks.DISABLE_ON_DEMAND;
case -1:
        case "UNRECOGNIZED":
        default:
          return ProcessStatsConfig_Quirks.UNRECOGNIZED;
}
}

export function processStatsConfig_QuirksToJSON(object: ProcessStatsConfig_Quirks): string {
switch (object) {
case ProcessStatsConfig_Quirks.QUIRKS_UNSPECIFIED: return "QUIRKS_UNSPECIFIED";
case ProcessStatsConfig_Quirks.DISABLE_INITIAL_DUMP: return "DISABLE_INITIAL_DUMP";
case ProcessStatsConfig_Quirks.DISABLE_ON_DEMAND: return "DISABLE_ON_DEMAND";
case ProcessStatsConfig_Quirks.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * Configuration for go/heapprofd.
 * Next id: 28
 */
export interface HeapprofdConfig {
/**
 * Sampling rate for all heaps not specified via heap_sampling_intervals.
 * 
 * These are:
 * * All heaps if heap_sampling_intervals is empty.
 * * Those profiled due to all_heaps and not named in heaps if
 *   heap_sampling_intervals is not empty.
 * * The implicit libc.malloc heap if heaps is empty.
 * 
 * Set to 1 for perfect accuracy.
 * Otherwise, sample every sample_interval_bytes on average.
 * 
 * See
 * https://perfetto.dev/docs/data-sources/native-heap-profiler#sampling-interval
 * for more details.
 * 
 * BUGS
 * Before Android 12, setting this to 0 would crash the target process.
 * 
 * N.B. This must be explicitly set to a non-zero value for all heaps (with
 * this field or with heap_sampling_intervals), otherwise the producer will
 * not start.
 */
samplingIntervalBytes?: number | undefined,
/**
 * If less than the given numbers of bytes are left free in the shared
 * memory buffer, increase sampling interval by a factor of two.
 * Adaptive sampling is disabled when set to 0.
 */
adaptiveSamplingShmemThreshold?: number | undefined,
/**
 * Stop doubling the sampling_interval once the sampling interval has reached
 * this value.
 */
adaptiveSamplingMaxSamplingIntervalBytes?: number | undefined,
/**
 * Names of process cmdlines to profile. The semantics before perfetto v57 are
 * as the following section (A), and on newer versions are both (A) and (B):
 * 
 * (A) E.g. surfaceflinger, com.android.phone
 * This input is normalized in the following way: if it contains slashes,
 * everything up to the last slash is discarded. If it contains "@",
 * everything after the first @ is discared.
 * E.g. /system/bin/surfaceflinger@1.0 normalizes to surfaceflinger.
 * This transformation is also applied to the processes' command lines when
 * matching.
 * 
 * (B) Perfetto v57+: a pattern may also contain a wildcard ('*'), in which
 * case it is matched against running processes' command lines using glob
 * semantics. If the pattern starts with '/' it is matched against the full
 * argv0 (e.g. "/system/bin/*"), otherwise it is matched against the binary
 * name part of argv0 (e.g. "system_*"). Wildcard patterns are *not*
 * normalized as described above.
 * Wildcard patterns are supported only for profiling already-running
 * processes. A config must set no_startup=true if using wildcards, or it will
 * be rejected.
 */
processCmdline?: string[] | undefined,
/** For watermark based triggering or local debugging. */
pid?: number[] | undefined,
/**
 * Only profile target if it was installed by one of the packages given.
 * Special values are:
 * * @system: installed on the system partition
 * * @product: installed on the product partition
 * * @null: sideloaded
 * Supported on Android 12+.
 */
targetInstalledBy?: string[] | undefined,
/**
 * Which heaps to sample, e.g. "libc.malloc". If left empty, only samples
 * "malloc".
 * 
 * Introduced in Android 12.
 */
heaps?: string[] | undefined,
/**
 * Which heaps not to sample, e.g. "libc.malloc". This is useful when used in
 * combination with all_heaps;
 * 
 * Introduced in Android 12.
 */
excludeHeaps?: string[] | undefined,
streamAllocations?: boolean | undefined,
/**
 * If given, needs to be the same length as heaps and gives the sampling
 * interval for the respective entry in heaps.
 * 
 * Otherwise, sampling_interval_bytes is used.
 * 
 * It is recommended to set sampling_interval_bytes to a reasonable default
 * value when using this, as a value of 0 for sampling_interval_bytes will
 * crash the target process before Android 12.
 * 
 * Introduced in Android 12.
 * 
 * All values must be non-zero or the producer will not start.
 */
heapSamplingIntervals?: number[] | undefined,
/** Sample all heaps registered by target process. Introduced in Android 12. */
allHeaps?: boolean | undefined,
/**
 * Profile all processes eligible for profiling on the system.
 * See
 * https://perfetto.dev/docs/data-sources/native-heap-profiler#heapprofd-targets
 * for which processes are eligible.
 * 
 * On unmodified userdebug builds, this will lead to system crashes. Zygote
 * will crash when trying to launch a new process as it will have an
 * unexpected open socket to heapprofd.
 * 
 * heapprofd will likely be overloaded by the amount of data for low
 * sampling intervals.
 */
all?: boolean | undefined,
/**
 * Do not profile processes whose anon RSS + swap < given value.
 * Introduced in Android 11.
 */
minAnonymousMemoryKb?: number | undefined,
/**
 * Stop profile if heapprofd memory usage goes beyond the given value.
 * Introduced in Android 11.
 */
maxHeapprofdMemoryKb?: number | undefined,
/**
 * Stop profile if heapprofd CPU time since start of this data-source
 * goes beyond given value.
 * Introduced in Android 11.
 */
maxHeapprofdCpuSecs?: number | undefined,
/**
 * Do not emit function names for mappings starting with this prefix.
 * E.g. /system to not emit symbols for any system libraries.
 */
skipSymbolPrefix?: string[] | undefined,
/** Dump at a predefined interval. */
continuousDumpConfig?: HeapprofdConfig_ContinuousDumpConfig | undefined,
/**
 * Size of the shared memory buffer between the profiled processes and
 * heapprofd. Defaults to 8 MiB. If larger than 500 MiB, truncated to 500
 * MiB.
 * 
 * Needs to be:
 * * at least 8192,
 * * a power of two,
 * * a multiple of 4096.
 */
shmemSizeBytes?: number | undefined,
/**
 * When the shmem buffer is full, block the client instead of ending the
 * trace. Use with caution as this will significantly slow down the target
 * process.
 */
blockClient?: boolean | undefined,
/**
 * If set, stop the trace session after blocking the client for this
 * timeout. Needs to be larger than 100 us, otherwise no retries are done.
 * Introduced in Android 11.
 */
blockClientTimeoutUs?: number | undefined,
/**
 * Do not profile processes from startup, only match already running
 * processes.
 * 
 * Can not be set at the same time as no_running.
 * Introduced in Android 11.
 */
noStartup?: boolean | undefined,
/**
 * Do not profile running processes. Only match processes on startup.
 * 
 * Can not be set at the same time as no_startup.
 * Introduced in Android 11.
 */
noRunning?: boolean | undefined,
/**
 * Cause heapprofd to emit a single dump at the end, showing the memory usage
 * at the point in time when the sampled heap usage of the process was at its
 * maximum. This causes ProfilePacket.HeapSample.self_max to be set, and
 * self_allocated and self_freed to not be set.
 * Introduced in Android 11.
 */
dumpAtMax?: boolean | undefined,
/**
 * Escape hatch if the session is being torn down because of a forked child
 * that shares memory space, but is not correctly identified as a vforked
 * child.
 * Introduced in Android 11.
 */
disableForkTeardown?: boolean | undefined,
/**
 * We try to automatically detect when a target applicatation vforks but then
 * does a memory allocation (or free). This auto-detection can be disabled
 * with this.
 * Introduced in Android 11.
 */
disableVforkDetection?: boolean | undefined,
}

export interface HeapprofdConfig_ContinuousDumpConfig {
/** ms to wait before first dump. */
dumpPhaseMs?: number | undefined,
/** ms to wait between following dumps. */
dumpIntervalMs?: number | undefined,
}

/** Config for collecting /proc/pid/smaps. */
export interface SmapsConfig {
/**
 * Set of fields to collect.
 * If unset, defaults to: size, rss, anonymous, swap.
 */
vmaFields?: SmapsConfig_VmaField[] | undefined,
/**
 * If false, mappings are aggregated by their path name.
 * If true, each mapping is serialised separately.
 */
unaggregated?: boolean | undefined,
/**
 * Optional ordered list of redaction rules for the name of the mapping.
 * Note that all mappings will still be emitted, these rules only affect the
 * emitted name.
 * If unset, all names are written as is.
 * If set, the first matching rule decides on the action.
 * If no rules match, the name is written as is.
 */
nameRedactionRules?: RedactionRule[] | undefined,
}

export enum SmapsConfig_VmaField {
VMA_FIELD_UNKNOWN = 0,
VMA_FIELD_SIZE = 1,
VMA_FIELD_RSS = 2,
VMA_FIELD_ANONYMOUS = 3,
VMA_FIELD_SWAP = 4,
VMA_FIELD_SHARED_CLEAN = 5,
VMA_FIELD_SHARED_DIRTY = 6,
VMA_FIELD_PRIVATE_CLEAN = 7,
VMA_FIELD_PRIVATE_DIRTY = 8,
VMA_FIELD_LOCKED = 9,
VMA_FIELD_PSS = 10,
VMA_FIELD_PSS_DIRTY = 11,
VMA_FIELD_SWAP_PSS = 12,
UNRECOGNIZED = -1,
}

export function smapsConfig_VmaFieldFromJSON(object: any): SmapsConfig_VmaField {
switch (object) {
case 0:
      case "VMA_FIELD_UNKNOWN":
        return SmapsConfig_VmaField.VMA_FIELD_UNKNOWN;
case 1:
      case "VMA_FIELD_SIZE":
        return SmapsConfig_VmaField.VMA_FIELD_SIZE;
case 2:
      case "VMA_FIELD_RSS":
        return SmapsConfig_VmaField.VMA_FIELD_RSS;
case 3:
      case "VMA_FIELD_ANONYMOUS":
        return SmapsConfig_VmaField.VMA_FIELD_ANONYMOUS;
case 4:
      case "VMA_FIELD_SWAP":
        return SmapsConfig_VmaField.VMA_FIELD_SWAP;
case 5:
      case "VMA_FIELD_SHARED_CLEAN":
        return SmapsConfig_VmaField.VMA_FIELD_SHARED_CLEAN;
case 6:
      case "VMA_FIELD_SHARED_DIRTY":
        return SmapsConfig_VmaField.VMA_FIELD_SHARED_DIRTY;
case 7:
      case "VMA_FIELD_PRIVATE_CLEAN":
        return SmapsConfig_VmaField.VMA_FIELD_PRIVATE_CLEAN;
case 8:
      case "VMA_FIELD_PRIVATE_DIRTY":
        return SmapsConfig_VmaField.VMA_FIELD_PRIVATE_DIRTY;
case 9:
      case "VMA_FIELD_LOCKED":
        return SmapsConfig_VmaField.VMA_FIELD_LOCKED;
case 10:
      case "VMA_FIELD_PSS":
        return SmapsConfig_VmaField.VMA_FIELD_PSS;
case 11:
      case "VMA_FIELD_PSS_DIRTY":
        return SmapsConfig_VmaField.VMA_FIELD_PSS_DIRTY;
case 12:
      case "VMA_FIELD_SWAP_PSS":
        return SmapsConfig_VmaField.VMA_FIELD_SWAP_PSS;
case -1:
        case "UNRECOGNIZED":
        default:
          return SmapsConfig_VmaField.UNRECOGNIZED;
}
}

export function smapsConfig_VmaFieldToJSON(object: SmapsConfig_VmaField): string {
switch (object) {
case SmapsConfig_VmaField.VMA_FIELD_UNKNOWN: return "VMA_FIELD_UNKNOWN";
case SmapsConfig_VmaField.VMA_FIELD_SIZE: return "VMA_FIELD_SIZE";
case SmapsConfig_VmaField.VMA_FIELD_RSS: return "VMA_FIELD_RSS";
case SmapsConfig_VmaField.VMA_FIELD_ANONYMOUS: return "VMA_FIELD_ANONYMOUS";
case SmapsConfig_VmaField.VMA_FIELD_SWAP: return "VMA_FIELD_SWAP";
case SmapsConfig_VmaField.VMA_FIELD_SHARED_CLEAN: return "VMA_FIELD_SHARED_CLEAN";
case SmapsConfig_VmaField.VMA_FIELD_SHARED_DIRTY: return "VMA_FIELD_SHARED_DIRTY";
case SmapsConfig_VmaField.VMA_FIELD_PRIVATE_CLEAN: return "VMA_FIELD_PRIVATE_CLEAN";
case SmapsConfig_VmaField.VMA_FIELD_PRIVATE_DIRTY: return "VMA_FIELD_PRIVATE_DIRTY";
case SmapsConfig_VmaField.VMA_FIELD_LOCKED: return "VMA_FIELD_LOCKED";
case SmapsConfig_VmaField.VMA_FIELD_PSS: return "VMA_FIELD_PSS";
case SmapsConfig_VmaField.VMA_FIELD_PSS_DIRTY: return "VMA_FIELD_PSS_DIRTY";
case SmapsConfig_VmaField.VMA_FIELD_SWAP_PSS: return "VMA_FIELD_SWAP_PSS";
case SmapsConfig_VmaField.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export interface RedactionRule {
/** The pattern to match against. */
pattern?: string | undefined,
matchMode?: RedactionRule_MatchMode | undefined,
/**
 * If the pattern matches, keep the entire name. In other words, do not
 * redact. This option exists since the rules are evaluated in order, so a
 * more specific allow rule with keep_full can match before a more general
 * deny rule. This option is mutually exclusive with |keep_file_extension| and
 * |keep_path_elements|.
 */
keepFull?: boolean | undefined,
/**
 * If the pattern matches, replace the name with this string (defaulting to
 * <pf_redacted> if unset). The final emitted name might be further augmented
 * by the options below keeping parts of the original name.
 */
replacementName?: string | undefined,
/**
 * If the pattern matches, keep the file extension, if any.
 * Can be combined with |keep_path_elements|.
 */
keepFileExtension?: boolean | undefined,
/**
 * If the pattern matches, keep the first N path elements (as separated by
 * '/'). If the name is not a path, this option does nothing. Can be combined
 * with |keep_file_extension|.
 */
keepPathElements?: number | undefined,
}

/**
 * How to match |pattern| against the name of the mapping.
 * Note for future extensions: unrecognised enums are treated as always
 * matching.
 */
export enum RedactionRule_MatchMode {
MATCH_MODE_UNKNOWN = 0,
/** MATCH_MODE_PREFIX - The pattern matches if it is a prefix of the mapping name. */
MATCH_MODE_PREFIX = 1,
/**
 * MATCH_MODE_GLOB_PATH - The pattern is matched against the mapping name as a pathname glob
 * (see "man 7 glob" and FNM_PATHNAME in "man 3 fnmatch").
 * The key distinction is that path separators in the name are *not* matched
 * against wildcards. So a pattern of the form "/usr/* /llvm" would match
 * "/usr/lib/llvm" but not "/usr/lib/nested/llvm".
 * Note: any "(deleted)" suffix is excluded before matching.
 */
MATCH_MODE_GLOB_PATH = 2,
/**
 * MATCH_MODE_GLOB_STRING - The pattern is matched against the mapping name without special-casing
 * path separators. So a pattern of the form "/usr/* /llvm" would match
 * both "/usr/lib/llvm" and "/usr/lib/nested/llvm".
 * Note: any "(deleted)" suffix is excluded before matching.
 */
MATCH_MODE_GLOB_STRING = 3,
UNRECOGNIZED = -1,
}

export function redactionRule_MatchModeFromJSON(object: any): RedactionRule_MatchMode {
switch (object) {
case 0:
      case "MATCH_MODE_UNKNOWN":
        return RedactionRule_MatchMode.MATCH_MODE_UNKNOWN;
case 1:
      case "MATCH_MODE_PREFIX":
        return RedactionRule_MatchMode.MATCH_MODE_PREFIX;
case 2:
      case "MATCH_MODE_GLOB_PATH":
        return RedactionRule_MatchMode.MATCH_MODE_GLOB_PATH;
case 3:
      case "MATCH_MODE_GLOB_STRING":
        return RedactionRule_MatchMode.MATCH_MODE_GLOB_STRING;
case -1:
        case "UNRECOGNIZED":
        default:
          return RedactionRule_MatchMode.UNRECOGNIZED;
}
}

export function redactionRule_MatchModeToJSON(object: RedactionRule_MatchMode): string {
switch (object) {
case RedactionRule_MatchMode.MATCH_MODE_UNKNOWN: return "MATCH_MODE_UNKNOWN";
case RedactionRule_MatchMode.MATCH_MODE_PREFIX: return "MATCH_MODE_PREFIX";
case RedactionRule_MatchMode.MATCH_MODE_GLOB_PATH: return "MATCH_MODE_GLOB_PATH";
case RedactionRule_MatchMode.MATCH_MODE_GLOB_STRING: return "MATCH_MODE_GLOB_STRING";
case RedactionRule_MatchMode.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/** Configuration for managed app heap graph snapshots. */
export interface JavaHprofConfig {
/**
 * Command line allowlist, matched against the /proc/<pid>/cmdline (not the
 * comm string). The semantics of this field were changed since its original
 * introduction.
 * 
 * On Android T+ (13+), this field can specify a single wildcard (*), and
 * the profiler will attempt to match it in two possible ways:
 * * if the pattern starts with a '/', then it is matched against the first
 *   segment of the cmdline (i.e. argv0). For example "/bin/e*" would match
 *   "/bin/echo".
 * * otherwise the pattern is matched against the part of argv0
 *   corresponding to the binary name (this is unrelated to /proc/pid/exe).
 *   For example "echo" would match "/bin/echo".
 * 
 * On Android S (12) and below, both this pattern and /proc/pid/cmdline get
 * normalized prior to an exact string comparison. Normalization is as
 * follows: (1) trim everything beyond the first null or "@" byte; (2) if
 * the string contains forward slashes, trim everything up to and including
 * the last one.
 * 
 * Implementation note: in either case, at most 511 characters of cmdline
 * are considered.
 */
processCmdline?: string[] | undefined,
/** For watermark based triggering or local debugging. */
pid?: number[] | undefined,
/**
 * Only profile target if it was installed by one of the packages given.
 * Special values are:
 * * @system: installed on the system partition
 * * @product: installed on the product partition
 * * @null: sideloaded
 * Supported on Android 12+.
 */
targetInstalledBy?: string[] | undefined,
/** Dump at a predefined interval. */
continuousDumpConfig?: JavaHprofConfig_ContinuousDumpConfig | undefined,
/** Do not profile processes whose anon RSS + swap < given value. */
minAnonymousMemoryKb?: number | undefined,
/** Do not profile processes whose Java heap size < given value. */
minJavaHeapSizeKb?: number | undefined,
/**
 * Include the process' /proc/self/smaps.
 * This only shows maps that:
 * * start with /system
 * * start with /vendor
 * * start with /data/app
 * * contain "extracted in memory from Y", where Y matches any of the above
 * 
 * Superseded by |smaps_config| in perfetto v58+.
 */
dumpSmaps?: boolean | undefined,
/**
 * If set, include /proc/self/smaps memory mappings.
 * 
 * Added in perfetto v58.
 */
smapsConfig?: SmapsConfig | undefined,
/**
 * Exclude objects of the following types from the profile. This can be
 * useful if lots of uninteresting objects, e.g. "sun.misc.Cleaner".
 */
ignoredTypes?: string[] | undefined,
/**
 * Dump the callsite of the thread triggering the OutOfMemoryError.
 * Only applicable to OutOfMemoryError heap dumps
 */
dumpOomeCallstack?: boolean | undefined,
}

/** If dump_interval_ms != 0, the following configuration is used. */
export interface JavaHprofConfig_ContinuousDumpConfig {
/**
 * ms to wait before first continuous dump.
 * A dump is always created at the beginning of the trace.
 */
dumpPhaseMs?: number | undefined,
/** ms to wait between following dumps. */
dumpIntervalMs?: number | undefined,
/**
 * If true, scans all the processes to find `process_cmdline` and filter by
 * `min_anonymous_memory_kb` only at data source start. Default on Android
 * S-.
 * 
 * If false, rescans all the processes to find on every dump. Default on
 * Android T+.
 */
scanPidsOnlyOnStart?: boolean | undefined,
}

export interface PerfEvents {
}

/**
 * Builtin counter names from the uapi header. Commented with their perf tool
 * aliases.
 * TODO(rsavitski): consider generating enums for cache events (should be
 * finite), and generally make this list as extensive as possible. Excluding
 * things like dynamic PMUs since those don't fit into a static enum.
 * Next id: 21
 */
export enum PerfEvents_Counter {
UNKNOWN_COUNTER = 0,
/** SW_CPU_CLOCK - cpu-clock */
SW_CPU_CLOCK = 1,
/** SW_PAGE_FAULTS - page-faults, faults */
SW_PAGE_FAULTS = 2,
/** SW_TASK_CLOCK - task-clock */
SW_TASK_CLOCK = 3,
/** SW_CONTEXT_SWITCHES - context-switches, cs */
SW_CONTEXT_SWITCHES = 4,
/** SW_CPU_MIGRATIONS - cpu-migrations, migrations */
SW_CPU_MIGRATIONS = 5,
/** SW_PAGE_FAULTS_MIN - minor-faults */
SW_PAGE_FAULTS_MIN = 6,
/** SW_PAGE_FAULTS_MAJ - major-faults */
SW_PAGE_FAULTS_MAJ = 7,
/** SW_ALIGNMENT_FAULTS - alignment-faults */
SW_ALIGNMENT_FAULTS = 8,
/** SW_EMULATION_FAULTS - emulation-faults */
SW_EMULATION_FAULTS = 9,
/** SW_DUMMY - dummy */
SW_DUMMY = 20,
/** HW_CPU_CYCLES - cpu-cycles, cycles */
HW_CPU_CYCLES = 10,
/** HW_INSTRUCTIONS - instructions */
HW_INSTRUCTIONS = 11,
/** HW_CACHE_REFERENCES - cache-references */
HW_CACHE_REFERENCES = 12,
/** HW_CACHE_MISSES - cache-misses */
HW_CACHE_MISSES = 13,
/** HW_BRANCH_INSTRUCTIONS - branch-instructions, branches */
HW_BRANCH_INSTRUCTIONS = 14,
/** HW_BRANCH_MISSES - branch-misses */
HW_BRANCH_MISSES = 15,
/** HW_BUS_CYCLES - bus-cycles */
HW_BUS_CYCLES = 16,
/** HW_STALLED_CYCLES_FRONTEND - stalled-cycles-frontend, idle-cycles-frontend */
HW_STALLED_CYCLES_FRONTEND = 17,
/** HW_STALLED_CYCLES_BACKEND - stalled-cycles-backend, idle-cycles-backend */
HW_STALLED_CYCLES_BACKEND = 18,
/** HW_REF_CPU_CYCLES - ref-cycles */
HW_REF_CPU_CYCLES = 19,
UNRECOGNIZED = -1,
}

export function perfEvents_CounterFromJSON(object: any): PerfEvents_Counter {
switch (object) {
case 0:
      case "UNKNOWN_COUNTER":
        return PerfEvents_Counter.UNKNOWN_COUNTER;
case 1:
      case "SW_CPU_CLOCK":
        return PerfEvents_Counter.SW_CPU_CLOCK;
case 2:
      case "SW_PAGE_FAULTS":
        return PerfEvents_Counter.SW_PAGE_FAULTS;
case 3:
      case "SW_TASK_CLOCK":
        return PerfEvents_Counter.SW_TASK_CLOCK;
case 4:
      case "SW_CONTEXT_SWITCHES":
        return PerfEvents_Counter.SW_CONTEXT_SWITCHES;
case 5:
      case "SW_CPU_MIGRATIONS":
        return PerfEvents_Counter.SW_CPU_MIGRATIONS;
case 6:
      case "SW_PAGE_FAULTS_MIN":
        return PerfEvents_Counter.SW_PAGE_FAULTS_MIN;
case 7:
      case "SW_PAGE_FAULTS_MAJ":
        return PerfEvents_Counter.SW_PAGE_FAULTS_MAJ;
case 8:
      case "SW_ALIGNMENT_FAULTS":
        return PerfEvents_Counter.SW_ALIGNMENT_FAULTS;
case 9:
      case "SW_EMULATION_FAULTS":
        return PerfEvents_Counter.SW_EMULATION_FAULTS;
case 20:
      case "SW_DUMMY":
        return PerfEvents_Counter.SW_DUMMY;
case 10:
      case "HW_CPU_CYCLES":
        return PerfEvents_Counter.HW_CPU_CYCLES;
case 11:
      case "HW_INSTRUCTIONS":
        return PerfEvents_Counter.HW_INSTRUCTIONS;
case 12:
      case "HW_CACHE_REFERENCES":
        return PerfEvents_Counter.HW_CACHE_REFERENCES;
case 13:
      case "HW_CACHE_MISSES":
        return PerfEvents_Counter.HW_CACHE_MISSES;
case 14:
      case "HW_BRANCH_INSTRUCTIONS":
        return PerfEvents_Counter.HW_BRANCH_INSTRUCTIONS;
case 15:
      case "HW_BRANCH_MISSES":
        return PerfEvents_Counter.HW_BRANCH_MISSES;
case 16:
      case "HW_BUS_CYCLES":
        return PerfEvents_Counter.HW_BUS_CYCLES;
case 17:
      case "HW_STALLED_CYCLES_FRONTEND":
        return PerfEvents_Counter.HW_STALLED_CYCLES_FRONTEND;
case 18:
      case "HW_STALLED_CYCLES_BACKEND":
        return PerfEvents_Counter.HW_STALLED_CYCLES_BACKEND;
case 19:
      case "HW_REF_CPU_CYCLES":
        return PerfEvents_Counter.HW_REF_CPU_CYCLES;
case -1:
        case "UNRECOGNIZED":
        default:
          return PerfEvents_Counter.UNRECOGNIZED;
}
}

export function perfEvents_CounterToJSON(object: PerfEvents_Counter): string {
switch (object) {
case PerfEvents_Counter.UNKNOWN_COUNTER: return "UNKNOWN_COUNTER";
case PerfEvents_Counter.SW_CPU_CLOCK: return "SW_CPU_CLOCK";
case PerfEvents_Counter.SW_PAGE_FAULTS: return "SW_PAGE_FAULTS";
case PerfEvents_Counter.SW_TASK_CLOCK: return "SW_TASK_CLOCK";
case PerfEvents_Counter.SW_CONTEXT_SWITCHES: return "SW_CONTEXT_SWITCHES";
case PerfEvents_Counter.SW_CPU_MIGRATIONS: return "SW_CPU_MIGRATIONS";
case PerfEvents_Counter.SW_PAGE_FAULTS_MIN: return "SW_PAGE_FAULTS_MIN";
case PerfEvents_Counter.SW_PAGE_FAULTS_MAJ: return "SW_PAGE_FAULTS_MAJ";
case PerfEvents_Counter.SW_ALIGNMENT_FAULTS: return "SW_ALIGNMENT_FAULTS";
case PerfEvents_Counter.SW_EMULATION_FAULTS: return "SW_EMULATION_FAULTS";
case PerfEvents_Counter.SW_DUMMY: return "SW_DUMMY";
case PerfEvents_Counter.HW_CPU_CYCLES: return "HW_CPU_CYCLES";
case PerfEvents_Counter.HW_INSTRUCTIONS: return "HW_INSTRUCTIONS";
case PerfEvents_Counter.HW_CACHE_REFERENCES: return "HW_CACHE_REFERENCES";
case PerfEvents_Counter.HW_CACHE_MISSES: return "HW_CACHE_MISSES";
case PerfEvents_Counter.HW_BRANCH_INSTRUCTIONS: return "HW_BRANCH_INSTRUCTIONS";
case PerfEvents_Counter.HW_BRANCH_MISSES: return "HW_BRANCH_MISSES";
case PerfEvents_Counter.HW_BUS_CYCLES: return "HW_BUS_CYCLES";
case PerfEvents_Counter.HW_STALLED_CYCLES_FRONTEND: return "HW_STALLED_CYCLES_FRONTEND";
case PerfEvents_Counter.HW_STALLED_CYCLES_BACKEND: return "HW_STALLED_CYCLES_BACKEND";
case PerfEvents_Counter.HW_REF_CPU_CYCLES: return "HW_REF_CPU_CYCLES";
case PerfEvents_Counter.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * Subset of clocks that is supported by perf timestamping.
 * CLOCK_TAI is excluded since it's not expected to be used in practice, but
 * would require additions to the trace clock synchronisation logic.
 */
export enum PerfEvents_PerfClock {
UNKNOWN_PERF_CLOCK = 0,
PERF_CLOCK_REALTIME = 1,
PERF_CLOCK_MONOTONIC = 2,
PERF_CLOCK_MONOTONIC_RAW = 3,
PERF_CLOCK_BOOTTIME = 4,
UNRECOGNIZED = -1,
}

export function perfEvents_PerfClockFromJSON(object: any): PerfEvents_PerfClock {
switch (object) {
case 0:
      case "UNKNOWN_PERF_CLOCK":
        return PerfEvents_PerfClock.UNKNOWN_PERF_CLOCK;
case 1:
      case "PERF_CLOCK_REALTIME":
        return PerfEvents_PerfClock.PERF_CLOCK_REALTIME;
case 2:
      case "PERF_CLOCK_MONOTONIC":
        return PerfEvents_PerfClock.PERF_CLOCK_MONOTONIC;
case 3:
      case "PERF_CLOCK_MONOTONIC_RAW":
        return PerfEvents_PerfClock.PERF_CLOCK_MONOTONIC_RAW;
case 4:
      case "PERF_CLOCK_BOOTTIME":
        return PerfEvents_PerfClock.PERF_CLOCK_BOOTTIME;
case -1:
        case "UNRECOGNIZED":
        default:
          return PerfEvents_PerfClock.UNRECOGNIZED;
}
}

export function perfEvents_PerfClockToJSON(object: PerfEvents_PerfClock): string {
switch (object) {
case PerfEvents_PerfClock.UNKNOWN_PERF_CLOCK: return "UNKNOWN_PERF_CLOCK";
case PerfEvents_PerfClock.PERF_CLOCK_REALTIME: return "PERF_CLOCK_REALTIME";
case PerfEvents_PerfClock.PERF_CLOCK_MONOTONIC: return "PERF_CLOCK_MONOTONIC";
case PerfEvents_PerfClock.PERF_CLOCK_MONOTONIC_RAW: return "PERF_CLOCK_MONOTONIC_RAW";
case PerfEvents_PerfClock.PERF_CLOCK_BOOTTIME: return "PERF_CLOCK_BOOTTIME";
case PerfEvents_PerfClock.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export enum PerfEvents_EventModifier {
UNKNOWN_EVENT_MODIFIER = 0,
/** EVENT_MODIFIER_COUNT_USERSPACE - count only while in userspace */
EVENT_MODIFIER_COUNT_USERSPACE = 1,
/** EVENT_MODIFIER_COUNT_KERNEL - count only while in kernel */
EVENT_MODIFIER_COUNT_KERNEL = 2,
/** EVENT_MODIFIER_COUNT_HYPERVISOR - count only while in hypervisor */
EVENT_MODIFIER_COUNT_HYPERVISOR = 3,
UNRECOGNIZED = -1,
}

export function perfEvents_EventModifierFromJSON(object: any): PerfEvents_EventModifier {
switch (object) {
case 0:
      case "UNKNOWN_EVENT_MODIFIER":
        return PerfEvents_EventModifier.UNKNOWN_EVENT_MODIFIER;
case 1:
      case "EVENT_MODIFIER_COUNT_USERSPACE":
        return PerfEvents_EventModifier.EVENT_MODIFIER_COUNT_USERSPACE;
case 2:
      case "EVENT_MODIFIER_COUNT_KERNEL":
        return PerfEvents_EventModifier.EVENT_MODIFIER_COUNT_KERNEL;
case 3:
      case "EVENT_MODIFIER_COUNT_HYPERVISOR":
        return PerfEvents_EventModifier.EVENT_MODIFIER_COUNT_HYPERVISOR;
case -1:
        case "UNRECOGNIZED":
        default:
          return PerfEvents_EventModifier.UNRECOGNIZED;
}
}

export function perfEvents_EventModifierToJSON(object: PerfEvents_EventModifier): string {
switch (object) {
case PerfEvents_EventModifier.UNKNOWN_EVENT_MODIFIER: return "UNKNOWN_EVENT_MODIFIER";
case PerfEvents_EventModifier.EVENT_MODIFIER_COUNT_USERSPACE: return "EVENT_MODIFIER_COUNT_USERSPACE";
case PerfEvents_EventModifier.EVENT_MODIFIER_COUNT_KERNEL: return "EVENT_MODIFIER_COUNT_KERNEL";
case PerfEvents_EventModifier.EVENT_MODIFIER_COUNT_HYPERVISOR: return "EVENT_MODIFIER_COUNT_HYPERVISOR";
case PerfEvents_EventModifier.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * The primary event to count. If recording multiple events, this
 * counter is the "group leader".
 * Commented from the perspective of its use in |PerfEventConfig|.
 * Next id: 13
 */
export interface PerfEvents_Timebase {
/**
 * Per-cpu sampling frequency in Hz, as requested from the kernel. Not the
 * same as 1/period.
 * Details: the actual sampling will still be based on a period, but the
 * kernel will dynamically adjust it based on the observed event rate, to
 * approximate this frequency. Works best with steady-rate events like
 * timers.
 * Not guaranteed to be honored as the kernel can throttle the sampling
 * rate if it's too high.
 */
frequency?: number | undefined,
/**
 * Per-cpu sampling will occur every |period| counts of |event|.
 * Prefer |frequency| by default, as it's easier to oversample with a
 * fixed period.
 * Not guaranteed to be honored as the kernel can throttle the sampling
 * rate if it's too high.
 */
period?: number | undefined,
/**
 * Per-cpu values are read by the userspace every interval. If using this
 * mode, only follower events are supported. Options such as
 * |PerfEventConfig.CallstackSampling| are incompatible.
 * The period can't be guaranteed to be exact since the readings are taken
 * by userspace.
 */
pollPeriodMs?: number | undefined,
counter?: PerfEvents_Counter | undefined,
tracepoint?: PerfEvents_Tracepoint | undefined,
rawEvent?: PerfEvents_RawEvent | undefined,
/**
 * Optional modifiers for the event. Modelled after the perftool's
 * https://man7.org/linux/man-pages/man1/perf-list.1.html#EVENT_MODIFIERS
 * Currently supported: count scoping such as :u, :k, :uk, ...
 * Modifiers can differ between the timebase and followers.
 */
modifiers?: PerfEvents_EventModifier[] | undefined,
/**
 * If set, samples will be timestamped with the given clock.
 * If unset, the clock is chosen by the implementation.
 * For software events, prefer PERF_CLOCK_BOOTTIME. However it cannot be
 * used for hardware events (due to interrupt safety), for which the
 * recommendation is to use one of the monotonic clocks.
 */
timestampClock?: PerfEvents_PerfClock | undefined,
/**
 * Optional arbitrary name for the event, to identify it in the parsed
 * trace. Does *not* affect the profiling itself. If unset, the trace
 * parser will choose a suitable name.
 */
name?: string | undefined,
}

export interface PerfEvents_Tracepoint {
/**
 * Group and name for the tracepoint, acceptable forms:
 * * "sched/sched_switch"
 * * "sched:sched_switch"
 */
name?: string | undefined,
/**
 * Optional field-level filter for the tracepoint. Only events matching this
 * filter will be counted (and therefore contribute to the sampling period).
 * Example: "prev_pid >= 42 && next_pid == 0".
 * For full syntax, see kernel documentation on "Event filtering":
 * https://www.kernel.org/doc/Documentation/trace/events.txt
 */
filter?: string | undefined,
}

/**
 * Syscall-level description of the event, propagated to the perf_event_attr
 * struct. Primarily for local use-cases, since the event availability and
 * encoding is hardware-specific.
 */
export interface PerfEvents_RawEvent {
/** Either |type| or |pmu_name| can be set. */
type?: number | undefined,
config?: number | undefined,
config1?: number | undefined,
config2?: number | undefined,
/**
 * The name of a dynamic PMU under /sys/bus/event_source/devices
 * (e.g. "armv8_pmuv3").
 * If set, leave |type| unset.
 * Android: the relevant sysfs paths are not allowlisted by default, so
 * this option will require a rooted device with selinux disabled.
 */
pmuName?: string | undefined,
}

/**
 * Additional events associated with a leader.
 * See https://man7.org/linux/man-pages/man1/perf-list.1.html#LEADER_SAMPLING
 */
export interface FollowerEvent {
counter?: PerfEvents_Counter | undefined,
tracepoint?: PerfEvents_Tracepoint | undefined,
rawEvent?: PerfEvents_RawEvent | undefined,
/** Modifiers can differ between the timebase and followers. */
modifiers?: PerfEvents_EventModifier[] | undefined,
/**
 * Optional arbitrary name for the event, to identify it in the parsed
 * trace. Does *not* affect the profiling itself. If unset, the trace
 * parser will choose a suitable name.
 */
name?: string | undefined,
}

/**
 * Configuration for the traced_perf profiler.
 * 
 * Example config for basic cpu profiling:
 *   perf_event_config {
 *     timebase {
 *       frequency: 80
 *     }
 *     callstack_sampling {
 *       scope {
 *         target_cmdline: "surfaceflinger"
 *         target_cmdline: "system_server"
 *       }
 *       kernel_frames: true
 *     }
 *   }
 * 
 * Next id: 23
 */
export interface PerfEventConfig {
/**
 * What event to sample on, and how often.
 * Defined in common/perf_events.proto.
 */
timebase?: PerfEvents_Timebase | undefined,
/** Other events associated with the leader described in the timebase. */
followers?: FollowerEvent[] | undefined,
/**
 * If set, the profiler will sample userspace processes' callstacks at the
 * interval specified by the |timebase|.
 * If unset, the profiler will record only the event counts.
 */
callstackSampling?: PerfEventConfig_CallstackSampling | undefined,
/**
 * List of cpu indices for counting. If empty, the default is all cpus.
 * 
 * Note: this is not inside |callstack_sampling.scope| as it also applies to
 * counter-only traces. A future change will likely reorganise the options,
 * but this field will continue to be supported.
 * 
 * Available since: perfetto v50.
 */
targetCpu?: number[] | undefined,
/** Allow failure of perf_event_open */
ignoreOpenFailure?: boolean | undefined,
/** If not empty, consider only CPUs whose CPUID matches one of these values. */
cpuid?: string[] | undefined,
/**
 * How often the per-cpu ring buffers are read by the producer.
 * If unset, an implementation-defined default is used.
 */
ringBufferReadPeriodMs?: number | undefined,
/**
 * Size (in 4k pages) of each per-cpu ring buffer that is filled by the
 * kernel. If set, must be a power of two.
 * If unset, an implementation-defined default is used.
 */
ringBufferPages?: number | undefined,
/**
 * Drop samples if the heap memory held by the samples in the unwinder queue
 * is above the given limit. This counts the memory across all concurrent data
 * sources (not just this one's), and there is no fairness guarantee - the
 * whole quota might be used up by a concurrent source.
 */
maxEnqueuedFootprintKb?: number | undefined,
/**
 * Stop the data source if traced_perf's combined {RssAnon + Swap} memory
 * footprint exceeds this value.
 */
maxDaemonMemoryKb?: number | undefined,
/**
 * Timeout for the remote /proc/<pid>/{maps,mem} file descriptors for a
 * sampled process. This is primarily for Android, where this lookup is
 * asynchronous. As long as the producer is waiting, the associated samples
 * will be kept enqueued (putting pressure on the capacity of the shared
 * unwinding queue). Once a lookup for a process expires, all associated
 * samples are discarded. However, if the lookup still succeeds after the
 * timeout, future samples will be handled normally.
 * If unset, an implementation-defined default is used.
 */
remoteDescriptorTimeoutMs?: number | undefined,
/**
 * Optional period for clearing state cached by the userspace unwinder. This
 * is a heavy operation that is only necessary for traces that target a wide
 * set of processes, and require the memory footprint to be reset
 * periodically. To effectively disable the cache clearing, set to a value
 * greater than your trace duration.
 * 
 * Relevant only if |callstack_sampling.user_frames| is set to UNWIND_DWARF.
 * 
 * If zero or unset:
 * * before perfetto v52: no cache clearing.
 * * perfetto v52+: implementation chooses an infrequent default.
 */
unwindStateClearPeriodMs?: number | undefined,
/**
 * If set, only profile target if it was installed by a package with one of
 * these names. Special values:
 * * "@system": installed on the system partition
 * * "@product": installed on the product partition
 * * "@null": sideloaded
 * Supported on Android 12+.
 */
targetInstalledBy?: string[] | undefined,
/**
 * Note: legacy configs had to set |all_cpus| to true to pass parsing.
 * We rely on this to detect such configs.
 */
allCpus?: boolean | undefined,
samplingFrequency?: number | undefined,
kernelFrames?: boolean | undefined,
targetPid?: number[] | undefined,
targetCmdline?: string[] | undefined,
excludePid?: number[] | undefined,
excludeCmdline?: string[] | undefined,
additionalCmdlineCount?: number | undefined,
}

/** Userspace unwinding mode. */
export enum PerfEventConfig_UnwindMode {
UNWIND_UNKNOWN = 0,
/** UNWIND_SKIP - Do not unwind userspace: */
UNWIND_SKIP = 1,
/** UNWIND_DWARF - Use libunwindstack (default): */
UNWIND_DWARF = 2,
/** UNWIND_FRAME_POINTER - Use userspace frame pointer unwinder: */
UNWIND_FRAME_POINTER = 3,
/**
 * UNWIND_KERNEL_FRAME_POINTER - Ask the kernel to unwind the userspace stack via frame pointers, using
 * PERF_SAMPLE_CALLCHAIN. The user stack bytes are not copied into the
 * sample, which avoids the per-sample copy cost and the depth limit
 * imposed by PERF_SAMPLE_STACK_USER. Requires that the userspace code
 * (including system libraries) is built with frame pointers - the kernel
 * walks the chain and returns instruction addresses, which still need to
 * be symbolized offline using the recorded process mappings.
 */
UNWIND_KERNEL_FRAME_POINTER = 4,
UNRECOGNIZED = -1,
}

export function perfEventConfig_UnwindModeFromJSON(object: any): PerfEventConfig_UnwindMode {
switch (object) {
case 0:
      case "UNWIND_UNKNOWN":
        return PerfEventConfig_UnwindMode.UNWIND_UNKNOWN;
case 1:
      case "UNWIND_SKIP":
        return PerfEventConfig_UnwindMode.UNWIND_SKIP;
case 2:
      case "UNWIND_DWARF":
        return PerfEventConfig_UnwindMode.UNWIND_DWARF;
case 3:
      case "UNWIND_FRAME_POINTER":
        return PerfEventConfig_UnwindMode.UNWIND_FRAME_POINTER;
case 4:
      case "UNWIND_KERNEL_FRAME_POINTER":
        return PerfEventConfig_UnwindMode.UNWIND_KERNEL_FRAME_POINTER;
case -1:
        case "UNRECOGNIZED":
        default:
          return PerfEventConfig_UnwindMode.UNRECOGNIZED;
}
}

export function perfEventConfig_UnwindModeToJSON(object: PerfEventConfig_UnwindMode): string {
switch (object) {
case PerfEventConfig_UnwindMode.UNWIND_UNKNOWN: return "UNWIND_UNKNOWN";
case PerfEventConfig_UnwindMode.UNWIND_SKIP: return "UNWIND_SKIP";
case PerfEventConfig_UnwindMode.UNWIND_DWARF: return "UNWIND_DWARF";
case PerfEventConfig_UnwindMode.UNWIND_FRAME_POINTER: return "UNWIND_FRAME_POINTER";
case PerfEventConfig_UnwindMode.UNWIND_KERNEL_FRAME_POINTER: return "UNWIND_KERNEL_FRAME_POINTER";
case PerfEventConfig_UnwindMode.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export interface PerfEventConfig_CallstackSampling {
/**
 * Defines a set of processes for which samples are retained/skipped. If
 * unset, all samples are kept, but beware that it will be very heavy on the
 * stack unwinder, which might start dropping samples due to overload.
 */
scope?: PerfEventConfig_Scope | undefined,
/**
 * If true, callstacks will include the kernel-space frames. Such frames can
 * be identified by a magical "kernel" string as their mapping name.
 * Requires traced_perf to be running as root, or kptr_restrict to have been
 * manually unrestricted. On Android, the platform should do the right thing
 * on debug builds.
 * This does *not* disclose KASLR, as only the function names are emitted.
 */
kernelFrames?: boolean | undefined,
/**
 * Whether to record and unwind userspace callstacks. If unset, defaults to
 * including userspace (UNWIND_DWARF) both for backwards compatibility and
 * as the most common default (this defaulting is only applicable if the
 * outer CallstackSampling message is explicitly set).
 */
userFrames?: PerfEventConfig_UnwindMode | undefined,
}

export interface PerfEventConfig_Scope {
/**
 * Process ID (TGID) allowlist. If this list is not empty, only matching
 * samples will be retained. If multiple allow/deny-lists are
 * specified by the config, then all of them are evaluated for each sampled
 * process.
 */
targetPid?: number[] | undefined,
/**
 * Command line allowlist, matched against the /proc/<pid>/cmdline (not the
 * comm string). The semantics of this field were changed since its original
 * introduction.
 * 
 * On Android T+ (13+), this field can specify a single wildcard (*), and
 * the profiler will attempt to match it in two possible ways:
 * * if the pattern starts with a '/', then it is matched against the first
 *   segment of the cmdline (i.e. argv0). For example "/bin/e*" would match
 *   "/bin/echo".
 * * otherwise the pattern is matched against the part of argv0
 *   corresponding to the binary name (this is unrelated to /proc/pid/exe).
 *   For example "echo" would match "/bin/echo".
 * 
 * On Android S (12) and below, both this pattern and /proc/pid/cmdline get
 * normalized prior to an exact string comparison. Normalization is as
 * follows: (1) trim everything beyond the first null or "@" byte; (2) if
 * the string contains forward slashes, trim everything up to and including
 * the last one.
 * 
 * Implementation note: in either case, at most 511 characters of cmdline
 * are considered.
 */
targetCmdline?: string[] | undefined,
/** List of excluded pids. */
excludePid?: number[] | undefined,
/**
 * List of excluded cmdlines. See description of |target_cmdline| for how
 * this is handled.
 */
excludeCmdline?: string[] | undefined,
/**
 * Number of additional command lines to sample. Only those which are
 * neither explicitly included nor excluded will be considered. Processes
 * are accepted on a first come, first served basis.
 */
additionalCmdlineCount?: number | undefined,
/**
 * If set to N, all encountered processes will be put into one of the N
 * possible bins, and only one randomly-chosen bin will be selected for
 * unwinding. The binning is simply "pid % N", under the assumption that
 * low-order bits of pids are roughly uniformly distributed. Other explicit
 * inclusions/exclusions in this |Scope| message are still respected.
 * 
 * The profiler will report the chosen shard in PerfSampleDefaults, and the
 * values will be queryable in trace processor under the "stats" table as
 * "perf_process_shard_count" and "perf_chosen_process_shard".
 * 
 * NB: all data sources in a config that set |process_shard_count| must set
 * it to the same value. The profiler will choose one bin for all those data
 * sources.
 */
processShardCount?: number | undefined,
}

export interface ProtoVmConfig {
memoryLimitKb?: number | undefined,
}

/**
 * QnxConfig is used with trace_qnx_probes build from
 * https://github.com/qnx-ports/perfetto
 */
export interface QnxConfig {
/** The number of buffers that tracelog will init for the QNX trace. */
qnxKernelBuffers?: number | undefined,
/** The number of kernel buffers that tracelog will init for the QNX trace. */
qnxKernelKbuffers?: number | undefined,
/**
 * Flag indicating whether the QNX kernel tracing should produce wide
 * events which contain additional data or fast events which are most
 * concise. In fast mode we lose the priority information
 */
qnxKernelWideEvents?: boolean | undefined,
/** The number of pages initialized by default the parser's page cache. */
qnxCachePages?: number | undefined,
/**
 * The max pages the page cache should allocate (must be at least as big)
 * as the qnx_cache_pages value. Using -1 will allow the cache to grow
 * unbounded. The cache will prefer to re-use existing pages so growth will
 * only happen when needed (when parser is not keeping up).
 */
qnxCacheMaxPages?: number | undefined,
/**
 * The initial size of the the buffer used to hold the trace header values
 * this dynamic buffer will grow as needed but reallocs can be avoided by
 * selecting an initial size large enough to hold all the initial header
 * data.
 */
qnxTraceBufferInitBytes?: number | undefined,
}

/**
 * This file is named 'statsd_tracing_config.proto' rather than
 * 'statsd_config.proto' (which would be more consistent with the other
 * config protos) so it doesn't show up and confuse folks looking for
 * the existing statsd_config.proto for configuring statsd itself.
 * Same for the config proto itself.
 */
export interface StatsdTracingConfig {
/** This is for the common case of the atom id being known in the enum AtomId. */
pushAtomId?: AtomId[] | undefined,
/**
 * Escape hatch for Atom IDs that are not yet in the AtomId enum
 * (e.g. non-upstream atoms that don't exist in AOSP).
 */
rawPushAtomId?: number[] | undefined,
pullConfig?: StatsdPullAtomConfig[] | undefined,
}

export interface StatsdPullAtomConfig {
pullAtomId?: AtomId[] | undefined,
rawPullAtomId?: number[] | undefined,
pullFrequencyMs?: number | undefined,
packages?: string[] | undefined,
}

/**
 * This file defines the configuration for the Linux /proc poller data source,
 * which injects counters in the trace.
 * Counters that are needed in the trace must be explicitly listed in the
 * *_counters fields. This is to avoid spamming the trace with all counters
 * at all times.
 * The sampling rate is configurable. All polling rates (*_period_ms) need
 * to be integer multiples of each other.
 * OK:     [10ms, 10ms, 10ms],  [10ms, 20ms, 10ms],  [10ms, 20ms, 60ms]
 * Not OK: [10ms, 10ms, 11ms],  [10ms, 15ms, 20ms]
 */
export interface SysStatsConfig {
/**
 * Polls /proc/meminfo every X ms, if non-zero.
 * This is required to be > 10ms to avoid excessive CPU usage.
 * Cost: 0.3 ms [read] + 0.07 ms [parse + trace injection]
 */
meminfoPeriodMs?: number | undefined,
/**
 * If empty all known counters are reported. Otherwise, only the counters
 * specified below are reported.
 */
meminfoCounters?: MeminfoCounters[] | undefined,
/**
 * Polls /proc/vmstat every X ms, if non-zero.
 * This is required to be > 10ms to avoid excessive CPU usage.
 * Cost: 0.2 ms [read] + 0.3 ms [parse + trace injection]
 */
vmstatPeriodMs?: number | undefined,
vmstatCounters?: VmstatCounters[] | undefined,
/**
 * Pols /proc/stat every X ms, if non-zero.
 * This is required to be > 10ms to avoid excessive CPU usage.
 * Cost: 4.1 ms [read] + 1.9 ms [parse + trace injection]
 */
statPeriodMs?: number | undefined,
statCounters?: SysStatsConfig_StatCounters[] | undefined,
/**
 * Polls /sys/devfreq/* /curfreq every X ms, if non-zero.
 * This is required to be > 10ms to avoid excessive CPU usage.
 * This option can be used to record unchanging values.
 * Updates from frequency changes can come from ftrace/set_clock_rate.
 */
devfreqPeriodMs?: number | undefined,
/**
 * Polls /sys/devices/system/cpu/cpu* /cpufreq/cpuinfo_cur_freq every X ms.
 * This is required to be > 10ms to avoid excessive CPU usage.
 */
cpufreqPeriodMs?: number | undefined,
/**
 * Polls /proc/buddyinfo every X ms, if non-zero.
 * This is required to be > 10ms to avoid excessive CPU usage.
 */
buddyinfoPeriodMs?: number | undefined,
/**
 * Polls /proc/diskstats every X ms, if non-zero.
 * This is required to be > 10ms to avoid excessive CPU usage.
 */
diskstatPeriodMs?: number | undefined,
/**
 * Polls /proc/pressure/* every X ms, if non-zero.
 * This is required to be > 10ms to avoid excessive CPU usage.
 */
psiPeriodMs?: number | undefined,
/**
 * Polls /sys/class/thermal/* every X ms, if non-zero.
 * This is required to be > 10ms to avoid excessive CPU usage.
 */
thermalPeriodMs?: number | undefined,
/**
 * Polls /sys/devices/system/cpu/cpu* /cpuidle/state* every X ms, if non-zero.
 * This is required to be > 10ms to avoid excessive CPU usage.
 */
cpuidlePeriodMs?: number | undefined,
/**
 * Polls device-specific GPU frequency info every X ms, if non-zero.
 * This is required to be > 10ms to avoid excessive CPU usage.
 */
gpufreqPeriodMs?: number | undefined,
/**
 * Polls /proc/slabinfo every X ms, if non-zero.
 * This is required to be > 10ms to avoid excessive CPU usage.
 */
slabPeriodMs?: number | undefined,
}

export enum SysStatsConfig_StatCounters {
STAT_UNSPECIFIED = 0,
STAT_CPU_TIMES = 1,
STAT_IRQ_COUNTS = 2,
STAT_SOFTIRQ_COUNTS = 3,
STAT_FORK_COUNT = 4,
UNRECOGNIZED = -1,
}

export function sysStatsConfig_StatCountersFromJSON(object: any): SysStatsConfig_StatCounters {
switch (object) {
case 0:
      case "STAT_UNSPECIFIED":
        return SysStatsConfig_StatCounters.STAT_UNSPECIFIED;
case 1:
      case "STAT_CPU_TIMES":
        return SysStatsConfig_StatCounters.STAT_CPU_TIMES;
case 2:
      case "STAT_IRQ_COUNTS":
        return SysStatsConfig_StatCounters.STAT_IRQ_COUNTS;
case 3:
      case "STAT_SOFTIRQ_COUNTS":
        return SysStatsConfig_StatCounters.STAT_SOFTIRQ_COUNTS;
case 4:
      case "STAT_FORK_COUNT":
        return SysStatsConfig_StatCounters.STAT_FORK_COUNT;
case -1:
        case "UNRECOGNIZED":
        default:
          return SysStatsConfig_StatCounters.UNRECOGNIZED;
}
}

export function sysStatsConfig_StatCountersToJSON(object: SysStatsConfig_StatCounters): string {
switch (object) {
case SysStatsConfig_StatCounters.STAT_UNSPECIFIED: return "STAT_UNSPECIFIED";
case SysStatsConfig_StatCounters.STAT_CPU_TIMES: return "STAT_CPU_TIMES";
case SysStatsConfig_StatCounters.STAT_IRQ_COUNTS: return "STAT_IRQ_COUNTS";
case SysStatsConfig_StatCounters.STAT_SOFTIRQ_COUNTS: return "STAT_SOFTIRQ_COUNTS";
case SysStatsConfig_StatCounters.STAT_FORK_COUNT: return "STAT_FORK_COUNT";
case SysStatsConfig_StatCounters.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * This data-source does a one-off recording of system information when
 * the trace starts.
 * Currently this includes:
 * - Values of
 * /sys/devices/system/cpu/cpu* /cpufreq/scaling_available_frequencies This
 * datasource has no configuration options at present.
 */
export interface SystemInfoConfig {
/**
 * If true, records hardware interrupt ID-to-name mappings from
 * /proc/interrupts.
 */
irqNames?: boolean | undefined,
}

/** The configuration for a fake producer used in tests. */
export interface TestConfig {
/** The number of messages the fake producer should send. */
messageCount?: number | undefined,
/**
 * The maximum number of messages which should be sent each second.
 * The actual obserced speed may be lower if the producer is unable to
 * work fast enough.
 * If this is zero or unset, the producer will send as fast as possible.
 */
maxMessagesPerSecond?: number | undefined,
/**
 * The seed value for a simple multiplicative congruential pseudo-random
 * number sequence.
 */
seed?: number | undefined,
/**
 * The size of each message in bytes. Should be greater than or equal 5 to
 * account for the number of bytes needed to encode the random number and a
 * null byte for the string.
 */
messageSize?: number | undefined,
/**
 * Whether the producer should send a event batch when the data source is
 * is initially registered.
 */
sendBatchOnRegister?: boolean | undefined,
dummyFields?: TestConfig_DummyFields | undefined,
}

export interface TestConfig_DummyFields {
fieldUint32?: number | undefined,
fieldInt32?: number | undefined,
fieldUint64?: number | undefined,
fieldInt64?: number | undefined,
fieldFixed64?: number | undefined,
fieldSfixed64?: number | undefined,
fieldFixed32?: number | undefined,
fieldSfixed32?: number | undefined,
fieldDouble?: number | undefined,
fieldFloat?: number | undefined,
fieldSint64?: number | undefined,
fieldSint32?: number | undefined,
fieldString?: string | undefined,
fieldBytes?: Uint8Array | undefined,
}

/**
 * The following fields define the set of enabled trace categories. Each list
 * item is a glob.
 * 
 * To determine if category is enabled, it is checked against the filters in
 * the following order:
 * 
 *   1. Exact matches in enabled categories.
 *   2. Exact matches in enabled tags.
 *   3. Exact matches in disabled categories.
 *   4. Exact matches in disabled tags.
 *   5. Pattern matches in enabled categories.
 *   6. Pattern matches in enabled tags.
 *   7. Pattern matches in disabled categories.
 *   8. Pattern matches in disabled tags.
 * 
 * If none of the steps produced a match:
 *  - In the C++ SDK (`perfetto::Category`), categories are enabled by
 *  default.
 *  - In the C SDK (`PerfettoTeCategory`), categories are disabled by default.
 * 
 * Examples:
 * 
 *  - To enable all non-slow/debug categories:
 * 
 *       enabled_categories: "*"
 * 
 *  - To enable specific categories:
 * 
 *       disabled_categories: "*"
 *       enabled_categories: "my_category"
 *       enabled_categories: "my_category2"
 * 
 *  - To enable only categories with a specific tag:
 * 
 *       disabled_tags: "*"
 *       enabled_tags: "my_tag"
 */
export interface TrackEventConfig {
/** Default: [] */
disabledCategories?: string[] | undefined,
/** Default: [] */
enabledCategories?: string[] | undefined,
/** Default: ["slow", "debug"] */
disabledTags?: string[] | undefined,
/** Default: [] */
enabledTags?: string[] | undefined,
/** Default: false (i.e. enabled by default) */
disableIncrementalTimestamps?: boolean | undefined,
/**
 * Allows to specify a custom unit different than the default (ns).
 * Also affects thread timestamps if enable_thread_time_sampling = true.
 * A multiplier of 1000 means that a timestamp = 3 should be interpreted as
 * 3000 ns = 3 us.
 * Default: 1 (if unset, it should be read as 1).
 */
timestampUnitMultiplier?: number | undefined,
/**
 * Default: false (i.e. debug_annotations is NOT filtered out by default)
 * When true, any debug annotations provided as arguments to the
 * TRACE_EVENT macros are not written into the trace. Typed arguments will
 * still be emitted even if set to true.
 */
filterDebugAnnotations?: boolean | undefined,
/**
 * Default: false (i.e. disabled)
 * When true, the SDK samples and emits the current thread time counter value
 * for each event on the current thread's track. This value represents the
 * total CPU time consumed by that thread since its creation.
 * Learn more: "CLOCK_THREAD_CPUTIME_ID" flag at
 * https://man7.org/linux/man-pages/man3/clock_gettime.3.html
 */
enableThreadTimeSampling?: boolean | undefined,
/**
 * When enable_thread_time_sampling is true, and this is specified, thread
 * time is sampled only if the elapsed wall time >
 * `thread_time_subsampling_ns`. Otherwise, thread time is considered nil.
 * Effectively, this means thread time will have a leeway of
 * `thread_time_subsampling_ns` and won't be emitted for shorter events.
 */
threadTimeSubsamplingNs?: number | undefined,
/**
 * Default: false (i.e. dynamic event names are NOT filtered out by default)
 * When true, event_names wrapped in perfetto::DynamicString will be filtered
 * out.
 */
filterDynamicEventNames?: boolean | undefined,
}

/**
 * The configuration that is passed to each data source when starting tracing.
 * Next id: 143
 */
export interface DataSourceConfig {
/**
 * Data source unique name, e.g., "linux.ftrace". This must match
 * the name passed by the data source when it registers (see
 * RegisterDataSource()).
 */
name?: string | undefined,
/**
 * The index of the logging buffer where TracePacket(s) will be stored.
 * This field is quite subtle as it has a double semantic:
 * 1) When the config is passed, this field is a 0-based index relative to the
 *    buffer array in the TraceConfig and defines the mapping between data
 *    sources and config. From v54 this is optional because the user can
 *    instead use target_buffer_name.
 * 2) When the TracingService issues a SetupDataSource/StartDataSource to the
 *    producer, it overwrites this field with the global buffer index (which
 *    depends on other tracing sessions active). This tells the producer which
 *    buffer id should be passed to CreateTraceWriter. In this case, the trace
 *    service always sets the resolved global id, even when using
 *    `target_buffer_name`.
 * In hindsight we should have used two different fields given even in v0 they
 * had a different semantic. But now it's too late as this would be a major
 * protocol breaking change.
 */
targetBuffer?: number | undefined,
/**
 * Alternative to |target_buffer|. References a buffer by name (as specified
 * in TraceConfig.BufferConfig.name) rather than by index. This is more
 * readable and less error-prone than using buffer indices.
 * If both |target_buffer| and |target_buffer_name| are specified, they must
 * refer to the same buffer, otherwise the service will reject the config.
 * Using both fields allows configs to work with both old and new versions
 * of the tracing service. Introduced in v54.
 */
targetBufferName?: string | undefined,
/**
 * Set by the service to indicate the duration of the trace.
 * DO NOT SET in consumer as this will be overridden by the service.
 */
traceDurationMs?: number | undefined,
/**
 * If true, |trace_duration_ms| should count also time in suspend. This
 * is propagated from TraceConfig.prefer_suspend_clock_for_duration.
 */
preferSuspendClockForDuration?: boolean | undefined,
/**
 * Set by the service to indicate how long it waits after StopDataSource.
 * DO NOT SET in consumer as this will be overridden by the service.
 */
stopTimeoutMs?: number | undefined,
/**
 * Set by the service to indicate whether this tracing session has extra
 * guardrails.
 * DO NOT SET in consumer as this will be overridden by the service.
 */
enableExtraGuardrails?: boolean | undefined,
/**
 * Set by the service to indicate which user initiated this trace.
 * DO NOT SET in consumer as this will be overridden by the service.
 */
sessionInitiator?: DataSourceConfig_SessionInitiator | undefined,
/**
 * Set by the service to indicate which tracing session the data source
 * belongs to. The intended use case for this is checking if two data sources,
 * one of which produces metadata for the other one, belong to the same trace
 * session and hence should be linked together.
 * This field was introduced in Aug 2018 after Android P.
 * DO NOT SET in consumer as this will be overridden by the service.
 */
tracingSessionId?: number | undefined,
/**
 * How to behave when the producer runs out of space in the shared memory
 * buffer. This is only honored by some data sources (in the SDK, the data
 * sources registered with a configurable buffer exhausted policy).
 */
bufferExhaustedPolicy?: DataSourceConfig_BufferExhaustedPolicy | undefined,
priorityBoost?: PriorityBoostConfig | undefined,
/**
 * TODO(primiano): today when we enable a protovm_config, we actually accept
 * that if N producers advertise M different versions of the same program we
 * will create M instances of that program.
 * To overcome this, we could move the program to the TraceConfig. But doing
 * so would bloat the trace config size too big and create problems to statsd.
 * Once the config store (b/482305876) exists we should move protovm programs
 * onto that.
 */
protovmConfig?: ProtoVmConfig | undefined,
/** Data source name: linux.ftrace */
ftraceConfig?: FtraceConfig | undefined,
/** Data source name: linux.inode_file_map */
inodeFileConfig?: InodeFileConfig | undefined,
/** Data source name: linux.process_stats */
processStatsConfig?: ProcessStatsConfig | undefined,
/** Data source name: linux.sys_stats */
sysStatsConfig?: SysStatsConfig | undefined,
/**
 * Data source name: android.heapprofd
 * Introduced in Android 10.
 */
heapprofdConfig?: HeapprofdConfig | undefined,
/**
 * Data source name: android.java_hprof
 * Introduced in Android 11.
 */
javaHprofConfig?: JavaHprofConfig | undefined,
/** Data source name: android.power */
androidPowerConfig?: AndroidPowerConfig | undefined,
/** Data source name: android.log */
androidLogConfig?: AndroidLogConfig | undefined,
/** Data source name: gpu.counters */
gpuCounterConfig?: GpuCounterConfig | undefined,
/** Data source name: android.game_interventions */
androidGameInterventionListConfig?: AndroidGameInterventionListConfig | undefined,
/** Data source name: android.packages_list */
packagesListConfig?: PackagesListConfig | undefined,
/** Data source name: linux.perf */
perfEventConfig?: PerfEventConfig | undefined,
/** Data source name: vulkan.memory_tracker */
vulkanMemoryConfig?: VulkanMemoryConfig | undefined,
/** Data source name: track_event */
trackEventConfig?: TrackEventConfig | undefined,
/** Data source name: android.polled_state */
androidPolledStateConfig?: AndroidPolledStateConfig | undefined,
/** Data source name: android.system_property */
androidSystemPropertyConfig?: AndroidSystemPropertyConfig | undefined,
/** Data source name: android.statsd */
statsdTracingConfig?: StatsdTracingConfig | undefined,
/** Data source name: linux.system_info */
systemInfoConfig?: SystemInfoConfig | undefined,
/** Data source name: linux.frozen_ftrace */
frozenFtraceConfig?: FrozenFtraceConfig | undefined,
/**
 * Chrome is special as it doesn't use the perfetto IPC layer. We want to
 * avoid proto serialization and de-serialization there because that would
 * just add extra hops on top of the Mojo ser/des. Instead we auto-generate a
 * C++ class for it so it can pass around plain C++ objets.
 */
chromeConfig?: ChromeConfig | undefined,
/** Data source name: code.v8.dev */
v8Config?: V8Config | undefined,
/**
 * If an interceptor is specified here, packets for this data source will be
 * rerouted to the interceptor instead of the main trace buffer. This can be
 * used, for example, to write trace data into ETW or for logging trace points
 * to the console.
 * 
 * Note that interceptors are only supported by data sources registered
 * through the Perfetto SDK API. Data sources that don't use that API (e.g.,
 * traced_probes) may not support interception.
 */
interceptorConfig?: InterceptorConfig | undefined,
/**
 * Data source name: android.network_packets.
 * Introduced in Android 14 (U).
 */
networkPacketTraceConfig?: NetworkPacketTraceConfig | undefined,
/** Data source name: android.surfaceflinger.layers */
surfaceflingerLayersConfig?: SurfaceFlingerLayersConfig | undefined,
/** Data source name: android.surfaceflinger.transactions */
surfaceflingerTransactionsConfig?: SurfaceFlingerTransactionsConfig | undefined,
/**
 * Data source name: android.sdk_sysprop_guard
 * Introduced in Android 14 (U) QPR1.
 */
androidSdkSyspropGuardConfig?: AndroidSdkSyspropGuardConfig | undefined,
/** Data source name: windows.etw */
etwConfig?: EtwConfig | undefined,
/** Data source name: android.protolog */
protologConfig?: ProtoLogConfig | undefined,
/** Data source name: android.input.inputevent */
androidInputEventConfig?: AndroidInputEventConfig | undefined,
/** Data source name: android.pixel.modem */
pixelModemConfig?: PixelModemConfig | undefined,
/** Data source name: android.windowmanager */
windowmanagerConfig?: WindowManagerConfig | undefined,
/** Data source name: org.chromium.system_metrics */
chromiumSystemMetrics?: ChromiumSystemMetricsConfig | undefined,
/** Data source name: android.kernel_wakelocks */
kernelWakelocksConfig?: KernelWakelocksConfig | undefined,
/** Data source name: gpu.renderstages */
gpuRenderstagesConfig?: GpuRenderStagesConfig | undefined,
/** Data source name: org.chromium.histogram_samples */
chromiumHistogramSamples?: ChromiumHistogramSamplesConfig | undefined,
/** Data source name: android.app_wakelocks */
appWakelocksConfig?: AppWakelocksConfig | undefined,
/** Data source name: android.cpu_per_uid */
cpuPerUidConfig?: CpuPerUidConfig | undefined,
/** Data source name: android.user_list */
userListConfig?: AndroidUserListConfig | undefined,
/** Data source name: android.inputmethod */
inputmethodConfig?: InputMethodConfig | undefined,
/** Data source name: android.aflags */
androidAflagsConfig?: AndroidAflagsConfig | undefined,
/** Data source name: linux.systemd_journald */
journaldConfig?: SystemdJournaldConfig | undefined,
/** Data source name: android.display.video */
displayVideoConfig?: DisplayVideoConfig | undefined,
/** Data source name: qnx.kernel */
qnxConfig?: QnxConfig | undefined,
/**
 * This is a fallback mechanism to send a free-form text config to the
 * producer. In theory this should never be needed. All the code that
 * is part of the platform (i.e. traced service) is supposed to *not* truncate
 * the trace config proto and propagate unknown fields. However, if anything
 * in the pipeline (client or backend) ends up breaking this forward compat
 * plan, this field will become the escape hatch to allow future data sources
 * to get some meaningful configuration.
 */
legacyConfig?: string | undefined,
/** This field is only used for testing. */
forTesting?: TestConfig | undefined,
}

export enum DataSourceConfig_SessionInitiator {
SESSION_INITIATOR_UNSPECIFIED = 0,
/**
 * SESSION_INITIATOR_TRUSTED_SYSTEM - This trace was initiated from a trusted system app has DUMP and
 * USAGE_STATS permission. This system app is expected to not expose the
 * trace to the user of the device.
 * This is determined by checking the UID initiating the trace.
 */
SESSION_INITIATOR_TRUSTED_SYSTEM = 1,
UNRECOGNIZED = -1,
}

export function dataSourceConfig_SessionInitiatorFromJSON(object: any): DataSourceConfig_SessionInitiator {
switch (object) {
case 0:
      case "SESSION_INITIATOR_UNSPECIFIED":
        return DataSourceConfig_SessionInitiator.SESSION_INITIATOR_UNSPECIFIED;
case 1:
      case "SESSION_INITIATOR_TRUSTED_SYSTEM":
        return DataSourceConfig_SessionInitiator.SESSION_INITIATOR_TRUSTED_SYSTEM;
case -1:
        case "UNRECOGNIZED":
        default:
          return DataSourceConfig_SessionInitiator.UNRECOGNIZED;
}
}

export function dataSourceConfig_SessionInitiatorToJSON(object: DataSourceConfig_SessionInitiator): string {
switch (object) {
case DataSourceConfig_SessionInitiator.SESSION_INITIATOR_UNSPECIFIED: return "SESSION_INITIATOR_UNSPECIFIED";
case DataSourceConfig_SessionInitiator.SESSION_INITIATOR_TRUSTED_SYSTEM: return "SESSION_INITIATOR_TRUSTED_SYSTEM";
case DataSourceConfig_SessionInitiator.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export enum DataSourceConfig_BufferExhaustedPolicy {
/**
 * BUFFER_EXHAUSTED_UNSPECIFIED - The data source will use its default buffer exhausted policy, specified
 * by the code when the data source is registered.
 */
BUFFER_EXHAUSTED_UNSPECIFIED = 0,
/**
 * BUFFER_EXHAUSTED_DROP - The data source will drop packets when there's no space in the shared
 * memory buffer.
 */
BUFFER_EXHAUSTED_DROP = 1,
/**
 * BUFFER_EXHAUSTED_STALL_THEN_ABORT - The data source will wait when there's no space in the shared memory
 * buffer. If there's still not space, after a few seconds, the whole
 * producer process will be aborted.
 */
BUFFER_EXHAUSTED_STALL_THEN_ABORT = 2,
/**
 * BUFFER_EXHAUSTED_STALL_THEN_DROP - The data source will wait when there's no space in the shared memory
 * buffer.  If there's still not space, after a few seconds, the data source
 * will drop packets.
 */
BUFFER_EXHAUSTED_STALL_THEN_DROP = 3,
UNRECOGNIZED = -1,
}

export function dataSourceConfig_BufferExhaustedPolicyFromJSON(object: any): DataSourceConfig_BufferExhaustedPolicy {
switch (object) {
case 0:
      case "BUFFER_EXHAUSTED_UNSPECIFIED":
        return DataSourceConfig_BufferExhaustedPolicy.BUFFER_EXHAUSTED_UNSPECIFIED;
case 1:
      case "BUFFER_EXHAUSTED_DROP":
        return DataSourceConfig_BufferExhaustedPolicy.BUFFER_EXHAUSTED_DROP;
case 2:
      case "BUFFER_EXHAUSTED_STALL_THEN_ABORT":
        return DataSourceConfig_BufferExhaustedPolicy.BUFFER_EXHAUSTED_STALL_THEN_ABORT;
case 3:
      case "BUFFER_EXHAUSTED_STALL_THEN_DROP":
        return DataSourceConfig_BufferExhaustedPolicy.BUFFER_EXHAUSTED_STALL_THEN_DROP;
case -1:
        case "UNRECOGNIZED":
        default:
          return DataSourceConfig_BufferExhaustedPolicy.UNRECOGNIZED;
}
}

export function dataSourceConfig_BufferExhaustedPolicyToJSON(object: DataSourceConfig_BufferExhaustedPolicy): string {
switch (object) {
case DataSourceConfig_BufferExhaustedPolicy.BUFFER_EXHAUSTED_UNSPECIFIED: return "BUFFER_EXHAUSTED_UNSPECIFIED";
case DataSourceConfig_BufferExhaustedPolicy.BUFFER_EXHAUSTED_DROP: return "BUFFER_EXHAUSTED_DROP";
case DataSourceConfig_BufferExhaustedPolicy.BUFFER_EXHAUSTED_STALL_THEN_ABORT: return "BUFFER_EXHAUSTED_STALL_THEN_ABORT";
case DataSourceConfig_BufferExhaustedPolicy.BUFFER_EXHAUSTED_STALL_THEN_DROP: return "BUFFER_EXHAUSTED_STALL_THEN_DROP";
case DataSourceConfig_BufferExhaustedPolicy.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * The overall config that is used when starting a new tracing session through
 * ProducerPort::StartTracing().
 * It contains the general config for the logging buffer(s) and the configs for
 * all the data source being enabled.
 * 
 * Next id: 47.
 */
export interface TraceConfig {
buffers?: TraceConfig_BufferConfig[] | undefined,
dataSources?: TraceConfig_DataSource[] | undefined,
builtinDataSources?: TraceConfig_BuiltinDataSource | undefined,
/**
 * If specified, the trace will be stopped |duration_ms| after starting.
 * This does *not* count the time the system is suspended, so we will run
 * for duration_ms of system activity, not wall time.
 * 
 * However in case of traces with triggers, see
 * TriggerConfig.trigger_timeout_ms instead.
 */
durationMs?: number | undefined,
/**
 * If true, tries to use CLOCK_BOOTTIME for duration_ms rather than
 * CLOCK_MONOTONIC (which doesn't count time in suspend). Supported only on
 * Linux/Android, no-op on other platforms. This is used when dealing with
 * long (e.g. 24h) traces, where suspend can inflate them to weeks of
 * wall-time, making them more likely to hit device reboots (and hence loss).
 * This option also changes consistently the semantic of
 * TriggerConfig.stop_delay_ms.
 */
preferSuspendClockForDuration?: boolean | undefined,
/**
 * This is set when --dropbox is passed to the Perfetto command line client
 * and enables guardrails that limit resource usage for traces requested
 * by statsd.
 */
enableExtraGuardrails?: boolean | undefined,
/**
 * Reject producers that are not running under the same UID as the tracing
 * service.
 */
lockdownMode?: TraceConfig_LockdownModeOperation | undefined,
producers?: TraceConfig_ProducerConfig[] | undefined,
/** Statsd-specific metadata. */
statsdMetadata?: TraceConfig_StatsdMetadata | undefined,
/**
 * When true && |output_path| is empty, the EnableTracing() request must
 * provide a file descriptor. The service will then periodically read packets
 * out of the trace buffer and store it into the passed file.
 * If |output_path| is not empty no fd should be passed, the service
 * will create a new file and write into that (see comment below).
 */
writeIntoFile?: boolean | undefined,
/**
 * This must point to a non-existing file. If the file exists the service
 * will NOT overwrite and will fail instead as a security precaution.
 * On Android, when this is used with the system traced, the path must be
 * within /data/misc/perfetto-traces/ or the trace will fail.
 * This option has been introduced in Android R. Before R write_into_file
 * can be used only with the "pass a file descriptor over IPC" mode.
 */
outputPath?: string | undefined,
/**
 * Optional. If non-zero tunes the write period. A min value of 100ms is
 * enforced (i.e. smaller values are ignored).
 */
fileWritePeriodMs?: number | undefined,
/**
 * Optional. When non zero the periodic write stops once at most X bytes
 * have been written into the file. Tracing is disabled when this limit is
 * reached, even if |duration_ms| has not been reached yet.
 */
maxFileSizeBytes?: number | undefined,
guardrailOverrides?: TraceConfig_GuardrailOverrides | undefined,
/**
 * When true, data sources are not started until an explicit call to
 * StartTracing() on the consumer port. This is to support early
 * initialization and fast trace triggering. This can be used only when the
 * Consumer explicitly triggers the StartTracing() method.
 * This should not be used in a remote trace config via statsd, doing so will
 * result in a hung trace session.
 */
deferredStart?: boolean | undefined,
/**
 * When set, it periodically issues a Flush() to all data source, forcing them
 * to commit their data into the tracing service. This can be used for
 * quasi-real-time streaming mode and to guarantee some partial ordering of
 * events in the trace in windows of X ms.
 * 
 * Warning: Perfetto automatically handles periodic flushing so in most
 * scenarios setting this field is not needed. High frequency flushing can
 * significantly impact performance.
 */
flushPeriodMs?: number | undefined,
/**
 * Wait for this long for producers to acknowledge flush requests.
 * Default 5s.
 */
flushTimeoutMs?: number | undefined,
/**
 * Wait for this long for producers to acknowledge stop requests.
 * Default 5s.
 */
dataSourceStopTimeoutMs?: number | undefined,
/**
 * Android-only. If set, sends an intent to the Traceur system app when the
 * trace ends to notify it about the trace readiness.
 */
notifyTraceur?: boolean | undefined,
/**
 * This field was introduced in Android S.
 * Android-only. If set to a value > 0, marks the trace session as a candidate
 * for being attached to a bugreport. This field effectively acts as a z-index
 * for bugreports. When Android's dumpstate runs perfetto
 * --save-for-bugreport, traced will pick the tracing session with the highest
 * score (score <= 0 is ignored) and:
 * On Android S, T:  will steal its contents, save the trace into
 *     a known path and stop prematurely.
 * On Android U+: will create a read-only snapshot and save that into a known
 *     path, without stoppin the original tracing session.
 * When this field is set the tracing session becomes eligible to be cloned
 * by other UIDs.
 */
bugreportScore?: number | undefined,
/**
 * When set, defines name of the file that will be saved under
 * /data/misc/perfetto-traces/bugreport/ when using --save-all-for-bugreport.
 * If omitted, traces will be named systrace.pftrace, systrace_1.pftrace, etc,
 * starting from the highest `bugreport_score`.
 * Introduced in v42 / Android V.
 */
bugreportFilename?: string | undefined,
triggerConfig?: TraceConfig_TriggerConfig | undefined,
/**
 * When this is non-empty the perfetto command line tool will ignore the rest
 * of this TraceConfig and instead connect to the perfetto service as a
 * producer and send these triggers, potentially stopping or starting traces
 * that were previous configured to use a TriggerConfig.
 */
activateTriggers?: string[] | undefined,
incrementalStateConfig?: TraceConfig_IncrementalStateConfig | undefined,
/**
 * No longer needed as we unconditionally allow tracing on user builds.
 * 
 * @deprecated
 */
allowUserBuildTracing?: boolean | undefined,
/**
 * If set the tracing service will ensure there is at most one tracing session
 * with this key.
 */
uniqueSessionName?: string | undefined,
compressionType?: TraceConfig_CompressionType | undefined,
incidentReportConfig?: TraceConfig_IncidentReportConfig | undefined,
/**
 * Android-only. Not for general use. If specified, sets the logging to statsd
 * of guardrails and checkpoints in the tracing service. perfetto_cmd sets
 * this to enabled (if not explicitly set in the config) when specifying
 * --upload.
 */
statsdLogging?: TraceConfig_StatsdLogging | undefined,
/**
 * An identifier clients can use to tie this trace to other logging.
 * DEPRECATED as per v32. See TracePacket.trace_uuid for the authoritative
 * Trace UUID. If this field is set, the tracing service will respect the
 * requested UUID (i.e. TracePacket.trace_uuid == this field) but only if
 * gap-less snapshotting is not used.
 * 
 * @deprecated
 */
traceUuidMsb?: number | undefined,
/** @deprecated */
traceUuidLsb?: number | undefined,
traceFilter?: TraceConfig_TraceFilter | undefined,
androidReportConfig?: TraceConfig_AndroidReportConfig | undefined,
cmdTraceStartDelay?: TraceConfig_CmdTraceStartDelay | undefined,
sessionSemaphores?: TraceConfig_SessionSemaphore[] | undefined,
/**
 * Priority boost to be applied to the traced process, when the session is
 * running.
 */
priorityBoost?: PriorityBoostConfig | undefined,
/**
 * When set to a value > 0, this tracing session will be started in
 * "exclusive mode". This has the following semantics:
 * - It can only be set by shell or root users.
 * - A new exclusive session will only be started if its priority is strictly
 *   higher than any other active tracing session.
 * - If a new exclusive session is started, all other existing tracing
 *   sessions (exclusive or not) are aborted.
 * - While an exclusive session is active, any new non-exclusive session (or
 *   any exclusive session with a lower or equal priority) will be rejected.
 * 
 * Introduced in: perfetto v52.
 * Supported on: Android 25Q3+.
 */
exclusivePrio?: number | undefined,
/**
 * Configures how the service should handle flushing data from producers
 * before periodically writing the trace into the output file.
 * Only applicable when |write_into_file| is true.
 * 
 * By default, if |write_into_file| is set, the service periodically issues
 * a Flush() to all data sources before writing buffers into the file.
 * This ensures the file always contains the latest available data.
 * 
 * Introduced in: perfetto v54.
 * Supported on: Android 26Q1+.
 */
writeFlushMode?: TraceConfig_WriteFlushMode | undefined,
/**
 * Whether to sync the output file to storage after each periodic write pass.
 * Only applicable when |write_into_file| is true.
 * 
 * By default, no fflush is invoked. FFLUSH_ENABLED must be set to explicitly
 * sync to storage on every write.
 * 
 * Introduced in: perfetto v54.
 * Supported on: Android 26Q1+.
 */
fflushPostWrite?: TraceConfig_FFlushMode | undefined,
/**
 * When true, data sources in remote producers (machines connected via
 * traced_relay) will be matched by default. When false (the default), data
 * sources only match the host machine. In either case, an explicit
 * |DataSource.machine_name_filter| takes priority.
 * 
 * NB: perfetto versions before v54 do not have this option and match across
 * machines by default. To be compatible across this version boundary, either
 * set this field to true, or set an explicit machine_name_filter on all data
 * sources.
 * 
 * Introduced in: perfetto v54.
 */
traceAllMachines?: boolean | undefined,
notes?: TraceConfig_Note[] | undefined,
}

export enum TraceConfig_LockdownModeOperation {
LOCKDOWN_UNCHANGED = 0,
LOCKDOWN_CLEAR = 1,
LOCKDOWN_SET = 2,
UNRECOGNIZED = -1,
}

export function traceConfig_LockdownModeOperationFromJSON(object: any): TraceConfig_LockdownModeOperation {
switch (object) {
case 0:
      case "LOCKDOWN_UNCHANGED":
        return TraceConfig_LockdownModeOperation.LOCKDOWN_UNCHANGED;
case 1:
      case "LOCKDOWN_CLEAR":
        return TraceConfig_LockdownModeOperation.LOCKDOWN_CLEAR;
case 2:
      case "LOCKDOWN_SET":
        return TraceConfig_LockdownModeOperation.LOCKDOWN_SET;
case -1:
        case "UNRECOGNIZED":
        default:
          return TraceConfig_LockdownModeOperation.UNRECOGNIZED;
}
}

export function traceConfig_LockdownModeOperationToJSON(object: TraceConfig_LockdownModeOperation): string {
switch (object) {
case TraceConfig_LockdownModeOperation.LOCKDOWN_UNCHANGED: return "LOCKDOWN_UNCHANGED";
case TraceConfig_LockdownModeOperation.LOCKDOWN_CLEAR: return "LOCKDOWN_CLEAR";
case TraceConfig_LockdownModeOperation.LOCKDOWN_SET: return "LOCKDOWN_SET";
case TraceConfig_LockdownModeOperation.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/** Compress trace with the given method. Best effort. */
export enum TraceConfig_CompressionType {
COMPRESSION_TYPE_UNSPECIFIED = 0,
COMPRESSION_TYPE_DEFLATE = 1,
UNRECOGNIZED = -1,
}

export function traceConfig_CompressionTypeFromJSON(object: any): TraceConfig_CompressionType {
switch (object) {
case 0:
      case "COMPRESSION_TYPE_UNSPECIFIED":
        return TraceConfig_CompressionType.COMPRESSION_TYPE_UNSPECIFIED;
case 1:
      case "COMPRESSION_TYPE_DEFLATE":
        return TraceConfig_CompressionType.COMPRESSION_TYPE_DEFLATE;
case -1:
        case "UNRECOGNIZED":
        default:
          return TraceConfig_CompressionType.UNRECOGNIZED;
}
}

export function traceConfig_CompressionTypeToJSON(object: TraceConfig_CompressionType): string {
switch (object) {
case TraceConfig_CompressionType.COMPRESSION_TYPE_UNSPECIFIED: return "COMPRESSION_TYPE_UNSPECIFIED";
case TraceConfig_CompressionType.COMPRESSION_TYPE_DEFLATE: return "COMPRESSION_TYPE_DEFLATE";
case TraceConfig_CompressionType.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export enum TraceConfig_StatsdLogging {
STATSD_LOGGING_UNSPECIFIED = 0,
STATSD_LOGGING_ENABLED = 1,
STATSD_LOGGING_DISABLED = 2,
UNRECOGNIZED = -1,
}

export function traceConfig_StatsdLoggingFromJSON(object: any): TraceConfig_StatsdLogging {
switch (object) {
case 0:
      case "STATSD_LOGGING_UNSPECIFIED":
        return TraceConfig_StatsdLogging.STATSD_LOGGING_UNSPECIFIED;
case 1:
      case "STATSD_LOGGING_ENABLED":
        return TraceConfig_StatsdLogging.STATSD_LOGGING_ENABLED;
case 2:
      case "STATSD_LOGGING_DISABLED":
        return TraceConfig_StatsdLogging.STATSD_LOGGING_DISABLED;
case -1:
        case "UNRECOGNIZED":
        default:
          return TraceConfig_StatsdLogging.UNRECOGNIZED;
}
}

export function traceConfig_StatsdLoggingToJSON(object: TraceConfig_StatsdLogging): string {
switch (object) {
case TraceConfig_StatsdLogging.STATSD_LOGGING_UNSPECIFIED: return "STATSD_LOGGING_UNSPECIFIED";
case TraceConfig_StatsdLogging.STATSD_LOGGING_ENABLED: return "STATSD_LOGGING_ENABLED";
case TraceConfig_StatsdLogging.STATSD_LOGGING_DISABLED: return "STATSD_LOGGING_DISABLED";
case TraceConfig_StatsdLogging.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export enum TraceConfig_WriteFlushMode {
/** WRITE_FLUSH_UNSPECIFIED - Same as WRITE_FLUSH_AUTO. */
WRITE_FLUSH_UNSPECIFIED = 0,
/**
 * WRITE_FLUSH_AUTO - Default mode. The service automatically determines the flush frequency
 * to balance performance and data freshness:
 * 1) If file_write_period_ms <= 5s (kDefaultWriteIntoFilePeriodMs):
 *    Flushes are NOT issued on every write. Instead, a periodic flush is
 *    issued every 5s.
 * 2) If file_write_period_ms > 5s:
 *    A flush is issued before every periodic write into the file.
 */
WRITE_FLUSH_AUTO = 1,
/**
 * WRITE_FLUSH_DISABLED - Do not flush buffers before periodic writes into the file.
 * Use this mode if you want to minimize the performance impact of flushes
 * and can tolerate potentially missing the most recent data in the trace
 * file until the end of the session or an explicit flush.
 * When this mode is selected, |flush_period_ms| is respected.
 */
WRITE_FLUSH_DISABLED = 2,
/**
 * WRITE_FLUSH_ENABLED - Issue a flush before every periodic write into the file.
 * This ensures that each write into the file contains the most up-to-date
 * data from all data sources, but may have a higher performance overhead.
 */
WRITE_FLUSH_ENABLED = 3,
UNRECOGNIZED = -1,
}

export function traceConfig_WriteFlushModeFromJSON(object: any): TraceConfig_WriteFlushMode {
switch (object) {
case 0:
      case "WRITE_FLUSH_UNSPECIFIED":
        return TraceConfig_WriteFlushMode.WRITE_FLUSH_UNSPECIFIED;
case 1:
      case "WRITE_FLUSH_AUTO":
        return TraceConfig_WriteFlushMode.WRITE_FLUSH_AUTO;
case 2:
      case "WRITE_FLUSH_DISABLED":
        return TraceConfig_WriteFlushMode.WRITE_FLUSH_DISABLED;
case 3:
      case "WRITE_FLUSH_ENABLED":
        return TraceConfig_WriteFlushMode.WRITE_FLUSH_ENABLED;
case -1:
        case "UNRECOGNIZED":
        default:
          return TraceConfig_WriteFlushMode.UNRECOGNIZED;
}
}

export function traceConfig_WriteFlushModeToJSON(object: TraceConfig_WriteFlushMode): string {
switch (object) {
case TraceConfig_WriteFlushMode.WRITE_FLUSH_UNSPECIFIED: return "WRITE_FLUSH_UNSPECIFIED";
case TraceConfig_WriteFlushMode.WRITE_FLUSH_AUTO: return "WRITE_FLUSH_AUTO";
case TraceConfig_WriteFlushMode.WRITE_FLUSH_DISABLED: return "WRITE_FLUSH_DISABLED";
case TraceConfig_WriteFlushMode.WRITE_FLUSH_ENABLED: return "WRITE_FLUSH_ENABLED";
case TraceConfig_WriteFlushMode.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export enum TraceConfig_FFlushMode {
/** FFLUSH_UNSPECIFIED - Default: same as FFLUSH_DISABLED. */
FFLUSH_UNSPECIFIED = 0,
/** FFLUSH_DISABLED - Do not explicitly sync the file to storage after each write pass. */
FFLUSH_DISABLED = 1,
/**
 * FFLUSH_ENABLED - Explicitly sync the file to storage (via fdatasync) after each periodic
 * write pass. Increases data durability at the cost of higher disk I/O
 * overhead.
 */
FFLUSH_ENABLED = 2,
UNRECOGNIZED = -1,
}

export function traceConfig_FFlushModeFromJSON(object: any): TraceConfig_FFlushMode {
switch (object) {
case 0:
      case "FFLUSH_UNSPECIFIED":
        return TraceConfig_FFlushMode.FFLUSH_UNSPECIFIED;
case 1:
      case "FFLUSH_DISABLED":
        return TraceConfig_FFlushMode.FFLUSH_DISABLED;
case 2:
      case "FFLUSH_ENABLED":
        return TraceConfig_FFlushMode.FFLUSH_ENABLED;
case -1:
        case "UNRECOGNIZED":
        default:
          return TraceConfig_FFlushMode.UNRECOGNIZED;
}
}

export function traceConfig_FFlushModeToJSON(object: TraceConfig_FFlushMode): string {
switch (object) {
case TraceConfig_FFlushMode.FFLUSH_UNSPECIFIED: return "FFLUSH_UNSPECIFIED";
case TraceConfig_FFlushMode.FFLUSH_DISABLED: return "FFLUSH_DISABLED";
case TraceConfig_FFlushMode.FFLUSH_ENABLED: return "FFLUSH_ENABLED";
case TraceConfig_FFlushMode.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export interface TraceConfig_BufferConfig {
sizeKb?: number | undefined,
fillPolicy?: TraceConfig_BufferConfig_FillPolicy | undefined,
/**
 * When true the buffer is moved (rather than copied) onto the cloned
 * session, and an empty buffer of the same size is allocated in the source
 * tracing session. This feature will likely get deprecated in the future.
 * It been introduced mainly to support the surfaceflinger snapshot dump
 * for bugreports, where SF can dumps O(400MB) into the bugreport trace. In
 * that case we don't want to retain another in-memory copy of the buffer.
 */
transferOnClone?: boolean | undefined,
/**
 * Used in conjunction with transfer_on_clone. When true the buffer is
 * cleared before issuing the Flush(reason=kTraceClone). This is to ensure
 * that if the data source took too long to write the data in a previous
 * clone-related flush, we don't end up with a mixture of leftovers from
 * the previous write and new data.
 */
clearBeforeClone?: boolean | undefined,
/**
 * Optional name for this buffer. If set, data sources can reference this
 * buffer by name using |target_buffer_name| in DataSourceConfig instead of
 * using the buffer index. Buffer names must be unique within a tracing
 * session. This provides a more human-readable and less error-prone way to
 * configure which buffer a data source writes to.
 */
name?: string | undefined,
experimentalMode?: TraceConfig_BufferConfig_ExperimentalMode | undefined,
}

export enum TraceConfig_BufferConfig_FillPolicy {
UNSPECIFIED = 0,
/**
 * RING_BUFFER - Default behavior. The buffer operates as a conventional ring buffer.
 * If the writer is faster than the reader (or if the reader reads only
 * after tracing is stopped) newly written packets will overwrite old
 * packets.
 */
RING_BUFFER = 1,
/**
 * DISCARD - Behaves like RING_BUFFER as long as there is space in the buffer or
 * the reader catches up with the writer. As soon as the writer hits
 * an unread chunk, it stops accepting new data in the buffer.
 */
DISCARD = 2,
UNRECOGNIZED = -1,
}

export function traceConfig_BufferConfig_FillPolicyFromJSON(object: any): TraceConfig_BufferConfig_FillPolicy {
switch (object) {
case 0:
      case "UNSPECIFIED":
        return TraceConfig_BufferConfig_FillPolicy.UNSPECIFIED;
case 1:
      case "RING_BUFFER":
        return TraceConfig_BufferConfig_FillPolicy.RING_BUFFER;
case 2:
      case "DISCARD":
        return TraceConfig_BufferConfig_FillPolicy.DISCARD;
case -1:
        case "UNRECOGNIZED":
        default:
          return TraceConfig_BufferConfig_FillPolicy.UNRECOGNIZED;
}
}

export function traceConfig_BufferConfig_FillPolicyToJSON(object: TraceConfig_BufferConfig_FillPolicy): string {
switch (object) {
case TraceConfig_BufferConfig_FillPolicy.UNSPECIFIED: return "UNSPECIFIED";
case TraceConfig_BufferConfig_FillPolicy.RING_BUFFER: return "RING_BUFFER";
case TraceConfig_BufferConfig_FillPolicy.DISCARD: return "DISCARD";
case TraceConfig_BufferConfig_FillPolicy.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/**
 * When true, uses the experimental TraceBufferV2 implementation for this
 * buffer. This is for testing purposes only and may be removed in future
 * versions.
 */
export enum TraceConfig_BufferConfig_ExperimentalMode {
/** MODE_UNSPECIFIED - Use the default V1 implementation. */
MODE_UNSPECIFIED = 0,
/** TRACE_BUFFER_V2 - Use TraceBufferV2. */
TRACE_BUFFER_V2 = 1,
/**
 * TRACE_BUFFER_V2_SHADOW_MODE - Use both V1 and V2 in shadow mode. Data is written to both buffers,
 * but only V1 data is returned. Comparison stats are reported to
 * validate V2 returns equivalent data.
 */
TRACE_BUFFER_V2_SHADOW_MODE = 2,
UNRECOGNIZED = -1,
}

export function traceConfig_BufferConfig_ExperimentalModeFromJSON(object: any): TraceConfig_BufferConfig_ExperimentalMode {
switch (object) {
case 0:
      case "MODE_UNSPECIFIED":
        return TraceConfig_BufferConfig_ExperimentalMode.MODE_UNSPECIFIED;
case 1:
      case "TRACE_BUFFER_V2":
        return TraceConfig_BufferConfig_ExperimentalMode.TRACE_BUFFER_V2;
case 2:
      case "TRACE_BUFFER_V2_SHADOW_MODE":
        return TraceConfig_BufferConfig_ExperimentalMode.TRACE_BUFFER_V2_SHADOW_MODE;
case -1:
        case "UNRECOGNIZED":
        default:
          return TraceConfig_BufferConfig_ExperimentalMode.UNRECOGNIZED;
}
}

export function traceConfig_BufferConfig_ExperimentalModeToJSON(object: TraceConfig_BufferConfig_ExperimentalMode): string {
switch (object) {
case TraceConfig_BufferConfig_ExperimentalMode.MODE_UNSPECIFIED: return "MODE_UNSPECIFIED";
case TraceConfig_BufferConfig_ExperimentalMode.TRACE_BUFFER_V2: return "TRACE_BUFFER_V2";
case TraceConfig_BufferConfig_ExperimentalMode.TRACE_BUFFER_V2_SHADOW_MODE: return "TRACE_BUFFER_V2_SHADOW_MODE";
case TraceConfig_BufferConfig_ExperimentalMode.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export interface TraceConfig_DataSource {
/**
 * Filters and data-source specific config. It contains also the unique name
 * of the data source, the one passed in the  DataSourceDescriptor when they
 * register on the service.
 */
config?: DataSourceConfig | undefined,
/**
 * Optional. If multiple producers (~processes) expose the same data source
 * and either |producer_name_filter| or |producer_name_regex_filter| is set,
 * the data source is enabled only for producers whose names match any of
 * the filters.
 * |producer_name_filter| has to be an exact match, while
 * |producer_name_regex_filter| is a regular expression.
 * This allows to enable a data source only for specific processes.
 * The "repeated" fields have OR semantics: specifying a filter ["foo",
 * "bar"] will enable data sources on both "foo" and "bar" (if they exist).
 */
producerNameFilter?: string[] | undefined,
producerNameRegexFilter?: string[] | undefined,
/**
 * Filter by machine names. The name of a machine is determined by the
 * PERFETTO_MACHINE_NAME env variable. In Android systems, if the env
 * variable is not set then the
 * persist.traced_relay.machine_name system property is used. If the
 * sysprop isn't set or not in an Android system, then the machine name by
 * default is set to the utsname sysname (e.g. Linux), which can be obtained
 * via the 'uname -s' command. As a convenience, one can use "host" to refer
 * to the host machine, which is the machine running traced.
 */
machineNameFilter?: string[] | undefined,
}

/** Config for disabling builtin data sources in the tracing service. */
export interface TraceConfig_BuiltinDataSource {
/** Disable emitting clock timestamps into the trace. */
disableClockSnapshotting?: boolean | undefined,
/** Disable echoing the original trace config in the trace. */
disableTraceConfig?: boolean | undefined,
/** Disable emitting system info (build fingerprint, cpuinfo, etc). */
disableSystemInfo?: boolean | undefined,
/**
 * Disable emitting events for data-source state changes (e.g. the marker
 * for all data sources having ACKed the start of the trace).
 */
disableServiceEvents?: boolean | undefined,
/**
 * The authoritative clock domain for the trace. Defaults to BOOTTIME. See
 * also ClockSnapshot's primary_trace_clock. The configured value is written
 * into the trace as part of the ClockSnapshots emitted by the service.
 * Trace processor will attempt to translate packet/event timestamps from
 * various data sources (and their chosen clock domains) to this domain
 * during import. Added in Android R.
 */
primaryTraceClock?: BuiltinClock | undefined,
/**
 * Time interval in between snapshotting of sync markers, clock snapshots,
 * stats, and other periodic service-emitted events. Note that the service
 * only keeps track of the first and the most recent snapshot until
 * ReadBuffers() is called.
 */
snapshotIntervalMs?: number | undefined,
/**
 * Hints to the service that a suspend-aware (i.e. counting time in suspend)
 * clock should be used for periodic snapshots of service-emitted events.
 * This means, if a snapshot *should* have happened during suspend, it will
 * happen immediately after the device resumes.
 * 
 * Choosing a clock like this is done on best-effort basis; not all
 * platforms (e.g. Windows) expose a clock which can be used for periodic
 * tasks counting suspend. If such a clock is not available, the service
 * falls back to the best-available alternative.
 * 
 * Introduced in Android S.
 * TODO(lalitm): deprecate this in T and make this the default if nothing
 * crashes in S.
 */
preferSuspendClockForSnapshot?: boolean | undefined,
/** Disables the reporting of per-trace-writer histograms in TraceStats. */
disableChunkUsageHistograms?: boolean | undefined,
/** Disable emitting extension descriptors into the trace. */
disableExtensionDescriptors?: boolean | undefined,
}

export interface TraceConfig_ProducerConfig {
/** Identifies the producer for which this config is for. */
producerName?: string | undefined,
/**
 * Specifies the preferred size of the shared memory buffer. If the size is
 * larger than the max size, the max will be used. If it is smaller than
 * the page size or doesn't fit pages evenly into it, it will fall back to
 * the size specified by the producer or finally the default shared memory
 * size.
 */
shmSizeKb?: number | undefined,
/**
 * Specifies the preferred size of each page in the shared memory buffer.
 * Must be an integer multiple of 4K.
 */
pageSizeKb?: number | undefined,
}

/** Contains statsd-specific metadata about an alert associated with the trace. */
export interface TraceConfig_StatsdMetadata {
/** The identifier of the alert which triggered this trace. */
triggeringAlertId?: number | undefined,
/** The uid which registered the triggering configuration with statsd. */
triggeringConfigUid?: number | undefined,
/** The identifier of the config which triggered the alert. */
triggeringConfigId?: number | undefined,
/** The identifier of the subscription which triggered this trace. */
triggeringSubscriptionId?: number | undefined,
}

/**
 * Contains flags which override the default values of the guardrails inside
 * Perfetto.
 */
export interface TraceConfig_GuardrailOverrides {
/**
 * Override the default limit (in bytes) for uploading data to server within
 * a 24 hour period.
 * On R-, this override only affected userdebug builds. Since S, it also
 * affects user builds.
 * In 24Q3+ (V+), this override is a noop because upload guardrail logic
 * was removed from Perfetto.
 * 
 * @deprecated
 */
maxUploadPerDayBytes?: number | undefined,
/**
 * Overrides the guardrail for maximum trace buffer size.
 * Available on U+
 */
maxTracingBufferSizeKb?: number | undefined,
}

/**
 * Triggers allow producers to start or stop the tracing session when an event
 * occurs.
 * 
 * For example if we are tracing probabilistically, most traces will be
 * uninteresting. Triggers allow us to keep only the interesting ones such as
 * those traces during which the device temperature reached a certain
 * threshold. In this case the producer can activate a trigger to keep
 * (STOP_TRACING) the trace, otherwise it can also begin a trace
 * (START_TRACING) because it knows something is about to happen.
 */
export interface TraceConfig_TriggerConfig {
triggerMode?: TraceConfig_TriggerConfig_TriggerMode | undefined,
/**
 * This flag is really a workaround for b/274931668. This is needed only
 * when deploying configs to different versions of the tracing service.
 * When this is set to true this has the same effect of setting trigger_mode
 * to CLONE_SNAPSHOT on newer versions of the service. This boolean has been
 * introduced to allow to have configs that use CLONE_SNAPSHOT on newer
 * versions of Android and fall back to STOP_TRACING on older versions where
 * CLONE_SNAPSHOT did not exist.
 * When using this flag, trigger_mode must be set to STOP_TRACING.
 */
useCloneSnapshotIfAvailable?: boolean | undefined,
/**
 * A list of triggers which are related to this configuration. If ANY
 * trigger is seen then an action will be performed based on |trigger_mode|.
 */
triggers?: TraceConfig_TriggerConfig_Trigger[] | undefined,
/**
 * Required and must be positive if a TriggerConfig is specified. This is
 * how long this TraceConfig should wait for a trigger to arrive. After this
 * period of time if no trigger is seen the TracingSession will be cleaned
 * up.
 */
triggerTimeoutMs?: number | undefined,
}

export enum TraceConfig_TriggerConfig_TriggerMode {
UNSPECIFIED = 0,
/**
 * START_TRACING - When this mode is chosen, data sources are not started until one of the
 * |triggers| are received. This supports early initialization and fast
 * starting of the tracing system. On triggering, the session will then
 * record for |stop_delay_ms|. However if no trigger is seen
 * after |trigger_timeout_ms| the session will be stopped and no data will
 * be returned.
 */
START_TRACING = 1,
/**
 * STOP_TRACING - When this mode is chosen, the session will be started via the normal
 * EnableTracing() & StartTracing(). If no trigger is ever seen
 * the session will be stopped after |trigger_timeout_ms| and no data will
 * be returned. However if triggered the trace will stop after
 * |stop_delay_ms| and any data in the buffer will be returned to the
 * consumer.
 */
STOP_TRACING = 2,
/**
 * CLONE_SNAPSHOT - When this mode is chosen, this causes a snapshot of the current tracing
 * session to be created after |stop_delay_ms| while the current tracing
 * session continues undisturbed (% an extra flush). This mode can be
 * used only when the tracing session is handled by the "perfetto" cmdline
 * client (which is true in 90% of cases). Part of the business logic
 * necessary for this behavior, and ensuing file handling, lives in
 * perfetto_cmd.cc . On other consumers, this causes only a notification
 * of the trigger through a CloneTriggerHit ObservableEvent. The custom
 * consumer is supposed to call CloneSession() itself after the event.
 * Use use_clone_snapshot_if_available=true when targeting older versions
 * of perfetto.
 */
CLONE_SNAPSHOT = 4,
UNRECOGNIZED = -1,
}

export function traceConfig_TriggerConfig_TriggerModeFromJSON(object: any): TraceConfig_TriggerConfig_TriggerMode {
switch (object) {
case 0:
      case "UNSPECIFIED":
        return TraceConfig_TriggerConfig_TriggerMode.UNSPECIFIED;
case 1:
      case "START_TRACING":
        return TraceConfig_TriggerConfig_TriggerMode.START_TRACING;
case 2:
      case "STOP_TRACING":
        return TraceConfig_TriggerConfig_TriggerMode.STOP_TRACING;
case 4:
      case "CLONE_SNAPSHOT":
        return TraceConfig_TriggerConfig_TriggerMode.CLONE_SNAPSHOT;
case -1:
        case "UNRECOGNIZED":
        default:
          return TraceConfig_TriggerConfig_TriggerMode.UNRECOGNIZED;
}
}

export function traceConfig_TriggerConfig_TriggerModeToJSON(object: TraceConfig_TriggerConfig_TriggerMode): string {
switch (object) {
case TraceConfig_TriggerConfig_TriggerMode.UNSPECIFIED: return "UNSPECIFIED";
case TraceConfig_TriggerConfig_TriggerMode.START_TRACING: return "START_TRACING";
case TraceConfig_TriggerConfig_TriggerMode.STOP_TRACING: return "STOP_TRACING";
case TraceConfig_TriggerConfig_TriggerMode.CLONE_SNAPSHOT: return "CLONE_SNAPSHOT";
case TraceConfig_TriggerConfig_TriggerMode.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

export interface TraceConfig_TriggerConfig_Trigger {
/** The producer must specify this name to activate the trigger. */
name?: string | undefined,
/**
 * An std::regex that will match the producer that can activate this
 * trigger. This is optional. If unset any producers can activate this
 * trigger.
 */
producerNameRegex?: string | undefined,
/**
 * After a trigger is received either in START_TRACING or STOP_TRACING
 * mode then the trace will end |stop_delay_ms| after triggering.
 * In CLONE_SNAPSHOT mode, this is the delay between the trigger and the
 * snapshot.
 * If |prefer_suspend_clock_for_duration| is set, the duration will be
 * based on wall-clock, counting also time in suspend.
 */
stopDelayMs?: number | undefined,
/**
 * Limits the number of traces this trigger can start/stop in a rolling
 * 24 hour window. If this field is unset or zero, no limit is applied and
 * activiation of this trigger *always* starts/stops the trace.
 */
maxPer24H?: number | undefined,
/**
 * A value between 0 and 1 which encodes the probability of skipping a
 * trigger with this name. This is useful for reducing the probability
 * of high-frequency triggers from dominating trace finaization. If this
 * field is unset or zero, the trigger will *never* be skipped. If this
 * field is greater than or equal to 1, this trigger will *always* be
 * skipped i.e. it will be as if this trigger was never included in the
 * first place.
 * This probability check is applied *before* any other limits. For
 * example, if |max_per_24_h| is also set, first we will check if the
 * probability bar is met and only then will we check the |max_per_24_h|
 * limit.
 */
skipProbability?: number | undefined,
}

/**
 * Configuration for trace contents that reference earlier trace data. For
 * example, a data source might intern strings, and emit packets containing
 * {interned id : string} pairs. Future packets from that data source can then
 * use the interned ids instead of duplicating the raw string contents. The
 * trace parser will then need to use that interning table to fully interpret
 * the rest of the trace.
 */
export interface TraceConfig_IncrementalStateConfig {
/**
 * If nonzero, notify eligible data sources to clear their incremental state
 * periodically, with the given period. The notification is sent only to
 * data sources that have |handles_incremental_state_clear| set in their
 * DataSourceDescriptor. The notification requests that the data source
 * stops referring to past trace contents. This is particularly useful when
 * tracing in ring buffer mode, where it is not exceptional to overwrite old
 * trace data.
 * 
 * Warning: this time-based global clearing is likely to be removed in the
 * future, to be replaced with a smarter way of sending the notifications
 * only when necessary.
 */
clearPeriodMs?: number | undefined,
}

/**
 * Android-only. Not for general use. If set, saves the trace into an
 * incident. This field is read by perfetto_cmd, rather than the tracing
 * service. This field must be set when passing the --upload flag to
 * perfetto_cmd.
 */
export interface TraceConfig_IncidentReportConfig {
destinationPackage?: string | undefined,
destinationClass?: string | undefined,
/**
 * Level of filtering in the requested incident. See |Destination| in
 * frameworks/base/core/proto/android/privacy.proto.
 */
privacyLevel?: number | undefined,
/**
 * If true, then skips saving the trace to incidentd.
 * 
 * This flag is useful in testing (e.g. Perfetto-statsd integration tests)
 * or when we explicitly don't want traces to go to incidentd even when they
 * usually would (e.g. configs deployed using statsd but only used for
 * inclusion in bugreports using |bugreport_score|).
 * 
 * The motivation for having this flag, instead of just not setting
 * |incident_report_config|, is prevent accidents where
 * |incident_report_config| is omitted by mistake.
 */
skipIncidentd?: boolean | undefined,
/**
 * If true, do not write the trace into dropbox (i.e. incident only).
 * Otherwise, write to both dropbox and incident.
 * TODO(lalitm): remove this field as we no longer use Dropbox.
 * 
 * @deprecated
 */
skipDropbox?: boolean | undefined,
}

/**
 * When set applies a post-filter to the trace contents using the filter
 * provided. The filter is applied at ReadBuffers() time and works both in the
 * case of IPC readback and write_into_file. This filter can be generated
 * using `tools/proto_filter -s schema.proto -F filter_out.bytes` or
 * `-T filter_out.escaped_string` (for .pbtx). See go/trace-filtering for
 * design.
 * 
 * Introduced in Android S, but it was broken (b/195065199). Reintroduced in
 * Android T with a different field number. Updated in Android U with a new
 * bytecode version which supports string filtering.
 */
export interface TraceConfig_TraceFilter {
/** The bytecode as implemented in Android T. */
bytecode?: Uint8Array | undefined,
/**
 * The bytecode as implemented in Android U. Adds support for string
 * filtering.
 */
bytecodeV2?: Uint8Array | undefined,
stringFilterChain?: TraceConfig_TraceFilter_StringFilterChain | undefined,
/**
 * Bytecode overlay for Perfetto v54+. This overlay is applied on top of
 * bytecode_v2 to upgrade specific simple fields to new values. Old Perfetto
 * versions ignore this field; new versions apply it.
 * 
 * The motivation for this is that adding new opcodes in a backwards
 * compatible way while also minimizing config size is hard. Instead, the
 * overlay mechanism allows us to "patch" specific fields in the original
 * bytecode_v2 with new semantics.
 * 
 * See RFC 0011-subset-string-filter-rules.md for more info.
 * 
 * Note:
 * Unlike bytecode_v2 (which uses implicit message indices via EndOfMessage
 * markers), this overlay uses a triplet format with explicit indices:
 *   [msg_index, field_id << 3 | opcode, argument] ... [checksum]
 * Each entry is exactly 3 varints. The argument is 0 when not needed.
 * Entries must be sorted by (msg_index, field_id).
 * 
 * The parser processes bytecode_v2 and this overlay simultaneously:
 *  - any field not mentioned in the overlay is parsed as usual
 *  - any field in the overlay but *not* in the bytecode_v2 is added
 *    with its overlay value
 *  - any field in both the overlay and bytecode_v2 takes the value in the
 *    overlay, the bytecode_v2 value is ignored.
 * 
 * Note: despite the name, this was broken in v54 (the overlay was not
 * passed through to the bytecode parser). Only works in v55+.
 */
bytecodeOverlayV54?: Uint8Array | undefined,
/**
 * String filter chain for Perfetto v54+. Rules in this chain either
 * overwrite rules in string_filter_chain (if the name matches) or are
 * appended (if the name doesn't match). This allows modifying existing
 * rules (e.g., changing policy) without duplicating the entire chain.
 * Rules without a name are always appended.
 * See /rfcs/0011-subset-string-filter-rules.md for design details.
 * Introduced in: Perfetto v54.
 */
stringFilterChainV54?: TraceConfig_TraceFilter_StringFilterChain | undefined,
}

/**
 * A policy specifies which algorithm should be used for filtering the
 * string.
 */
export enum TraceConfig_TraceFilter_StringFilterPolicy {
SFP_UNSPECIFIED = 0,
/**
 * SFP_MATCH_REDACT_GROUPS - Tries to match the string field against |regex_pattern|. If it
 * matches, all matching groups are "redacted" (i.e. replaced with a
 * constant string) and filtering is terminated (i.e. no further rules are
 * checked). If it doesn't match, the string is left unchanged and the
 * next rule in chain is considered.
 */
SFP_MATCH_REDACT_GROUPS = 1,
/**
 * SFP_ATRACE_MATCH_REDACT_GROUPS - Like |SFP_MATCH_REDACT_GROUPS| but tries to do some pre-work before
 * checking the regex. Specifically, it tries to parse the string field as
 * an atrace tracepoint and checks if the post-tgid field starts with
 * |atrace_post_tgid_starts_with|. The regex matching is only performed if
 * this check succeeds.
 */
SFP_ATRACE_MATCH_REDACT_GROUPS = 2,
/**
 * SFP_MATCH_BREAK - Tries to match the string field against |regex_pattern|. If it
 * matches, filtering is terminated (i.e. no further rules are checked).
 * If it doesn't match, the string is left unchanged and the next rule in
 * chain is considered.
 */
SFP_MATCH_BREAK = 3,
/**
 * SFP_ATRACE_MATCH_BREAK - Like |SFP_MATCH_BREAK| but tries to do some pre-work before checking
 * the regex. Specifically, it tries to parse the string field as an
 * atrace tracepoint and checks if the post-tgid field starts with
 * |atrace_post_tgid_starts_with|. The regex matching is only performed if
 * this check succeeds.
 */
SFP_ATRACE_MATCH_BREAK = 4,
/**
 * SFP_ATRACE_REPEATED_SEARCH_REDACT_GROUPS - Tries to repeatedly search (i.e. find substrings of) the string field
 * with |regex_pattern|. For each match, redacts any matching groups (i.e.
 * replaced with a constant string). Once there are no further matches,
 * filtering is terminated (i.e. no further rules are checked).
 * 
 * Note that this is policy is a "search" policy not a "match" policy
 * unlike the above policies:
 *  * Match policies require matching the full string i.e. there is an
 *    implicit leading `^` and trailing `$`.
 *  * Search policies perform repeated partial matching of the string
 *    e.g.
 *      - String: `foo=aaa,bar=123,foo=bbb,baz=456`
 *      - Pattern: `foo=(\d+)`
 *      - Output: `foo=P6O,bar=123,foo=P6O,baz=456`
 *    where P6O is the redaction string
 * 
 * All of this is only performed after some pre-work where we try to parse
 * the string field as an atrace tracepoint and check if the post-tgid
 * field starts with |atrace_post_tgid_starts_with|.
 * 
 * If there are no partial matches, the string is left unchanged and the
 * next rule in chain is considered.
 */
SFP_ATRACE_REPEATED_SEARCH_REDACT_GROUPS = 5,
UNRECOGNIZED = -1,
}

export function traceConfig_TraceFilter_StringFilterPolicyFromJSON(object: any): TraceConfig_TraceFilter_StringFilterPolicy {
switch (object) {
case 0:
      case "SFP_UNSPECIFIED":
        return TraceConfig_TraceFilter_StringFilterPolicy.SFP_UNSPECIFIED;
case 1:
      case "SFP_MATCH_REDACT_GROUPS":
        return TraceConfig_TraceFilter_StringFilterPolicy.SFP_MATCH_REDACT_GROUPS;
case 2:
      case "SFP_ATRACE_MATCH_REDACT_GROUPS":
        return TraceConfig_TraceFilter_StringFilterPolicy.SFP_ATRACE_MATCH_REDACT_GROUPS;
case 3:
      case "SFP_MATCH_BREAK":
        return TraceConfig_TraceFilter_StringFilterPolicy.SFP_MATCH_BREAK;
case 4:
      case "SFP_ATRACE_MATCH_BREAK":
        return TraceConfig_TraceFilter_StringFilterPolicy.SFP_ATRACE_MATCH_BREAK;
case 5:
      case "SFP_ATRACE_REPEATED_SEARCH_REDACT_GROUPS":
        return TraceConfig_TraceFilter_StringFilterPolicy.SFP_ATRACE_REPEATED_SEARCH_REDACT_GROUPS;
case -1:
        case "UNRECOGNIZED":
        default:
          return TraceConfig_TraceFilter_StringFilterPolicy.UNRECOGNIZED;
}
}

export function traceConfig_TraceFilter_StringFilterPolicyToJSON(object: TraceConfig_TraceFilter_StringFilterPolicy): string {
switch (object) {
case TraceConfig_TraceFilter_StringFilterPolicy.SFP_UNSPECIFIED: return "SFP_UNSPECIFIED";
case TraceConfig_TraceFilter_StringFilterPolicy.SFP_MATCH_REDACT_GROUPS: return "SFP_MATCH_REDACT_GROUPS";
case TraceConfig_TraceFilter_StringFilterPolicy.SFP_ATRACE_MATCH_REDACT_GROUPS: return "SFP_ATRACE_MATCH_REDACT_GROUPS";
case TraceConfig_TraceFilter_StringFilterPolicy.SFP_MATCH_BREAK: return "SFP_MATCH_BREAK";
case TraceConfig_TraceFilter_StringFilterPolicy.SFP_ATRACE_MATCH_BREAK: return "SFP_ATRACE_MATCH_BREAK";
case TraceConfig_TraceFilter_StringFilterPolicy.SFP_ATRACE_REPEATED_SEARCH_REDACT_GROUPS: return "SFP_ATRACE_REPEATED_SEARCH_REDACT_GROUPS";
case TraceConfig_TraceFilter_StringFilterPolicy.UNRECOGNIZED:
default:
          return "UNRECOGNIZED";
}
}

/** A rule specifies how strings should be filtered. */
export interface TraceConfig_TraceFilter_StringFilterRule {
/**
 * The policy (i.e. algorithm) dictating how strings matching this rule
 * should be handled.
 */
policy?: TraceConfig_TraceFilter_StringFilterPolicy | undefined,
/** The regex pattern used to match against each string. */
regexPattern?: string | undefined,
/**
 * The string which should appear after the tgid in atrace tracepoint
 * strings.
 */
atracePayloadStartsWith?: string | undefined,
/**
 * Optional name for the rule. When merging chains (e.g. via
 * string_filter_chain_v54), rules with matching names in the newer chain
 * will overwrite rules in the base chain. Rules without a name (empty or
 * unset) are always treated as distinct and will be appended.
 * See /rfcs/0011-subset-string-filter-rules.md for design details.
 * Introduced in: Perfetto v54.
 */
name?: string | undefined,
/**
 * The semantic types this rule applies to.
 * 
 * SEMANTIC_TYPE_UNSPECIFIED (0) is treated as its own distinct category:
 * - If empty, the rule applies only to fields with UNSPECIFIED type.
 * - If non-empty, the rule applies only to fields whose semantic type
 *   is explicitly listed. To match UNSPECIFIED fields, you must include
 *   SEMANTIC_TYPE_UNSPECIFIED in the list.
 * 
 * Examples:
 *   semantic_type: []           -> matches only UNSPECIFIED fields
 *   semantic_type: [ATRACE]     -> matches only ATRACE fields
 *   semantic_type: [UNSPECIFIED, ATRACE] -> matches both
 * 
 * See /rfcs/0011-subset-string-filter-rules.md for design details.
 * Introduced in: Perfetto v54.
 */
semanticType?: SemanticType[] | undefined,
}

/**
 * A chain is a list of rules which string will be sequentially checked
 * against.
 */
export interface TraceConfig_TraceFilter_StringFilterChain {
rules?: TraceConfig_TraceFilter_StringFilterRule[] | undefined,
}

/**
 * Android-only. Not for general use. If set, reports the trace to the
 * Android framework. This field is read by perfetto_cmd, rather than the
 * tracing service. This field must be set when passing the --upload flag to
 * perfetto_cmd.
 */
export interface TraceConfig_AndroidReportConfig {
reporterServicePackage?: string | undefined,
reporterServiceClass?: string | undefined,
/**
 * If true, then skips reporting the trace to Android framework.
 * 
 * This flag is useful in testing (e.g. Perfetto-statsd integration tests)
 * or when we explicitly don't want to report traces to the framework even
 * when they usually would (e.g. configs deployed using statsd but only
 * used for inclusion in bugreports using |bugreport_score|).
 * 
 * The motivation for having this flag, instead of just not setting
 * |framework_report_config|, is prevent accidents where
 * |framework_report_config| is omitted by mistake.
 */
skipReport?: boolean | undefined,
/**
 * If true, will direct the Android framework to read the data in trace
 * file and pass it to the reporter class over a pipe instead of passing
 * the file descriptor directly.
 * 
 * This flag is needed because the Android test framework does not
 * currently support priv-app helper apps (in terms of SELinux) and we
 * really don't want to add an allow rule for untrusted_app to receive
 * trace fds.
 * 
 * Because of this, we instead will direct the framework to create a new
 * pipe and pass this to the reporter process instead. As the pipe is
 * created by the framework, we won't have any problems with SELinux
 * (system_server is already allowed to pass pipe fds, even
 * to untrusted apps).
 * 
 * As the name suggests this option *MUST* only be used for testing.
 * Note that the framework will reject (and drop) files which are too
 * large both for simplicity and to be minimize the amount of data we
 * pass to a non-priv app (note that the framework will still check
 * manifest permissions even though SELinux permissions are worked around).
 */
usePipeInFrameworkForTesting?: boolean | undefined,
}

/**
 * If set, delays the start of tracing by a random duration. The duration is
 * chosen from a uniform distribution between the specified minimum and
 * maximum.
 * Note: this delay is implemented by perfetto_cmd *not* by traced so will
 * not work if you communicate with traced directly over the consumer API.
 * Introduced in Android T.
 */
export interface TraceConfig_CmdTraceStartDelay {
minDelayMs?: number | undefined,
maxDelayMs?: number | undefined,
}

/**
 * When non-empty, ensures that for a each semaphore named `name at most
 * `max_other_session_count`` *other* sessions (whose value is taken of the
 * minimum of all values specified by this config or any already-running
 * session) can be be running.
 * 
 * If a semaphore "acquisition" fails, EnableTracing will return an error
 * and the tracing session will not be started (or elgible to start in
 * the case of deferred sessions).
 * 
 * This is easiest to explain with an example. Suppose the tracing service has
 * the following active tracing sessions:
 *   S1 = [{name=foo, max_other_session_count=2},
 *         {name=bar, max_other_session_count=0}]
 *   S2 = [{name=foo, max_other_session_count=1},
 *         {name=baz, max_other_session_count=1}]
 * 
 * Then, for a new session, the following would be the expected behaviour of
 * EnableSession given the state of `session_semaphores`.
 *   Q: session_semaphores = []
 *   A: Allowed because it does not specify any semaphores. Will be allowed
 *      no matter the state of any other tracing session.
 *   Q: session_semaphores = [{name=baz, max_other_session_count=1}]
 *   A: Allowed because both S2 and this config specify
 *      max_other_session_count=1 for baz.
 *   Q: session_semaphores = [{name=foo, max_other_session_count=3}]
 *   A: Denied because S2 specified max_other_session_count=1 for foo and S1
 *      takes that slot.
 *   Q: session_semaphores = [{name=bar, max_other_session_count=0}]
 *   A: Denied because S1 takes the the slot specified by both S1 and
 *      this config.
 * 
 * Introduced in 24Q3 (Android V).
 */
export interface TraceConfig_SessionSemaphore {
/**
 * The name of the semaphore. Acts as a unique identifier across all
 * tracing sessions (including the one being started).
 */
name?: string | undefined,
/**
 * The maximum number of *other* sesssions which specify the same semaphore
 * which can be active. The minimum of this value across all tracing
 * sessions and the value specified by the config is used when deciding
 * whether the tracing session can be started.
 */
maxOtherSessionCount?: number | undefined,
}

/** Allow key, value pairs to save arbitrary data about trace. */
export interface TraceConfig_Note {
/** Required. */
key?: string | undefined,
/** Required. */
value?: string | undefined,
}

function createBaseFtraceDescriptor(): FtraceDescriptor {
      return { atraceCategories: [] };
    }

export const FtraceDescriptor: MessageFns<FtraceDescriptor> = {
              encode(
      message: FtraceDescriptor,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.atraceCategories !== undefined && message.atraceCategories.length !== 0) {
              
          for (const v of message.atraceCategories) {
            FtraceDescriptor_AtraceCategory.encode(v!, writer.uint32(10).fork()).join();
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): FtraceDescriptor {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseFtraceDescriptor();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
              
              const el = FtraceDescriptor_AtraceCategory.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.atraceCategories!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): FtraceDescriptor {
      return {
atraceCategories: globalThis.Array.isArray(object?.atraceCategories) ? object.atraceCategories.map((e: any) => FtraceDescriptor_AtraceCategory.fromJSON(e)): [],
};
},

toJSON(message: FtraceDescriptor): unknown {
      const obj: any = {};
if (message.atraceCategories?.length) {
          obj.atraceCategories = message.atraceCategories.map(e => FtraceDescriptor_AtraceCategory.toJSON(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<FtraceDescriptor>, I>>(base?: I): FtraceDescriptor {
        return FtraceDescriptor.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<FtraceDescriptor>, I>>(object: I): FtraceDescriptor {
const message = createBaseFtraceDescriptor();
message.atraceCategories = object.atraceCategories?.map((e) => FtraceDescriptor_AtraceCategory.fromPartial(e)) || [];
return message;
}
            };

function createBaseFtraceDescriptor_AtraceCategory(): FtraceDescriptor_AtraceCategory {
      return { name: "",description: "" };
    }

export const FtraceDescriptor_AtraceCategory: MessageFns<FtraceDescriptor_AtraceCategory> = {
              encode(
      message: FtraceDescriptor_AtraceCategory,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(10).string(message.name);
        }
if (message.description !== undefined  && message.description !== "") {
          writer.uint32(18).string(message.description);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): FtraceDescriptor_AtraceCategory {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseFtraceDescriptor_AtraceCategory();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.name = reader.string();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
        message.description = reader.string();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): FtraceDescriptor_AtraceCategory {
      return {
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
description: isSet(object.description)
          ? globalThis.String(object.description)
          : "",
};
},

toJSON(message: FtraceDescriptor_AtraceCategory): unknown {
      const obj: any = {};
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
if (message.description !== undefined  && message.description !== "") {
          obj.description = message.description;
        }
return obj;
},

create<I extends Exact<DeepPartial<FtraceDescriptor_AtraceCategory>, I>>(base?: I): FtraceDescriptor_AtraceCategory {
        return FtraceDescriptor_AtraceCategory.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<FtraceDescriptor_AtraceCategory>, I>>(object: I): FtraceDescriptor_AtraceCategory {
const message = createBaseFtraceDescriptor_AtraceCategory();
message.name = object.name ?? "";
message.description = object.description ?? "";
return message;
}
            };

function createBaseGpuCounterDescriptor(): GpuCounterDescriptor {
      return { specs: [],blocks: [],counterGroups: [],minSamplingPeriodNs: 0,maxSamplingPeriodNs: 0,supportsInstrumentedSampling: false,supportsCounterNames: false,supportsCounterNameGlobs: false };
    }

export const GpuCounterDescriptor: MessageFns<GpuCounterDescriptor> = {
              encode(
      message: GpuCounterDescriptor,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.specs !== undefined && message.specs.length !== 0) {
              
          for (const v of message.specs) {
            GpuCounterDescriptor_GpuCounterSpec.encode(v!, writer.uint32(10).fork()).join();
          }
        
            }
if (message.blocks !== undefined && message.blocks.length !== 0) {
              
          for (const v of message.blocks) {
            GpuCounterDescriptor_GpuCounterBlock.encode(v!, writer.uint32(18).fork()).join();
          }
        
            }
if (message.counterGroups !== undefined && message.counterGroups.length !== 0) {
              
          for (const v of message.counterGroups) {
            GpuCounterDescriptor_GpuCounterGroupSpec.encode(v!, writer.uint32(50).fork()).join();
          }
        
            }
if (message.minSamplingPeriodNs !== undefined  && message.minSamplingPeriodNs !== 0) {
          writer.uint32(24).uint64(message.minSamplingPeriodNs);
        }
if (message.maxSamplingPeriodNs !== undefined  && message.maxSamplingPeriodNs !== 0) {
          writer.uint32(32).uint64(message.maxSamplingPeriodNs);
        }
if (message.supportsInstrumentedSampling !== undefined  && message.supportsInstrumentedSampling !== false) {
          writer.uint32(40).bool(message.supportsInstrumentedSampling);
        }
if (message.supportsCounterNames !== undefined  && message.supportsCounterNames !== false) {
          writer.uint32(56).bool(message.supportsCounterNames);
        }
if (message.supportsCounterNameGlobs !== undefined  && message.supportsCounterNameGlobs !== false) {
          writer.uint32(64).bool(message.supportsCounterNameGlobs);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): GpuCounterDescriptor {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGpuCounterDescriptor();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
              
              const el = GpuCounterDescriptor_GpuCounterSpec.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.specs!.push(el);
              }
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = GpuCounterDescriptor_GpuCounterBlock.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.blocks!.push(el);
              }
continue; }
case 6: {
if (tag !== 50) {
        break;
      }
    
              
              const el = GpuCounterDescriptor_GpuCounterGroupSpec.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.counterGroups!.push(el);
              }
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.minSamplingPeriodNs = longToNumber(reader.uint64());
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.maxSamplingPeriodNs = longToNumber(reader.uint64());
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.supportsInstrumentedSampling = reader.bool();
continue; }
case 7: {
if (tag !== 56) {
        break;
      }
    
        message.supportsCounterNames = reader.bool();
continue; }
case 8: {
if (tag !== 64) {
        break;
      }
    
        message.supportsCounterNameGlobs = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): GpuCounterDescriptor {
      return {
specs: globalThis.Array.isArray(object?.specs) ? object.specs.map((e: any) => GpuCounterDescriptor_GpuCounterSpec.fromJSON(e)): [],
blocks: globalThis.Array.isArray(object?.blocks) ? object.blocks.map((e: any) => GpuCounterDescriptor_GpuCounterBlock.fromJSON(e)): [],
counterGroups: globalThis.Array.isArray(object?.counterGroups) ? object.counterGroups.map((e: any) => GpuCounterDescriptor_GpuCounterGroupSpec.fromJSON(e)): [],
minSamplingPeriodNs: isSet(object.minSamplingPeriodNs)
          ? globalThis.Number(object.minSamplingPeriodNs)
          : 0,
maxSamplingPeriodNs: isSet(object.maxSamplingPeriodNs)
          ? globalThis.Number(object.maxSamplingPeriodNs)
          : 0,
supportsInstrumentedSampling: isSet(object.supportsInstrumentedSampling)
          ? globalThis.Boolean(object.supportsInstrumentedSampling)
          : false,
supportsCounterNames: isSet(object.supportsCounterNames)
          ? globalThis.Boolean(object.supportsCounterNames)
          : false,
supportsCounterNameGlobs: isSet(object.supportsCounterNameGlobs)
          ? globalThis.Boolean(object.supportsCounterNameGlobs)
          : false,
};
},

toJSON(message: GpuCounterDescriptor): unknown {
      const obj: any = {};
if (message.specs?.length) {
          obj.specs = message.specs.map(e => GpuCounterDescriptor_GpuCounterSpec.toJSON(e));
        }
if (message.blocks?.length) {
          obj.blocks = message.blocks.map(e => GpuCounterDescriptor_GpuCounterBlock.toJSON(e));
        }
if (message.counterGroups?.length) {
          obj.counterGroups = message.counterGroups.map(e => GpuCounterDescriptor_GpuCounterGroupSpec.toJSON(e));
        }
if (message.minSamplingPeriodNs !== undefined  && message.minSamplingPeriodNs !== 0) {
          obj.minSamplingPeriodNs = Math.round(message.minSamplingPeriodNs);
        }
if (message.maxSamplingPeriodNs !== undefined  && message.maxSamplingPeriodNs !== 0) {
          obj.maxSamplingPeriodNs = Math.round(message.maxSamplingPeriodNs);
        }
if (message.supportsInstrumentedSampling !== undefined  && message.supportsInstrumentedSampling !== false) {
          obj.supportsInstrumentedSampling = message.supportsInstrumentedSampling;
        }
if (message.supportsCounterNames !== undefined  && message.supportsCounterNames !== false) {
          obj.supportsCounterNames = message.supportsCounterNames;
        }
if (message.supportsCounterNameGlobs !== undefined  && message.supportsCounterNameGlobs !== false) {
          obj.supportsCounterNameGlobs = message.supportsCounterNameGlobs;
        }
return obj;
},

create<I extends Exact<DeepPartial<GpuCounterDescriptor>, I>>(base?: I): GpuCounterDescriptor {
        return GpuCounterDescriptor.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<GpuCounterDescriptor>, I>>(object: I): GpuCounterDescriptor {
const message = createBaseGpuCounterDescriptor();
message.specs = object.specs?.map((e) => GpuCounterDescriptor_GpuCounterSpec.fromPartial(e)) || [];
message.blocks = object.blocks?.map((e) => GpuCounterDescriptor_GpuCounterBlock.fromPartial(e)) || [];
message.counterGroups = object.counterGroups?.map((e) => GpuCounterDescriptor_GpuCounterGroupSpec.fromPartial(e)) || [];
message.minSamplingPeriodNs = object.minSamplingPeriodNs ?? 0;
message.maxSamplingPeriodNs = object.maxSamplingPeriodNs ?? 0;
message.supportsInstrumentedSampling = object.supportsInstrumentedSampling ?? false;
message.supportsCounterNames = object.supportsCounterNames ?? false;
message.supportsCounterNameGlobs = object.supportsCounterNameGlobs ?? false;
return message;
}
            };

function createBaseGpuCounterDescriptor_GpuCounterSpec(): GpuCounterDescriptor_GpuCounterSpec {
      return { counterId: 0,name: "",description: "",intPeakValue: undefined,doublePeakValue: undefined,numeratorUnits: [],denominatorUnits: [],selectByDefault: false,groups: [],valueDirection: 0 };
    }

export const GpuCounterDescriptor_GpuCounterSpec: MessageFns<GpuCounterDescriptor_GpuCounterSpec> = {
              encode(
      message: GpuCounterDescriptor_GpuCounterSpec,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.counterId !== undefined  && message.counterId !== 0) {
          writer.uint32(8).uint32(message.counterId);
        }
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(18).string(message.name);
        }
if (message.description !== undefined  && message.description !== "") {
          writer.uint32(26).string(message.description);
        }
if (message.intPeakValue !== undefined ) {
          writer.uint32(40).int64(message.intPeakValue);
        }
if (message.doublePeakValue !== undefined ) {
          writer.uint32(49).double(message.doublePeakValue);
        }
if (message.numeratorUnits !== undefined && message.numeratorUnits.length !== 0) {
              
          for (const v of message.numeratorUnits) {
            writer.uint32(56).int32(v!);
          }
        
            }
if (message.denominatorUnits !== undefined && message.denominatorUnits.length !== 0) {
              
          for (const v of message.denominatorUnits) {
            writer.uint32(64).int32(v!);
          }
        
            }
if (message.selectByDefault !== undefined  && message.selectByDefault !== false) {
          writer.uint32(72).bool(message.selectByDefault);
        }
if (message.groups !== undefined && message.groups.length !== 0) {
              
          for (const v of message.groups) {
            writer.uint32(80).int32(v!);
          }
        
            }
if (message.valueDirection !== undefined  && message.valueDirection !== 0) {
          writer.uint32(88).int32(message.valueDirection);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): GpuCounterDescriptor_GpuCounterSpec {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGpuCounterDescriptor_GpuCounterSpec();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.counterId = reader.uint32();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
        message.name = reader.string();
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
        message.description = reader.string();
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.intPeakValue = longToNumber(reader.int64());
continue; }
case 6: {
if (tag !== 49) {
        break;
      }
    
        message.doublePeakValue = reader.double();
continue; }
case 7: {
if (tag === 56) {
              
              message.numeratorUnits!.push(reader.int32() as any);

              continue;
            }

            if (tag === 58) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.numeratorUnits!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
case 8: {
if (tag === 64) {
              
              message.denominatorUnits!.push(reader.int32() as any);

              continue;
            }

            if (tag === 66) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.denominatorUnits!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
case 9: {
if (tag !== 72) {
        break;
      }
    
        message.selectByDefault = reader.bool();
continue; }
case 10: {
if (tag === 80) {
              
              message.groups!.push(reader.int32() as any);

              continue;
            }

            if (tag === 82) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.groups!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
case 11: {
if (tag !== 88) {
        break;
      }
    
        message.valueDirection = reader.int32() as any;
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): GpuCounterDescriptor_GpuCounterSpec {
      return {
counterId: isSet(object.counterId)
          ? globalThis.Number(object.counterId)
          : 0,
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
description: isSet(object.description)
          ? globalThis.String(object.description)
          : "",
intPeakValue: isSet(object.intPeakValue)
          ? globalThis.Number(object.intPeakValue)
          : undefined,
doublePeakValue: isSet(object.doublePeakValue)
          ? globalThis.Number(object.doublePeakValue)
          : undefined,
numeratorUnits: globalThis.Array.isArray(object?.numeratorUnits) ? object.numeratorUnits.map((e: any) => gpuCounterDescriptor_MeasureUnitFromJSON(e)): [],
denominatorUnits: globalThis.Array.isArray(object?.denominatorUnits) ? object.denominatorUnits.map((e: any) => gpuCounterDescriptor_MeasureUnitFromJSON(e)): [],
selectByDefault: isSet(object.selectByDefault)
          ? globalThis.Boolean(object.selectByDefault)
          : false,
groups: globalThis.Array.isArray(object?.groups) ? object.groups.map((e: any) => gpuCounterDescriptor_GpuCounterGroupFromJSON(e)): [],
valueDirection: isSet(object.valueDirection)
          ? gpuCounterDescriptor_GpuCounterSpec_ValueDirectionFromJSON(object.valueDirection)
          : 0,
};
},

toJSON(message: GpuCounterDescriptor_GpuCounterSpec): unknown {
      const obj: any = {};
if (message.counterId !== undefined  && message.counterId !== 0) {
          obj.counterId = Math.round(message.counterId);
        }
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
if (message.description !== undefined  && message.description !== "") {
          obj.description = message.description;
        }
if (message.intPeakValue !== undefined ) {
          obj.intPeakValue = Math.round(message.intPeakValue);
        }
if (message.doublePeakValue !== undefined ) {
          obj.doublePeakValue = message.doublePeakValue;
        }
if (message.numeratorUnits?.length) {
          obj.numeratorUnits = message.numeratorUnits.map(e => gpuCounterDescriptor_MeasureUnitToJSON(e));
        }
if (message.denominatorUnits?.length) {
          obj.denominatorUnits = message.denominatorUnits.map(e => gpuCounterDescriptor_MeasureUnitToJSON(e));
        }
if (message.selectByDefault !== undefined  && message.selectByDefault !== false) {
          obj.selectByDefault = message.selectByDefault;
        }
if (message.groups?.length) {
          obj.groups = message.groups.map(e => gpuCounterDescriptor_GpuCounterGroupToJSON(e));
        }
if (message.valueDirection !== undefined  && message.valueDirection !== 0) {
          obj.valueDirection = gpuCounterDescriptor_GpuCounterSpec_ValueDirectionToJSON(message.valueDirection);
        }
return obj;
},

create<I extends Exact<DeepPartial<GpuCounterDescriptor_GpuCounterSpec>, I>>(base?: I): GpuCounterDescriptor_GpuCounterSpec {
        return GpuCounterDescriptor_GpuCounterSpec.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<GpuCounterDescriptor_GpuCounterSpec>, I>>(object: I): GpuCounterDescriptor_GpuCounterSpec {
const message = createBaseGpuCounterDescriptor_GpuCounterSpec();
message.counterId = object.counterId ?? 0;
message.name = object.name ?? "";
message.description = object.description ?? "";
message.intPeakValue = object.intPeakValue ?? undefined;
message.doublePeakValue = object.doublePeakValue ?? undefined;
message.numeratorUnits = object.numeratorUnits?.map((e) => e) || [];
message.denominatorUnits = object.denominatorUnits?.map((e) => e) || [];
message.selectByDefault = object.selectByDefault ?? false;
message.groups = object.groups?.map((e) => e) || [];
message.valueDirection = object.valueDirection ?? 0;
return message;
}
            };

function createBaseGpuCounterDescriptor_GpuCounterBlock(): GpuCounterDescriptor_GpuCounterBlock {
      return { blockId: 0,blockCapacity: 0,name: "",description: "",counterIds: [] };
    }

export const GpuCounterDescriptor_GpuCounterBlock: MessageFns<GpuCounterDescriptor_GpuCounterBlock> = {
              encode(
      message: GpuCounterDescriptor_GpuCounterBlock,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.blockId !== undefined  && message.blockId !== 0) {
          writer.uint32(8).uint32(message.blockId);
        }
if (message.blockCapacity !== undefined  && message.blockCapacity !== 0) {
          writer.uint32(16).uint32(message.blockCapacity);
        }
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(26).string(message.name);
        }
if (message.description !== undefined  && message.description !== "") {
          writer.uint32(34).string(message.description);
        }
if (message.counterIds !== undefined && message.counterIds.length !== 0) {
              
          for (const v of message.counterIds) {
            writer.uint32(40).uint32(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): GpuCounterDescriptor_GpuCounterBlock {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGpuCounterDescriptor_GpuCounterBlock();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.blockId = reader.uint32();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.blockCapacity = reader.uint32();
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
        message.name = reader.string();
continue; }
case 4: {
if (tag !== 34) {
        break;
      }
    
        message.description = reader.string();
continue; }
case 5: {
if (tag === 40) {
              
              message.counterIds!.push(reader.uint32());

              continue;
            }

            if (tag === 42) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.counterIds!.push(reader.uint32());
              }

              continue;
            }

            break;
          }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): GpuCounterDescriptor_GpuCounterBlock {
      return {
blockId: isSet(object.blockId)
          ? globalThis.Number(object.blockId)
          : 0,
blockCapacity: isSet(object.blockCapacity)
          ? globalThis.Number(object.blockCapacity)
          : 0,
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
description: isSet(object.description)
          ? globalThis.String(object.description)
          : "",
counterIds: globalThis.Array.isArray(object?.counterIds) ? object.counterIds.map((e: any) => globalThis.Number(e)): [],
};
},

toJSON(message: GpuCounterDescriptor_GpuCounterBlock): unknown {
      const obj: any = {};
if (message.blockId !== undefined  && message.blockId !== 0) {
          obj.blockId = Math.round(message.blockId);
        }
if (message.blockCapacity !== undefined  && message.blockCapacity !== 0) {
          obj.blockCapacity = Math.round(message.blockCapacity);
        }
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
if (message.description !== undefined  && message.description !== "") {
          obj.description = message.description;
        }
if (message.counterIds?.length) {
          obj.counterIds = message.counterIds.map(e => Math.round(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<GpuCounterDescriptor_GpuCounterBlock>, I>>(base?: I): GpuCounterDescriptor_GpuCounterBlock {
        return GpuCounterDescriptor_GpuCounterBlock.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<GpuCounterDescriptor_GpuCounterBlock>, I>>(object: I): GpuCounterDescriptor_GpuCounterBlock {
const message = createBaseGpuCounterDescriptor_GpuCounterBlock();
message.blockId = object.blockId ?? 0;
message.blockCapacity = object.blockCapacity ?? 0;
message.name = object.name ?? "";
message.description = object.description ?? "";
message.counterIds = object.counterIds?.map((e) => e) || [];
return message;
}
            };

function createBaseGpuCounterDescriptor_GpuCounterGroupSpec(): GpuCounterDescriptor_GpuCounterGroupSpec {
      return { groupId: 0,name: "",description: "",counterIds: [] };
    }

export const GpuCounterDescriptor_GpuCounterGroupSpec: MessageFns<GpuCounterDescriptor_GpuCounterGroupSpec> = {
              encode(
      message: GpuCounterDescriptor_GpuCounterGroupSpec,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.groupId !== undefined  && message.groupId !== 0) {
          writer.uint32(8).uint32(message.groupId);
        }
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(18).string(message.name);
        }
if (message.description !== undefined  && message.description !== "") {
          writer.uint32(26).string(message.description);
        }
if (message.counterIds !== undefined && message.counterIds.length !== 0) {
              
          for (const v of message.counterIds) {
            writer.uint32(32).uint32(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): GpuCounterDescriptor_GpuCounterGroupSpec {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGpuCounterDescriptor_GpuCounterGroupSpec();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.groupId = reader.uint32();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
        message.name = reader.string();
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
        message.description = reader.string();
continue; }
case 4: {
if (tag === 32) {
              
              message.counterIds!.push(reader.uint32());

              continue;
            }

            if (tag === 34) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.counterIds!.push(reader.uint32());
              }

              continue;
            }

            break;
          }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): GpuCounterDescriptor_GpuCounterGroupSpec {
      return {
groupId: isSet(object.groupId)
          ? globalThis.Number(object.groupId)
          : 0,
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
description: isSet(object.description)
          ? globalThis.String(object.description)
          : "",
counterIds: globalThis.Array.isArray(object?.counterIds) ? object.counterIds.map((e: any) => globalThis.Number(e)): [],
};
},

toJSON(message: GpuCounterDescriptor_GpuCounterGroupSpec): unknown {
      const obj: any = {};
if (message.groupId !== undefined  && message.groupId !== 0) {
          obj.groupId = Math.round(message.groupId);
        }
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
if (message.description !== undefined  && message.description !== "") {
          obj.description = message.description;
        }
if (message.counterIds?.length) {
          obj.counterIds = message.counterIds.map(e => Math.round(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<GpuCounterDescriptor_GpuCounterGroupSpec>, I>>(base?: I): GpuCounterDescriptor_GpuCounterGroupSpec {
        return GpuCounterDescriptor_GpuCounterGroupSpec.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<GpuCounterDescriptor_GpuCounterGroupSpec>, I>>(object: I): GpuCounterDescriptor_GpuCounterGroupSpec {
const message = createBaseGpuCounterDescriptor_GpuCounterGroupSpec();
message.groupId = object.groupId ?? 0;
message.name = object.name ?? "";
message.description = object.description ?? "";
message.counterIds = object.counterIds?.map((e) => e) || [];
return message;
}
            };

function createBaseTrackEventCategory(): TrackEventCategory {
      return { name: "",description: "",tags: [] };
    }

export const TrackEventCategory: MessageFns<TrackEventCategory> = {
              encode(
      message: TrackEventCategory,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(10).string(message.name);
        }
if (message.description !== undefined  && message.description !== "") {
          writer.uint32(18).string(message.description);
        }
if (message.tags !== undefined && message.tags.length !== 0) {
              
          for (const v of message.tags) {
            writer.uint32(26).string(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TrackEventCategory {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTrackEventCategory();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.name = reader.string();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
        message.description = reader.string();
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.tags!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TrackEventCategory {
      return {
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
description: isSet(object.description)
          ? globalThis.String(object.description)
          : "",
tags: globalThis.Array.isArray(object?.tags) ? object.tags.map((e: any) => globalThis.String(e)): [],
};
},

toJSON(message: TrackEventCategory): unknown {
      const obj: any = {};
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
if (message.description !== undefined  && message.description !== "") {
          obj.description = message.description;
        }
if (message.tags?.length) {
          obj.tags = message.tags;
        }
return obj;
},

create<I extends Exact<DeepPartial<TrackEventCategory>, I>>(base?: I): TrackEventCategory {
        return TrackEventCategory.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TrackEventCategory>, I>>(object: I): TrackEventCategory {
const message = createBaseTrackEventCategory();
message.name = object.name ?? "";
message.description = object.description ?? "";
message.tags = object.tags?.map((e) => e) || [];
return message;
}
            };

function createBaseTrackEventDescriptor(): TrackEventDescriptor {
      return { availableCategories: [] };
    }

export const TrackEventDescriptor: MessageFns<TrackEventDescriptor> = {
              encode(
      message: TrackEventDescriptor,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.availableCategories !== undefined && message.availableCategories.length !== 0) {
              
          for (const v of message.availableCategories) {
            TrackEventCategory.encode(v!, writer.uint32(10).fork()).join();
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TrackEventDescriptor {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTrackEventDescriptor();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
              
              const el = TrackEventCategory.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.availableCategories!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TrackEventDescriptor {
      return {
availableCategories: globalThis.Array.isArray(object?.availableCategories) ? object.availableCategories.map((e: any) => TrackEventCategory.fromJSON(e)): [],
};
},

toJSON(message: TrackEventDescriptor): unknown {
      const obj: any = {};
if (message.availableCategories?.length) {
          obj.availableCategories = message.availableCategories.map(e => TrackEventCategory.toJSON(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<TrackEventDescriptor>, I>>(base?: I): TrackEventDescriptor {
        return TrackEventDescriptor.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TrackEventDescriptor>, I>>(object: I): TrackEventDescriptor {
const message = createBaseTrackEventDescriptor();
message.availableCategories = object.availableCategories?.map((e) => TrackEventCategory.fromPartial(e)) || [];
return message;
}
            };

function createBaseVmProgram(): VmProgram {
      return { version: 0,instructions: [] };
    }

export const VmProgram: MessageFns<VmProgram> = {
              encode(
      message: VmProgram,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.version !== undefined  && message.version !== 0) {
          writer.uint32(8).uint32(message.version);
        }
if (message.instructions !== undefined && message.instructions.length !== 0) {
              
          for (const v of message.instructions) {
            VmInstruction.encode(v!, writer.uint32(18).fork()).join();
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): VmProgram {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseVmProgram();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.version = reader.uint32();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = VmInstruction.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.instructions!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): VmProgram {
      return {
version: isSet(object.version)
          ? globalThis.Number(object.version)
          : 0,
instructions: globalThis.Array.isArray(object?.instructions) ? object.instructions.map((e: any) => VmInstruction.fromJSON(e)): [],
};
},

toJSON(message: VmProgram): unknown {
      const obj: any = {};
if (message.version !== undefined  && message.version !== 0) {
          obj.version = Math.round(message.version);
        }
if (message.instructions?.length) {
          obj.instructions = message.instructions.map(e => VmInstruction.toJSON(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<VmProgram>, I>>(base?: I): VmProgram {
        return VmProgram.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<VmProgram>, I>>(object: I): VmProgram {
const message = createBaseVmProgram();
message.version = object.version ?? 0;
message.instructions = object.instructions?.map((e) => VmInstruction.fromPartial(e)) || [];
return message;
}
            };

function createBaseVmInstruction(): VmInstruction {
      return { select: undefined,regLoad: undefined,merge: undefined,set: undefined,del: undefined,abortLevel: 1,nestedInstructions: [] };
    }

export const VmInstruction: MessageFns<VmInstruction> = {
              encode(
      message: VmInstruction,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.select !== undefined ) {
          VmOpSelect.encode(message.select, writer.uint32(10).fork()).join();
        }
if (message.regLoad !== undefined ) {
          VmOpRegLoad.encode(message.regLoad, writer.uint32(18).fork()).join();
        }
if (message.merge !== undefined ) {
          VmOpMerge.encode(message.merge, writer.uint32(26).fork()).join();
        }
if (message.set !== undefined ) {
          VmOpSet.encode(message.set, writer.uint32(34).fork()).join();
        }
if (message.del !== undefined ) {
          VmOpDel.encode(message.del, writer.uint32(42).fork()).join();
        }
if (message.abortLevel !== undefined  && message.abortLevel !== 1) {
          writer.uint32(48).int32(message.abortLevel);
        }
if (message.nestedInstructions !== undefined && message.nestedInstructions.length !== 0) {
              
          for (const v of message.nestedInstructions) {
            VmInstruction.encode(v!, writer.uint32(58).fork()).join();
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): VmInstruction {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseVmInstruction();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.select = VmOpSelect.decode(reader, reader.uint32());
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
        message.regLoad = VmOpRegLoad.decode(reader, reader.uint32());
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
        message.merge = VmOpMerge.decode(reader, reader.uint32());
continue; }
case 4: {
if (tag !== 34) {
        break;
      }
    
        message.set = VmOpSet.decode(reader, reader.uint32());
continue; }
case 5: {
if (tag !== 42) {
        break;
      }
    
        message.del = VmOpDel.decode(reader, reader.uint32());
continue; }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.abortLevel = reader.int32() as any;
continue; }
case 7: {
if (tag !== 58) {
        break;
      }
    
              
              const el = VmInstruction.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.nestedInstructions!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): VmInstruction {
      return {
select: isSet(object.select)
          ? VmOpSelect.fromJSON(object.select)
          : undefined,
regLoad: isSet(object.regLoad)
          ? VmOpRegLoad.fromJSON(object.regLoad)
          : undefined,
merge: isSet(object.merge)
          ? VmOpMerge.fromJSON(object.merge)
          : undefined,
set: isSet(object.set)
          ? VmOpSet.fromJSON(object.set)
          : undefined,
del: isSet(object.del)
          ? VmOpDel.fromJSON(object.del)
          : undefined,
abortLevel: isSet(object.abortLevel)
          ? vmInstruction_AbortLevelFromJSON(object.abortLevel)
          : 1,
nestedInstructions: globalThis.Array.isArray(object?.nestedInstructions) ? object.nestedInstructions.map((e: any) => VmInstruction.fromJSON(e)): [],
};
},

toJSON(message: VmInstruction): unknown {
      const obj: any = {};
if (message.select !== undefined ) {
          obj.select = VmOpSelect.toJSON(message.select);
        }
if (message.regLoad !== undefined ) {
          obj.regLoad = VmOpRegLoad.toJSON(message.regLoad);
        }
if (message.merge !== undefined ) {
          obj.merge = VmOpMerge.toJSON(message.merge);
        }
if (message.set !== undefined ) {
          obj.set = VmOpSet.toJSON(message.set);
        }
if (message.del !== undefined ) {
          obj.del = VmOpDel.toJSON(message.del);
        }
if (message.abortLevel !== undefined  && message.abortLevel !== 1) {
          obj.abortLevel = vmInstruction_AbortLevelToJSON(message.abortLevel);
        }
if (message.nestedInstructions?.length) {
          obj.nestedInstructions = message.nestedInstructions.map(e => VmInstruction.toJSON(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<VmInstruction>, I>>(base?: I): VmInstruction {
        return VmInstruction.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<VmInstruction>, I>>(object: I): VmInstruction {
const message = createBaseVmInstruction();
message.select = (object.select !== undefined && object.select !== null)
          ? VmOpSelect.fromPartial(object.select)
          : undefined;
message.regLoad = (object.regLoad !== undefined && object.regLoad !== null)
          ? VmOpRegLoad.fromPartial(object.regLoad)
          : undefined;
message.merge = (object.merge !== undefined && object.merge !== null)
          ? VmOpMerge.fromPartial(object.merge)
          : undefined;
message.set = (object.set !== undefined && object.set !== null)
          ? VmOpSet.fromPartial(object.set)
          : undefined;
message.del = (object.del !== undefined && object.del !== null)
          ? VmOpDel.fromPartial(object.del)
          : undefined;
message.abortLevel = object.abortLevel ?? 1;
message.nestedInstructions = object.nestedInstructions?.map((e) => VmInstruction.fromPartial(e)) || [];
return message;
}
            };

function createBaseVmOpSelect(): VmOpSelect {
      return { cursor: 0,relativePath: [],createIfNotExist: false };
    }

export const VmOpSelect: MessageFns<VmOpSelect> = {
              encode(
      message: VmOpSelect,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.cursor !== undefined  && message.cursor !== 0) {
          writer.uint32(8).int32(message.cursor);
        }
if (message.relativePath !== undefined && message.relativePath.length !== 0) {
              
          for (const v of message.relativePath) {
            VmOpSelect_PathComponent.encode(v!, writer.uint32(18).fork()).join();
          }
        
            }
if (message.createIfNotExist !== undefined  && message.createIfNotExist !== false) {
          writer.uint32(24).bool(message.createIfNotExist);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): VmOpSelect {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseVmOpSelect();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.cursor = reader.int32() as any;
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = VmOpSelect_PathComponent.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.relativePath!.push(el);
              }
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.createIfNotExist = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): VmOpSelect {
      return {
cursor: isSet(object.cursor)
          ? vmCursorEnumFromJSON(object.cursor)
          : 0,
relativePath: globalThis.Array.isArray(object?.relativePath) ? object.relativePath.map((e: any) => VmOpSelect_PathComponent.fromJSON(e)): [],
createIfNotExist: isSet(object.createIfNotExist)
          ? globalThis.Boolean(object.createIfNotExist)
          : false,
};
},

toJSON(message: VmOpSelect): unknown {
      const obj: any = {};
if (message.cursor !== undefined  && message.cursor !== 0) {
          obj.cursor = vmCursorEnumToJSON(message.cursor);
        }
if (message.relativePath?.length) {
          obj.relativePath = message.relativePath.map(e => VmOpSelect_PathComponent.toJSON(e));
        }
if (message.createIfNotExist !== undefined  && message.createIfNotExist !== false) {
          obj.createIfNotExist = message.createIfNotExist;
        }
return obj;
},

create<I extends Exact<DeepPartial<VmOpSelect>, I>>(base?: I): VmOpSelect {
        return VmOpSelect.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<VmOpSelect>, I>>(object: I): VmOpSelect {
const message = createBaseVmOpSelect();
message.cursor = object.cursor ?? 0;
message.relativePath = object.relativePath?.map((e) => VmOpSelect_PathComponent.fromPartial(e)) || [];
message.createIfNotExist = object.createIfNotExist ?? false;
return message;
}
            };

function createBaseVmOpSelect_PathComponent(): VmOpSelect_PathComponent {
      return { fieldId: undefined,arrayIndex: undefined,mapKeyFieldId: undefined,isRepeated: false,registerToMatch: 0,storeForeachIndexIntoRegister: 0 };
    }

export const VmOpSelect_PathComponent: MessageFns<VmOpSelect_PathComponent> = {
              encode(
      message: VmOpSelect_PathComponent,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.fieldId !== undefined ) {
          writer.uint32(8).uint32(message.fieldId);
        }
if (message.arrayIndex !== undefined ) {
          writer.uint32(16).uint32(message.arrayIndex);
        }
if (message.mapKeyFieldId !== undefined ) {
          writer.uint32(24).uint32(message.mapKeyFieldId);
        }
if (message.isRepeated !== undefined  && message.isRepeated !== false) {
          writer.uint32(40).bool(message.isRepeated);
        }
if (message.registerToMatch !== undefined  && message.registerToMatch !== 0) {
          writer.uint32(48).uint32(message.registerToMatch);
        }
if (message.storeForeachIndexIntoRegister !== undefined  && message.storeForeachIndexIntoRegister !== 0) {
          writer.uint32(56).uint32(message.storeForeachIndexIntoRegister);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): VmOpSelect_PathComponent {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseVmOpSelect_PathComponent();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.fieldId = reader.uint32();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.arrayIndex = reader.uint32();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.mapKeyFieldId = reader.uint32();
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.isRepeated = reader.bool();
continue; }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.registerToMatch = reader.uint32();
continue; }
case 7: {
if (tag !== 56) {
        break;
      }
    
        message.storeForeachIndexIntoRegister = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): VmOpSelect_PathComponent {
      return {
fieldId: isSet(object.fieldId)
          ? globalThis.Number(object.fieldId)
          : undefined,
arrayIndex: isSet(object.arrayIndex)
          ? globalThis.Number(object.arrayIndex)
          : undefined,
mapKeyFieldId: isSet(object.mapKeyFieldId)
          ? globalThis.Number(object.mapKeyFieldId)
          : undefined,
isRepeated: isSet(object.isRepeated)
          ? globalThis.Boolean(object.isRepeated)
          : false,
registerToMatch: isSet(object.registerToMatch)
          ? globalThis.Number(object.registerToMatch)
          : 0,
storeForeachIndexIntoRegister: isSet(object.storeForeachIndexIntoRegister)
          ? globalThis.Number(object.storeForeachIndexIntoRegister)
          : 0,
};
},

toJSON(message: VmOpSelect_PathComponent): unknown {
      const obj: any = {};
if (message.fieldId !== undefined ) {
          obj.fieldId = Math.round(message.fieldId);
        }
if (message.arrayIndex !== undefined ) {
          obj.arrayIndex = Math.round(message.arrayIndex);
        }
if (message.mapKeyFieldId !== undefined ) {
          obj.mapKeyFieldId = Math.round(message.mapKeyFieldId);
        }
if (message.isRepeated !== undefined  && message.isRepeated !== false) {
          obj.isRepeated = message.isRepeated;
        }
if (message.registerToMatch !== undefined  && message.registerToMatch !== 0) {
          obj.registerToMatch = Math.round(message.registerToMatch);
        }
if (message.storeForeachIndexIntoRegister !== undefined  && message.storeForeachIndexIntoRegister !== 0) {
          obj.storeForeachIndexIntoRegister = Math.round(message.storeForeachIndexIntoRegister);
        }
return obj;
},

create<I extends Exact<DeepPartial<VmOpSelect_PathComponent>, I>>(base?: I): VmOpSelect_PathComponent {
        return VmOpSelect_PathComponent.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<VmOpSelect_PathComponent>, I>>(object: I): VmOpSelect_PathComponent {
const message = createBaseVmOpSelect_PathComponent();
message.fieldId = object.fieldId ?? undefined;
message.arrayIndex = object.arrayIndex ?? undefined;
message.mapKeyFieldId = object.mapKeyFieldId ?? undefined;
message.isRepeated = object.isRepeated ?? false;
message.registerToMatch = object.registerToMatch ?? 0;
message.storeForeachIndexIntoRegister = object.storeForeachIndexIntoRegister ?? 0;
return message;
}
            };

function createBaseVmOpRegLoad(): VmOpRegLoad {
      return { cursor: 0,dstRegister: 0 };
    }

export const VmOpRegLoad: MessageFns<VmOpRegLoad> = {
              encode(
      message: VmOpRegLoad,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.cursor !== undefined  && message.cursor !== 0) {
          writer.uint32(8).int32(message.cursor);
        }
if (message.dstRegister !== undefined  && message.dstRegister !== 0) {
          writer.uint32(16).uint32(message.dstRegister);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): VmOpRegLoad {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseVmOpRegLoad();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.cursor = reader.int32() as any;
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.dstRegister = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): VmOpRegLoad {
      return {
cursor: isSet(object.cursor)
          ? vmCursorEnumFromJSON(object.cursor)
          : 0,
dstRegister: isSet(object.dstRegister)
          ? globalThis.Number(object.dstRegister)
          : 0,
};
},

toJSON(message: VmOpRegLoad): unknown {
      const obj: any = {};
if (message.cursor !== undefined  && message.cursor !== 0) {
          obj.cursor = vmCursorEnumToJSON(message.cursor);
        }
if (message.dstRegister !== undefined  && message.dstRegister !== 0) {
          obj.dstRegister = Math.round(message.dstRegister);
        }
return obj;
},

create<I extends Exact<DeepPartial<VmOpRegLoad>, I>>(base?: I): VmOpRegLoad {
        return VmOpRegLoad.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<VmOpRegLoad>, I>>(object: I): VmOpRegLoad {
const message = createBaseVmOpRegLoad();
message.cursor = object.cursor ?? 0;
message.dstRegister = object.dstRegister ?? 0;
return message;
}
            };

function createBaseVmOpMerge(): VmOpMerge {
      return { skipSubmessages: false,delIfSrcEmpty: false };
    }

export const VmOpMerge: MessageFns<VmOpMerge> = {
              encode(
      message: VmOpMerge,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.skipSubmessages !== undefined  && message.skipSubmessages !== false) {
          writer.uint32(8).bool(message.skipSubmessages);
        }
if (message.delIfSrcEmpty !== undefined  && message.delIfSrcEmpty !== false) {
          writer.uint32(16).bool(message.delIfSrcEmpty);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): VmOpMerge {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseVmOpMerge();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.skipSubmessages = reader.bool();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.delIfSrcEmpty = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): VmOpMerge {
      return {
skipSubmessages: isSet(object.skipSubmessages)
          ? globalThis.Boolean(object.skipSubmessages)
          : false,
delIfSrcEmpty: isSet(object.delIfSrcEmpty)
          ? globalThis.Boolean(object.delIfSrcEmpty)
          : false,
};
},

toJSON(message: VmOpMerge): unknown {
      const obj: any = {};
if (message.skipSubmessages !== undefined  && message.skipSubmessages !== false) {
          obj.skipSubmessages = message.skipSubmessages;
        }
if (message.delIfSrcEmpty !== undefined  && message.delIfSrcEmpty !== false) {
          obj.delIfSrcEmpty = message.delIfSrcEmpty;
        }
return obj;
},

create<I extends Exact<DeepPartial<VmOpMerge>, I>>(base?: I): VmOpMerge {
        return VmOpMerge.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<VmOpMerge>, I>>(object: I): VmOpMerge {
const message = createBaseVmOpMerge();
message.skipSubmessages = object.skipSubmessages ?? false;
message.delIfSrcEmpty = object.delIfSrcEmpty ?? false;
return message;
}
            };

function createBaseVmOpSet(): VmOpSet {
      return {  };
    }

export const VmOpSet: MessageFns<VmOpSet> = {
              encode(
      _: VmOpSet,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): VmOpSet {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseVmOpSet();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(_: any): VmOpSet {
      return {
};
},

toJSON(_: VmOpSet): unknown {
      const obj: any = {};
return obj;
},

create<I extends Exact<DeepPartial<VmOpSet>, I>>(base?: I): VmOpSet {
        return VmOpSet.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<VmOpSet>, I>>(_: I): VmOpSet {
const message = createBaseVmOpSet();
return message;
}
            };

function createBaseVmOpDel(): VmOpDel {
      return {  };
    }

export const VmOpDel: MessageFns<VmOpDel> = {
              encode(
      _: VmOpDel,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): VmOpDel {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseVmOpDel();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(_: any): VmOpDel {
      return {
};
},

toJSON(_: VmOpDel): unknown {
      const obj: any = {};
return obj;
},

create<I extends Exact<DeepPartial<VmOpDel>, I>>(base?: I): VmOpDel {
        return VmOpDel.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<VmOpDel>, I>>(_: I): VmOpDel {
const message = createBaseVmOpDel();
return message;
}
            };

function createBaseDataSourceDescriptor(): DataSourceDescriptor {
      return { name: "",id: 0,willNotifyOnStop: false,willNotifyOnStart: false,handlesIncrementalStateClear: false,noFlush: false,protovmProgram: undefined,gpuCounterDescriptor: undefined,trackEventDescriptor: undefined,ftraceDescriptor: undefined };
    }

export const DataSourceDescriptor: MessageFns<DataSourceDescriptor> = {
              encode(
      message: DataSourceDescriptor,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(10).string(message.name);
        }
if (message.id !== undefined  && message.id !== 0) {
          writer.uint32(56).uint64(message.id);
        }
if (message.willNotifyOnStop !== undefined  && message.willNotifyOnStop !== false) {
          writer.uint32(16).bool(message.willNotifyOnStop);
        }
if (message.willNotifyOnStart !== undefined  && message.willNotifyOnStart !== false) {
          writer.uint32(24).bool(message.willNotifyOnStart);
        }
if (message.handlesIncrementalStateClear !== undefined  && message.handlesIncrementalStateClear !== false) {
          writer.uint32(32).bool(message.handlesIncrementalStateClear);
        }
if (message.noFlush !== undefined  && message.noFlush !== false) {
          writer.uint32(72).bool(message.noFlush);
        }
if (message.protovmProgram !== undefined ) {
          VmProgram.encode(message.protovmProgram, writer.uint32(82).fork()).join();
        }
if (message.gpuCounterDescriptor !== undefined ) {
          GpuCounterDescriptor.encode(message.gpuCounterDescriptor, writer.uint32(42).fork()).join();
        }
if (message.trackEventDescriptor !== undefined ) {
          TrackEventDescriptor.encode(message.trackEventDescriptor, writer.uint32(50).fork()).join();
        }
if (message.ftraceDescriptor !== undefined ) {
          FtraceDescriptor.encode(message.ftraceDescriptor, writer.uint32(66).fork()).join();
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): DataSourceDescriptor {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseDataSourceDescriptor();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.name = reader.string();
continue; }
case 7: {
if (tag !== 56) {
        break;
      }
    
        message.id = longToNumber(reader.uint64());
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.willNotifyOnStop = reader.bool();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.willNotifyOnStart = reader.bool();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.handlesIncrementalStateClear = reader.bool();
continue; }
case 9: {
if (tag !== 72) {
        break;
      }
    
        message.noFlush = reader.bool();
continue; }
case 10: {
if (tag !== 82) {
        break;
      }
    
        message.protovmProgram = VmProgram.decode(reader, reader.uint32());
continue; }
case 5: {
if (tag !== 42) {
        break;
      }
    
        message.gpuCounterDescriptor = GpuCounterDescriptor.decode(reader, reader.uint32());
continue; }
case 6: {
if (tag !== 50) {
        break;
      }
    
        message.trackEventDescriptor = TrackEventDescriptor.decode(reader, reader.uint32());
continue; }
case 8: {
if (tag !== 66) {
        break;
      }
    
        message.ftraceDescriptor = FtraceDescriptor.decode(reader, reader.uint32());
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): DataSourceDescriptor {
      return {
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
id: isSet(object.id)
          ? globalThis.Number(object.id)
          : 0,
willNotifyOnStop: isSet(object.willNotifyOnStop)
          ? globalThis.Boolean(object.willNotifyOnStop)
          : false,
willNotifyOnStart: isSet(object.willNotifyOnStart)
          ? globalThis.Boolean(object.willNotifyOnStart)
          : false,
handlesIncrementalStateClear: isSet(object.handlesIncrementalStateClear)
          ? globalThis.Boolean(object.handlesIncrementalStateClear)
          : false,
noFlush: isSet(object.noFlush)
          ? globalThis.Boolean(object.noFlush)
          : false,
protovmProgram: isSet(object.protovmProgram)
          ? VmProgram.fromJSON(object.protovmProgram)
          : undefined,
gpuCounterDescriptor: isSet(object.gpuCounterDescriptor)
          ? GpuCounterDescriptor.fromJSON(object.gpuCounterDescriptor)
          : undefined,
trackEventDescriptor: isSet(object.trackEventDescriptor)
          ? TrackEventDescriptor.fromJSON(object.trackEventDescriptor)
          : undefined,
ftraceDescriptor: isSet(object.ftraceDescriptor)
          ? FtraceDescriptor.fromJSON(object.ftraceDescriptor)
          : undefined,
};
},

toJSON(message: DataSourceDescriptor): unknown {
      const obj: any = {};
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
if (message.id !== undefined  && message.id !== 0) {
          obj.id = Math.round(message.id);
        }
if (message.willNotifyOnStop !== undefined  && message.willNotifyOnStop !== false) {
          obj.willNotifyOnStop = message.willNotifyOnStop;
        }
if (message.willNotifyOnStart !== undefined  && message.willNotifyOnStart !== false) {
          obj.willNotifyOnStart = message.willNotifyOnStart;
        }
if (message.handlesIncrementalStateClear !== undefined  && message.handlesIncrementalStateClear !== false) {
          obj.handlesIncrementalStateClear = message.handlesIncrementalStateClear;
        }
if (message.noFlush !== undefined  && message.noFlush !== false) {
          obj.noFlush = message.noFlush;
        }
if (message.protovmProgram !== undefined ) {
          obj.protovmProgram = VmProgram.toJSON(message.protovmProgram);
        }
if (message.gpuCounterDescriptor !== undefined ) {
          obj.gpuCounterDescriptor = GpuCounterDescriptor.toJSON(message.gpuCounterDescriptor);
        }
if (message.trackEventDescriptor !== undefined ) {
          obj.trackEventDescriptor = TrackEventDescriptor.toJSON(message.trackEventDescriptor);
        }
if (message.ftraceDescriptor !== undefined ) {
          obj.ftraceDescriptor = FtraceDescriptor.toJSON(message.ftraceDescriptor);
        }
return obj;
},

create<I extends Exact<DeepPartial<DataSourceDescriptor>, I>>(base?: I): DataSourceDescriptor {
        return DataSourceDescriptor.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<DataSourceDescriptor>, I>>(object: I): DataSourceDescriptor {
const message = createBaseDataSourceDescriptor();
message.name = object.name ?? "";
message.id = object.id ?? 0;
message.willNotifyOnStop = object.willNotifyOnStop ?? false;
message.willNotifyOnStart = object.willNotifyOnStart ?? false;
message.handlesIncrementalStateClear = object.handlesIncrementalStateClear ?? false;
message.noFlush = object.noFlush ?? false;
message.protovmProgram = (object.protovmProgram !== undefined && object.protovmProgram !== null)
          ? VmProgram.fromPartial(object.protovmProgram)
          : undefined;
message.gpuCounterDescriptor = (object.gpuCounterDescriptor !== undefined && object.gpuCounterDescriptor !== null)
          ? GpuCounterDescriptor.fromPartial(object.gpuCounterDescriptor)
          : undefined;
message.trackEventDescriptor = (object.trackEventDescriptor !== undefined && object.trackEventDescriptor !== null)
          ? TrackEventDescriptor.fromPartial(object.trackEventDescriptor)
          : undefined;
message.ftraceDescriptor = (object.ftraceDescriptor !== undefined && object.ftraceDescriptor !== null)
          ? FtraceDescriptor.fromPartial(object.ftraceDescriptor)
          : undefined;
return message;
}
            };

function createBaseTracingServiceState(): TracingServiceState {
      return { producers: [],dataSources: [],tracingSessions: [],supportsTracingSessions: false,numSessions: 0,numSessionsStarted: 0,tracingServiceVersion: "" };
    }

export const TracingServiceState: MessageFns<TracingServiceState> = {
              encode(
      message: TracingServiceState,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.producers !== undefined && message.producers.length !== 0) {
              
          for (const v of message.producers) {
            TracingServiceState_Producer.encode(v!, writer.uint32(10).fork()).join();
          }
        
            }
if (message.dataSources !== undefined && message.dataSources.length !== 0) {
              
          for (const v of message.dataSources) {
            TracingServiceState_DataSource.encode(v!, writer.uint32(18).fork()).join();
          }
        
            }
if (message.tracingSessions !== undefined && message.tracingSessions.length !== 0) {
              
          for (const v of message.tracingSessions) {
            TracingServiceState_TracingSession.encode(v!, writer.uint32(50).fork()).join();
          }
        
            }
if (message.supportsTracingSessions !== undefined  && message.supportsTracingSessions !== false) {
          writer.uint32(56).bool(message.supportsTracingSessions);
        }
if (message.numSessions !== undefined  && message.numSessions !== 0) {
          writer.uint32(24).int32(message.numSessions);
        }
if (message.numSessionsStarted !== undefined  && message.numSessionsStarted !== 0) {
          writer.uint32(32).int32(message.numSessionsStarted);
        }
if (message.tracingServiceVersion !== undefined  && message.tracingServiceVersion !== "") {
          writer.uint32(42).string(message.tracingServiceVersion);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TracingServiceState {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTracingServiceState();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
              
              const el = TracingServiceState_Producer.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.producers!.push(el);
              }
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = TracingServiceState_DataSource.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.dataSources!.push(el);
              }
continue; }
case 6: {
if (tag !== 50) {
        break;
      }
    
              
              const el = TracingServiceState_TracingSession.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.tracingSessions!.push(el);
              }
continue; }
case 7: {
if (tag !== 56) {
        break;
      }
    
        message.supportsTracingSessions = reader.bool();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.numSessions = reader.int32();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.numSessionsStarted = reader.int32();
continue; }
case 5: {
if (tag !== 42) {
        break;
      }
    
        message.tracingServiceVersion = reader.string();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TracingServiceState {
      return {
producers: globalThis.Array.isArray(object?.producers) ? object.producers.map((e: any) => TracingServiceState_Producer.fromJSON(e)): [],
dataSources: globalThis.Array.isArray(object?.dataSources) ? object.dataSources.map((e: any) => TracingServiceState_DataSource.fromJSON(e)): [],
tracingSessions: globalThis.Array.isArray(object?.tracingSessions) ? object.tracingSessions.map((e: any) => TracingServiceState_TracingSession.fromJSON(e)): [],
supportsTracingSessions: isSet(object.supportsTracingSessions)
          ? globalThis.Boolean(object.supportsTracingSessions)
          : false,
numSessions: isSet(object.numSessions)
          ? globalThis.Number(object.numSessions)
          : 0,
numSessionsStarted: isSet(object.numSessionsStarted)
          ? globalThis.Number(object.numSessionsStarted)
          : 0,
tracingServiceVersion: isSet(object.tracingServiceVersion)
          ? globalThis.String(object.tracingServiceVersion)
          : "",
};
},

toJSON(message: TracingServiceState): unknown {
      const obj: any = {};
if (message.producers?.length) {
          obj.producers = message.producers.map(e => TracingServiceState_Producer.toJSON(e));
        }
if (message.dataSources?.length) {
          obj.dataSources = message.dataSources.map(e => TracingServiceState_DataSource.toJSON(e));
        }
if (message.tracingSessions?.length) {
          obj.tracingSessions = message.tracingSessions.map(e => TracingServiceState_TracingSession.toJSON(e));
        }
if (message.supportsTracingSessions !== undefined  && message.supportsTracingSessions !== false) {
          obj.supportsTracingSessions = message.supportsTracingSessions;
        }
if (message.numSessions !== undefined  && message.numSessions !== 0) {
          obj.numSessions = Math.round(message.numSessions);
        }
if (message.numSessionsStarted !== undefined  && message.numSessionsStarted !== 0) {
          obj.numSessionsStarted = Math.round(message.numSessionsStarted);
        }
if (message.tracingServiceVersion !== undefined  && message.tracingServiceVersion !== "") {
          obj.tracingServiceVersion = message.tracingServiceVersion;
        }
return obj;
},

create<I extends Exact<DeepPartial<TracingServiceState>, I>>(base?: I): TracingServiceState {
        return TracingServiceState.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TracingServiceState>, I>>(object: I): TracingServiceState {
const message = createBaseTracingServiceState();
message.producers = object.producers?.map((e) => TracingServiceState_Producer.fromPartial(e)) || [];
message.dataSources = object.dataSources?.map((e) => TracingServiceState_DataSource.fromPartial(e)) || [];
message.tracingSessions = object.tracingSessions?.map((e) => TracingServiceState_TracingSession.fromPartial(e)) || [];
message.supportsTracingSessions = object.supportsTracingSessions ?? false;
message.numSessions = object.numSessions ?? 0;
message.numSessionsStarted = object.numSessionsStarted ?? 0;
message.tracingServiceVersion = object.tracingServiceVersion ?? "";
return message;
}
            };

function createBaseTracingServiceState_Producer(): TracingServiceState_Producer {
      return { id: 0,name: "",pid: 0,uid: 0,sdkVersion: "",frozen: false,machineId: 0,machineName: "" };
    }

export const TracingServiceState_Producer: MessageFns<TracingServiceState_Producer> = {
              encode(
      message: TracingServiceState_Producer,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.id !== undefined  && message.id !== 0) {
          writer.uint32(8).int32(message.id);
        }
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(18).string(message.name);
        }
if (message.pid !== undefined  && message.pid !== 0) {
          writer.uint32(40).int32(message.pid);
        }
if (message.uid !== undefined  && message.uid !== 0) {
          writer.uint32(24).int32(message.uid);
        }
if (message.sdkVersion !== undefined  && message.sdkVersion !== "") {
          writer.uint32(34).string(message.sdkVersion);
        }
if (message.frozen !== undefined  && message.frozen !== false) {
          writer.uint32(48).bool(message.frozen);
        }
if (message.machineId !== undefined  && message.machineId !== 0) {
          writer.uint32(56).uint32(message.machineId);
        }
if (message.machineName !== undefined  && message.machineName !== "") {
          writer.uint32(66).string(message.machineName);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TracingServiceState_Producer {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTracingServiceState_Producer();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.id = reader.int32();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
        message.name = reader.string();
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.pid = reader.int32();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.uid = reader.int32();
continue; }
case 4: {
if (tag !== 34) {
        break;
      }
    
        message.sdkVersion = reader.string();
continue; }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.frozen = reader.bool();
continue; }
case 7: {
if (tag !== 56) {
        break;
      }
    
        message.machineId = reader.uint32();
continue; }
case 8: {
if (tag !== 66) {
        break;
      }
    
        message.machineName = reader.string();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TracingServiceState_Producer {
      return {
id: isSet(object.id)
          ? globalThis.Number(object.id)
          : 0,
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
pid: isSet(object.pid)
          ? globalThis.Number(object.pid)
          : 0,
uid: isSet(object.uid)
          ? globalThis.Number(object.uid)
          : 0,
sdkVersion: isSet(object.sdkVersion)
          ? globalThis.String(object.sdkVersion)
          : "",
frozen: isSet(object.frozen)
          ? globalThis.Boolean(object.frozen)
          : false,
machineId: isSet(object.machineId)
          ? globalThis.Number(object.machineId)
          : 0,
machineName: isSet(object.machineName)
          ? globalThis.String(object.machineName)
          : "",
};
},

toJSON(message: TracingServiceState_Producer): unknown {
      const obj: any = {};
if (message.id !== undefined  && message.id !== 0) {
          obj.id = Math.round(message.id);
        }
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
if (message.pid !== undefined  && message.pid !== 0) {
          obj.pid = Math.round(message.pid);
        }
if (message.uid !== undefined  && message.uid !== 0) {
          obj.uid = Math.round(message.uid);
        }
if (message.sdkVersion !== undefined  && message.sdkVersion !== "") {
          obj.sdkVersion = message.sdkVersion;
        }
if (message.frozen !== undefined  && message.frozen !== false) {
          obj.frozen = message.frozen;
        }
if (message.machineId !== undefined  && message.machineId !== 0) {
          obj.machineId = Math.round(message.machineId);
        }
if (message.machineName !== undefined  && message.machineName !== "") {
          obj.machineName = message.machineName;
        }
return obj;
},

create<I extends Exact<DeepPartial<TracingServiceState_Producer>, I>>(base?: I): TracingServiceState_Producer {
        return TracingServiceState_Producer.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TracingServiceState_Producer>, I>>(object: I): TracingServiceState_Producer {
const message = createBaseTracingServiceState_Producer();
message.id = object.id ?? 0;
message.name = object.name ?? "";
message.pid = object.pid ?? 0;
message.uid = object.uid ?? 0;
message.sdkVersion = object.sdkVersion ?? "";
message.frozen = object.frozen ?? false;
message.machineId = object.machineId ?? 0;
message.machineName = object.machineName ?? "";
return message;
}
            };

function createBaseTracingServiceState_DataSource(): TracingServiceState_DataSource {
      return { dsDescriptor: undefined,producerId: 0 };
    }

export const TracingServiceState_DataSource: MessageFns<TracingServiceState_DataSource> = {
              encode(
      message: TracingServiceState_DataSource,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.dsDescriptor !== undefined ) {
          DataSourceDescriptor.encode(message.dsDescriptor, writer.uint32(10).fork()).join();
        }
if (message.producerId !== undefined  && message.producerId !== 0) {
          writer.uint32(16).int32(message.producerId);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TracingServiceState_DataSource {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTracingServiceState_DataSource();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.dsDescriptor = DataSourceDescriptor.decode(reader, reader.uint32());
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.producerId = reader.int32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TracingServiceState_DataSource {
      return {
dsDescriptor: isSet(object.dsDescriptor)
          ? DataSourceDescriptor.fromJSON(object.dsDescriptor)
          : undefined,
producerId: isSet(object.producerId)
          ? globalThis.Number(object.producerId)
          : 0,
};
},

toJSON(message: TracingServiceState_DataSource): unknown {
      const obj: any = {};
if (message.dsDescriptor !== undefined ) {
          obj.dsDescriptor = DataSourceDescriptor.toJSON(message.dsDescriptor);
        }
if (message.producerId !== undefined  && message.producerId !== 0) {
          obj.producerId = Math.round(message.producerId);
        }
return obj;
},

create<I extends Exact<DeepPartial<TracingServiceState_DataSource>, I>>(base?: I): TracingServiceState_DataSource {
        return TracingServiceState_DataSource.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TracingServiceState_DataSource>, I>>(object: I): TracingServiceState_DataSource {
const message = createBaseTracingServiceState_DataSource();
message.dsDescriptor = (object.dsDescriptor !== undefined && object.dsDescriptor !== null)
          ? DataSourceDescriptor.fromPartial(object.dsDescriptor)
          : undefined;
message.producerId = object.producerId ?? 0;
return message;
}
            };

function createBaseTracingServiceState_TracingSession(): TracingServiceState_TracingSession {
      return { id: 0,consumerUid: 0,state: "",uniqueSessionName: "",bufferSizeKb: [],durationMs: 0,numDataSources: 0,startRealtimeNs: 0,bugreportScore: 0,bugreportFilename: "",isStarted: false };
    }

export const TracingServiceState_TracingSession: MessageFns<TracingServiceState_TracingSession> = {
              encode(
      message: TracingServiceState_TracingSession,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.id !== undefined  && message.id !== 0) {
          writer.uint32(8).uint64(message.id);
        }
if (message.consumerUid !== undefined  && message.consumerUid !== 0) {
          writer.uint32(16).int32(message.consumerUid);
        }
if (message.state !== undefined  && message.state !== "") {
          writer.uint32(26).string(message.state);
        }
if (message.uniqueSessionName !== undefined  && message.uniqueSessionName !== "") {
          writer.uint32(34).string(message.uniqueSessionName);
        }
if (message.bufferSizeKb !== undefined && message.bufferSizeKb.length !== 0) {
              
          for (const v of message.bufferSizeKb) {
            writer.uint32(40).uint32(v!);
          }
        
            }
if (message.durationMs !== undefined  && message.durationMs !== 0) {
          writer.uint32(48).uint32(message.durationMs);
        }
if (message.numDataSources !== undefined  && message.numDataSources !== 0) {
          writer.uint32(56).uint32(message.numDataSources);
        }
if (message.startRealtimeNs !== undefined  && message.startRealtimeNs !== 0) {
          writer.uint32(64).int64(message.startRealtimeNs);
        }
if (message.bugreportScore !== undefined  && message.bugreportScore !== 0) {
          writer.uint32(72).int32(message.bugreportScore);
        }
if (message.bugreportFilename !== undefined  && message.bugreportFilename !== "") {
          writer.uint32(82).string(message.bugreportFilename);
        }
if (message.isStarted !== undefined  && message.isStarted !== false) {
          writer.uint32(88).bool(message.isStarted);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TracingServiceState_TracingSession {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTracingServiceState_TracingSession();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.id = longToNumber(reader.uint64());
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.consumerUid = reader.int32();
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
        message.state = reader.string();
continue; }
case 4: {
if (tag !== 34) {
        break;
      }
    
        message.uniqueSessionName = reader.string();
continue; }
case 5: {
if (tag === 40) {
              
              message.bufferSizeKb!.push(reader.uint32());

              continue;
            }

            if (tag === 42) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.bufferSizeKb!.push(reader.uint32());
              }

              continue;
            }

            break;
          }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.durationMs = reader.uint32();
continue; }
case 7: {
if (tag !== 56) {
        break;
      }
    
        message.numDataSources = reader.uint32();
continue; }
case 8: {
if (tag !== 64) {
        break;
      }
    
        message.startRealtimeNs = longToNumber(reader.int64());
continue; }
case 9: {
if (tag !== 72) {
        break;
      }
    
        message.bugreportScore = reader.int32();
continue; }
case 10: {
if (tag !== 82) {
        break;
      }
    
        message.bugreportFilename = reader.string();
continue; }
case 11: {
if (tag !== 88) {
        break;
      }
    
        message.isStarted = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TracingServiceState_TracingSession {
      return {
id: isSet(object.id)
          ? globalThis.Number(object.id)
          : 0,
consumerUid: isSet(object.consumerUid)
          ? globalThis.Number(object.consumerUid)
          : 0,
state: isSet(object.state)
          ? globalThis.String(object.state)
          : "",
uniqueSessionName: isSet(object.uniqueSessionName)
          ? globalThis.String(object.uniqueSessionName)
          : "",
bufferSizeKb: globalThis.Array.isArray(object?.bufferSizeKb) ? object.bufferSizeKb.map((e: any) => globalThis.Number(e)): [],
durationMs: isSet(object.durationMs)
          ? globalThis.Number(object.durationMs)
          : 0,
numDataSources: isSet(object.numDataSources)
          ? globalThis.Number(object.numDataSources)
          : 0,
startRealtimeNs: isSet(object.startRealtimeNs)
          ? globalThis.Number(object.startRealtimeNs)
          : 0,
bugreportScore: isSet(object.bugreportScore)
          ? globalThis.Number(object.bugreportScore)
          : 0,
bugreportFilename: isSet(object.bugreportFilename)
          ? globalThis.String(object.bugreportFilename)
          : "",
isStarted: isSet(object.isStarted)
          ? globalThis.Boolean(object.isStarted)
          : false,
};
},

toJSON(message: TracingServiceState_TracingSession): unknown {
      const obj: any = {};
if (message.id !== undefined  && message.id !== 0) {
          obj.id = Math.round(message.id);
        }
if (message.consumerUid !== undefined  && message.consumerUid !== 0) {
          obj.consumerUid = Math.round(message.consumerUid);
        }
if (message.state !== undefined  && message.state !== "") {
          obj.state = message.state;
        }
if (message.uniqueSessionName !== undefined  && message.uniqueSessionName !== "") {
          obj.uniqueSessionName = message.uniqueSessionName;
        }
if (message.bufferSizeKb?.length) {
          obj.bufferSizeKb = message.bufferSizeKb.map(e => Math.round(e));
        }
if (message.durationMs !== undefined  && message.durationMs !== 0) {
          obj.durationMs = Math.round(message.durationMs);
        }
if (message.numDataSources !== undefined  && message.numDataSources !== 0) {
          obj.numDataSources = Math.round(message.numDataSources);
        }
if (message.startRealtimeNs !== undefined  && message.startRealtimeNs !== 0) {
          obj.startRealtimeNs = Math.round(message.startRealtimeNs);
        }
if (message.bugreportScore !== undefined  && message.bugreportScore !== 0) {
          obj.bugreportScore = Math.round(message.bugreportScore);
        }
if (message.bugreportFilename !== undefined  && message.bugreportFilename !== "") {
          obj.bugreportFilename = message.bugreportFilename;
        }
if (message.isStarted !== undefined  && message.isStarted !== false) {
          obj.isStarted = message.isStarted;
        }
return obj;
},

create<I extends Exact<DeepPartial<TracingServiceState_TracingSession>, I>>(base?: I): TracingServiceState_TracingSession {
        return TracingServiceState_TracingSession.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TracingServiceState_TracingSession>, I>>(object: I): TracingServiceState_TracingSession {
const message = createBaseTracingServiceState_TracingSession();
message.id = object.id ?? 0;
message.consumerUid = object.consumerUid ?? 0;
message.state = object.state ?? "";
message.uniqueSessionName = object.uniqueSessionName ?? "";
message.bufferSizeKb = object.bufferSizeKb?.map((e) => e) || [];
message.durationMs = object.durationMs ?? 0;
message.numDataSources = object.numDataSources ?? 0;
message.startRealtimeNs = object.startRealtimeNs ?? 0;
message.bugreportScore = object.bugreportScore ?? 0;
message.bugreportFilename = object.bugreportFilename ?? "";
message.isStarted = object.isStarted ?? false;
return message;
}
            };

function createBaseAndroidAflagsConfig(): AndroidAflagsConfig {
      return { pollMs: 0 };
    }

export const AndroidAflagsConfig: MessageFns<AndroidAflagsConfig> = {
              encode(
      message: AndroidAflagsConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.pollMs !== undefined  && message.pollMs !== 0) {
          writer.uint32(8).uint32(message.pollMs);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): AndroidAflagsConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseAndroidAflagsConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.pollMs = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): AndroidAflagsConfig {
      return {
pollMs: isSet(object.pollMs)
          ? globalThis.Number(object.pollMs)
          : 0,
};
},

toJSON(message: AndroidAflagsConfig): unknown {
      const obj: any = {};
if (message.pollMs !== undefined  && message.pollMs !== 0) {
          obj.pollMs = Math.round(message.pollMs);
        }
return obj;
},

create<I extends Exact<DeepPartial<AndroidAflagsConfig>, I>>(base?: I): AndroidAflagsConfig {
        return AndroidAflagsConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<AndroidAflagsConfig>, I>>(object: I): AndroidAflagsConfig {
const message = createBaseAndroidAflagsConfig();
message.pollMs = object.pollMs ?? 0;
return message;
}
            };

function createBaseAndroidGameInterventionListConfig(): AndroidGameInterventionListConfig {
      return { packageNameFilter: [] };
    }

export const AndroidGameInterventionListConfig: MessageFns<AndroidGameInterventionListConfig> = {
              encode(
      message: AndroidGameInterventionListConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.packageNameFilter !== undefined && message.packageNameFilter.length !== 0) {
              
          for (const v of message.packageNameFilter) {
            writer.uint32(10).string(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): AndroidGameInterventionListConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseAndroidGameInterventionListConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.packageNameFilter!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): AndroidGameInterventionListConfig {
      return {
packageNameFilter: globalThis.Array.isArray(object?.packageNameFilter) ? object.packageNameFilter.map((e: any) => globalThis.String(e)): [],
};
},

toJSON(message: AndroidGameInterventionListConfig): unknown {
      const obj: any = {};
if (message.packageNameFilter?.length) {
          obj.packageNameFilter = message.packageNameFilter;
        }
return obj;
},

create<I extends Exact<DeepPartial<AndroidGameInterventionListConfig>, I>>(base?: I): AndroidGameInterventionListConfig {
        return AndroidGameInterventionListConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<AndroidGameInterventionListConfig>, I>>(object: I): AndroidGameInterventionListConfig {
const message = createBaseAndroidGameInterventionListConfig();
message.packageNameFilter = object.packageNameFilter?.map((e) => e) || [];
return message;
}
            };

function createBaseAndroidInputEventConfig(): AndroidInputEventConfig {
      return { mode: 0,rules: [],traceDispatcherInputEvents: false,traceDispatcherWindowDispatch: false,traceEvdevEvents: false };
    }

export const AndroidInputEventConfig: MessageFns<AndroidInputEventConfig> = {
              encode(
      message: AndroidInputEventConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.mode !== undefined  && message.mode !== 0) {
          writer.uint32(8).int32(message.mode);
        }
if (message.rules !== undefined && message.rules.length !== 0) {
              
          for (const v of message.rules) {
            AndroidInputEventConfig_TraceRule.encode(v!, writer.uint32(18).fork()).join();
          }
        
            }
if (message.traceDispatcherInputEvents !== undefined  && message.traceDispatcherInputEvents !== false) {
          writer.uint32(24).bool(message.traceDispatcherInputEvents);
        }
if (message.traceDispatcherWindowDispatch !== undefined  && message.traceDispatcherWindowDispatch !== false) {
          writer.uint32(32).bool(message.traceDispatcherWindowDispatch);
        }
if (message.traceEvdevEvents !== undefined  && message.traceEvdevEvents !== false) {
          writer.uint32(40).bool(message.traceEvdevEvents);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): AndroidInputEventConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseAndroidInputEventConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.mode = reader.int32() as any;
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = AndroidInputEventConfig_TraceRule.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.rules!.push(el);
              }
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.traceDispatcherInputEvents = reader.bool();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.traceDispatcherWindowDispatch = reader.bool();
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.traceEvdevEvents = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): AndroidInputEventConfig {
      return {
mode: isSet(object.mode)
          ? androidInputEventConfig_TraceModeFromJSON(object.mode)
          : 0,
rules: globalThis.Array.isArray(object?.rules) ? object.rules.map((e: any) => AndroidInputEventConfig_TraceRule.fromJSON(e)): [],
traceDispatcherInputEvents: isSet(object.traceDispatcherInputEvents)
          ? globalThis.Boolean(object.traceDispatcherInputEvents)
          : false,
traceDispatcherWindowDispatch: isSet(object.traceDispatcherWindowDispatch)
          ? globalThis.Boolean(object.traceDispatcherWindowDispatch)
          : false,
traceEvdevEvents: isSet(object.traceEvdevEvents)
          ? globalThis.Boolean(object.traceEvdevEvents)
          : false,
};
},

toJSON(message: AndroidInputEventConfig): unknown {
      const obj: any = {};
if (message.mode !== undefined  && message.mode !== 0) {
          obj.mode = androidInputEventConfig_TraceModeToJSON(message.mode);
        }
if (message.rules?.length) {
          obj.rules = message.rules.map(e => AndroidInputEventConfig_TraceRule.toJSON(e));
        }
if (message.traceDispatcherInputEvents !== undefined  && message.traceDispatcherInputEvents !== false) {
          obj.traceDispatcherInputEvents = message.traceDispatcherInputEvents;
        }
if (message.traceDispatcherWindowDispatch !== undefined  && message.traceDispatcherWindowDispatch !== false) {
          obj.traceDispatcherWindowDispatch = message.traceDispatcherWindowDispatch;
        }
if (message.traceEvdevEvents !== undefined  && message.traceEvdevEvents !== false) {
          obj.traceEvdevEvents = message.traceEvdevEvents;
        }
return obj;
},

create<I extends Exact<DeepPartial<AndroidInputEventConfig>, I>>(base?: I): AndroidInputEventConfig {
        return AndroidInputEventConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<AndroidInputEventConfig>, I>>(object: I): AndroidInputEventConfig {
const message = createBaseAndroidInputEventConfig();
message.mode = object.mode ?? 0;
message.rules = object.rules?.map((e) => AndroidInputEventConfig_TraceRule.fromPartial(e)) || [];
message.traceDispatcherInputEvents = object.traceDispatcherInputEvents ?? false;
message.traceDispatcherWindowDispatch = object.traceDispatcherWindowDispatch ?? false;
message.traceEvdevEvents = object.traceEvdevEvents ?? false;
return message;
}
            };

function createBaseAndroidInputEventConfig_TraceRule(): AndroidInputEventConfig_TraceRule {
      return { traceLevel: 0,matchAllPackages: [],matchAnyPackages: [],matchSecure: false,matchImeConnectionActive: false };
    }

export const AndroidInputEventConfig_TraceRule: MessageFns<AndroidInputEventConfig_TraceRule> = {
              encode(
      message: AndroidInputEventConfig_TraceRule,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.traceLevel !== undefined  && message.traceLevel !== 0) {
          writer.uint32(8).int32(message.traceLevel);
        }
if (message.matchAllPackages !== undefined && message.matchAllPackages.length !== 0) {
              
          for (const v of message.matchAllPackages) {
            writer.uint32(18).string(v!);
          }
        
            }
if (message.matchAnyPackages !== undefined && message.matchAnyPackages.length !== 0) {
              
          for (const v of message.matchAnyPackages) {
            writer.uint32(26).string(v!);
          }
        
            }
if (message.matchSecure !== undefined  && message.matchSecure !== false) {
          writer.uint32(32).bool(message.matchSecure);
        }
if (message.matchImeConnectionActive !== undefined  && message.matchImeConnectionActive !== false) {
          writer.uint32(40).bool(message.matchImeConnectionActive);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): AndroidInputEventConfig_TraceRule {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseAndroidInputEventConfig_TraceRule();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.traceLevel = reader.int32() as any;
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.matchAllPackages!.push(el);
              }
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.matchAnyPackages!.push(el);
              }
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.matchSecure = reader.bool();
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.matchImeConnectionActive = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): AndroidInputEventConfig_TraceRule {
      return {
traceLevel: isSet(object.traceLevel)
          ? androidInputEventConfig_TraceLevelFromJSON(object.traceLevel)
          : 0,
matchAllPackages: globalThis.Array.isArray(object?.matchAllPackages) ? object.matchAllPackages.map((e: any) => globalThis.String(e)): [],
matchAnyPackages: globalThis.Array.isArray(object?.matchAnyPackages) ? object.matchAnyPackages.map((e: any) => globalThis.String(e)): [],
matchSecure: isSet(object.matchSecure)
          ? globalThis.Boolean(object.matchSecure)
          : false,
matchImeConnectionActive: isSet(object.matchImeConnectionActive)
          ? globalThis.Boolean(object.matchImeConnectionActive)
          : false,
};
},

toJSON(message: AndroidInputEventConfig_TraceRule): unknown {
      const obj: any = {};
if (message.traceLevel !== undefined  && message.traceLevel !== 0) {
          obj.traceLevel = androidInputEventConfig_TraceLevelToJSON(message.traceLevel);
        }
if (message.matchAllPackages?.length) {
          obj.matchAllPackages = message.matchAllPackages;
        }
if (message.matchAnyPackages?.length) {
          obj.matchAnyPackages = message.matchAnyPackages;
        }
if (message.matchSecure !== undefined  && message.matchSecure !== false) {
          obj.matchSecure = message.matchSecure;
        }
if (message.matchImeConnectionActive !== undefined  && message.matchImeConnectionActive !== false) {
          obj.matchImeConnectionActive = message.matchImeConnectionActive;
        }
return obj;
},

create<I extends Exact<DeepPartial<AndroidInputEventConfig_TraceRule>, I>>(base?: I): AndroidInputEventConfig_TraceRule {
        return AndroidInputEventConfig_TraceRule.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<AndroidInputEventConfig_TraceRule>, I>>(object: I): AndroidInputEventConfig_TraceRule {
const message = createBaseAndroidInputEventConfig_TraceRule();
message.traceLevel = object.traceLevel ?? 0;
message.matchAllPackages = object.matchAllPackages?.map((e) => e) || [];
message.matchAnyPackages = object.matchAnyPackages?.map((e) => e) || [];
message.matchSecure = object.matchSecure ?? false;
message.matchImeConnectionActive = object.matchImeConnectionActive ?? false;
return message;
}
            };

function createBaseAndroidLogConfig(): AndroidLogConfig {
      return { logIds: [],minPrio: 0,filterTags: [],preserveLogBuffer: false };
    }

export const AndroidLogConfig: MessageFns<AndroidLogConfig> = {
              encode(
      message: AndroidLogConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.logIds !== undefined && message.logIds.length !== 0) {
              
          for (const v of message.logIds) {
            writer.uint32(8).int32(v!);
          }
        
            }
if (message.minPrio !== undefined  && message.minPrio !== 0) {
          writer.uint32(24).int32(message.minPrio);
        }
if (message.filterTags !== undefined && message.filterTags.length !== 0) {
              
          for (const v of message.filterTags) {
            writer.uint32(34).string(v!);
          }
        
            }
if (message.preserveLogBuffer !== undefined  && message.preserveLogBuffer !== false) {
          writer.uint32(40).bool(message.preserveLogBuffer);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): AndroidLogConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseAndroidLogConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag === 8) {
              
              message.logIds!.push(reader.int32() as any);

              continue;
            }

            if (tag === 10) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.logIds!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.minPrio = reader.int32() as any;
continue; }
case 4: {
if (tag !== 34) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.filterTags!.push(el);
              }
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.preserveLogBuffer = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): AndroidLogConfig {
      return {
logIds: globalThis.Array.isArray(object?.logIds) ? object.logIds.map((e: any) => androidLogIdFromJSON(e)): [],
minPrio: isSet(object.minPrio)
          ? androidLogPriorityFromJSON(object.minPrio)
          : 0,
filterTags: globalThis.Array.isArray(object?.filterTags) ? object.filterTags.map((e: any) => globalThis.String(e)): [],
preserveLogBuffer: isSet(object.preserveLogBuffer)
          ? globalThis.Boolean(object.preserveLogBuffer)
          : false,
};
},

toJSON(message: AndroidLogConfig): unknown {
      const obj: any = {};
if (message.logIds?.length) {
          obj.logIds = message.logIds.map(e => androidLogIdToJSON(e));
        }
if (message.minPrio !== undefined  && message.minPrio !== 0) {
          obj.minPrio = androidLogPriorityToJSON(message.minPrio);
        }
if (message.filterTags?.length) {
          obj.filterTags = message.filterTags;
        }
if (message.preserveLogBuffer !== undefined  && message.preserveLogBuffer !== false) {
          obj.preserveLogBuffer = message.preserveLogBuffer;
        }
return obj;
},

create<I extends Exact<DeepPartial<AndroidLogConfig>, I>>(base?: I): AndroidLogConfig {
        return AndroidLogConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<AndroidLogConfig>, I>>(object: I): AndroidLogConfig {
const message = createBaseAndroidLogConfig();
message.logIds = object.logIds?.map((e) => e) || [];
message.minPrio = object.minPrio ?? 0;
message.filterTags = object.filterTags?.map((e) => e) || [];
message.preserveLogBuffer = object.preserveLogBuffer ?? false;
return message;
}
            };

function createBaseAndroidPolledStateConfig(): AndroidPolledStateConfig {
      return { pollMs: 0 };
    }

export const AndroidPolledStateConfig: MessageFns<AndroidPolledStateConfig> = {
              encode(
      message: AndroidPolledStateConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.pollMs !== undefined  && message.pollMs !== 0) {
          writer.uint32(8).uint32(message.pollMs);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): AndroidPolledStateConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseAndroidPolledStateConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.pollMs = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): AndroidPolledStateConfig {
      return {
pollMs: isSet(object.pollMs)
          ? globalThis.Number(object.pollMs)
          : 0,
};
},

toJSON(message: AndroidPolledStateConfig): unknown {
      const obj: any = {};
if (message.pollMs !== undefined  && message.pollMs !== 0) {
          obj.pollMs = Math.round(message.pollMs);
        }
return obj;
},

create<I extends Exact<DeepPartial<AndroidPolledStateConfig>, I>>(base?: I): AndroidPolledStateConfig {
        return AndroidPolledStateConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<AndroidPolledStateConfig>, I>>(object: I): AndroidPolledStateConfig {
const message = createBaseAndroidPolledStateConfig();
message.pollMs = object.pollMs ?? 0;
return message;
}
            };

function createBaseAndroidSdkSyspropGuardConfig(): AndroidSdkSyspropGuardConfig {
      return { surfaceflingerSkiaTrackEvents: false,hwuiSkiaTrackEvents: false,hwuiPackageNameFilter: [] };
    }

export const AndroidSdkSyspropGuardConfig: MessageFns<AndroidSdkSyspropGuardConfig> = {
              encode(
      message: AndroidSdkSyspropGuardConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.surfaceflingerSkiaTrackEvents !== undefined  && message.surfaceflingerSkiaTrackEvents !== false) {
          writer.uint32(8).bool(message.surfaceflingerSkiaTrackEvents);
        }
if (message.hwuiSkiaTrackEvents !== undefined  && message.hwuiSkiaTrackEvents !== false) {
          writer.uint32(16).bool(message.hwuiSkiaTrackEvents);
        }
if (message.hwuiPackageNameFilter !== undefined && message.hwuiPackageNameFilter.length !== 0) {
              
          for (const v of message.hwuiPackageNameFilter) {
            writer.uint32(26).string(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): AndroidSdkSyspropGuardConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseAndroidSdkSyspropGuardConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.surfaceflingerSkiaTrackEvents = reader.bool();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.hwuiSkiaTrackEvents = reader.bool();
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.hwuiPackageNameFilter!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): AndroidSdkSyspropGuardConfig {
      return {
surfaceflingerSkiaTrackEvents: isSet(object.surfaceflingerSkiaTrackEvents)
          ? globalThis.Boolean(object.surfaceflingerSkiaTrackEvents)
          : false,
hwuiSkiaTrackEvents: isSet(object.hwuiSkiaTrackEvents)
          ? globalThis.Boolean(object.hwuiSkiaTrackEvents)
          : false,
hwuiPackageNameFilter: globalThis.Array.isArray(object?.hwuiPackageNameFilter) ? object.hwuiPackageNameFilter.map((e: any) => globalThis.String(e)): [],
};
},

toJSON(message: AndroidSdkSyspropGuardConfig): unknown {
      const obj: any = {};
if (message.surfaceflingerSkiaTrackEvents !== undefined  && message.surfaceflingerSkiaTrackEvents !== false) {
          obj.surfaceflingerSkiaTrackEvents = message.surfaceflingerSkiaTrackEvents;
        }
if (message.hwuiSkiaTrackEvents !== undefined  && message.hwuiSkiaTrackEvents !== false) {
          obj.hwuiSkiaTrackEvents = message.hwuiSkiaTrackEvents;
        }
if (message.hwuiPackageNameFilter?.length) {
          obj.hwuiPackageNameFilter = message.hwuiPackageNameFilter;
        }
return obj;
},

create<I extends Exact<DeepPartial<AndroidSdkSyspropGuardConfig>, I>>(base?: I): AndroidSdkSyspropGuardConfig {
        return AndroidSdkSyspropGuardConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<AndroidSdkSyspropGuardConfig>, I>>(object: I): AndroidSdkSyspropGuardConfig {
const message = createBaseAndroidSdkSyspropGuardConfig();
message.surfaceflingerSkiaTrackEvents = object.surfaceflingerSkiaTrackEvents ?? false;
message.hwuiSkiaTrackEvents = object.hwuiSkiaTrackEvents ?? false;
message.hwuiPackageNameFilter = object.hwuiPackageNameFilter?.map((e) => e) || [];
return message;
}
            };

function createBaseAndroidSystemPropertyConfig(): AndroidSystemPropertyConfig {
      return { pollMs: 0,propertyName: [] };
    }

export const AndroidSystemPropertyConfig: MessageFns<AndroidSystemPropertyConfig> = {
              encode(
      message: AndroidSystemPropertyConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.pollMs !== undefined  && message.pollMs !== 0) {
          writer.uint32(8).uint32(message.pollMs);
        }
if (message.propertyName !== undefined && message.propertyName.length !== 0) {
              
          for (const v of message.propertyName) {
            writer.uint32(18).string(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): AndroidSystemPropertyConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseAndroidSystemPropertyConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.pollMs = reader.uint32();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.propertyName!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): AndroidSystemPropertyConfig {
      return {
pollMs: isSet(object.pollMs)
          ? globalThis.Number(object.pollMs)
          : 0,
propertyName: globalThis.Array.isArray(object?.propertyName) ? object.propertyName.map((e: any) => globalThis.String(e)): [],
};
},

toJSON(message: AndroidSystemPropertyConfig): unknown {
      const obj: any = {};
if (message.pollMs !== undefined  && message.pollMs !== 0) {
          obj.pollMs = Math.round(message.pollMs);
        }
if (message.propertyName?.length) {
          obj.propertyName = message.propertyName;
        }
return obj;
},

create<I extends Exact<DeepPartial<AndroidSystemPropertyConfig>, I>>(base?: I): AndroidSystemPropertyConfig {
        return AndroidSystemPropertyConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<AndroidSystemPropertyConfig>, I>>(object: I): AndroidSystemPropertyConfig {
const message = createBaseAndroidSystemPropertyConfig();
message.pollMs = object.pollMs ?? 0;
message.propertyName = object.propertyName?.map((e) => e) || [];
return message;
}
            };

function createBaseAppWakelocksConfig(): AppWakelocksConfig {
      return { writeDelayMs: 0,filterDurationBelowMs: 0,dropOwnerPid: false };
    }

export const AppWakelocksConfig: MessageFns<AppWakelocksConfig> = {
              encode(
      message: AppWakelocksConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.writeDelayMs !== undefined  && message.writeDelayMs !== 0) {
          writer.uint32(8).int32(message.writeDelayMs);
        }
if (message.filterDurationBelowMs !== undefined  && message.filterDurationBelowMs !== 0) {
          writer.uint32(16).int32(message.filterDurationBelowMs);
        }
if (message.dropOwnerPid !== undefined  && message.dropOwnerPid !== false) {
          writer.uint32(24).bool(message.dropOwnerPid);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): AppWakelocksConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseAppWakelocksConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.writeDelayMs = reader.int32();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.filterDurationBelowMs = reader.int32();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.dropOwnerPid = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): AppWakelocksConfig {
      return {
writeDelayMs: isSet(object.writeDelayMs)
          ? globalThis.Number(object.writeDelayMs)
          : 0,
filterDurationBelowMs: isSet(object.filterDurationBelowMs)
          ? globalThis.Number(object.filterDurationBelowMs)
          : 0,
dropOwnerPid: isSet(object.dropOwnerPid)
          ? globalThis.Boolean(object.dropOwnerPid)
          : false,
};
},

toJSON(message: AppWakelocksConfig): unknown {
      const obj: any = {};
if (message.writeDelayMs !== undefined  && message.writeDelayMs !== 0) {
          obj.writeDelayMs = Math.round(message.writeDelayMs);
        }
if (message.filterDurationBelowMs !== undefined  && message.filterDurationBelowMs !== 0) {
          obj.filterDurationBelowMs = Math.round(message.filterDurationBelowMs);
        }
if (message.dropOwnerPid !== undefined  && message.dropOwnerPid !== false) {
          obj.dropOwnerPid = message.dropOwnerPid;
        }
return obj;
},

create<I extends Exact<DeepPartial<AppWakelocksConfig>, I>>(base?: I): AppWakelocksConfig {
        return AppWakelocksConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<AppWakelocksConfig>, I>>(object: I): AppWakelocksConfig {
const message = createBaseAppWakelocksConfig();
message.writeDelayMs = object.writeDelayMs ?? 0;
message.filterDurationBelowMs = object.filterDurationBelowMs ?? 0;
message.dropOwnerPid = object.dropOwnerPid ?? false;
return message;
}
            };

function createBaseCpuPerUidConfig(): CpuPerUidConfig {
      return { pollMs: 0 };
    }

export const CpuPerUidConfig: MessageFns<CpuPerUidConfig> = {
              encode(
      message: CpuPerUidConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.pollMs !== undefined  && message.pollMs !== 0) {
          writer.uint32(8).uint32(message.pollMs);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): CpuPerUidConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseCpuPerUidConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.pollMs = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): CpuPerUidConfig {
      return {
pollMs: isSet(object.pollMs)
          ? globalThis.Number(object.pollMs)
          : 0,
};
},

toJSON(message: CpuPerUidConfig): unknown {
      const obj: any = {};
if (message.pollMs !== undefined  && message.pollMs !== 0) {
          obj.pollMs = Math.round(message.pollMs);
        }
return obj;
},

create<I extends Exact<DeepPartial<CpuPerUidConfig>, I>>(base?: I): CpuPerUidConfig {
        return CpuPerUidConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<CpuPerUidConfig>, I>>(object: I): CpuPerUidConfig {
const message = createBaseCpuPerUidConfig();
message.pollMs = object.pollMs ?? 0;
return message;
}
            };

function createBaseDisplayVideoConfig(): DisplayVideoConfig {
      return { scale: 0,format: 0,keyFrameIntervalSecs: 0,maxStreamSizeBytes: 0 };
    }

export const DisplayVideoConfig: MessageFns<DisplayVideoConfig> = {
              encode(
      message: DisplayVideoConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.scale !== undefined  && message.scale !== 0) {
          writer.uint32(13).float(message.scale);
        }
if (message.format !== undefined  && message.format !== 0) {
          writer.uint32(16).int32(message.format);
        }
if (message.keyFrameIntervalSecs !== undefined  && message.keyFrameIntervalSecs !== 0) {
          writer.uint32(24).uint32(message.keyFrameIntervalSecs);
        }
if (message.maxStreamSizeBytes !== undefined  && message.maxStreamSizeBytes !== 0) {
          writer.uint32(32).uint64(message.maxStreamSizeBytes);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): DisplayVideoConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseDisplayVideoConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 13) {
        break;
      }
    
        message.scale = reader.float();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.format = reader.int32() as any;
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.keyFrameIntervalSecs = reader.uint32();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.maxStreamSizeBytes = longToNumber(reader.uint64());
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): DisplayVideoConfig {
      return {
scale: isSet(object.scale)
          ? globalThis.Number(object.scale)
          : 0,
format: isSet(object.format)
          ? displayVideoConfig_FormatFromJSON(object.format)
          : 0,
keyFrameIntervalSecs: isSet(object.keyFrameIntervalSecs)
          ? globalThis.Number(object.keyFrameIntervalSecs)
          : 0,
maxStreamSizeBytes: isSet(object.maxStreamSizeBytes)
          ? globalThis.Number(object.maxStreamSizeBytes)
          : 0,
};
},

toJSON(message: DisplayVideoConfig): unknown {
      const obj: any = {};
if (message.scale !== undefined  && message.scale !== 0) {
          obj.scale = message.scale;
        }
if (message.format !== undefined  && message.format !== 0) {
          obj.format = displayVideoConfig_FormatToJSON(message.format);
        }
if (message.keyFrameIntervalSecs !== undefined  && message.keyFrameIntervalSecs !== 0) {
          obj.keyFrameIntervalSecs = Math.round(message.keyFrameIntervalSecs);
        }
if (message.maxStreamSizeBytes !== undefined  && message.maxStreamSizeBytes !== 0) {
          obj.maxStreamSizeBytes = Math.round(message.maxStreamSizeBytes);
        }
return obj;
},

create<I extends Exact<DeepPartial<DisplayVideoConfig>, I>>(base?: I): DisplayVideoConfig {
        return DisplayVideoConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<DisplayVideoConfig>, I>>(object: I): DisplayVideoConfig {
const message = createBaseDisplayVideoConfig();
message.scale = object.scale ?? 0;
message.format = object.format ?? 0;
message.keyFrameIntervalSecs = object.keyFrameIntervalSecs ?? 0;
message.maxStreamSizeBytes = object.maxStreamSizeBytes ?? 0;
return message;
}
            };

function createBaseInputMethodConfig(): InputMethodConfig {
      return { client: false,service: false,managerService: false };
    }

export const InputMethodConfig: MessageFns<InputMethodConfig> = {
              encode(
      message: InputMethodConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.client !== undefined  && message.client !== false) {
          writer.uint32(8).bool(message.client);
        }
if (message.service !== undefined  && message.service !== false) {
          writer.uint32(16).bool(message.service);
        }
if (message.managerService !== undefined  && message.managerService !== false) {
          writer.uint32(24).bool(message.managerService);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): InputMethodConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseInputMethodConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.client = reader.bool();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.service = reader.bool();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.managerService = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): InputMethodConfig {
      return {
client: isSet(object.client)
          ? globalThis.Boolean(object.client)
          : false,
service: isSet(object.service)
          ? globalThis.Boolean(object.service)
          : false,
managerService: isSet(object.managerService)
          ? globalThis.Boolean(object.managerService)
          : false,
};
},

toJSON(message: InputMethodConfig): unknown {
      const obj: any = {};
if (message.client !== undefined  && message.client !== false) {
          obj.client = message.client;
        }
if (message.service !== undefined  && message.service !== false) {
          obj.service = message.service;
        }
if (message.managerService !== undefined  && message.managerService !== false) {
          obj.managerService = message.managerService;
        }
return obj;
},

create<I extends Exact<DeepPartial<InputMethodConfig>, I>>(base?: I): InputMethodConfig {
        return InputMethodConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<InputMethodConfig>, I>>(object: I): InputMethodConfig {
const message = createBaseInputMethodConfig();
message.client = object.client ?? false;
message.service = object.service ?? false;
message.managerService = object.managerService ?? false;
return message;
}
            };

function createBaseKernelWakelocksConfig(): KernelWakelocksConfig {
      return { pollMs: 0 };
    }

export const KernelWakelocksConfig: MessageFns<KernelWakelocksConfig> = {
              encode(
      message: KernelWakelocksConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.pollMs !== undefined  && message.pollMs !== 0) {
          writer.uint32(8).uint32(message.pollMs);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): KernelWakelocksConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseKernelWakelocksConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.pollMs = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): KernelWakelocksConfig {
      return {
pollMs: isSet(object.pollMs)
          ? globalThis.Number(object.pollMs)
          : 0,
};
},

toJSON(message: KernelWakelocksConfig): unknown {
      const obj: any = {};
if (message.pollMs !== undefined  && message.pollMs !== 0) {
          obj.pollMs = Math.round(message.pollMs);
        }
return obj;
},

create<I extends Exact<DeepPartial<KernelWakelocksConfig>, I>>(base?: I): KernelWakelocksConfig {
        return KernelWakelocksConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<KernelWakelocksConfig>, I>>(object: I): KernelWakelocksConfig {
const message = createBaseKernelWakelocksConfig();
message.pollMs = object.pollMs ?? 0;
return message;
}
            };

function createBaseNetworkPacketTraceConfig(): NetworkPacketTraceConfig {
      return { pollMs: 0,aggregationThreshold: 0,internLimit: 0,dropLocalPort: false,dropRemotePort: false,dropTcpFlags: false };
    }

export const NetworkPacketTraceConfig: MessageFns<NetworkPacketTraceConfig> = {
              encode(
      message: NetworkPacketTraceConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.pollMs !== undefined  && message.pollMs !== 0) {
          writer.uint32(8).uint32(message.pollMs);
        }
if (message.aggregationThreshold !== undefined  && message.aggregationThreshold !== 0) {
          writer.uint32(16).uint32(message.aggregationThreshold);
        }
if (message.internLimit !== undefined  && message.internLimit !== 0) {
          writer.uint32(24).uint32(message.internLimit);
        }
if (message.dropLocalPort !== undefined  && message.dropLocalPort !== false) {
          writer.uint32(32).bool(message.dropLocalPort);
        }
if (message.dropRemotePort !== undefined  && message.dropRemotePort !== false) {
          writer.uint32(40).bool(message.dropRemotePort);
        }
if (message.dropTcpFlags !== undefined  && message.dropTcpFlags !== false) {
          writer.uint32(48).bool(message.dropTcpFlags);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): NetworkPacketTraceConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseNetworkPacketTraceConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.pollMs = reader.uint32();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.aggregationThreshold = reader.uint32();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.internLimit = reader.uint32();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.dropLocalPort = reader.bool();
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.dropRemotePort = reader.bool();
continue; }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.dropTcpFlags = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): NetworkPacketTraceConfig {
      return {
pollMs: isSet(object.pollMs)
          ? globalThis.Number(object.pollMs)
          : 0,
aggregationThreshold: isSet(object.aggregationThreshold)
          ? globalThis.Number(object.aggregationThreshold)
          : 0,
internLimit: isSet(object.internLimit)
          ? globalThis.Number(object.internLimit)
          : 0,
dropLocalPort: isSet(object.dropLocalPort)
          ? globalThis.Boolean(object.dropLocalPort)
          : false,
dropRemotePort: isSet(object.dropRemotePort)
          ? globalThis.Boolean(object.dropRemotePort)
          : false,
dropTcpFlags: isSet(object.dropTcpFlags)
          ? globalThis.Boolean(object.dropTcpFlags)
          : false,
};
},

toJSON(message: NetworkPacketTraceConfig): unknown {
      const obj: any = {};
if (message.pollMs !== undefined  && message.pollMs !== 0) {
          obj.pollMs = Math.round(message.pollMs);
        }
if (message.aggregationThreshold !== undefined  && message.aggregationThreshold !== 0) {
          obj.aggregationThreshold = Math.round(message.aggregationThreshold);
        }
if (message.internLimit !== undefined  && message.internLimit !== 0) {
          obj.internLimit = Math.round(message.internLimit);
        }
if (message.dropLocalPort !== undefined  && message.dropLocalPort !== false) {
          obj.dropLocalPort = message.dropLocalPort;
        }
if (message.dropRemotePort !== undefined  && message.dropRemotePort !== false) {
          obj.dropRemotePort = message.dropRemotePort;
        }
if (message.dropTcpFlags !== undefined  && message.dropTcpFlags !== false) {
          obj.dropTcpFlags = message.dropTcpFlags;
        }
return obj;
},

create<I extends Exact<DeepPartial<NetworkPacketTraceConfig>, I>>(base?: I): NetworkPacketTraceConfig {
        return NetworkPacketTraceConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<NetworkPacketTraceConfig>, I>>(object: I): NetworkPacketTraceConfig {
const message = createBaseNetworkPacketTraceConfig();
message.pollMs = object.pollMs ?? 0;
message.aggregationThreshold = object.aggregationThreshold ?? 0;
message.internLimit = object.internLimit ?? 0;
message.dropLocalPort = object.dropLocalPort ?? false;
message.dropRemotePort = object.dropRemotePort ?? false;
message.dropTcpFlags = object.dropTcpFlags ?? false;
return message;
}
            };

function createBasePackagesListConfig(): PackagesListConfig {
      return { packageNameFilter: [],packageNameRegexFilter: [],onlyWriteOnCpuUseEveryMs: 0 };
    }

export const PackagesListConfig: MessageFns<PackagesListConfig> = {
              encode(
      message: PackagesListConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.packageNameFilter !== undefined && message.packageNameFilter.length !== 0) {
              
          for (const v of message.packageNameFilter) {
            writer.uint32(10).string(v!);
          }
        
            }
if (message.packageNameRegexFilter !== undefined && message.packageNameRegexFilter.length !== 0) {
              
          for (const v of message.packageNameRegexFilter) {
            writer.uint32(26).string(v!);
          }
        
            }
if (message.onlyWriteOnCpuUseEveryMs !== undefined  && message.onlyWriteOnCpuUseEveryMs !== 0) {
          writer.uint32(16).uint32(message.onlyWriteOnCpuUseEveryMs);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): PackagesListConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePackagesListConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.packageNameFilter!.push(el);
              }
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.packageNameRegexFilter!.push(el);
              }
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.onlyWriteOnCpuUseEveryMs = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): PackagesListConfig {
      return {
packageNameFilter: globalThis.Array.isArray(object?.packageNameFilter) ? object.packageNameFilter.map((e: any) => globalThis.String(e)): [],
packageNameRegexFilter: globalThis.Array.isArray(object?.packageNameRegexFilter) ? object.packageNameRegexFilter.map((e: any) => globalThis.String(e)): [],
onlyWriteOnCpuUseEveryMs: isSet(object.onlyWriteOnCpuUseEveryMs)
          ? globalThis.Number(object.onlyWriteOnCpuUseEveryMs)
          : 0,
};
},

toJSON(message: PackagesListConfig): unknown {
      const obj: any = {};
if (message.packageNameFilter?.length) {
          obj.packageNameFilter = message.packageNameFilter;
        }
if (message.packageNameRegexFilter?.length) {
          obj.packageNameRegexFilter = message.packageNameRegexFilter;
        }
if (message.onlyWriteOnCpuUseEveryMs !== undefined  && message.onlyWriteOnCpuUseEveryMs !== 0) {
          obj.onlyWriteOnCpuUseEveryMs = Math.round(message.onlyWriteOnCpuUseEveryMs);
        }
return obj;
},

create<I extends Exact<DeepPartial<PackagesListConfig>, I>>(base?: I): PackagesListConfig {
        return PackagesListConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<PackagesListConfig>, I>>(object: I): PackagesListConfig {
const message = createBasePackagesListConfig();
message.packageNameFilter = object.packageNameFilter?.map((e) => e) || [];
message.packageNameRegexFilter = object.packageNameRegexFilter?.map((e) => e) || [];
message.onlyWriteOnCpuUseEveryMs = object.onlyWriteOnCpuUseEveryMs ?? 0;
return message;
}
            };

function createBasePixelModemConfig(): PixelModemConfig {
      return { eventGroup: 0,pigweedHashAllowList: [],pigweedHashDenyList: [] };
    }

export const PixelModemConfig: MessageFns<PixelModemConfig> = {
              encode(
      message: PixelModemConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.eventGroup !== undefined  && message.eventGroup !== 0) {
          writer.uint32(8).int32(message.eventGroup);
        }
if (message.pigweedHashAllowList !== undefined && message.pigweedHashAllowList.length !== 0) {
              
          for (const v of message.pigweedHashAllowList) {
            writer.uint32(16).int64(v!);
          }
        
            }
if (message.pigweedHashDenyList !== undefined && message.pigweedHashDenyList.length !== 0) {
              
          for (const v of message.pigweedHashDenyList) {
            writer.uint32(24).int64(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): PixelModemConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePixelModemConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.eventGroup = reader.int32() as any;
continue; }
case 2: {
if (tag === 16) {
              
              message.pigweedHashAllowList!.push(longToNumber(reader.int64()));

              continue;
            }

            if (tag === 18) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.pigweedHashAllowList!.push(longToNumber(reader.int64()));
              }

              continue;
            }

            break;
          }
case 3: {
if (tag === 24) {
              
              message.pigweedHashDenyList!.push(longToNumber(reader.int64()));

              continue;
            }

            if (tag === 26) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.pigweedHashDenyList!.push(longToNumber(reader.int64()));
              }

              continue;
            }

            break;
          }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): PixelModemConfig {
      return {
eventGroup: isSet(object.eventGroup)
          ? pixelModemConfig_EventGroupFromJSON(object.eventGroup)
          : 0,
pigweedHashAllowList: globalThis.Array.isArray(object?.pigweedHashAllowList) ? object.pigweedHashAllowList.map((e: any) => globalThis.Number(e)): [],
pigweedHashDenyList: globalThis.Array.isArray(object?.pigweedHashDenyList) ? object.pigweedHashDenyList.map((e: any) => globalThis.Number(e)): [],
};
},

toJSON(message: PixelModemConfig): unknown {
      const obj: any = {};
if (message.eventGroup !== undefined  && message.eventGroup !== 0) {
          obj.eventGroup = pixelModemConfig_EventGroupToJSON(message.eventGroup);
        }
if (message.pigweedHashAllowList?.length) {
          obj.pigweedHashAllowList = message.pigweedHashAllowList.map(e => Math.round(e));
        }
if (message.pigweedHashDenyList?.length) {
          obj.pigweedHashDenyList = message.pigweedHashDenyList.map(e => Math.round(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<PixelModemConfig>, I>>(base?: I): PixelModemConfig {
        return PixelModemConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<PixelModemConfig>, I>>(object: I): PixelModemConfig {
const message = createBasePixelModemConfig();
message.eventGroup = object.eventGroup ?? 0;
message.pigweedHashAllowList = object.pigweedHashAllowList?.map((e) => e) || [];
message.pigweedHashDenyList = object.pigweedHashDenyList?.map((e) => e) || [];
return message;
}
            };

function createBaseProtoLogConfig(): ProtoLogConfig {
      return { groupOverrides: [],tracingMode: 0,defaultLogFromLevel: 0 };
    }

export const ProtoLogConfig: MessageFns<ProtoLogConfig> = {
              encode(
      message: ProtoLogConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.groupOverrides !== undefined && message.groupOverrides.length !== 0) {
              
          for (const v of message.groupOverrides) {
            ProtoLogGroup.encode(v!, writer.uint32(10).fork()).join();
          }
        
            }
if (message.tracingMode !== undefined  && message.tracingMode !== 0) {
          writer.uint32(16).int32(message.tracingMode);
        }
if (message.defaultLogFromLevel !== undefined  && message.defaultLogFromLevel !== 0) {
          writer.uint32(24).int32(message.defaultLogFromLevel);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): ProtoLogConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseProtoLogConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
              
              const el = ProtoLogGroup.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.groupOverrides!.push(el);
              }
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.tracingMode = reader.int32() as any;
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.defaultLogFromLevel = reader.int32() as any;
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): ProtoLogConfig {
      return {
groupOverrides: globalThis.Array.isArray(object?.groupOverrides) ? object.groupOverrides.map((e: any) => ProtoLogGroup.fromJSON(e)): [],
tracingMode: isSet(object.tracingMode)
          ? protoLogConfig_TracingModeFromJSON(object.tracingMode)
          : 0,
defaultLogFromLevel: isSet(object.defaultLogFromLevel)
          ? protoLogLevelFromJSON(object.defaultLogFromLevel)
          : 0,
};
},

toJSON(message: ProtoLogConfig): unknown {
      const obj: any = {};
if (message.groupOverrides?.length) {
          obj.groupOverrides = message.groupOverrides.map(e => ProtoLogGroup.toJSON(e));
        }
if (message.tracingMode !== undefined  && message.tracingMode !== 0) {
          obj.tracingMode = protoLogConfig_TracingModeToJSON(message.tracingMode);
        }
if (message.defaultLogFromLevel !== undefined  && message.defaultLogFromLevel !== 0) {
          obj.defaultLogFromLevel = protoLogLevelToJSON(message.defaultLogFromLevel);
        }
return obj;
},

create<I extends Exact<DeepPartial<ProtoLogConfig>, I>>(base?: I): ProtoLogConfig {
        return ProtoLogConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<ProtoLogConfig>, I>>(object: I): ProtoLogConfig {
const message = createBaseProtoLogConfig();
message.groupOverrides = object.groupOverrides?.map((e) => ProtoLogGroup.fromPartial(e)) || [];
message.tracingMode = object.tracingMode ?? 0;
message.defaultLogFromLevel = object.defaultLogFromLevel ?? 0;
return message;
}
            };

function createBaseProtoLogGroup(): ProtoLogGroup {
      return { groupName: "",logFrom: 0,collectStacktrace: false };
    }

export const ProtoLogGroup: MessageFns<ProtoLogGroup> = {
              encode(
      message: ProtoLogGroup,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.groupName !== undefined  && message.groupName !== "") {
          writer.uint32(10).string(message.groupName);
        }
if (message.logFrom !== undefined  && message.logFrom !== 0) {
          writer.uint32(16).int32(message.logFrom);
        }
if (message.collectStacktrace !== undefined  && message.collectStacktrace !== false) {
          writer.uint32(24).bool(message.collectStacktrace);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): ProtoLogGroup {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseProtoLogGroup();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.groupName = reader.string();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.logFrom = reader.int32() as any;
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.collectStacktrace = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): ProtoLogGroup {
      return {
groupName: isSet(object.groupName)
          ? globalThis.String(object.groupName)
          : "",
logFrom: isSet(object.logFrom)
          ? protoLogLevelFromJSON(object.logFrom)
          : 0,
collectStacktrace: isSet(object.collectStacktrace)
          ? globalThis.Boolean(object.collectStacktrace)
          : false,
};
},

toJSON(message: ProtoLogGroup): unknown {
      const obj: any = {};
if (message.groupName !== undefined  && message.groupName !== "") {
          obj.groupName = message.groupName;
        }
if (message.logFrom !== undefined  && message.logFrom !== 0) {
          obj.logFrom = protoLogLevelToJSON(message.logFrom);
        }
if (message.collectStacktrace !== undefined  && message.collectStacktrace !== false) {
          obj.collectStacktrace = message.collectStacktrace;
        }
return obj;
},

create<I extends Exact<DeepPartial<ProtoLogGroup>, I>>(base?: I): ProtoLogGroup {
        return ProtoLogGroup.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<ProtoLogGroup>, I>>(object: I): ProtoLogGroup {
const message = createBaseProtoLogGroup();
message.groupName = object.groupName ?? "";
message.logFrom = object.logFrom ?? 0;
message.collectStacktrace = object.collectStacktrace ?? false;
return message;
}
            };

function createBaseSurfaceFlingerLayersConfig(): SurfaceFlingerLayersConfig {
      return { mode: 0,traceFlags: [] };
    }

export const SurfaceFlingerLayersConfig: MessageFns<SurfaceFlingerLayersConfig> = {
              encode(
      message: SurfaceFlingerLayersConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.mode !== undefined  && message.mode !== 0) {
          writer.uint32(8).int32(message.mode);
        }
if (message.traceFlags !== undefined && message.traceFlags.length !== 0) {
              
          for (const v of message.traceFlags) {
            writer.uint32(16).int32(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): SurfaceFlingerLayersConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseSurfaceFlingerLayersConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.mode = reader.int32() as any;
continue; }
case 2: {
if (tag === 16) {
              
              message.traceFlags!.push(reader.int32() as any);

              continue;
            }

            if (tag === 18) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.traceFlags!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): SurfaceFlingerLayersConfig {
      return {
mode: isSet(object.mode)
          ? surfaceFlingerLayersConfig_ModeFromJSON(object.mode)
          : 0,
traceFlags: globalThis.Array.isArray(object?.traceFlags) ? object.traceFlags.map((e: any) => surfaceFlingerLayersConfig_TraceFlagFromJSON(e)): [],
};
},

toJSON(message: SurfaceFlingerLayersConfig): unknown {
      const obj: any = {};
if (message.mode !== undefined  && message.mode !== 0) {
          obj.mode = surfaceFlingerLayersConfig_ModeToJSON(message.mode);
        }
if (message.traceFlags?.length) {
          obj.traceFlags = message.traceFlags.map(e => surfaceFlingerLayersConfig_TraceFlagToJSON(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<SurfaceFlingerLayersConfig>, I>>(base?: I): SurfaceFlingerLayersConfig {
        return SurfaceFlingerLayersConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<SurfaceFlingerLayersConfig>, I>>(object: I): SurfaceFlingerLayersConfig {
const message = createBaseSurfaceFlingerLayersConfig();
message.mode = object.mode ?? 0;
message.traceFlags = object.traceFlags?.map((e) => e) || [];
return message;
}
            };

function createBaseSurfaceFlingerTransactionsConfig(): SurfaceFlingerTransactionsConfig {
      return { mode: 0 };
    }

export const SurfaceFlingerTransactionsConfig: MessageFns<SurfaceFlingerTransactionsConfig> = {
              encode(
      message: SurfaceFlingerTransactionsConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.mode !== undefined  && message.mode !== 0) {
          writer.uint32(8).int32(message.mode);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): SurfaceFlingerTransactionsConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseSurfaceFlingerTransactionsConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.mode = reader.int32() as any;
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): SurfaceFlingerTransactionsConfig {
      return {
mode: isSet(object.mode)
          ? surfaceFlingerTransactionsConfig_ModeFromJSON(object.mode)
          : 0,
};
},

toJSON(message: SurfaceFlingerTransactionsConfig): unknown {
      const obj: any = {};
if (message.mode !== undefined  && message.mode !== 0) {
          obj.mode = surfaceFlingerTransactionsConfig_ModeToJSON(message.mode);
        }
return obj;
},

create<I extends Exact<DeepPartial<SurfaceFlingerTransactionsConfig>, I>>(base?: I): SurfaceFlingerTransactionsConfig {
        return SurfaceFlingerTransactionsConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<SurfaceFlingerTransactionsConfig>, I>>(object: I): SurfaceFlingerTransactionsConfig {
const message = createBaseSurfaceFlingerTransactionsConfig();
message.mode = object.mode ?? 0;
return message;
}
            };

function createBaseAndroidUserListConfig(): AndroidUserListConfig {
      return { userTypeFilter: [] };
    }

export const AndroidUserListConfig: MessageFns<AndroidUserListConfig> = {
              encode(
      message: AndroidUserListConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.userTypeFilter !== undefined && message.userTypeFilter.length !== 0) {
              
          for (const v of message.userTypeFilter) {
            writer.uint32(10).string(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): AndroidUserListConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseAndroidUserListConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.userTypeFilter!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): AndroidUserListConfig {
      return {
userTypeFilter: globalThis.Array.isArray(object?.userTypeFilter) ? object.userTypeFilter.map((e: any) => globalThis.String(e)): [],
};
},

toJSON(message: AndroidUserListConfig): unknown {
      const obj: any = {};
if (message.userTypeFilter?.length) {
          obj.userTypeFilter = message.userTypeFilter;
        }
return obj;
},

create<I extends Exact<DeepPartial<AndroidUserListConfig>, I>>(base?: I): AndroidUserListConfig {
        return AndroidUserListConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<AndroidUserListConfig>, I>>(object: I): AndroidUserListConfig {
const message = createBaseAndroidUserListConfig();
message.userTypeFilter = object.userTypeFilter?.map((e) => e) || [];
return message;
}
            };

function createBaseWindowManagerConfig(): WindowManagerConfig {
      return { logFrequency: 0,logLevel: 0,logMode: 0 };
    }

export const WindowManagerConfig: MessageFns<WindowManagerConfig> = {
              encode(
      message: WindowManagerConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.logFrequency !== undefined  && message.logFrequency !== 0) {
          writer.uint32(8).int32(message.logFrequency);
        }
if (message.logLevel !== undefined  && message.logLevel !== 0) {
          writer.uint32(16).int32(message.logLevel);
        }
if (message.logMode !== undefined  && message.logMode !== 0) {
          writer.uint32(24).int32(message.logMode);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): WindowManagerConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseWindowManagerConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.logFrequency = reader.int32() as any;
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.logLevel = reader.int32() as any;
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.logMode = reader.int32() as any;
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): WindowManagerConfig {
      return {
logFrequency: isSet(object.logFrequency)
          ? windowManagerConfig_LogFrequencyFromJSON(object.logFrequency)
          : 0,
logLevel: isSet(object.logLevel)
          ? windowManagerConfig_LogLevelFromJSON(object.logLevel)
          : 0,
logMode: isSet(object.logMode)
          ? windowManagerConfig_LogModeFromJSON(object.logMode)
          : 0,
};
},

toJSON(message: WindowManagerConfig): unknown {
      const obj: any = {};
if (message.logFrequency !== undefined  && message.logFrequency !== 0) {
          obj.logFrequency = windowManagerConfig_LogFrequencyToJSON(message.logFrequency);
        }
if (message.logLevel !== undefined  && message.logLevel !== 0) {
          obj.logLevel = windowManagerConfig_LogLevelToJSON(message.logLevel);
        }
if (message.logMode !== undefined  && message.logMode !== 0) {
          obj.logMode = windowManagerConfig_LogModeToJSON(message.logMode);
        }
return obj;
},

create<I extends Exact<DeepPartial<WindowManagerConfig>, I>>(base?: I): WindowManagerConfig {
        return WindowManagerConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<WindowManagerConfig>, I>>(object: I): WindowManagerConfig {
const message = createBaseWindowManagerConfig();
message.logFrequency = object.logFrequency ?? 0;
message.logLevel = object.logLevel ?? 0;
message.logMode = object.logMode ?? 0;
return message;
}
            };

function createBaseChromeConfig(): ChromeConfig {
      return { traceConfig: "",privacyFilteringEnabled: false,convertToLegacyJson: false,clientPriority: 0,jsonAgentLabelFilter: "",eventPackageNameFilterEnabled: false };
    }

export const ChromeConfig: MessageFns<ChromeConfig> = {
              encode(
      message: ChromeConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.traceConfig !== undefined  && message.traceConfig !== "") {
          writer.uint32(10).string(message.traceConfig);
        }
if (message.privacyFilteringEnabled !== undefined  && message.privacyFilteringEnabled !== false) {
          writer.uint32(16).bool(message.privacyFilteringEnabled);
        }
if (message.convertToLegacyJson !== undefined  && message.convertToLegacyJson !== false) {
          writer.uint32(24).bool(message.convertToLegacyJson);
        }
if (message.clientPriority !== undefined  && message.clientPriority !== 0) {
          writer.uint32(32).int32(message.clientPriority);
        }
if (message.jsonAgentLabelFilter !== undefined  && message.jsonAgentLabelFilter !== "") {
          writer.uint32(42).string(message.jsonAgentLabelFilter);
        }
if (message.eventPackageNameFilterEnabled !== undefined  && message.eventPackageNameFilterEnabled !== false) {
          writer.uint32(48).bool(message.eventPackageNameFilterEnabled);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): ChromeConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseChromeConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.traceConfig = reader.string();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.privacyFilteringEnabled = reader.bool();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.convertToLegacyJson = reader.bool();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.clientPriority = reader.int32() as any;
continue; }
case 5: {
if (tag !== 42) {
        break;
      }
    
        message.jsonAgentLabelFilter = reader.string();
continue; }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.eventPackageNameFilterEnabled = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): ChromeConfig {
      return {
traceConfig: isSet(object.traceConfig)
          ? globalThis.String(object.traceConfig)
          : "",
privacyFilteringEnabled: isSet(object.privacyFilteringEnabled)
          ? globalThis.Boolean(object.privacyFilteringEnabled)
          : false,
convertToLegacyJson: isSet(object.convertToLegacyJson)
          ? globalThis.Boolean(object.convertToLegacyJson)
          : false,
clientPriority: isSet(object.clientPriority)
          ? chromeConfig_ClientPriorityFromJSON(object.clientPriority)
          : 0,
jsonAgentLabelFilter: isSet(object.jsonAgentLabelFilter)
          ? globalThis.String(object.jsonAgentLabelFilter)
          : "",
eventPackageNameFilterEnabled: isSet(object.eventPackageNameFilterEnabled)
          ? globalThis.Boolean(object.eventPackageNameFilterEnabled)
          : false,
};
},

toJSON(message: ChromeConfig): unknown {
      const obj: any = {};
if (message.traceConfig !== undefined  && message.traceConfig !== "") {
          obj.traceConfig = message.traceConfig;
        }
if (message.privacyFilteringEnabled !== undefined  && message.privacyFilteringEnabled !== false) {
          obj.privacyFilteringEnabled = message.privacyFilteringEnabled;
        }
if (message.convertToLegacyJson !== undefined  && message.convertToLegacyJson !== false) {
          obj.convertToLegacyJson = message.convertToLegacyJson;
        }
if (message.clientPriority !== undefined  && message.clientPriority !== 0) {
          obj.clientPriority = chromeConfig_ClientPriorityToJSON(message.clientPriority);
        }
if (message.jsonAgentLabelFilter !== undefined  && message.jsonAgentLabelFilter !== "") {
          obj.jsonAgentLabelFilter = message.jsonAgentLabelFilter;
        }
if (message.eventPackageNameFilterEnabled !== undefined  && message.eventPackageNameFilterEnabled !== false) {
          obj.eventPackageNameFilterEnabled = message.eventPackageNameFilterEnabled;
        }
return obj;
},

create<I extends Exact<DeepPartial<ChromeConfig>, I>>(base?: I): ChromeConfig {
        return ChromeConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<ChromeConfig>, I>>(object: I): ChromeConfig {
const message = createBaseChromeConfig();
message.traceConfig = object.traceConfig ?? "";
message.privacyFilteringEnabled = object.privacyFilteringEnabled ?? false;
message.convertToLegacyJson = object.convertToLegacyJson ?? false;
message.clientPriority = object.clientPriority ?? 0;
message.jsonAgentLabelFilter = object.jsonAgentLabelFilter ?? "";
message.eventPackageNameFilterEnabled = object.eventPackageNameFilterEnabled ?? false;
return message;
}
            };

function createBaseChromiumHistogramSamplesConfig(): ChromiumHistogramSamplesConfig {
      return { histograms: [],filterHistogramNames: false };
    }

export const ChromiumHistogramSamplesConfig: MessageFns<ChromiumHistogramSamplesConfig> = {
              encode(
      message: ChromiumHistogramSamplesConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.histograms !== undefined && message.histograms.length !== 0) {
              
          for (const v of message.histograms) {
            ChromiumHistogramSamplesConfig_HistogramSample.encode(v!, writer.uint32(10).fork()).join();
          }
        
            }
if (message.filterHistogramNames !== undefined  && message.filterHistogramNames !== false) {
          writer.uint32(16).bool(message.filterHistogramNames);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): ChromiumHistogramSamplesConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseChromiumHistogramSamplesConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
              
              const el = ChromiumHistogramSamplesConfig_HistogramSample.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.histograms!.push(el);
              }
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.filterHistogramNames = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): ChromiumHistogramSamplesConfig {
      return {
histograms: globalThis.Array.isArray(object?.histograms) ? object.histograms.map((e: any) => ChromiumHistogramSamplesConfig_HistogramSample.fromJSON(e)): [],
filterHistogramNames: isSet(object.filterHistogramNames)
          ? globalThis.Boolean(object.filterHistogramNames)
          : false,
};
},

toJSON(message: ChromiumHistogramSamplesConfig): unknown {
      const obj: any = {};
if (message.histograms?.length) {
          obj.histograms = message.histograms.map(e => ChromiumHistogramSamplesConfig_HistogramSample.toJSON(e));
        }
if (message.filterHistogramNames !== undefined  && message.filterHistogramNames !== false) {
          obj.filterHistogramNames = message.filterHistogramNames;
        }
return obj;
},

create<I extends Exact<DeepPartial<ChromiumHistogramSamplesConfig>, I>>(base?: I): ChromiumHistogramSamplesConfig {
        return ChromiumHistogramSamplesConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<ChromiumHistogramSamplesConfig>, I>>(object: I): ChromiumHistogramSamplesConfig {
const message = createBaseChromiumHistogramSamplesConfig();
message.histograms = object.histograms?.map((e) => ChromiumHistogramSamplesConfig_HistogramSample.fromPartial(e)) || [];
message.filterHistogramNames = object.filterHistogramNames ?? false;
return message;
}
            };

function createBaseChromiumHistogramSamplesConfig_HistogramSample(): ChromiumHistogramSamplesConfig_HistogramSample {
      return { histogramName: "",minValue: 0,maxValue: 0 };
    }

export const ChromiumHistogramSamplesConfig_HistogramSample: MessageFns<ChromiumHistogramSamplesConfig_HistogramSample> = {
              encode(
      message: ChromiumHistogramSamplesConfig_HistogramSample,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.histogramName !== undefined  && message.histogramName !== "") {
          writer.uint32(10).string(message.histogramName);
        }
if (message.minValue !== undefined  && message.minValue !== 0) {
          writer.uint32(16).int64(message.minValue);
        }
if (message.maxValue !== undefined  && message.maxValue !== 0) {
          writer.uint32(24).int64(message.maxValue);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): ChromiumHistogramSamplesConfig_HistogramSample {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseChromiumHistogramSamplesConfig_HistogramSample();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.histogramName = reader.string();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.minValue = longToNumber(reader.int64());
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.maxValue = longToNumber(reader.int64());
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): ChromiumHistogramSamplesConfig_HistogramSample {
      return {
histogramName: isSet(object.histogramName)
          ? globalThis.String(object.histogramName)
          : "",
minValue: isSet(object.minValue)
          ? globalThis.Number(object.minValue)
          : 0,
maxValue: isSet(object.maxValue)
          ? globalThis.Number(object.maxValue)
          : 0,
};
},

toJSON(message: ChromiumHistogramSamplesConfig_HistogramSample): unknown {
      const obj: any = {};
if (message.histogramName !== undefined  && message.histogramName !== "") {
          obj.histogramName = message.histogramName;
        }
if (message.minValue !== undefined  && message.minValue !== 0) {
          obj.minValue = Math.round(message.minValue);
        }
if (message.maxValue !== undefined  && message.maxValue !== 0) {
          obj.maxValue = Math.round(message.maxValue);
        }
return obj;
},

create<I extends Exact<DeepPartial<ChromiumHistogramSamplesConfig_HistogramSample>, I>>(base?: I): ChromiumHistogramSamplesConfig_HistogramSample {
        return ChromiumHistogramSamplesConfig_HistogramSample.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<ChromiumHistogramSamplesConfig_HistogramSample>, I>>(object: I): ChromiumHistogramSamplesConfig_HistogramSample {
const message = createBaseChromiumHistogramSamplesConfig_HistogramSample();
message.histogramName = object.histogramName ?? "";
message.minValue = object.minValue ?? 0;
message.maxValue = object.maxValue ?? 0;
return message;
}
            };

function createBaseChromiumSystemMetricsConfig(): ChromiumSystemMetricsConfig {
      return { samplingIntervalMs: 0 };
    }

export const ChromiumSystemMetricsConfig: MessageFns<ChromiumSystemMetricsConfig> = {
              encode(
      message: ChromiumSystemMetricsConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.samplingIntervalMs !== undefined  && message.samplingIntervalMs !== 0) {
          writer.uint32(8).uint32(message.samplingIntervalMs);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): ChromiumSystemMetricsConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseChromiumSystemMetricsConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.samplingIntervalMs = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): ChromiumSystemMetricsConfig {
      return {
samplingIntervalMs: isSet(object.samplingIntervalMs)
          ? globalThis.Number(object.samplingIntervalMs)
          : 0,
};
},

toJSON(message: ChromiumSystemMetricsConfig): unknown {
      const obj: any = {};
if (message.samplingIntervalMs !== undefined  && message.samplingIntervalMs !== 0) {
          obj.samplingIntervalMs = Math.round(message.samplingIntervalMs);
        }
return obj;
},

create<I extends Exact<DeepPartial<ChromiumSystemMetricsConfig>, I>>(base?: I): ChromiumSystemMetricsConfig {
        return ChromiumSystemMetricsConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<ChromiumSystemMetricsConfig>, I>>(object: I): ChromiumSystemMetricsConfig {
const message = createBaseChromiumSystemMetricsConfig();
message.samplingIntervalMs = object.samplingIntervalMs ?? 0;
return message;
}
            };

function createBaseV8Config(): V8Config {
      return { logScriptSources: false,logInstructions: false };
    }

export const V8Config: MessageFns<V8Config> = {
              encode(
      message: V8Config,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.logScriptSources !== undefined  && message.logScriptSources !== false) {
          writer.uint32(8).bool(message.logScriptSources);
        }
if (message.logInstructions !== undefined  && message.logInstructions !== false) {
          writer.uint32(16).bool(message.logInstructions);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): V8Config {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseV8Config();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.logScriptSources = reader.bool();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.logInstructions = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): V8Config {
      return {
logScriptSources: isSet(object.logScriptSources)
          ? globalThis.Boolean(object.logScriptSources)
          : false,
logInstructions: isSet(object.logInstructions)
          ? globalThis.Boolean(object.logInstructions)
          : false,
};
},

toJSON(message: V8Config): unknown {
      const obj: any = {};
if (message.logScriptSources !== undefined  && message.logScriptSources !== false) {
          obj.logScriptSources = message.logScriptSources;
        }
if (message.logInstructions !== undefined  && message.logInstructions !== false) {
          obj.logInstructions = message.logInstructions;
        }
return obj;
},

create<I extends Exact<DeepPartial<V8Config>, I>>(base?: I): V8Config {
        return V8Config.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<V8Config>, I>>(object: I): V8Config {
const message = createBaseV8Config();
message.logScriptSources = object.logScriptSources ?? false;
message.logInstructions = object.logInstructions ?? false;
return message;
}
            };

function createBaseEtwConfig(): EtwConfig {
      return { kernelFlags: [],schedulerProviderEvents: [],memoryProviderEvents: [],fileProviderEvents: [],stackSamplingEvents: [],diskProviderEvents: [],systemIoProviderEvents: [] };
    }

export const EtwConfig: MessageFns<EtwConfig> = {
              encode(
      message: EtwConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.kernelFlags !== undefined && message.kernelFlags.length !== 0) {
              
          for (const v of message.kernelFlags) {
            writer.uint32(8).int32(v!);
          }
        
            }
if (message.schedulerProviderEvents !== undefined && message.schedulerProviderEvents.length !== 0) {
              
          for (const v of message.schedulerProviderEvents) {
            writer.uint32(18).string(v!);
          }
        
            }
if (message.memoryProviderEvents !== undefined && message.memoryProviderEvents.length !== 0) {
              
          for (const v of message.memoryProviderEvents) {
            writer.uint32(26).string(v!);
          }
        
            }
if (message.fileProviderEvents !== undefined && message.fileProviderEvents.length !== 0) {
              
          for (const v of message.fileProviderEvents) {
            writer.uint32(34).string(v!);
          }
        
            }
if (message.stackSamplingEvents !== undefined && message.stackSamplingEvents.length !== 0) {
              
          for (const v of message.stackSamplingEvents) {
            writer.uint32(42).string(v!);
          }
        
            }
if (message.diskProviderEvents !== undefined && message.diskProviderEvents.length !== 0) {
              
          for (const v of message.diskProviderEvents) {
            writer.uint32(50).string(v!);
          }
        
            }
if (message.systemIoProviderEvents !== undefined && message.systemIoProviderEvents.length !== 0) {
              
          for (const v of message.systemIoProviderEvents) {
            writer.uint32(58).string(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): EtwConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseEtwConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag === 8) {
              
              message.kernelFlags!.push(reader.int32() as any);

              continue;
            }

            if (tag === 10) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.kernelFlags!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.schedulerProviderEvents!.push(el);
              }
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.memoryProviderEvents!.push(el);
              }
continue; }
case 4: {
if (tag !== 34) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.fileProviderEvents!.push(el);
              }
continue; }
case 5: {
if (tag !== 42) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.stackSamplingEvents!.push(el);
              }
continue; }
case 6: {
if (tag !== 50) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.diskProviderEvents!.push(el);
              }
continue; }
case 7: {
if (tag !== 58) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.systemIoProviderEvents!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): EtwConfig {
      return {
kernelFlags: globalThis.Array.isArray(object?.kernelFlags) ? object.kernelFlags.map((e: any) => etwConfig_KernelFlagFromJSON(e)): [],
schedulerProviderEvents: globalThis.Array.isArray(object?.schedulerProviderEvents) ? object.schedulerProviderEvents.map((e: any) => globalThis.String(e)): [],
memoryProviderEvents: globalThis.Array.isArray(object?.memoryProviderEvents) ? object.memoryProviderEvents.map((e: any) => globalThis.String(e)): [],
fileProviderEvents: globalThis.Array.isArray(object?.fileProviderEvents) ? object.fileProviderEvents.map((e: any) => globalThis.String(e)): [],
stackSamplingEvents: globalThis.Array.isArray(object?.stackSamplingEvents) ? object.stackSamplingEvents.map((e: any) => globalThis.String(e)): [],
diskProviderEvents: globalThis.Array.isArray(object?.diskProviderEvents) ? object.diskProviderEvents.map((e: any) => globalThis.String(e)): [],
systemIoProviderEvents: globalThis.Array.isArray(object?.systemIoProviderEvents) ? object.systemIoProviderEvents.map((e: any) => globalThis.String(e)): [],
};
},

toJSON(message: EtwConfig): unknown {
      const obj: any = {};
if (message.kernelFlags?.length) {
          obj.kernelFlags = message.kernelFlags.map(e => etwConfig_KernelFlagToJSON(e));
        }
if (message.schedulerProviderEvents?.length) {
          obj.schedulerProviderEvents = message.schedulerProviderEvents;
        }
if (message.memoryProviderEvents?.length) {
          obj.memoryProviderEvents = message.memoryProviderEvents;
        }
if (message.fileProviderEvents?.length) {
          obj.fileProviderEvents = message.fileProviderEvents;
        }
if (message.stackSamplingEvents?.length) {
          obj.stackSamplingEvents = message.stackSamplingEvents;
        }
if (message.diskProviderEvents?.length) {
          obj.diskProviderEvents = message.diskProviderEvents;
        }
if (message.systemIoProviderEvents?.length) {
          obj.systemIoProviderEvents = message.systemIoProviderEvents;
        }
return obj;
},

create<I extends Exact<DeepPartial<EtwConfig>, I>>(base?: I): EtwConfig {
        return EtwConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<EtwConfig>, I>>(object: I): EtwConfig {
const message = createBaseEtwConfig();
message.kernelFlags = object.kernelFlags?.map((e) => e) || [];
message.schedulerProviderEvents = object.schedulerProviderEvents?.map((e) => e) || [];
message.memoryProviderEvents = object.memoryProviderEvents?.map((e) => e) || [];
message.fileProviderEvents = object.fileProviderEvents?.map((e) => e) || [];
message.stackSamplingEvents = object.stackSamplingEvents?.map((e) => e) || [];
message.diskProviderEvents = object.diskProviderEvents?.map((e) => e) || [];
message.systemIoProviderEvents = object.systemIoProviderEvents?.map((e) => e) || [];
return message;
}
            };

function createBaseFrozenFtraceConfig(): FrozenFtraceConfig {
      return { instanceName: "" };
    }

export const FrozenFtraceConfig: MessageFns<FrozenFtraceConfig> = {
              encode(
      message: FrozenFtraceConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.instanceName !== undefined  && message.instanceName !== "") {
          writer.uint32(10).string(message.instanceName);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): FrozenFtraceConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseFrozenFtraceConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.instanceName = reader.string();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): FrozenFtraceConfig {
      return {
instanceName: isSet(object.instanceName)
          ? globalThis.String(object.instanceName)
          : "",
};
},

toJSON(message: FrozenFtraceConfig): unknown {
      const obj: any = {};
if (message.instanceName !== undefined  && message.instanceName !== "") {
          obj.instanceName = message.instanceName;
        }
return obj;
},

create<I extends Exact<DeepPartial<FrozenFtraceConfig>, I>>(base?: I): FrozenFtraceConfig {
        return FrozenFtraceConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<FrozenFtraceConfig>, I>>(object: I): FrozenFtraceConfig {
const message = createBaseFrozenFtraceConfig();
message.instanceName = object.instanceName ?? "";
return message;
}
            };

function createBaseFtraceConfig(): FtraceConfig {
      return { ftraceEvents: [],atraceCategories: [],atraceApps: [],atraceCategoriesPreferSdk: [],atraceUserspaceOnly: false,bufferSizeKb: 0,bufferSizeLowerBound: false,drainPeriodMs: 0,drainBufferPercent: 0,compactSched: undefined,printFilter: undefined,symbolizeKsyms: false,ksymsMemPolicy: 0,throttleRssStat: false,denserGenericEventEncoding: false,disableGenericEvents: false,syscallEvents: [],enableFunctionGraph: false,functionFilters: [],functionGraphRoots: [],functionGraphMaxDepth: 0,kprobeEvents: [],preserveFtraceBuffer: false,useMonotonicRawClock: false,instanceName: "",debugFtraceAbi: false,tidsToTrace: [],tracefsOptions: [],tracingCpumask: "",initializeKsymsSynchronouslyForTesting: false };
    }

export const FtraceConfig: MessageFns<FtraceConfig> = {
              encode(
      message: FtraceConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.ftraceEvents !== undefined && message.ftraceEvents.length !== 0) {
              
          for (const v of message.ftraceEvents) {
            writer.uint32(10).string(v!);
          }
        
            }
if (message.atraceCategories !== undefined && message.atraceCategories.length !== 0) {
              
          for (const v of message.atraceCategories) {
            writer.uint32(18).string(v!);
          }
        
            }
if (message.atraceApps !== undefined && message.atraceApps.length !== 0) {
              
          for (const v of message.atraceApps) {
            writer.uint32(26).string(v!);
          }
        
            }
if (message.atraceCategoriesPreferSdk !== undefined && message.atraceCategoriesPreferSdk.length !== 0) {
              
          for (const v of message.atraceCategoriesPreferSdk) {
            writer.uint32(226).string(v!);
          }
        
            }
if (message.atraceUserspaceOnly !== undefined  && message.atraceUserspaceOnly !== false) {
          writer.uint32(272).bool(message.atraceUserspaceOnly);
        }
if (message.bufferSizeKb !== undefined  && message.bufferSizeKb !== 0) {
          writer.uint32(80).uint32(message.bufferSizeKb);
        }
if (message.bufferSizeLowerBound !== undefined  && message.bufferSizeLowerBound !== false) {
          writer.uint32(216).bool(message.bufferSizeLowerBound);
        }
if (message.drainPeriodMs !== undefined  && message.drainPeriodMs !== 0) {
          writer.uint32(88).uint32(message.drainPeriodMs);
        }
if (message.drainBufferPercent !== undefined  && message.drainBufferPercent !== 0) {
          writer.uint32(232).uint32(message.drainBufferPercent);
        }
if (message.compactSched !== undefined ) {
          FtraceConfig_CompactSchedConfig.encode(message.compactSched, writer.uint32(98).fork()).join();
        }
if (message.printFilter !== undefined ) {
          FtraceConfig_PrintFilter.encode(message.printFilter, writer.uint32(178).fork()).join();
        }
if (message.symbolizeKsyms !== undefined  && message.symbolizeKsyms !== false) {
          writer.uint32(104).bool(message.symbolizeKsyms);
        }
if (message.ksymsMemPolicy !== undefined  && message.ksymsMemPolicy !== 0) {
          writer.uint32(136).int32(message.ksymsMemPolicy);
        }
if (message.throttleRssStat !== undefined  && message.throttleRssStat !== false) {
          writer.uint32(120).bool(message.throttleRssStat);
        }
if (message.denserGenericEventEncoding !== undefined  && message.denserGenericEventEncoding !== false) {
          writer.uint32(256).bool(message.denserGenericEventEncoding);
        }
if (message.disableGenericEvents !== undefined  && message.disableGenericEvents !== false) {
          writer.uint32(128).bool(message.disableGenericEvents);
        }
if (message.syscallEvents !== undefined && message.syscallEvents.length !== 0) {
              
          for (const v of message.syscallEvents) {
            writer.uint32(146).string(v!);
          }
        
            }
if (message.enableFunctionGraph !== undefined  && message.enableFunctionGraph !== false) {
          writer.uint32(152).bool(message.enableFunctionGraph);
        }
if (message.functionFilters !== undefined && message.functionFilters.length !== 0) {
              
          for (const v of message.functionFilters) {
            writer.uint32(162).string(v!);
          }
        
            }
if (message.functionGraphRoots !== undefined && message.functionGraphRoots.length !== 0) {
              
          for (const v of message.functionGraphRoots) {
            writer.uint32(170).string(v!);
          }
        
            }
if (message.functionGraphMaxDepth !== undefined  && message.functionGraphMaxDepth !== 0) {
          writer.uint32(264).uint32(message.functionGraphMaxDepth);
        }
if (message.kprobeEvents !== undefined && message.kprobeEvents.length !== 0) {
              
          for (const v of message.kprobeEvents) {
            FtraceConfig_KprobeEvent.encode(v!, writer.uint32(242).fork()).join();
          }
        
            }
if (message.preserveFtraceBuffer !== undefined  && message.preserveFtraceBuffer !== false) {
          writer.uint32(184).bool(message.preserveFtraceBuffer);
        }
if (message.useMonotonicRawClock !== undefined  && message.useMonotonicRawClock !== false) {
          writer.uint32(192).bool(message.useMonotonicRawClock);
        }
if (message.instanceName !== undefined  && message.instanceName !== "") {
          writer.uint32(202).string(message.instanceName);
        }
if (message.debugFtraceAbi !== undefined  && message.debugFtraceAbi !== false) {
          writer.uint32(248).bool(message.debugFtraceAbi);
        }
if (message.tidsToTrace !== undefined && message.tidsToTrace.length !== 0) {
              
          for (const v of message.tidsToTrace) {
            writer.uint32(280).uint32(v!);
          }
        
            }
if (message.tracefsOptions !== undefined && message.tracefsOptions.length !== 0) {
              
          for (const v of message.tracefsOptions) {
            FtraceConfig_TracefsOption.encode(v!, writer.uint32(290).fork()).join();
          }
        
            }
if (message.tracingCpumask !== undefined  && message.tracingCpumask !== "") {
          writer.uint32(298).string(message.tracingCpumask);
        }
if (message.initializeKsymsSynchronouslyForTesting !== undefined  && message.initializeKsymsSynchronouslyForTesting !== false) {
          writer.uint32(112).bool(message.initializeKsymsSynchronouslyForTesting);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): FtraceConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseFtraceConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.ftraceEvents!.push(el);
              }
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.atraceCategories!.push(el);
              }
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.atraceApps!.push(el);
              }
continue; }
case 28: {
if (tag !== 226) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.atraceCategoriesPreferSdk!.push(el);
              }
continue; }
case 34: {
if (tag !== 272) {
        break;
      }
    
        message.atraceUserspaceOnly = reader.bool();
continue; }
case 10: {
if (tag !== 80) {
        break;
      }
    
        message.bufferSizeKb = reader.uint32();
continue; }
case 27: {
if (tag !== 216) {
        break;
      }
    
        message.bufferSizeLowerBound = reader.bool();
continue; }
case 11: {
if (tag !== 88) {
        break;
      }
    
        message.drainPeriodMs = reader.uint32();
continue; }
case 29: {
if (tag !== 232) {
        break;
      }
    
        message.drainBufferPercent = reader.uint32();
continue; }
case 12: {
if (tag !== 98) {
        break;
      }
    
        message.compactSched = FtraceConfig_CompactSchedConfig.decode(reader, reader.uint32());
continue; }
case 22: {
if (tag !== 178) {
        break;
      }
    
        message.printFilter = FtraceConfig_PrintFilter.decode(reader, reader.uint32());
continue; }
case 13: {
if (tag !== 104) {
        break;
      }
    
        message.symbolizeKsyms = reader.bool();
continue; }
case 17: {
if (tag !== 136) {
        break;
      }
    
        message.ksymsMemPolicy = reader.int32() as any;
continue; }
case 15: {
if (tag !== 120) {
        break;
      }
    
        message.throttleRssStat = reader.bool();
continue; }
case 32: {
if (tag !== 256) {
        break;
      }
    
        message.denserGenericEventEncoding = reader.bool();
continue; }
case 16: {
if (tag !== 128) {
        break;
      }
    
        message.disableGenericEvents = reader.bool();
continue; }
case 18: {
if (tag !== 146) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.syscallEvents!.push(el);
              }
continue; }
case 19: {
if (tag !== 152) {
        break;
      }
    
        message.enableFunctionGraph = reader.bool();
continue; }
case 20: {
if (tag !== 162) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.functionFilters!.push(el);
              }
continue; }
case 21: {
if (tag !== 170) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.functionGraphRoots!.push(el);
              }
continue; }
case 33: {
if (tag !== 264) {
        break;
      }
    
        message.functionGraphMaxDepth = reader.uint32();
continue; }
case 30: {
if (tag !== 242) {
        break;
      }
    
              
              const el = FtraceConfig_KprobeEvent.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.kprobeEvents!.push(el);
              }
continue; }
case 23: {
if (tag !== 184) {
        break;
      }
    
        message.preserveFtraceBuffer = reader.bool();
continue; }
case 24: {
if (tag !== 192) {
        break;
      }
    
        message.useMonotonicRawClock = reader.bool();
continue; }
case 25: {
if (tag !== 202) {
        break;
      }
    
        message.instanceName = reader.string();
continue; }
case 31: {
if (tag !== 248) {
        break;
      }
    
        message.debugFtraceAbi = reader.bool();
continue; }
case 35: {
if (tag === 280) {
              
              message.tidsToTrace!.push(reader.uint32());

              continue;
            }

            if (tag === 282) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.tidsToTrace!.push(reader.uint32());
              }

              continue;
            }

            break;
          }
case 36: {
if (tag !== 290) {
        break;
      }
    
              
              const el = FtraceConfig_TracefsOption.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.tracefsOptions!.push(el);
              }
continue; }
case 37: {
if (tag !== 298) {
        break;
      }
    
        message.tracingCpumask = reader.string();
continue; }
case 14: {
if (tag !== 112) {
        break;
      }
    
        message.initializeKsymsSynchronouslyForTesting = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): FtraceConfig {
      return {
ftraceEvents: globalThis.Array.isArray(object?.ftraceEvents) ? object.ftraceEvents.map((e: any) => globalThis.String(e)): [],
atraceCategories: globalThis.Array.isArray(object?.atraceCategories) ? object.atraceCategories.map((e: any) => globalThis.String(e)): [],
atraceApps: globalThis.Array.isArray(object?.atraceApps) ? object.atraceApps.map((e: any) => globalThis.String(e)): [],
atraceCategoriesPreferSdk: globalThis.Array.isArray(object?.atraceCategoriesPreferSdk) ? object.atraceCategoriesPreferSdk.map((e: any) => globalThis.String(e)): [],
atraceUserspaceOnly: isSet(object.atraceUserspaceOnly)
          ? globalThis.Boolean(object.atraceUserspaceOnly)
          : false,
bufferSizeKb: isSet(object.bufferSizeKb)
          ? globalThis.Number(object.bufferSizeKb)
          : 0,
bufferSizeLowerBound: isSet(object.bufferSizeLowerBound)
          ? globalThis.Boolean(object.bufferSizeLowerBound)
          : false,
drainPeriodMs: isSet(object.drainPeriodMs)
          ? globalThis.Number(object.drainPeriodMs)
          : 0,
drainBufferPercent: isSet(object.drainBufferPercent)
          ? globalThis.Number(object.drainBufferPercent)
          : 0,
compactSched: isSet(object.compactSched)
          ? FtraceConfig_CompactSchedConfig.fromJSON(object.compactSched)
          : undefined,
printFilter: isSet(object.printFilter)
          ? FtraceConfig_PrintFilter.fromJSON(object.printFilter)
          : undefined,
symbolizeKsyms: isSet(object.symbolizeKsyms)
          ? globalThis.Boolean(object.symbolizeKsyms)
          : false,
ksymsMemPolicy: isSet(object.ksymsMemPolicy)
          ? ftraceConfig_KsymsMemPolicyFromJSON(object.ksymsMemPolicy)
          : 0,
throttleRssStat: isSet(object.throttleRssStat)
          ? globalThis.Boolean(object.throttleRssStat)
          : false,
denserGenericEventEncoding: isSet(object.denserGenericEventEncoding)
          ? globalThis.Boolean(object.denserGenericEventEncoding)
          : false,
disableGenericEvents: isSet(object.disableGenericEvents)
          ? globalThis.Boolean(object.disableGenericEvents)
          : false,
syscallEvents: globalThis.Array.isArray(object?.syscallEvents) ? object.syscallEvents.map((e: any) => globalThis.String(e)): [],
enableFunctionGraph: isSet(object.enableFunctionGraph)
          ? globalThis.Boolean(object.enableFunctionGraph)
          : false,
functionFilters: globalThis.Array.isArray(object?.functionFilters) ? object.functionFilters.map((e: any) => globalThis.String(e)): [],
functionGraphRoots: globalThis.Array.isArray(object?.functionGraphRoots) ? object.functionGraphRoots.map((e: any) => globalThis.String(e)): [],
functionGraphMaxDepth: isSet(object.functionGraphMaxDepth)
          ? globalThis.Number(object.functionGraphMaxDepth)
          : 0,
kprobeEvents: globalThis.Array.isArray(object?.kprobeEvents) ? object.kprobeEvents.map((e: any) => FtraceConfig_KprobeEvent.fromJSON(e)): [],
preserveFtraceBuffer: isSet(object.preserveFtraceBuffer)
          ? globalThis.Boolean(object.preserveFtraceBuffer)
          : false,
useMonotonicRawClock: isSet(object.useMonotonicRawClock)
          ? globalThis.Boolean(object.useMonotonicRawClock)
          : false,
instanceName: isSet(object.instanceName)
          ? globalThis.String(object.instanceName)
          : "",
debugFtraceAbi: isSet(object.debugFtraceAbi)
          ? globalThis.Boolean(object.debugFtraceAbi)
          : false,
tidsToTrace: globalThis.Array.isArray(object?.tidsToTrace) ? object.tidsToTrace.map((e: any) => globalThis.Number(e)): [],
tracefsOptions: globalThis.Array.isArray(object?.tracefsOptions) ? object.tracefsOptions.map((e: any) => FtraceConfig_TracefsOption.fromJSON(e)): [],
tracingCpumask: isSet(object.tracingCpumask)
          ? globalThis.String(object.tracingCpumask)
          : "",
initializeKsymsSynchronouslyForTesting: isSet(object.initializeKsymsSynchronouslyForTesting)
          ? globalThis.Boolean(object.initializeKsymsSynchronouslyForTesting)
          : false,
};
},

toJSON(message: FtraceConfig): unknown {
      const obj: any = {};
if (message.ftraceEvents?.length) {
          obj.ftraceEvents = message.ftraceEvents;
        }
if (message.atraceCategories?.length) {
          obj.atraceCategories = message.atraceCategories;
        }
if (message.atraceApps?.length) {
          obj.atraceApps = message.atraceApps;
        }
if (message.atraceCategoriesPreferSdk?.length) {
          obj.atraceCategoriesPreferSdk = message.atraceCategoriesPreferSdk;
        }
if (message.atraceUserspaceOnly !== undefined  && message.atraceUserspaceOnly !== false) {
          obj.atraceUserspaceOnly = message.atraceUserspaceOnly;
        }
if (message.bufferSizeKb !== undefined  && message.bufferSizeKb !== 0) {
          obj.bufferSizeKb = Math.round(message.bufferSizeKb);
        }
if (message.bufferSizeLowerBound !== undefined  && message.bufferSizeLowerBound !== false) {
          obj.bufferSizeLowerBound = message.bufferSizeLowerBound;
        }
if (message.drainPeriodMs !== undefined  && message.drainPeriodMs !== 0) {
          obj.drainPeriodMs = Math.round(message.drainPeriodMs);
        }
if (message.drainBufferPercent !== undefined  && message.drainBufferPercent !== 0) {
          obj.drainBufferPercent = Math.round(message.drainBufferPercent);
        }
if (message.compactSched !== undefined ) {
          obj.compactSched = FtraceConfig_CompactSchedConfig.toJSON(message.compactSched);
        }
if (message.printFilter !== undefined ) {
          obj.printFilter = FtraceConfig_PrintFilter.toJSON(message.printFilter);
        }
if (message.symbolizeKsyms !== undefined  && message.symbolizeKsyms !== false) {
          obj.symbolizeKsyms = message.symbolizeKsyms;
        }
if (message.ksymsMemPolicy !== undefined  && message.ksymsMemPolicy !== 0) {
          obj.ksymsMemPolicy = ftraceConfig_KsymsMemPolicyToJSON(message.ksymsMemPolicy);
        }
if (message.throttleRssStat !== undefined  && message.throttleRssStat !== false) {
          obj.throttleRssStat = message.throttleRssStat;
        }
if (message.denserGenericEventEncoding !== undefined  && message.denserGenericEventEncoding !== false) {
          obj.denserGenericEventEncoding = message.denserGenericEventEncoding;
        }
if (message.disableGenericEvents !== undefined  && message.disableGenericEvents !== false) {
          obj.disableGenericEvents = message.disableGenericEvents;
        }
if (message.syscallEvents?.length) {
          obj.syscallEvents = message.syscallEvents;
        }
if (message.enableFunctionGraph !== undefined  && message.enableFunctionGraph !== false) {
          obj.enableFunctionGraph = message.enableFunctionGraph;
        }
if (message.functionFilters?.length) {
          obj.functionFilters = message.functionFilters;
        }
if (message.functionGraphRoots?.length) {
          obj.functionGraphRoots = message.functionGraphRoots;
        }
if (message.functionGraphMaxDepth !== undefined  && message.functionGraphMaxDepth !== 0) {
          obj.functionGraphMaxDepth = Math.round(message.functionGraphMaxDepth);
        }
if (message.kprobeEvents?.length) {
          obj.kprobeEvents = message.kprobeEvents.map(e => FtraceConfig_KprobeEvent.toJSON(e));
        }
if (message.preserveFtraceBuffer !== undefined  && message.preserveFtraceBuffer !== false) {
          obj.preserveFtraceBuffer = message.preserveFtraceBuffer;
        }
if (message.useMonotonicRawClock !== undefined  && message.useMonotonicRawClock !== false) {
          obj.useMonotonicRawClock = message.useMonotonicRawClock;
        }
if (message.instanceName !== undefined  && message.instanceName !== "") {
          obj.instanceName = message.instanceName;
        }
if (message.debugFtraceAbi !== undefined  && message.debugFtraceAbi !== false) {
          obj.debugFtraceAbi = message.debugFtraceAbi;
        }
if (message.tidsToTrace?.length) {
          obj.tidsToTrace = message.tidsToTrace.map(e => Math.round(e));
        }
if (message.tracefsOptions?.length) {
          obj.tracefsOptions = message.tracefsOptions.map(e => FtraceConfig_TracefsOption.toJSON(e));
        }
if (message.tracingCpumask !== undefined  && message.tracingCpumask !== "") {
          obj.tracingCpumask = message.tracingCpumask;
        }
if (message.initializeKsymsSynchronouslyForTesting !== undefined  && message.initializeKsymsSynchronouslyForTesting !== false) {
          obj.initializeKsymsSynchronouslyForTesting = message.initializeKsymsSynchronouslyForTesting;
        }
return obj;
},

create<I extends Exact<DeepPartial<FtraceConfig>, I>>(base?: I): FtraceConfig {
        return FtraceConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<FtraceConfig>, I>>(object: I): FtraceConfig {
const message = createBaseFtraceConfig();
message.ftraceEvents = object.ftraceEvents?.map((e) => e) || [];
message.atraceCategories = object.atraceCategories?.map((e) => e) || [];
message.atraceApps = object.atraceApps?.map((e) => e) || [];
message.atraceCategoriesPreferSdk = object.atraceCategoriesPreferSdk?.map((e) => e) || [];
message.atraceUserspaceOnly = object.atraceUserspaceOnly ?? false;
message.bufferSizeKb = object.bufferSizeKb ?? 0;
message.bufferSizeLowerBound = object.bufferSizeLowerBound ?? false;
message.drainPeriodMs = object.drainPeriodMs ?? 0;
message.drainBufferPercent = object.drainBufferPercent ?? 0;
message.compactSched = (object.compactSched !== undefined && object.compactSched !== null)
          ? FtraceConfig_CompactSchedConfig.fromPartial(object.compactSched)
          : undefined;
message.printFilter = (object.printFilter !== undefined && object.printFilter !== null)
          ? FtraceConfig_PrintFilter.fromPartial(object.printFilter)
          : undefined;
message.symbolizeKsyms = object.symbolizeKsyms ?? false;
message.ksymsMemPolicy = object.ksymsMemPolicy ?? 0;
message.throttleRssStat = object.throttleRssStat ?? false;
message.denserGenericEventEncoding = object.denserGenericEventEncoding ?? false;
message.disableGenericEvents = object.disableGenericEvents ?? false;
message.syscallEvents = object.syscallEvents?.map((e) => e) || [];
message.enableFunctionGraph = object.enableFunctionGraph ?? false;
message.functionFilters = object.functionFilters?.map((e) => e) || [];
message.functionGraphRoots = object.functionGraphRoots?.map((e) => e) || [];
message.functionGraphMaxDepth = object.functionGraphMaxDepth ?? 0;
message.kprobeEvents = object.kprobeEvents?.map((e) => FtraceConfig_KprobeEvent.fromPartial(e)) || [];
message.preserveFtraceBuffer = object.preserveFtraceBuffer ?? false;
message.useMonotonicRawClock = object.useMonotonicRawClock ?? false;
message.instanceName = object.instanceName ?? "";
message.debugFtraceAbi = object.debugFtraceAbi ?? false;
message.tidsToTrace = object.tidsToTrace?.map((e) => e) || [];
message.tracefsOptions = object.tracefsOptions?.map((e) => FtraceConfig_TracefsOption.fromPartial(e)) || [];
message.tracingCpumask = object.tracingCpumask ?? "";
message.initializeKsymsSynchronouslyForTesting = object.initializeKsymsSynchronouslyForTesting ?? false;
return message;
}
            };

function createBaseFtraceConfig_CompactSchedConfig(): FtraceConfig_CompactSchedConfig {
      return { enabled: false };
    }

export const FtraceConfig_CompactSchedConfig: MessageFns<FtraceConfig_CompactSchedConfig> = {
              encode(
      message: FtraceConfig_CompactSchedConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.enabled !== undefined  && message.enabled !== false) {
          writer.uint32(8).bool(message.enabled);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): FtraceConfig_CompactSchedConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseFtraceConfig_CompactSchedConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.enabled = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): FtraceConfig_CompactSchedConfig {
      return {
enabled: isSet(object.enabled)
          ? globalThis.Boolean(object.enabled)
          : false,
};
},

toJSON(message: FtraceConfig_CompactSchedConfig): unknown {
      const obj: any = {};
if (message.enabled !== undefined  && message.enabled !== false) {
          obj.enabled = message.enabled;
        }
return obj;
},

create<I extends Exact<DeepPartial<FtraceConfig_CompactSchedConfig>, I>>(base?: I): FtraceConfig_CompactSchedConfig {
        return FtraceConfig_CompactSchedConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<FtraceConfig_CompactSchedConfig>, I>>(object: I): FtraceConfig_CompactSchedConfig {
const message = createBaseFtraceConfig_CompactSchedConfig();
message.enabled = object.enabled ?? false;
return message;
}
            };

function createBaseFtraceConfig_PrintFilter(): FtraceConfig_PrintFilter {
      return { rules: [] };
    }

export const FtraceConfig_PrintFilter: MessageFns<FtraceConfig_PrintFilter> = {
              encode(
      message: FtraceConfig_PrintFilter,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.rules !== undefined && message.rules.length !== 0) {
              
          for (const v of message.rules) {
            FtraceConfig_PrintFilter_Rule.encode(v!, writer.uint32(10).fork()).join();
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): FtraceConfig_PrintFilter {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseFtraceConfig_PrintFilter();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
              
              const el = FtraceConfig_PrintFilter_Rule.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.rules!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): FtraceConfig_PrintFilter {
      return {
rules: globalThis.Array.isArray(object?.rules) ? object.rules.map((e: any) => FtraceConfig_PrintFilter_Rule.fromJSON(e)): [],
};
},

toJSON(message: FtraceConfig_PrintFilter): unknown {
      const obj: any = {};
if (message.rules?.length) {
          obj.rules = message.rules.map(e => FtraceConfig_PrintFilter_Rule.toJSON(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<FtraceConfig_PrintFilter>, I>>(base?: I): FtraceConfig_PrintFilter {
        return FtraceConfig_PrintFilter.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<FtraceConfig_PrintFilter>, I>>(object: I): FtraceConfig_PrintFilter {
const message = createBaseFtraceConfig_PrintFilter();
message.rules = object.rules?.map((e) => FtraceConfig_PrintFilter_Rule.fromPartial(e)) || [];
return message;
}
            };

function createBaseFtraceConfig_PrintFilter_Rule(): FtraceConfig_PrintFilter_Rule {
      return { prefix: undefined,atraceMsg: undefined,allow: false };
    }

export const FtraceConfig_PrintFilter_Rule: MessageFns<FtraceConfig_PrintFilter_Rule> = {
              encode(
      message: FtraceConfig_PrintFilter_Rule,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.prefix !== undefined ) {
          writer.uint32(10).string(message.prefix);
        }
if (message.atraceMsg !== undefined ) {
          FtraceConfig_PrintFilter_Rule_AtraceMessage.encode(message.atraceMsg, writer.uint32(26).fork()).join();
        }
if (message.allow !== undefined  && message.allow !== false) {
          writer.uint32(16).bool(message.allow);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): FtraceConfig_PrintFilter_Rule {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseFtraceConfig_PrintFilter_Rule();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.prefix = reader.string();
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
        message.atraceMsg = FtraceConfig_PrintFilter_Rule_AtraceMessage.decode(reader, reader.uint32());
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.allow = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): FtraceConfig_PrintFilter_Rule {
      return {
prefix: isSet(object.prefix)
          ? globalThis.String(object.prefix)
          : undefined,
atraceMsg: isSet(object.atraceMsg)
          ? FtraceConfig_PrintFilter_Rule_AtraceMessage.fromJSON(object.atraceMsg)
          : undefined,
allow: isSet(object.allow)
          ? globalThis.Boolean(object.allow)
          : false,
};
},

toJSON(message: FtraceConfig_PrintFilter_Rule): unknown {
      const obj: any = {};
if (message.prefix !== undefined ) {
          obj.prefix = message.prefix;
        }
if (message.atraceMsg !== undefined ) {
          obj.atraceMsg = FtraceConfig_PrintFilter_Rule_AtraceMessage.toJSON(message.atraceMsg);
        }
if (message.allow !== undefined  && message.allow !== false) {
          obj.allow = message.allow;
        }
return obj;
},

create<I extends Exact<DeepPartial<FtraceConfig_PrintFilter_Rule>, I>>(base?: I): FtraceConfig_PrintFilter_Rule {
        return FtraceConfig_PrintFilter_Rule.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<FtraceConfig_PrintFilter_Rule>, I>>(object: I): FtraceConfig_PrintFilter_Rule {
const message = createBaseFtraceConfig_PrintFilter_Rule();
message.prefix = object.prefix ?? undefined;
message.atraceMsg = (object.atraceMsg !== undefined && object.atraceMsg !== null)
          ? FtraceConfig_PrintFilter_Rule_AtraceMessage.fromPartial(object.atraceMsg)
          : undefined;
message.allow = object.allow ?? false;
return message;
}
            };

function createBaseFtraceConfig_PrintFilter_Rule_AtraceMessage(): FtraceConfig_PrintFilter_Rule_AtraceMessage {
      return { type: "",prefix: "" };
    }

export const FtraceConfig_PrintFilter_Rule_AtraceMessage: MessageFns<FtraceConfig_PrintFilter_Rule_AtraceMessage> = {
              encode(
      message: FtraceConfig_PrintFilter_Rule_AtraceMessage,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.type !== undefined  && message.type !== "") {
          writer.uint32(10).string(message.type);
        }
if (message.prefix !== undefined  && message.prefix !== "") {
          writer.uint32(18).string(message.prefix);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): FtraceConfig_PrintFilter_Rule_AtraceMessage {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseFtraceConfig_PrintFilter_Rule_AtraceMessage();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.type = reader.string();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
        message.prefix = reader.string();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): FtraceConfig_PrintFilter_Rule_AtraceMessage {
      return {
type: isSet(object.type)
          ? globalThis.String(object.type)
          : "",
prefix: isSet(object.prefix)
          ? globalThis.String(object.prefix)
          : "",
};
},

toJSON(message: FtraceConfig_PrintFilter_Rule_AtraceMessage): unknown {
      const obj: any = {};
if (message.type !== undefined  && message.type !== "") {
          obj.type = message.type;
        }
if (message.prefix !== undefined  && message.prefix !== "") {
          obj.prefix = message.prefix;
        }
return obj;
},

create<I extends Exact<DeepPartial<FtraceConfig_PrintFilter_Rule_AtraceMessage>, I>>(base?: I): FtraceConfig_PrintFilter_Rule_AtraceMessage {
        return FtraceConfig_PrintFilter_Rule_AtraceMessage.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<FtraceConfig_PrintFilter_Rule_AtraceMessage>, I>>(object: I): FtraceConfig_PrintFilter_Rule_AtraceMessage {
const message = createBaseFtraceConfig_PrintFilter_Rule_AtraceMessage();
message.type = object.type ?? "";
message.prefix = object.prefix ?? "";
return message;
}
            };

function createBaseFtraceConfig_KprobeEvent(): FtraceConfig_KprobeEvent {
      return { probe: "",type: 0 };
    }

export const FtraceConfig_KprobeEvent: MessageFns<FtraceConfig_KprobeEvent> = {
              encode(
      message: FtraceConfig_KprobeEvent,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.probe !== undefined  && message.probe !== "") {
          writer.uint32(10).string(message.probe);
        }
if (message.type !== undefined  && message.type !== 0) {
          writer.uint32(16).int32(message.type);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): FtraceConfig_KprobeEvent {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseFtraceConfig_KprobeEvent();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.probe = reader.string();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.type = reader.int32() as any;
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): FtraceConfig_KprobeEvent {
      return {
probe: isSet(object.probe)
          ? globalThis.String(object.probe)
          : "",
type: isSet(object.type)
          ? ftraceConfig_KprobeEvent_KprobeTypeFromJSON(object.type)
          : 0,
};
},

toJSON(message: FtraceConfig_KprobeEvent): unknown {
      const obj: any = {};
if (message.probe !== undefined  && message.probe !== "") {
          obj.probe = message.probe;
        }
if (message.type !== undefined  && message.type !== 0) {
          obj.type = ftraceConfig_KprobeEvent_KprobeTypeToJSON(message.type);
        }
return obj;
},

create<I extends Exact<DeepPartial<FtraceConfig_KprobeEvent>, I>>(base?: I): FtraceConfig_KprobeEvent {
        return FtraceConfig_KprobeEvent.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<FtraceConfig_KprobeEvent>, I>>(object: I): FtraceConfig_KprobeEvent {
const message = createBaseFtraceConfig_KprobeEvent();
message.probe = object.probe ?? "";
message.type = object.type ?? 0;
return message;
}
            };

function createBaseFtraceConfig_TracefsOption(): FtraceConfig_TracefsOption {
      return { name: "",state: 0 };
    }

export const FtraceConfig_TracefsOption: MessageFns<FtraceConfig_TracefsOption> = {
              encode(
      message: FtraceConfig_TracefsOption,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(10).string(message.name);
        }
if (message.state !== undefined  && message.state !== 0) {
          writer.uint32(16).int32(message.state);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): FtraceConfig_TracefsOption {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseFtraceConfig_TracefsOption();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.name = reader.string();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.state = reader.int32() as any;
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): FtraceConfig_TracefsOption {
      return {
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
state: isSet(object.state)
          ? ftraceConfig_TracefsOption_StateFromJSON(object.state)
          : 0,
};
},

toJSON(message: FtraceConfig_TracefsOption): unknown {
      const obj: any = {};
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
if (message.state !== undefined  && message.state !== 0) {
          obj.state = ftraceConfig_TracefsOption_StateToJSON(message.state);
        }
return obj;
},

create<I extends Exact<DeepPartial<FtraceConfig_TracefsOption>, I>>(base?: I): FtraceConfig_TracefsOption {
        return FtraceConfig_TracefsOption.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<FtraceConfig_TracefsOption>, I>>(object: I): FtraceConfig_TracefsOption {
const message = createBaseFtraceConfig_TracefsOption();
message.name = object.name ?? "";
message.state = object.state ?? 0;
return message;
}
            };

function createBaseGpuCounterConfig(): GpuCounterConfig {
      return { counterPeriodNs: 0,counterIds: [],counterNames: [],instrumentedSampling: undefined,instrumentedSamplingConfig: undefined,fixGpuClock: false };
    }

export const GpuCounterConfig: MessageFns<GpuCounterConfig> = {
              encode(
      message: GpuCounterConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.counterPeriodNs !== undefined  && message.counterPeriodNs !== 0) {
          writer.uint32(8).uint64(message.counterPeriodNs);
        }
if (message.counterIds !== undefined && message.counterIds.length !== 0) {
              
          for (const v of message.counterIds) {
            writer.uint32(16).uint32(v!);
          }
        
            }
if (message.counterNames !== undefined && message.counterNames.length !== 0) {
              
          for (const v of message.counterNames) {
            writer.uint32(50).string(v!);
          }
        
            }
if (message.instrumentedSampling !== undefined ) {
          writer.uint32(24).bool(message.instrumentedSampling);
        }
if (message.instrumentedSamplingConfig !== undefined ) {
          GpuCounterConfig_InstrumentedSamplingConfig.encode(message.instrumentedSamplingConfig, writer.uint32(42).fork()).join();
        }
if (message.fixGpuClock !== undefined  && message.fixGpuClock !== false) {
          writer.uint32(32).bool(message.fixGpuClock);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): GpuCounterConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGpuCounterConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.counterPeriodNs = longToNumber(reader.uint64());
continue; }
case 2: {
if (tag === 16) {
              
              message.counterIds!.push(reader.uint32());

              continue;
            }

            if (tag === 18) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.counterIds!.push(reader.uint32());
              }

              continue;
            }

            break;
          }
case 6: {
if (tag !== 50) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.counterNames!.push(el);
              }
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.instrumentedSampling = reader.bool();
continue; }
case 5: {
if (tag !== 42) {
        break;
      }
    
        message.instrumentedSamplingConfig = GpuCounterConfig_InstrumentedSamplingConfig.decode(reader, reader.uint32());
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.fixGpuClock = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): GpuCounterConfig {
      return {
counterPeriodNs: isSet(object.counterPeriodNs)
          ? globalThis.Number(object.counterPeriodNs)
          : 0,
counterIds: globalThis.Array.isArray(object?.counterIds) ? object.counterIds.map((e: any) => globalThis.Number(e)): [],
counterNames: globalThis.Array.isArray(object?.counterNames) ? object.counterNames.map((e: any) => globalThis.String(e)): [],
instrumentedSampling: isSet(object.instrumentedSampling)
          ? globalThis.Boolean(object.instrumentedSampling)
          : undefined,
instrumentedSamplingConfig: isSet(object.instrumentedSamplingConfig)
          ? GpuCounterConfig_InstrumentedSamplingConfig.fromJSON(object.instrumentedSamplingConfig)
          : undefined,
fixGpuClock: isSet(object.fixGpuClock)
          ? globalThis.Boolean(object.fixGpuClock)
          : false,
};
},

toJSON(message: GpuCounterConfig): unknown {
      const obj: any = {};
if (message.counterPeriodNs !== undefined  && message.counterPeriodNs !== 0) {
          obj.counterPeriodNs = Math.round(message.counterPeriodNs);
        }
if (message.counterIds?.length) {
          obj.counterIds = message.counterIds.map(e => Math.round(e));
        }
if (message.counterNames?.length) {
          obj.counterNames = message.counterNames;
        }
if (message.instrumentedSampling !== undefined ) {
          obj.instrumentedSampling = message.instrumentedSampling;
        }
if (message.instrumentedSamplingConfig !== undefined ) {
          obj.instrumentedSamplingConfig = GpuCounterConfig_InstrumentedSamplingConfig.toJSON(message.instrumentedSamplingConfig);
        }
if (message.fixGpuClock !== undefined  && message.fixGpuClock !== false) {
          obj.fixGpuClock = message.fixGpuClock;
        }
return obj;
},

create<I extends Exact<DeepPartial<GpuCounterConfig>, I>>(base?: I): GpuCounterConfig {
        return GpuCounterConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<GpuCounterConfig>, I>>(object: I): GpuCounterConfig {
const message = createBaseGpuCounterConfig();
message.counterPeriodNs = object.counterPeriodNs ?? 0;
message.counterIds = object.counterIds?.map((e) => e) || [];
message.counterNames = object.counterNames?.map((e) => e) || [];
message.instrumentedSampling = object.instrumentedSampling ?? undefined;
message.instrumentedSamplingConfig = (object.instrumentedSamplingConfig !== undefined && object.instrumentedSamplingConfig !== null)
          ? GpuCounterConfig_InstrumentedSamplingConfig.fromPartial(object.instrumentedSamplingConfig)
          : undefined;
message.fixGpuClock = object.fixGpuClock ?? false;
return message;
}
            };

function createBaseGpuCounterConfig_InstrumentedSamplingConfig(): GpuCounterConfig_InstrumentedSamplingConfig {
      return { activityNameFilters: [],activityTxIncludeGlobs: [],activityTxExcludeGlobs: [],activityRanges: [] };
    }

export const GpuCounterConfig_InstrumentedSamplingConfig: MessageFns<GpuCounterConfig_InstrumentedSamplingConfig> = {
              encode(
      message: GpuCounterConfig_InstrumentedSamplingConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.activityNameFilters !== undefined && message.activityNameFilters.length !== 0) {
              
          for (const v of message.activityNameFilters) {
            GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter.encode(v!, writer.uint32(26).fork()).join();
          }
        
            }
if (message.activityTxIncludeGlobs !== undefined && message.activityTxIncludeGlobs.length !== 0) {
              
          for (const v of message.activityTxIncludeGlobs) {
            writer.uint32(50).string(v!);
          }
        
            }
if (message.activityTxExcludeGlobs !== undefined && message.activityTxExcludeGlobs.length !== 0) {
              
          for (const v of message.activityTxExcludeGlobs) {
            writer.uint32(58).string(v!);
          }
        
            }
if (message.activityRanges !== undefined && message.activityRanges.length !== 0) {
              
          for (const v of message.activityRanges) {
            GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange.encode(v!, writer.uint32(42).fork()).join();
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): GpuCounterConfig_InstrumentedSamplingConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGpuCounterConfig_InstrumentedSamplingConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 3: {
if (tag !== 26) {
        break;
      }
    
              
              const el = GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.activityNameFilters!.push(el);
              }
continue; }
case 6: {
if (tag !== 50) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.activityTxIncludeGlobs!.push(el);
              }
continue; }
case 7: {
if (tag !== 58) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.activityTxExcludeGlobs!.push(el);
              }
continue; }
case 5: {
if (tag !== 42) {
        break;
      }
    
              
              const el = GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.activityRanges!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): GpuCounterConfig_InstrumentedSamplingConfig {
      return {
activityNameFilters: globalThis.Array.isArray(object?.activityNameFilters) ? object.activityNameFilters.map((e: any) => GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter.fromJSON(e)): [],
activityTxIncludeGlobs: globalThis.Array.isArray(object?.activityTxIncludeGlobs) ? object.activityTxIncludeGlobs.map((e: any) => globalThis.String(e)): [],
activityTxExcludeGlobs: globalThis.Array.isArray(object?.activityTxExcludeGlobs) ? object.activityTxExcludeGlobs.map((e: any) => globalThis.String(e)): [],
activityRanges: globalThis.Array.isArray(object?.activityRanges) ? object.activityRanges.map((e: any) => GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange.fromJSON(e)): [],
};
},

toJSON(message: GpuCounterConfig_InstrumentedSamplingConfig): unknown {
      const obj: any = {};
if (message.activityNameFilters?.length) {
          obj.activityNameFilters = message.activityNameFilters.map(e => GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter.toJSON(e));
        }
if (message.activityTxIncludeGlobs?.length) {
          obj.activityTxIncludeGlobs = message.activityTxIncludeGlobs;
        }
if (message.activityTxExcludeGlobs?.length) {
          obj.activityTxExcludeGlobs = message.activityTxExcludeGlobs;
        }
if (message.activityRanges?.length) {
          obj.activityRanges = message.activityRanges.map(e => GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange.toJSON(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<GpuCounterConfig_InstrumentedSamplingConfig>, I>>(base?: I): GpuCounterConfig_InstrumentedSamplingConfig {
        return GpuCounterConfig_InstrumentedSamplingConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<GpuCounterConfig_InstrumentedSamplingConfig>, I>>(object: I): GpuCounterConfig_InstrumentedSamplingConfig {
const message = createBaseGpuCounterConfig_InstrumentedSamplingConfig();
message.activityNameFilters = object.activityNameFilters?.map((e) => GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter.fromPartial(e)) || [];
message.activityTxIncludeGlobs = object.activityTxIncludeGlobs?.map((e) => e) || [];
message.activityTxExcludeGlobs = object.activityTxExcludeGlobs?.map((e) => e) || [];
message.activityRanges = object.activityRanges?.map((e) => GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange.fromPartial(e)) || [];
return message;
}
            };

function createBaseGpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter(): GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter {
      return { nameGlob: "",nameBase: 0 };
    }

export const GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter: MessageFns<GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter> = {
              encode(
      message: GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.nameGlob !== undefined  && message.nameGlob !== "") {
          writer.uint32(10).string(message.nameGlob);
        }
if (message.nameBase !== undefined  && message.nameBase !== 0) {
          writer.uint32(16).int32(message.nameBase);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.nameGlob = reader.string();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.nameBase = reader.int32() as any;
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter {
      return {
nameGlob: isSet(object.nameGlob)
          ? globalThis.String(object.nameGlob)
          : "",
nameBase: isSet(object.nameBase)
          ? gpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBaseFromJSON(object.nameBase)
          : 0,
};
},

toJSON(message: GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter): unknown {
      const obj: any = {};
if (message.nameGlob !== undefined  && message.nameGlob !== "") {
          obj.nameGlob = message.nameGlob;
        }
if (message.nameBase !== undefined  && message.nameBase !== 0) {
          obj.nameBase = gpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter_NameBaseToJSON(message.nameBase);
        }
return obj;
},

create<I extends Exact<DeepPartial<GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter>, I>>(base?: I): GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter {
        return GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter>, I>>(object: I): GpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter {
const message = createBaseGpuCounterConfig_InstrumentedSamplingConfig_ActivityNameFilter();
message.nameGlob = object.nameGlob ?? "";
message.nameBase = object.nameBase ?? 0;
return message;
}
            };

function createBaseGpuCounterConfig_InstrumentedSamplingConfig_ActivityRange(): GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange {
      return { skip: 0,count: 0 };
    }

export const GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange: MessageFns<GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange> = {
              encode(
      message: GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.skip !== undefined  && message.skip !== 0) {
          writer.uint32(8).uint32(message.skip);
        }
if (message.count !== undefined  && message.count !== 0) {
          writer.uint32(16).uint32(message.count);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGpuCounterConfig_InstrumentedSamplingConfig_ActivityRange();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.skip = reader.uint32();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.count = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange {
      return {
skip: isSet(object.skip)
          ? globalThis.Number(object.skip)
          : 0,
count: isSet(object.count)
          ? globalThis.Number(object.count)
          : 0,
};
},

toJSON(message: GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange): unknown {
      const obj: any = {};
if (message.skip !== undefined  && message.skip !== 0) {
          obj.skip = Math.round(message.skip);
        }
if (message.count !== undefined  && message.count !== 0) {
          obj.count = Math.round(message.count);
        }
return obj;
},

create<I extends Exact<DeepPartial<GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange>, I>>(base?: I): GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange {
        return GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange>, I>>(object: I): GpuCounterConfig_InstrumentedSamplingConfig_ActivityRange {
const message = createBaseGpuCounterConfig_InstrumentedSamplingConfig_ActivityRange();
message.skip = object.skip ?? 0;
message.count = object.count ?? 0;
return message;
}
            };

function createBaseGpuRenderStagesConfig(): GpuRenderStagesConfig {
      return { fullLoadstore: false,lowOverhead: false,traceMetrics: [] };
    }

export const GpuRenderStagesConfig: MessageFns<GpuRenderStagesConfig> = {
              encode(
      message: GpuRenderStagesConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.fullLoadstore !== undefined  && message.fullLoadstore !== false) {
          writer.uint32(8).bool(message.fullLoadstore);
        }
if (message.lowOverhead !== undefined  && message.lowOverhead !== false) {
          writer.uint32(16).bool(message.lowOverhead);
        }
if (message.traceMetrics !== undefined && message.traceMetrics.length !== 0) {
              
          for (const v of message.traceMetrics) {
            writer.uint32(26).string(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): GpuRenderStagesConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseGpuRenderStagesConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.fullLoadstore = reader.bool();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.lowOverhead = reader.bool();
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.traceMetrics!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): GpuRenderStagesConfig {
      return {
fullLoadstore: isSet(object.fullLoadstore)
          ? globalThis.Boolean(object.fullLoadstore)
          : false,
lowOverhead: isSet(object.lowOverhead)
          ? globalThis.Boolean(object.lowOverhead)
          : false,
traceMetrics: globalThis.Array.isArray(object?.traceMetrics) ? object.traceMetrics.map((e: any) => globalThis.String(e)): [],
};
},

toJSON(message: GpuRenderStagesConfig): unknown {
      const obj: any = {};
if (message.fullLoadstore !== undefined  && message.fullLoadstore !== false) {
          obj.fullLoadstore = message.fullLoadstore;
        }
if (message.lowOverhead !== undefined  && message.lowOverhead !== false) {
          obj.lowOverhead = message.lowOverhead;
        }
if (message.traceMetrics?.length) {
          obj.traceMetrics = message.traceMetrics;
        }
return obj;
},

create<I extends Exact<DeepPartial<GpuRenderStagesConfig>, I>>(base?: I): GpuRenderStagesConfig {
        return GpuRenderStagesConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<GpuRenderStagesConfig>, I>>(object: I): GpuRenderStagesConfig {
const message = createBaseGpuRenderStagesConfig();
message.fullLoadstore = object.fullLoadstore ?? false;
message.lowOverhead = object.lowOverhead ?? false;
message.traceMetrics = object.traceMetrics?.map((e) => e) || [];
return message;
}
            };

function createBaseVulkanMemoryConfig(): VulkanMemoryConfig {
      return { trackDriverMemoryUsage: false,trackDeviceMemoryUsage: false };
    }

export const VulkanMemoryConfig: MessageFns<VulkanMemoryConfig> = {
              encode(
      message: VulkanMemoryConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.trackDriverMemoryUsage !== undefined  && message.trackDriverMemoryUsage !== false) {
          writer.uint32(8).bool(message.trackDriverMemoryUsage);
        }
if (message.trackDeviceMemoryUsage !== undefined  && message.trackDeviceMemoryUsage !== false) {
          writer.uint32(16).bool(message.trackDeviceMemoryUsage);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): VulkanMemoryConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseVulkanMemoryConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.trackDriverMemoryUsage = reader.bool();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.trackDeviceMemoryUsage = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): VulkanMemoryConfig {
      return {
trackDriverMemoryUsage: isSet(object.trackDriverMemoryUsage)
          ? globalThis.Boolean(object.trackDriverMemoryUsage)
          : false,
trackDeviceMemoryUsage: isSet(object.trackDeviceMemoryUsage)
          ? globalThis.Boolean(object.trackDeviceMemoryUsage)
          : false,
};
},

toJSON(message: VulkanMemoryConfig): unknown {
      const obj: any = {};
if (message.trackDriverMemoryUsage !== undefined  && message.trackDriverMemoryUsage !== false) {
          obj.trackDriverMemoryUsage = message.trackDriverMemoryUsage;
        }
if (message.trackDeviceMemoryUsage !== undefined  && message.trackDeviceMemoryUsage !== false) {
          obj.trackDeviceMemoryUsage = message.trackDeviceMemoryUsage;
        }
return obj;
},

create<I extends Exact<DeepPartial<VulkanMemoryConfig>, I>>(base?: I): VulkanMemoryConfig {
        return VulkanMemoryConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<VulkanMemoryConfig>, I>>(object: I): VulkanMemoryConfig {
const message = createBaseVulkanMemoryConfig();
message.trackDriverMemoryUsage = object.trackDriverMemoryUsage ?? false;
message.trackDeviceMemoryUsage = object.trackDeviceMemoryUsage ?? false;
return message;
}
            };

function createBaseInodeFileConfig(): InodeFileConfig {
      return { scanIntervalMs: 0,scanDelayMs: 0,scanBatchSize: 0,doNotScan: false,scanMountPoints: [],mountPointMapping: [] };
    }

export const InodeFileConfig: MessageFns<InodeFileConfig> = {
              encode(
      message: InodeFileConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.scanIntervalMs !== undefined  && message.scanIntervalMs !== 0) {
          writer.uint32(8).uint32(message.scanIntervalMs);
        }
if (message.scanDelayMs !== undefined  && message.scanDelayMs !== 0) {
          writer.uint32(16).uint32(message.scanDelayMs);
        }
if (message.scanBatchSize !== undefined  && message.scanBatchSize !== 0) {
          writer.uint32(24).uint32(message.scanBatchSize);
        }
if (message.doNotScan !== undefined  && message.doNotScan !== false) {
          writer.uint32(32).bool(message.doNotScan);
        }
if (message.scanMountPoints !== undefined && message.scanMountPoints.length !== 0) {
              
          for (const v of message.scanMountPoints) {
            writer.uint32(42).string(v!);
          }
        
            }
if (message.mountPointMapping !== undefined && message.mountPointMapping.length !== 0) {
              
          for (const v of message.mountPointMapping) {
            InodeFileConfig_MountPointMappingEntry.encode(v!, writer.uint32(50).fork()).join();
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): InodeFileConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseInodeFileConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.scanIntervalMs = reader.uint32();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.scanDelayMs = reader.uint32();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.scanBatchSize = reader.uint32();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.doNotScan = reader.bool();
continue; }
case 5: {
if (tag !== 42) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.scanMountPoints!.push(el);
              }
continue; }
case 6: {
if (tag !== 50) {
        break;
      }
    
              
              const el = InodeFileConfig_MountPointMappingEntry.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.mountPointMapping!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): InodeFileConfig {
      return {
scanIntervalMs: isSet(object.scanIntervalMs)
          ? globalThis.Number(object.scanIntervalMs)
          : 0,
scanDelayMs: isSet(object.scanDelayMs)
          ? globalThis.Number(object.scanDelayMs)
          : 0,
scanBatchSize: isSet(object.scanBatchSize)
          ? globalThis.Number(object.scanBatchSize)
          : 0,
doNotScan: isSet(object.doNotScan)
          ? globalThis.Boolean(object.doNotScan)
          : false,
scanMountPoints: globalThis.Array.isArray(object?.scanMountPoints) ? object.scanMountPoints.map((e: any) => globalThis.String(e)): [],
mountPointMapping: globalThis.Array.isArray(object?.mountPointMapping) ? object.mountPointMapping.map((e: any) => InodeFileConfig_MountPointMappingEntry.fromJSON(e)): [],
};
},

toJSON(message: InodeFileConfig): unknown {
      const obj: any = {};
if (message.scanIntervalMs !== undefined  && message.scanIntervalMs !== 0) {
          obj.scanIntervalMs = Math.round(message.scanIntervalMs);
        }
if (message.scanDelayMs !== undefined  && message.scanDelayMs !== 0) {
          obj.scanDelayMs = Math.round(message.scanDelayMs);
        }
if (message.scanBatchSize !== undefined  && message.scanBatchSize !== 0) {
          obj.scanBatchSize = Math.round(message.scanBatchSize);
        }
if (message.doNotScan !== undefined  && message.doNotScan !== false) {
          obj.doNotScan = message.doNotScan;
        }
if (message.scanMountPoints?.length) {
          obj.scanMountPoints = message.scanMountPoints;
        }
if (message.mountPointMapping?.length) {
          obj.mountPointMapping = message.mountPointMapping.map(e => InodeFileConfig_MountPointMappingEntry.toJSON(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<InodeFileConfig>, I>>(base?: I): InodeFileConfig {
        return InodeFileConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<InodeFileConfig>, I>>(object: I): InodeFileConfig {
const message = createBaseInodeFileConfig();
message.scanIntervalMs = object.scanIntervalMs ?? 0;
message.scanDelayMs = object.scanDelayMs ?? 0;
message.scanBatchSize = object.scanBatchSize ?? 0;
message.doNotScan = object.doNotScan ?? false;
message.scanMountPoints = object.scanMountPoints?.map((e) => e) || [];
message.mountPointMapping = object.mountPointMapping?.map((e) => InodeFileConfig_MountPointMappingEntry.fromPartial(e)) || [];
return message;
}
            };

function createBaseInodeFileConfig_MountPointMappingEntry(): InodeFileConfig_MountPointMappingEntry {
      return { mountpoint: "",scanRoots: [] };
    }

export const InodeFileConfig_MountPointMappingEntry: MessageFns<InodeFileConfig_MountPointMappingEntry> = {
              encode(
      message: InodeFileConfig_MountPointMappingEntry,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.mountpoint !== undefined  && message.mountpoint !== "") {
          writer.uint32(10).string(message.mountpoint);
        }
if (message.scanRoots !== undefined && message.scanRoots.length !== 0) {
              
          for (const v of message.scanRoots) {
            writer.uint32(18).string(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): InodeFileConfig_MountPointMappingEntry {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseInodeFileConfig_MountPointMappingEntry();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.mountpoint = reader.string();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.scanRoots!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): InodeFileConfig_MountPointMappingEntry {
      return {
mountpoint: isSet(object.mountpoint)
          ? globalThis.String(object.mountpoint)
          : "",
scanRoots: globalThis.Array.isArray(object?.scanRoots) ? object.scanRoots.map((e: any) => globalThis.String(e)): [],
};
},

toJSON(message: InodeFileConfig_MountPointMappingEntry): unknown {
      const obj: any = {};
if (message.mountpoint !== undefined  && message.mountpoint !== "") {
          obj.mountpoint = message.mountpoint;
        }
if (message.scanRoots?.length) {
          obj.scanRoots = message.scanRoots;
        }
return obj;
},

create<I extends Exact<DeepPartial<InodeFileConfig_MountPointMappingEntry>, I>>(base?: I): InodeFileConfig_MountPointMappingEntry {
        return InodeFileConfig_MountPointMappingEntry.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<InodeFileConfig_MountPointMappingEntry>, I>>(object: I): InodeFileConfig_MountPointMappingEntry {
const message = createBaseInodeFileConfig_MountPointMappingEntry();
message.mountpoint = object.mountpoint ?? "";
message.scanRoots = object.scanRoots?.map((e) => e) || [];
return message;
}
            };

function createBaseConsoleConfig(): ConsoleConfig {
      return { output: 0,enableColors: false };
    }

export const ConsoleConfig: MessageFns<ConsoleConfig> = {
              encode(
      message: ConsoleConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.output !== undefined  && message.output !== 0) {
          writer.uint32(8).int32(message.output);
        }
if (message.enableColors !== undefined  && message.enableColors !== false) {
          writer.uint32(16).bool(message.enableColors);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): ConsoleConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseConsoleConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.output = reader.int32() as any;
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.enableColors = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): ConsoleConfig {
      return {
output: isSet(object.output)
          ? consoleConfig_OutputFromJSON(object.output)
          : 0,
enableColors: isSet(object.enableColors)
          ? globalThis.Boolean(object.enableColors)
          : false,
};
},

toJSON(message: ConsoleConfig): unknown {
      const obj: any = {};
if (message.output !== undefined  && message.output !== 0) {
          obj.output = consoleConfig_OutputToJSON(message.output);
        }
if (message.enableColors !== undefined  && message.enableColors !== false) {
          obj.enableColors = message.enableColors;
        }
return obj;
},

create<I extends Exact<DeepPartial<ConsoleConfig>, I>>(base?: I): ConsoleConfig {
        return ConsoleConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<ConsoleConfig>, I>>(object: I): ConsoleConfig {
const message = createBaseConsoleConfig();
message.output = object.output ?? 0;
message.enableColors = object.enableColors ?? false;
return message;
}
            };

function createBaseInterceptorConfig(): InterceptorConfig {
      return { name: "",consoleConfig: undefined };
    }

export const InterceptorConfig: MessageFns<InterceptorConfig> = {
              encode(
      message: InterceptorConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(10).string(message.name);
        }
if (message.consoleConfig !== undefined ) {
          ConsoleConfig.encode(message.consoleConfig, writer.uint32(802).fork()).join();
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): InterceptorConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseInterceptorConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.name = reader.string();
continue; }
case 100: {
if (tag !== 802) {
        break;
      }
    
        message.consoleConfig = ConsoleConfig.decode(reader, reader.uint32());
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): InterceptorConfig {
      return {
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
consoleConfig: isSet(object.consoleConfig)
          ? ConsoleConfig.fromJSON(object.consoleConfig)
          : undefined,
};
},

toJSON(message: InterceptorConfig): unknown {
      const obj: any = {};
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
if (message.consoleConfig !== undefined ) {
          obj.consoleConfig = ConsoleConfig.toJSON(message.consoleConfig);
        }
return obj;
},

create<I extends Exact<DeepPartial<InterceptorConfig>, I>>(base?: I): InterceptorConfig {
        return InterceptorConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<InterceptorConfig>, I>>(object: I): InterceptorConfig {
const message = createBaseInterceptorConfig();
message.name = object.name ?? "";
message.consoleConfig = (object.consoleConfig !== undefined && object.consoleConfig !== null)
          ? ConsoleConfig.fromPartial(object.consoleConfig)
          : undefined;
return message;
}
            };

function createBaseSystemdJournaldConfig(): SystemdJournaldConfig {
      return { minPrio: 0,filterIdentifiers: [],filterUnits: [] };
    }

export const SystemdJournaldConfig: MessageFns<SystemdJournaldConfig> = {
              encode(
      message: SystemdJournaldConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.minPrio !== undefined  && message.minPrio !== 0) {
          writer.uint32(8).uint32(message.minPrio);
        }
if (message.filterIdentifiers !== undefined && message.filterIdentifiers.length !== 0) {
              
          for (const v of message.filterIdentifiers) {
            writer.uint32(18).string(v!);
          }
        
            }
if (message.filterUnits !== undefined && message.filterUnits.length !== 0) {
              
          for (const v of message.filterUnits) {
            writer.uint32(26).string(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): SystemdJournaldConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseSystemdJournaldConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.minPrio = reader.uint32();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.filterIdentifiers!.push(el);
              }
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.filterUnits!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): SystemdJournaldConfig {
      return {
minPrio: isSet(object.minPrio)
          ? globalThis.Number(object.minPrio)
          : 0,
filterIdentifiers: globalThis.Array.isArray(object?.filterIdentifiers) ? object.filterIdentifiers.map((e: any) => globalThis.String(e)): [],
filterUnits: globalThis.Array.isArray(object?.filterUnits) ? object.filterUnits.map((e: any) => globalThis.String(e)): [],
};
},

toJSON(message: SystemdJournaldConfig): unknown {
      const obj: any = {};
if (message.minPrio !== undefined  && message.minPrio !== 0) {
          obj.minPrio = Math.round(message.minPrio);
        }
if (message.filterIdentifiers?.length) {
          obj.filterIdentifiers = message.filterIdentifiers;
        }
if (message.filterUnits?.length) {
          obj.filterUnits = message.filterUnits;
        }
return obj;
},

create<I extends Exact<DeepPartial<SystemdJournaldConfig>, I>>(base?: I): SystemdJournaldConfig {
        return SystemdJournaldConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<SystemdJournaldConfig>, I>>(object: I): SystemdJournaldConfig {
const message = createBaseSystemdJournaldConfig();
message.minPrio = object.minPrio ?? 0;
message.filterIdentifiers = object.filterIdentifiers?.map((e) => e) || [];
message.filterUnits = object.filterUnits?.map((e) => e) || [];
return message;
}
            };

function createBaseAndroidPowerConfig(): AndroidPowerConfig {
      return { batteryPollMs: 0,batteryCounters: [],collectPowerRails: false,collectEnergyEstimationBreakdown: false,collectEntityStateResidency: false };
    }

export const AndroidPowerConfig: MessageFns<AndroidPowerConfig> = {
              encode(
      message: AndroidPowerConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.batteryPollMs !== undefined  && message.batteryPollMs !== 0) {
          writer.uint32(8).uint32(message.batteryPollMs);
        }
if (message.batteryCounters !== undefined && message.batteryCounters.length !== 0) {
              
          for (const v of message.batteryCounters) {
            writer.uint32(16).int32(v!);
          }
        
            }
if (message.collectPowerRails !== undefined  && message.collectPowerRails !== false) {
          writer.uint32(24).bool(message.collectPowerRails);
        }
if (message.collectEnergyEstimationBreakdown !== undefined  && message.collectEnergyEstimationBreakdown !== false) {
          writer.uint32(32).bool(message.collectEnergyEstimationBreakdown);
        }
if (message.collectEntityStateResidency !== undefined  && message.collectEntityStateResidency !== false) {
          writer.uint32(40).bool(message.collectEntityStateResidency);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): AndroidPowerConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseAndroidPowerConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.batteryPollMs = reader.uint32();
continue; }
case 2: {
if (tag === 16) {
              
              message.batteryCounters!.push(reader.int32() as any);

              continue;
            }

            if (tag === 18) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.batteryCounters!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.collectPowerRails = reader.bool();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.collectEnergyEstimationBreakdown = reader.bool();
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.collectEntityStateResidency = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): AndroidPowerConfig {
      return {
batteryPollMs: isSet(object.batteryPollMs)
          ? globalThis.Number(object.batteryPollMs)
          : 0,
batteryCounters: globalThis.Array.isArray(object?.batteryCounters) ? object.batteryCounters.map((e: any) => androidPowerConfig_BatteryCountersFromJSON(e)): [],
collectPowerRails: isSet(object.collectPowerRails)
          ? globalThis.Boolean(object.collectPowerRails)
          : false,
collectEnergyEstimationBreakdown: isSet(object.collectEnergyEstimationBreakdown)
          ? globalThis.Boolean(object.collectEnergyEstimationBreakdown)
          : false,
collectEntityStateResidency: isSet(object.collectEntityStateResidency)
          ? globalThis.Boolean(object.collectEntityStateResidency)
          : false,
};
},

toJSON(message: AndroidPowerConfig): unknown {
      const obj: any = {};
if (message.batteryPollMs !== undefined  && message.batteryPollMs !== 0) {
          obj.batteryPollMs = Math.round(message.batteryPollMs);
        }
if (message.batteryCounters?.length) {
          obj.batteryCounters = message.batteryCounters.map(e => androidPowerConfig_BatteryCountersToJSON(e));
        }
if (message.collectPowerRails !== undefined  && message.collectPowerRails !== false) {
          obj.collectPowerRails = message.collectPowerRails;
        }
if (message.collectEnergyEstimationBreakdown !== undefined  && message.collectEnergyEstimationBreakdown !== false) {
          obj.collectEnergyEstimationBreakdown = message.collectEnergyEstimationBreakdown;
        }
if (message.collectEntityStateResidency !== undefined  && message.collectEntityStateResidency !== false) {
          obj.collectEntityStateResidency = message.collectEntityStateResidency;
        }
return obj;
},

create<I extends Exact<DeepPartial<AndroidPowerConfig>, I>>(base?: I): AndroidPowerConfig {
        return AndroidPowerConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<AndroidPowerConfig>, I>>(object: I): AndroidPowerConfig {
const message = createBaseAndroidPowerConfig();
message.batteryPollMs = object.batteryPollMs ?? 0;
message.batteryCounters = object.batteryCounters?.map((e) => e) || [];
message.collectPowerRails = object.collectPowerRails ?? false;
message.collectEnergyEstimationBreakdown = object.collectEnergyEstimationBreakdown ?? false;
message.collectEntityStateResidency = object.collectEntityStateResidency ?? false;
return message;
}
            };

function createBasePriorityBoostConfig(): PriorityBoostConfig {
      return { policy: 0,priority: 0 };
    }

export const PriorityBoostConfig: MessageFns<PriorityBoostConfig> = {
              encode(
      message: PriorityBoostConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.policy !== undefined  && message.policy !== 0) {
          writer.uint32(8).int32(message.policy);
        }
if (message.priority !== undefined  && message.priority !== 0) {
          writer.uint32(16).uint32(message.priority);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): PriorityBoostConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePriorityBoostConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.policy = reader.int32() as any;
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.priority = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): PriorityBoostConfig {
      return {
policy: isSet(object.policy)
          ? priorityBoostConfig_BoostPolicyFromJSON(object.policy)
          : 0,
priority: isSet(object.priority)
          ? globalThis.Number(object.priority)
          : 0,
};
},

toJSON(message: PriorityBoostConfig): unknown {
      const obj: any = {};
if (message.policy !== undefined  && message.policy !== 0) {
          obj.policy = priorityBoostConfig_BoostPolicyToJSON(message.policy);
        }
if (message.priority !== undefined  && message.priority !== 0) {
          obj.priority = Math.round(message.priority);
        }
return obj;
},

create<I extends Exact<DeepPartial<PriorityBoostConfig>, I>>(base?: I): PriorityBoostConfig {
        return PriorityBoostConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<PriorityBoostConfig>, I>>(object: I): PriorityBoostConfig {
const message = createBasePriorityBoostConfig();
message.policy = object.policy ?? 0;
message.priority = object.priority ?? 0;
return message;
}
            };

function createBaseProcessStatsConfig(): ProcessStatsConfig {
      return { quirks: [],scanAllProcessesOnStart: false,recordThreadNames: false,procStatsPollMs: 0,procStatsCacheTtlMs: 0,scanSmapsRollup: false,recordProcessAge: false,recordProcessRuntime: false,recordProcessDmabufRss: false,resolveProcessFds: false,skipMainThreadMessage: false };
    }

export const ProcessStatsConfig: MessageFns<ProcessStatsConfig> = {
              encode(
      message: ProcessStatsConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.quirks !== undefined && message.quirks.length !== 0) {
              
          for (const v of message.quirks) {
            writer.uint32(8).int32(v!);
          }
        
            }
if (message.scanAllProcessesOnStart !== undefined  && message.scanAllProcessesOnStart !== false) {
          writer.uint32(16).bool(message.scanAllProcessesOnStart);
        }
if (message.recordThreadNames !== undefined  && message.recordThreadNames !== false) {
          writer.uint32(24).bool(message.recordThreadNames);
        }
if (message.procStatsPollMs !== undefined  && message.procStatsPollMs !== 0) {
          writer.uint32(32).uint32(message.procStatsPollMs);
        }
if (message.procStatsCacheTtlMs !== undefined  && message.procStatsCacheTtlMs !== 0) {
          writer.uint32(48).uint32(message.procStatsCacheTtlMs);
        }
if (message.scanSmapsRollup !== undefined  && message.scanSmapsRollup !== false) {
          writer.uint32(80).bool(message.scanSmapsRollup);
        }
if (message.recordProcessAge !== undefined  && message.recordProcessAge !== false) {
          writer.uint32(88).bool(message.recordProcessAge);
        }
if (message.recordProcessRuntime !== undefined  && message.recordProcessRuntime !== false) {
          writer.uint32(96).bool(message.recordProcessRuntime);
        }
if (message.recordProcessDmabufRss !== undefined  && message.recordProcessDmabufRss !== false) {
          writer.uint32(104).bool(message.recordProcessDmabufRss);
        }
if (message.resolveProcessFds !== undefined  && message.resolveProcessFds !== false) {
          writer.uint32(72).bool(message.resolveProcessFds);
        }
if (message.skipMainThreadMessage !== undefined  && message.skipMainThreadMessage !== false) {
          writer.uint32(112).bool(message.skipMainThreadMessage);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): ProcessStatsConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseProcessStatsConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag === 8) {
              
              message.quirks!.push(reader.int32() as any);

              continue;
            }

            if (tag === 10) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.quirks!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.scanAllProcessesOnStart = reader.bool();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.recordThreadNames = reader.bool();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.procStatsPollMs = reader.uint32();
continue; }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.procStatsCacheTtlMs = reader.uint32();
continue; }
case 10: {
if (tag !== 80) {
        break;
      }
    
        message.scanSmapsRollup = reader.bool();
continue; }
case 11: {
if (tag !== 88) {
        break;
      }
    
        message.recordProcessAge = reader.bool();
continue; }
case 12: {
if (tag !== 96) {
        break;
      }
    
        message.recordProcessRuntime = reader.bool();
continue; }
case 13: {
if (tag !== 104) {
        break;
      }
    
        message.recordProcessDmabufRss = reader.bool();
continue; }
case 9: {
if (tag !== 72) {
        break;
      }
    
        message.resolveProcessFds = reader.bool();
continue; }
case 14: {
if (tag !== 112) {
        break;
      }
    
        message.skipMainThreadMessage = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): ProcessStatsConfig {
      return {
quirks: globalThis.Array.isArray(object?.quirks) ? object.quirks.map((e: any) => processStatsConfig_QuirksFromJSON(e)): [],
scanAllProcessesOnStart: isSet(object.scanAllProcessesOnStart)
          ? globalThis.Boolean(object.scanAllProcessesOnStart)
          : false,
recordThreadNames: isSet(object.recordThreadNames)
          ? globalThis.Boolean(object.recordThreadNames)
          : false,
procStatsPollMs: isSet(object.procStatsPollMs)
          ? globalThis.Number(object.procStatsPollMs)
          : 0,
procStatsCacheTtlMs: isSet(object.procStatsCacheTtlMs)
          ? globalThis.Number(object.procStatsCacheTtlMs)
          : 0,
scanSmapsRollup: isSet(object.scanSmapsRollup)
          ? globalThis.Boolean(object.scanSmapsRollup)
          : false,
recordProcessAge: isSet(object.recordProcessAge)
          ? globalThis.Boolean(object.recordProcessAge)
          : false,
recordProcessRuntime: isSet(object.recordProcessRuntime)
          ? globalThis.Boolean(object.recordProcessRuntime)
          : false,
recordProcessDmabufRss: isSet(object.recordProcessDmabufRss)
          ? globalThis.Boolean(object.recordProcessDmabufRss)
          : false,
resolveProcessFds: isSet(object.resolveProcessFds)
          ? globalThis.Boolean(object.resolveProcessFds)
          : false,
skipMainThreadMessage: isSet(object.skipMainThreadMessage)
          ? globalThis.Boolean(object.skipMainThreadMessage)
          : false,
};
},

toJSON(message: ProcessStatsConfig): unknown {
      const obj: any = {};
if (message.quirks?.length) {
          obj.quirks = message.quirks.map(e => processStatsConfig_QuirksToJSON(e));
        }
if (message.scanAllProcessesOnStart !== undefined  && message.scanAllProcessesOnStart !== false) {
          obj.scanAllProcessesOnStart = message.scanAllProcessesOnStart;
        }
if (message.recordThreadNames !== undefined  && message.recordThreadNames !== false) {
          obj.recordThreadNames = message.recordThreadNames;
        }
if (message.procStatsPollMs !== undefined  && message.procStatsPollMs !== 0) {
          obj.procStatsPollMs = Math.round(message.procStatsPollMs);
        }
if (message.procStatsCacheTtlMs !== undefined  && message.procStatsCacheTtlMs !== 0) {
          obj.procStatsCacheTtlMs = Math.round(message.procStatsCacheTtlMs);
        }
if (message.scanSmapsRollup !== undefined  && message.scanSmapsRollup !== false) {
          obj.scanSmapsRollup = message.scanSmapsRollup;
        }
if (message.recordProcessAge !== undefined  && message.recordProcessAge !== false) {
          obj.recordProcessAge = message.recordProcessAge;
        }
if (message.recordProcessRuntime !== undefined  && message.recordProcessRuntime !== false) {
          obj.recordProcessRuntime = message.recordProcessRuntime;
        }
if (message.recordProcessDmabufRss !== undefined  && message.recordProcessDmabufRss !== false) {
          obj.recordProcessDmabufRss = message.recordProcessDmabufRss;
        }
if (message.resolveProcessFds !== undefined  && message.resolveProcessFds !== false) {
          obj.resolveProcessFds = message.resolveProcessFds;
        }
if (message.skipMainThreadMessage !== undefined  && message.skipMainThreadMessage !== false) {
          obj.skipMainThreadMessage = message.skipMainThreadMessage;
        }
return obj;
},

create<I extends Exact<DeepPartial<ProcessStatsConfig>, I>>(base?: I): ProcessStatsConfig {
        return ProcessStatsConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<ProcessStatsConfig>, I>>(object: I): ProcessStatsConfig {
const message = createBaseProcessStatsConfig();
message.quirks = object.quirks?.map((e) => e) || [];
message.scanAllProcessesOnStart = object.scanAllProcessesOnStart ?? false;
message.recordThreadNames = object.recordThreadNames ?? false;
message.procStatsPollMs = object.procStatsPollMs ?? 0;
message.procStatsCacheTtlMs = object.procStatsCacheTtlMs ?? 0;
message.scanSmapsRollup = object.scanSmapsRollup ?? false;
message.recordProcessAge = object.recordProcessAge ?? false;
message.recordProcessRuntime = object.recordProcessRuntime ?? false;
message.recordProcessDmabufRss = object.recordProcessDmabufRss ?? false;
message.resolveProcessFds = object.resolveProcessFds ?? false;
message.skipMainThreadMessage = object.skipMainThreadMessage ?? false;
return message;
}
            };

function createBaseHeapprofdConfig(): HeapprofdConfig {
      return { samplingIntervalBytes: 0,adaptiveSamplingShmemThreshold: 0,adaptiveSamplingMaxSamplingIntervalBytes: 0,processCmdline: [],pid: [],targetInstalledBy: [],heaps: [],excludeHeaps: [],streamAllocations: false,heapSamplingIntervals: [],allHeaps: false,all: false,minAnonymousMemoryKb: 0,maxHeapprofdMemoryKb: 0,maxHeapprofdCpuSecs: 0,skipSymbolPrefix: [],continuousDumpConfig: undefined,shmemSizeBytes: 0,blockClient: false,blockClientTimeoutUs: 0,noStartup: false,noRunning: false,dumpAtMax: false,disableForkTeardown: false,disableVforkDetection: false };
    }

export const HeapprofdConfig: MessageFns<HeapprofdConfig> = {
              encode(
      message: HeapprofdConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.samplingIntervalBytes !== undefined  && message.samplingIntervalBytes !== 0) {
          writer.uint32(8).uint64(message.samplingIntervalBytes);
        }
if (message.adaptiveSamplingShmemThreshold !== undefined  && message.adaptiveSamplingShmemThreshold !== 0) {
          writer.uint32(192).uint64(message.adaptiveSamplingShmemThreshold);
        }
if (message.adaptiveSamplingMaxSamplingIntervalBytes !== undefined  && message.adaptiveSamplingMaxSamplingIntervalBytes !== 0) {
          writer.uint32(200).uint64(message.adaptiveSamplingMaxSamplingIntervalBytes);
        }
if (message.processCmdline !== undefined && message.processCmdline.length !== 0) {
              
          for (const v of message.processCmdline) {
            writer.uint32(18).string(v!);
          }
        
            }
if (message.pid !== undefined && message.pid.length !== 0) {
              
          for (const v of message.pid) {
            writer.uint32(32).uint64(v!);
          }
        
            }
if (message.targetInstalledBy !== undefined && message.targetInstalledBy.length !== 0) {
              
          for (const v of message.targetInstalledBy) {
            writer.uint32(210).string(v!);
          }
        
            }
if (message.heaps !== undefined && message.heaps.length !== 0) {
              
          for (const v of message.heaps) {
            writer.uint32(162).string(v!);
          }
        
            }
if (message.excludeHeaps !== undefined && message.excludeHeaps.length !== 0) {
              
          for (const v of message.excludeHeaps) {
            writer.uint32(218).string(v!);
          }
        
            }
if (message.streamAllocations !== undefined  && message.streamAllocations !== false) {
          writer.uint32(184).bool(message.streamAllocations);
        }
if (message.heapSamplingIntervals !== undefined && message.heapSamplingIntervals.length !== 0) {
              
          for (const v of message.heapSamplingIntervals) {
            writer.uint32(176).uint64(v!);
          }
        
            }
if (message.allHeaps !== undefined  && message.allHeaps !== false) {
          writer.uint32(168).bool(message.allHeaps);
        }
if (message.all !== undefined  && message.all !== false) {
          writer.uint32(40).bool(message.all);
        }
if (message.minAnonymousMemoryKb !== undefined  && message.minAnonymousMemoryKb !== 0) {
          writer.uint32(120).uint32(message.minAnonymousMemoryKb);
        }
if (message.maxHeapprofdMemoryKb !== undefined  && message.maxHeapprofdMemoryKb !== 0) {
          writer.uint32(128).uint32(message.maxHeapprofdMemoryKb);
        }
if (message.maxHeapprofdCpuSecs !== undefined  && message.maxHeapprofdCpuSecs !== 0) {
          writer.uint32(136).uint64(message.maxHeapprofdCpuSecs);
        }
if (message.skipSymbolPrefix !== undefined && message.skipSymbolPrefix.length !== 0) {
              
          for (const v of message.skipSymbolPrefix) {
            writer.uint32(58).string(v!);
          }
        
            }
if (message.continuousDumpConfig !== undefined ) {
          HeapprofdConfig_ContinuousDumpConfig.encode(message.continuousDumpConfig, writer.uint32(50).fork()).join();
        }
if (message.shmemSizeBytes !== undefined  && message.shmemSizeBytes !== 0) {
          writer.uint32(64).uint64(message.shmemSizeBytes);
        }
if (message.blockClient !== undefined  && message.blockClient !== false) {
          writer.uint32(72).bool(message.blockClient);
        }
if (message.blockClientTimeoutUs !== undefined  && message.blockClientTimeoutUs !== 0) {
          writer.uint32(112).uint32(message.blockClientTimeoutUs);
        }
if (message.noStartup !== undefined  && message.noStartup !== false) {
          writer.uint32(80).bool(message.noStartup);
        }
if (message.noRunning !== undefined  && message.noRunning !== false) {
          writer.uint32(88).bool(message.noRunning);
        }
if (message.dumpAtMax !== undefined  && message.dumpAtMax !== false) {
          writer.uint32(104).bool(message.dumpAtMax);
        }
if (message.disableForkTeardown !== undefined  && message.disableForkTeardown !== false) {
          writer.uint32(144).bool(message.disableForkTeardown);
        }
if (message.disableVforkDetection !== undefined  && message.disableVforkDetection !== false) {
          writer.uint32(152).bool(message.disableVforkDetection);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): HeapprofdConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseHeapprofdConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.samplingIntervalBytes = longToNumber(reader.uint64());
continue; }
case 24: {
if (tag !== 192) {
        break;
      }
    
        message.adaptiveSamplingShmemThreshold = longToNumber(reader.uint64());
continue; }
case 25: {
if (tag !== 200) {
        break;
      }
    
        message.adaptiveSamplingMaxSamplingIntervalBytes = longToNumber(reader.uint64());
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.processCmdline!.push(el);
              }
continue; }
case 4: {
if (tag === 32) {
              
              message.pid!.push(longToNumber(reader.uint64()));

              continue;
            }

            if (tag === 34) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.pid!.push(longToNumber(reader.uint64()));
              }

              continue;
            }

            break;
          }
case 26: {
if (tag !== 210) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.targetInstalledBy!.push(el);
              }
continue; }
case 20: {
if (tag !== 162) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.heaps!.push(el);
              }
continue; }
case 27: {
if (tag !== 218) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.excludeHeaps!.push(el);
              }
continue; }
case 23: {
if (tag !== 184) {
        break;
      }
    
        message.streamAllocations = reader.bool();
continue; }
case 22: {
if (tag === 176) {
              
              message.heapSamplingIntervals!.push(longToNumber(reader.uint64()));

              continue;
            }

            if (tag === 178) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.heapSamplingIntervals!.push(longToNumber(reader.uint64()));
              }

              continue;
            }

            break;
          }
case 21: {
if (tag !== 168) {
        break;
      }
    
        message.allHeaps = reader.bool();
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.all = reader.bool();
continue; }
case 15: {
if (tag !== 120) {
        break;
      }
    
        message.minAnonymousMemoryKb = reader.uint32();
continue; }
case 16: {
if (tag !== 128) {
        break;
      }
    
        message.maxHeapprofdMemoryKb = reader.uint32();
continue; }
case 17: {
if (tag !== 136) {
        break;
      }
    
        message.maxHeapprofdCpuSecs = longToNumber(reader.uint64());
continue; }
case 7: {
if (tag !== 58) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.skipSymbolPrefix!.push(el);
              }
continue; }
case 6: {
if (tag !== 50) {
        break;
      }
    
        message.continuousDumpConfig = HeapprofdConfig_ContinuousDumpConfig.decode(reader, reader.uint32());
continue; }
case 8: {
if (tag !== 64) {
        break;
      }
    
        message.shmemSizeBytes = longToNumber(reader.uint64());
continue; }
case 9: {
if (tag !== 72) {
        break;
      }
    
        message.blockClient = reader.bool();
continue; }
case 14: {
if (tag !== 112) {
        break;
      }
    
        message.blockClientTimeoutUs = reader.uint32();
continue; }
case 10: {
if (tag !== 80) {
        break;
      }
    
        message.noStartup = reader.bool();
continue; }
case 11: {
if (tag !== 88) {
        break;
      }
    
        message.noRunning = reader.bool();
continue; }
case 13: {
if (tag !== 104) {
        break;
      }
    
        message.dumpAtMax = reader.bool();
continue; }
case 18: {
if (tag !== 144) {
        break;
      }
    
        message.disableForkTeardown = reader.bool();
continue; }
case 19: {
if (tag !== 152) {
        break;
      }
    
        message.disableVforkDetection = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): HeapprofdConfig {
      return {
samplingIntervalBytes: isSet(object.samplingIntervalBytes)
          ? globalThis.Number(object.samplingIntervalBytes)
          : 0,
adaptiveSamplingShmemThreshold: isSet(object.adaptiveSamplingShmemThreshold)
          ? globalThis.Number(object.adaptiveSamplingShmemThreshold)
          : 0,
adaptiveSamplingMaxSamplingIntervalBytes: isSet(object.adaptiveSamplingMaxSamplingIntervalBytes)
          ? globalThis.Number(object.adaptiveSamplingMaxSamplingIntervalBytes)
          : 0,
processCmdline: globalThis.Array.isArray(object?.processCmdline) ? object.processCmdline.map((e: any) => globalThis.String(e)): [],
pid: globalThis.Array.isArray(object?.pid) ? object.pid.map((e: any) => globalThis.Number(e)): [],
targetInstalledBy: globalThis.Array.isArray(object?.targetInstalledBy) ? object.targetInstalledBy.map((e: any) => globalThis.String(e)): [],
heaps: globalThis.Array.isArray(object?.heaps) ? object.heaps.map((e: any) => globalThis.String(e)): [],
excludeHeaps: globalThis.Array.isArray(object?.excludeHeaps) ? object.excludeHeaps.map((e: any) => globalThis.String(e)): [],
streamAllocations: isSet(object.streamAllocations)
          ? globalThis.Boolean(object.streamAllocations)
          : false,
heapSamplingIntervals: globalThis.Array.isArray(object?.heapSamplingIntervals) ? object.heapSamplingIntervals.map((e: any) => globalThis.Number(e)): [],
allHeaps: isSet(object.allHeaps)
          ? globalThis.Boolean(object.allHeaps)
          : false,
all: isSet(object.all)
          ? globalThis.Boolean(object.all)
          : false,
minAnonymousMemoryKb: isSet(object.minAnonymousMemoryKb)
          ? globalThis.Number(object.minAnonymousMemoryKb)
          : 0,
maxHeapprofdMemoryKb: isSet(object.maxHeapprofdMemoryKb)
          ? globalThis.Number(object.maxHeapprofdMemoryKb)
          : 0,
maxHeapprofdCpuSecs: isSet(object.maxHeapprofdCpuSecs)
          ? globalThis.Number(object.maxHeapprofdCpuSecs)
          : 0,
skipSymbolPrefix: globalThis.Array.isArray(object?.skipSymbolPrefix) ? object.skipSymbolPrefix.map((e: any) => globalThis.String(e)): [],
continuousDumpConfig: isSet(object.continuousDumpConfig)
          ? HeapprofdConfig_ContinuousDumpConfig.fromJSON(object.continuousDumpConfig)
          : undefined,
shmemSizeBytes: isSet(object.shmemSizeBytes)
          ? globalThis.Number(object.shmemSizeBytes)
          : 0,
blockClient: isSet(object.blockClient)
          ? globalThis.Boolean(object.blockClient)
          : false,
blockClientTimeoutUs: isSet(object.blockClientTimeoutUs)
          ? globalThis.Number(object.blockClientTimeoutUs)
          : 0,
noStartup: isSet(object.noStartup)
          ? globalThis.Boolean(object.noStartup)
          : false,
noRunning: isSet(object.noRunning)
          ? globalThis.Boolean(object.noRunning)
          : false,
dumpAtMax: isSet(object.dumpAtMax)
          ? globalThis.Boolean(object.dumpAtMax)
          : false,
disableForkTeardown: isSet(object.disableForkTeardown)
          ? globalThis.Boolean(object.disableForkTeardown)
          : false,
disableVforkDetection: isSet(object.disableVforkDetection)
          ? globalThis.Boolean(object.disableVforkDetection)
          : false,
};
},

toJSON(message: HeapprofdConfig): unknown {
      const obj: any = {};
if (message.samplingIntervalBytes !== undefined  && message.samplingIntervalBytes !== 0) {
          obj.samplingIntervalBytes = Math.round(message.samplingIntervalBytes);
        }
if (message.adaptiveSamplingShmemThreshold !== undefined  && message.adaptiveSamplingShmemThreshold !== 0) {
          obj.adaptiveSamplingShmemThreshold = Math.round(message.adaptiveSamplingShmemThreshold);
        }
if (message.adaptiveSamplingMaxSamplingIntervalBytes !== undefined  && message.adaptiveSamplingMaxSamplingIntervalBytes !== 0) {
          obj.adaptiveSamplingMaxSamplingIntervalBytes = Math.round(message.adaptiveSamplingMaxSamplingIntervalBytes);
        }
if (message.processCmdline?.length) {
          obj.processCmdline = message.processCmdline;
        }
if (message.pid?.length) {
          obj.pid = message.pid.map(e => Math.round(e));
        }
if (message.targetInstalledBy?.length) {
          obj.targetInstalledBy = message.targetInstalledBy;
        }
if (message.heaps?.length) {
          obj.heaps = message.heaps;
        }
if (message.excludeHeaps?.length) {
          obj.excludeHeaps = message.excludeHeaps;
        }
if (message.streamAllocations !== undefined  && message.streamAllocations !== false) {
          obj.streamAllocations = message.streamAllocations;
        }
if (message.heapSamplingIntervals?.length) {
          obj.heapSamplingIntervals = message.heapSamplingIntervals.map(e => Math.round(e));
        }
if (message.allHeaps !== undefined  && message.allHeaps !== false) {
          obj.allHeaps = message.allHeaps;
        }
if (message.all !== undefined  && message.all !== false) {
          obj.all = message.all;
        }
if (message.minAnonymousMemoryKb !== undefined  && message.minAnonymousMemoryKb !== 0) {
          obj.minAnonymousMemoryKb = Math.round(message.minAnonymousMemoryKb);
        }
if (message.maxHeapprofdMemoryKb !== undefined  && message.maxHeapprofdMemoryKb !== 0) {
          obj.maxHeapprofdMemoryKb = Math.round(message.maxHeapprofdMemoryKb);
        }
if (message.maxHeapprofdCpuSecs !== undefined  && message.maxHeapprofdCpuSecs !== 0) {
          obj.maxHeapprofdCpuSecs = Math.round(message.maxHeapprofdCpuSecs);
        }
if (message.skipSymbolPrefix?.length) {
          obj.skipSymbolPrefix = message.skipSymbolPrefix;
        }
if (message.continuousDumpConfig !== undefined ) {
          obj.continuousDumpConfig = HeapprofdConfig_ContinuousDumpConfig.toJSON(message.continuousDumpConfig);
        }
if (message.shmemSizeBytes !== undefined  && message.shmemSizeBytes !== 0) {
          obj.shmemSizeBytes = Math.round(message.shmemSizeBytes);
        }
if (message.blockClient !== undefined  && message.blockClient !== false) {
          obj.blockClient = message.blockClient;
        }
if (message.blockClientTimeoutUs !== undefined  && message.blockClientTimeoutUs !== 0) {
          obj.blockClientTimeoutUs = Math.round(message.blockClientTimeoutUs);
        }
if (message.noStartup !== undefined  && message.noStartup !== false) {
          obj.noStartup = message.noStartup;
        }
if (message.noRunning !== undefined  && message.noRunning !== false) {
          obj.noRunning = message.noRunning;
        }
if (message.dumpAtMax !== undefined  && message.dumpAtMax !== false) {
          obj.dumpAtMax = message.dumpAtMax;
        }
if (message.disableForkTeardown !== undefined  && message.disableForkTeardown !== false) {
          obj.disableForkTeardown = message.disableForkTeardown;
        }
if (message.disableVforkDetection !== undefined  && message.disableVforkDetection !== false) {
          obj.disableVforkDetection = message.disableVforkDetection;
        }
return obj;
},

create<I extends Exact<DeepPartial<HeapprofdConfig>, I>>(base?: I): HeapprofdConfig {
        return HeapprofdConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<HeapprofdConfig>, I>>(object: I): HeapprofdConfig {
const message = createBaseHeapprofdConfig();
message.samplingIntervalBytes = object.samplingIntervalBytes ?? 0;
message.adaptiveSamplingShmemThreshold = object.adaptiveSamplingShmemThreshold ?? 0;
message.adaptiveSamplingMaxSamplingIntervalBytes = object.adaptiveSamplingMaxSamplingIntervalBytes ?? 0;
message.processCmdline = object.processCmdline?.map((e) => e) || [];
message.pid = object.pid?.map((e) => e) || [];
message.targetInstalledBy = object.targetInstalledBy?.map((e) => e) || [];
message.heaps = object.heaps?.map((e) => e) || [];
message.excludeHeaps = object.excludeHeaps?.map((e) => e) || [];
message.streamAllocations = object.streamAllocations ?? false;
message.heapSamplingIntervals = object.heapSamplingIntervals?.map((e) => e) || [];
message.allHeaps = object.allHeaps ?? false;
message.all = object.all ?? false;
message.minAnonymousMemoryKb = object.minAnonymousMemoryKb ?? 0;
message.maxHeapprofdMemoryKb = object.maxHeapprofdMemoryKb ?? 0;
message.maxHeapprofdCpuSecs = object.maxHeapprofdCpuSecs ?? 0;
message.skipSymbolPrefix = object.skipSymbolPrefix?.map((e) => e) || [];
message.continuousDumpConfig = (object.continuousDumpConfig !== undefined && object.continuousDumpConfig !== null)
          ? HeapprofdConfig_ContinuousDumpConfig.fromPartial(object.continuousDumpConfig)
          : undefined;
message.shmemSizeBytes = object.shmemSizeBytes ?? 0;
message.blockClient = object.blockClient ?? false;
message.blockClientTimeoutUs = object.blockClientTimeoutUs ?? 0;
message.noStartup = object.noStartup ?? false;
message.noRunning = object.noRunning ?? false;
message.dumpAtMax = object.dumpAtMax ?? false;
message.disableForkTeardown = object.disableForkTeardown ?? false;
message.disableVforkDetection = object.disableVforkDetection ?? false;
return message;
}
            };

function createBaseHeapprofdConfig_ContinuousDumpConfig(): HeapprofdConfig_ContinuousDumpConfig {
      return { dumpPhaseMs: 0,dumpIntervalMs: 0 };
    }

export const HeapprofdConfig_ContinuousDumpConfig: MessageFns<HeapprofdConfig_ContinuousDumpConfig> = {
              encode(
      message: HeapprofdConfig_ContinuousDumpConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.dumpPhaseMs !== undefined  && message.dumpPhaseMs !== 0) {
          writer.uint32(40).uint32(message.dumpPhaseMs);
        }
if (message.dumpIntervalMs !== undefined  && message.dumpIntervalMs !== 0) {
          writer.uint32(48).uint32(message.dumpIntervalMs);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): HeapprofdConfig_ContinuousDumpConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseHeapprofdConfig_ContinuousDumpConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.dumpPhaseMs = reader.uint32();
continue; }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.dumpIntervalMs = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): HeapprofdConfig_ContinuousDumpConfig {
      return {
dumpPhaseMs: isSet(object.dumpPhaseMs)
          ? globalThis.Number(object.dumpPhaseMs)
          : 0,
dumpIntervalMs: isSet(object.dumpIntervalMs)
          ? globalThis.Number(object.dumpIntervalMs)
          : 0,
};
},

toJSON(message: HeapprofdConfig_ContinuousDumpConfig): unknown {
      const obj: any = {};
if (message.dumpPhaseMs !== undefined  && message.dumpPhaseMs !== 0) {
          obj.dumpPhaseMs = Math.round(message.dumpPhaseMs);
        }
if (message.dumpIntervalMs !== undefined  && message.dumpIntervalMs !== 0) {
          obj.dumpIntervalMs = Math.round(message.dumpIntervalMs);
        }
return obj;
},

create<I extends Exact<DeepPartial<HeapprofdConfig_ContinuousDumpConfig>, I>>(base?: I): HeapprofdConfig_ContinuousDumpConfig {
        return HeapprofdConfig_ContinuousDumpConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<HeapprofdConfig_ContinuousDumpConfig>, I>>(object: I): HeapprofdConfig_ContinuousDumpConfig {
const message = createBaseHeapprofdConfig_ContinuousDumpConfig();
message.dumpPhaseMs = object.dumpPhaseMs ?? 0;
message.dumpIntervalMs = object.dumpIntervalMs ?? 0;
return message;
}
            };

function createBaseSmapsConfig(): SmapsConfig {
      return { vmaFields: [],unaggregated: false,nameRedactionRules: [] };
    }

export const SmapsConfig: MessageFns<SmapsConfig> = {
              encode(
      message: SmapsConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.vmaFields !== undefined && message.vmaFields.length !== 0) {
              
          for (const v of message.vmaFields) {
            writer.uint32(8).int32(v!);
          }
        
            }
if (message.unaggregated !== undefined  && message.unaggregated !== false) {
          writer.uint32(16).bool(message.unaggregated);
        }
if (message.nameRedactionRules !== undefined && message.nameRedactionRules.length !== 0) {
              
          for (const v of message.nameRedactionRules) {
            RedactionRule.encode(v!, writer.uint32(26).fork()).join();
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): SmapsConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseSmapsConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag === 8) {
              
              message.vmaFields!.push(reader.int32() as any);

              continue;
            }

            if (tag === 10) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.vmaFields!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.unaggregated = reader.bool();
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
              
              const el = RedactionRule.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.nameRedactionRules!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): SmapsConfig {
      return {
vmaFields: globalThis.Array.isArray(object?.vmaFields) ? object.vmaFields.map((e: any) => smapsConfig_VmaFieldFromJSON(e)): [],
unaggregated: isSet(object.unaggregated)
          ? globalThis.Boolean(object.unaggregated)
          : false,
nameRedactionRules: globalThis.Array.isArray(object?.nameRedactionRules) ? object.nameRedactionRules.map((e: any) => RedactionRule.fromJSON(e)): [],
};
},

toJSON(message: SmapsConfig): unknown {
      const obj: any = {};
if (message.vmaFields?.length) {
          obj.vmaFields = message.vmaFields.map(e => smapsConfig_VmaFieldToJSON(e));
        }
if (message.unaggregated !== undefined  && message.unaggregated !== false) {
          obj.unaggregated = message.unaggregated;
        }
if (message.nameRedactionRules?.length) {
          obj.nameRedactionRules = message.nameRedactionRules.map(e => RedactionRule.toJSON(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<SmapsConfig>, I>>(base?: I): SmapsConfig {
        return SmapsConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<SmapsConfig>, I>>(object: I): SmapsConfig {
const message = createBaseSmapsConfig();
message.vmaFields = object.vmaFields?.map((e) => e) || [];
message.unaggregated = object.unaggregated ?? false;
message.nameRedactionRules = object.nameRedactionRules?.map((e) => RedactionRule.fromPartial(e)) || [];
return message;
}
            };

function createBaseRedactionRule(): RedactionRule {
      return { pattern: "",matchMode: 0,keepFull: false,replacementName: "",keepFileExtension: false,keepPathElements: 0 };
    }

export const RedactionRule: MessageFns<RedactionRule> = {
              encode(
      message: RedactionRule,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.pattern !== undefined  && message.pattern !== "") {
          writer.uint32(10).string(message.pattern);
        }
if (message.matchMode !== undefined  && message.matchMode !== 0) {
          writer.uint32(16).int32(message.matchMode);
        }
if (message.keepFull !== undefined  && message.keepFull !== false) {
          writer.uint32(24).bool(message.keepFull);
        }
if (message.replacementName !== undefined  && message.replacementName !== "") {
          writer.uint32(34).string(message.replacementName);
        }
if (message.keepFileExtension !== undefined  && message.keepFileExtension !== false) {
          writer.uint32(40).bool(message.keepFileExtension);
        }
if (message.keepPathElements !== undefined  && message.keepPathElements !== 0) {
          writer.uint32(48).uint32(message.keepPathElements);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): RedactionRule {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseRedactionRule();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.pattern = reader.string();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.matchMode = reader.int32() as any;
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.keepFull = reader.bool();
continue; }
case 4: {
if (tag !== 34) {
        break;
      }
    
        message.replacementName = reader.string();
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.keepFileExtension = reader.bool();
continue; }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.keepPathElements = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): RedactionRule {
      return {
pattern: isSet(object.pattern)
          ? globalThis.String(object.pattern)
          : "",
matchMode: isSet(object.matchMode)
          ? redactionRule_MatchModeFromJSON(object.matchMode)
          : 0,
keepFull: isSet(object.keepFull)
          ? globalThis.Boolean(object.keepFull)
          : false,
replacementName: isSet(object.replacementName)
          ? globalThis.String(object.replacementName)
          : "",
keepFileExtension: isSet(object.keepFileExtension)
          ? globalThis.Boolean(object.keepFileExtension)
          : false,
keepPathElements: isSet(object.keepPathElements)
          ? globalThis.Number(object.keepPathElements)
          : 0,
};
},

toJSON(message: RedactionRule): unknown {
      const obj: any = {};
if (message.pattern !== undefined  && message.pattern !== "") {
          obj.pattern = message.pattern;
        }
if (message.matchMode !== undefined  && message.matchMode !== 0) {
          obj.matchMode = redactionRule_MatchModeToJSON(message.matchMode);
        }
if (message.keepFull !== undefined  && message.keepFull !== false) {
          obj.keepFull = message.keepFull;
        }
if (message.replacementName !== undefined  && message.replacementName !== "") {
          obj.replacementName = message.replacementName;
        }
if (message.keepFileExtension !== undefined  && message.keepFileExtension !== false) {
          obj.keepFileExtension = message.keepFileExtension;
        }
if (message.keepPathElements !== undefined  && message.keepPathElements !== 0) {
          obj.keepPathElements = Math.round(message.keepPathElements);
        }
return obj;
},

create<I extends Exact<DeepPartial<RedactionRule>, I>>(base?: I): RedactionRule {
        return RedactionRule.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<RedactionRule>, I>>(object: I): RedactionRule {
const message = createBaseRedactionRule();
message.pattern = object.pattern ?? "";
message.matchMode = object.matchMode ?? 0;
message.keepFull = object.keepFull ?? false;
message.replacementName = object.replacementName ?? "";
message.keepFileExtension = object.keepFileExtension ?? false;
message.keepPathElements = object.keepPathElements ?? 0;
return message;
}
            };

function createBaseJavaHprofConfig(): JavaHprofConfig {
      return { processCmdline: [],pid: [],targetInstalledBy: [],continuousDumpConfig: undefined,minAnonymousMemoryKb: 0,minJavaHeapSizeKb: 0,dumpSmaps: false,smapsConfig: undefined,ignoredTypes: [],dumpOomeCallstack: false };
    }

export const JavaHprofConfig: MessageFns<JavaHprofConfig> = {
              encode(
      message: JavaHprofConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.processCmdline !== undefined && message.processCmdline.length !== 0) {
              
          for (const v of message.processCmdline) {
            writer.uint32(10).string(v!);
          }
        
            }
if (message.pid !== undefined && message.pid.length !== 0) {
              
          for (const v of message.pid) {
            writer.uint32(16).uint64(v!);
          }
        
            }
if (message.targetInstalledBy !== undefined && message.targetInstalledBy.length !== 0) {
              
          for (const v of message.targetInstalledBy) {
            writer.uint32(58).string(v!);
          }
        
            }
if (message.continuousDumpConfig !== undefined ) {
          JavaHprofConfig_ContinuousDumpConfig.encode(message.continuousDumpConfig, writer.uint32(26).fork()).join();
        }
if (message.minAnonymousMemoryKb !== undefined  && message.minAnonymousMemoryKb !== 0) {
          writer.uint32(32).uint32(message.minAnonymousMemoryKb);
        }
if (message.minJavaHeapSizeKb !== undefined  && message.minJavaHeapSizeKb !== 0) {
          writer.uint32(72).uint32(message.minJavaHeapSizeKb);
        }
if (message.dumpSmaps !== undefined  && message.dumpSmaps !== false) {
          writer.uint32(40).bool(message.dumpSmaps);
        }
if (message.smapsConfig !== undefined ) {
          SmapsConfig.encode(message.smapsConfig, writer.uint32(66).fork()).join();
        }
if (message.ignoredTypes !== undefined && message.ignoredTypes.length !== 0) {
              
          for (const v of message.ignoredTypes) {
            writer.uint32(50).string(v!);
          }
        
            }
if (message.dumpOomeCallstack !== undefined  && message.dumpOomeCallstack !== false) {
          writer.uint32(80).bool(message.dumpOomeCallstack);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): JavaHprofConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseJavaHprofConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.processCmdline!.push(el);
              }
continue; }
case 2: {
if (tag === 16) {
              
              message.pid!.push(longToNumber(reader.uint64()));

              continue;
            }

            if (tag === 18) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.pid!.push(longToNumber(reader.uint64()));
              }

              continue;
            }

            break;
          }
case 7: {
if (tag !== 58) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.targetInstalledBy!.push(el);
              }
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
        message.continuousDumpConfig = JavaHprofConfig_ContinuousDumpConfig.decode(reader, reader.uint32());
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.minAnonymousMemoryKb = reader.uint32();
continue; }
case 9: {
if (tag !== 72) {
        break;
      }
    
        message.minJavaHeapSizeKb = reader.uint32();
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.dumpSmaps = reader.bool();
continue; }
case 8: {
if (tag !== 66) {
        break;
      }
    
        message.smapsConfig = SmapsConfig.decode(reader, reader.uint32());
continue; }
case 6: {
if (tag !== 50) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.ignoredTypes!.push(el);
              }
continue; }
case 10: {
if (tag !== 80) {
        break;
      }
    
        message.dumpOomeCallstack = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): JavaHprofConfig {
      return {
processCmdline: globalThis.Array.isArray(object?.processCmdline) ? object.processCmdline.map((e: any) => globalThis.String(e)): [],
pid: globalThis.Array.isArray(object?.pid) ? object.pid.map((e: any) => globalThis.Number(e)): [],
targetInstalledBy: globalThis.Array.isArray(object?.targetInstalledBy) ? object.targetInstalledBy.map((e: any) => globalThis.String(e)): [],
continuousDumpConfig: isSet(object.continuousDumpConfig)
          ? JavaHprofConfig_ContinuousDumpConfig.fromJSON(object.continuousDumpConfig)
          : undefined,
minAnonymousMemoryKb: isSet(object.minAnonymousMemoryKb)
          ? globalThis.Number(object.minAnonymousMemoryKb)
          : 0,
minJavaHeapSizeKb: isSet(object.minJavaHeapSizeKb)
          ? globalThis.Number(object.minJavaHeapSizeKb)
          : 0,
dumpSmaps: isSet(object.dumpSmaps)
          ? globalThis.Boolean(object.dumpSmaps)
          : false,
smapsConfig: isSet(object.smapsConfig)
          ? SmapsConfig.fromJSON(object.smapsConfig)
          : undefined,
ignoredTypes: globalThis.Array.isArray(object?.ignoredTypes) ? object.ignoredTypes.map((e: any) => globalThis.String(e)): [],
dumpOomeCallstack: isSet(object.dumpOomeCallstack)
          ? globalThis.Boolean(object.dumpOomeCallstack)
          : false,
};
},

toJSON(message: JavaHprofConfig): unknown {
      const obj: any = {};
if (message.processCmdline?.length) {
          obj.processCmdline = message.processCmdline;
        }
if (message.pid?.length) {
          obj.pid = message.pid.map(e => Math.round(e));
        }
if (message.targetInstalledBy?.length) {
          obj.targetInstalledBy = message.targetInstalledBy;
        }
if (message.continuousDumpConfig !== undefined ) {
          obj.continuousDumpConfig = JavaHprofConfig_ContinuousDumpConfig.toJSON(message.continuousDumpConfig);
        }
if (message.minAnonymousMemoryKb !== undefined  && message.minAnonymousMemoryKb !== 0) {
          obj.minAnonymousMemoryKb = Math.round(message.minAnonymousMemoryKb);
        }
if (message.minJavaHeapSizeKb !== undefined  && message.minJavaHeapSizeKb !== 0) {
          obj.minJavaHeapSizeKb = Math.round(message.minJavaHeapSizeKb);
        }
if (message.dumpSmaps !== undefined  && message.dumpSmaps !== false) {
          obj.dumpSmaps = message.dumpSmaps;
        }
if (message.smapsConfig !== undefined ) {
          obj.smapsConfig = SmapsConfig.toJSON(message.smapsConfig);
        }
if (message.ignoredTypes?.length) {
          obj.ignoredTypes = message.ignoredTypes;
        }
if (message.dumpOomeCallstack !== undefined  && message.dumpOomeCallstack !== false) {
          obj.dumpOomeCallstack = message.dumpOomeCallstack;
        }
return obj;
},

create<I extends Exact<DeepPartial<JavaHprofConfig>, I>>(base?: I): JavaHprofConfig {
        return JavaHprofConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<JavaHprofConfig>, I>>(object: I): JavaHprofConfig {
const message = createBaseJavaHprofConfig();
message.processCmdline = object.processCmdline?.map((e) => e) || [];
message.pid = object.pid?.map((e) => e) || [];
message.targetInstalledBy = object.targetInstalledBy?.map((e) => e) || [];
message.continuousDumpConfig = (object.continuousDumpConfig !== undefined && object.continuousDumpConfig !== null)
          ? JavaHprofConfig_ContinuousDumpConfig.fromPartial(object.continuousDumpConfig)
          : undefined;
message.minAnonymousMemoryKb = object.minAnonymousMemoryKb ?? 0;
message.minJavaHeapSizeKb = object.minJavaHeapSizeKb ?? 0;
message.dumpSmaps = object.dumpSmaps ?? false;
message.smapsConfig = (object.smapsConfig !== undefined && object.smapsConfig !== null)
          ? SmapsConfig.fromPartial(object.smapsConfig)
          : undefined;
message.ignoredTypes = object.ignoredTypes?.map((e) => e) || [];
message.dumpOomeCallstack = object.dumpOomeCallstack ?? false;
return message;
}
            };

function createBaseJavaHprofConfig_ContinuousDumpConfig(): JavaHprofConfig_ContinuousDumpConfig {
      return { dumpPhaseMs: 0,dumpIntervalMs: 0,scanPidsOnlyOnStart: false };
    }

export const JavaHprofConfig_ContinuousDumpConfig: MessageFns<JavaHprofConfig_ContinuousDumpConfig> = {
              encode(
      message: JavaHprofConfig_ContinuousDumpConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.dumpPhaseMs !== undefined  && message.dumpPhaseMs !== 0) {
          writer.uint32(8).uint32(message.dumpPhaseMs);
        }
if (message.dumpIntervalMs !== undefined  && message.dumpIntervalMs !== 0) {
          writer.uint32(16).uint32(message.dumpIntervalMs);
        }
if (message.scanPidsOnlyOnStart !== undefined  && message.scanPidsOnlyOnStart !== false) {
          writer.uint32(24).bool(message.scanPidsOnlyOnStart);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): JavaHprofConfig_ContinuousDumpConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseJavaHprofConfig_ContinuousDumpConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.dumpPhaseMs = reader.uint32();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.dumpIntervalMs = reader.uint32();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.scanPidsOnlyOnStart = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): JavaHprofConfig_ContinuousDumpConfig {
      return {
dumpPhaseMs: isSet(object.dumpPhaseMs)
          ? globalThis.Number(object.dumpPhaseMs)
          : 0,
dumpIntervalMs: isSet(object.dumpIntervalMs)
          ? globalThis.Number(object.dumpIntervalMs)
          : 0,
scanPidsOnlyOnStart: isSet(object.scanPidsOnlyOnStart)
          ? globalThis.Boolean(object.scanPidsOnlyOnStart)
          : false,
};
},

toJSON(message: JavaHprofConfig_ContinuousDumpConfig): unknown {
      const obj: any = {};
if (message.dumpPhaseMs !== undefined  && message.dumpPhaseMs !== 0) {
          obj.dumpPhaseMs = Math.round(message.dumpPhaseMs);
        }
if (message.dumpIntervalMs !== undefined  && message.dumpIntervalMs !== 0) {
          obj.dumpIntervalMs = Math.round(message.dumpIntervalMs);
        }
if (message.scanPidsOnlyOnStart !== undefined  && message.scanPidsOnlyOnStart !== false) {
          obj.scanPidsOnlyOnStart = message.scanPidsOnlyOnStart;
        }
return obj;
},

create<I extends Exact<DeepPartial<JavaHprofConfig_ContinuousDumpConfig>, I>>(base?: I): JavaHprofConfig_ContinuousDumpConfig {
        return JavaHprofConfig_ContinuousDumpConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<JavaHprofConfig_ContinuousDumpConfig>, I>>(object: I): JavaHprofConfig_ContinuousDumpConfig {
const message = createBaseJavaHprofConfig_ContinuousDumpConfig();
message.dumpPhaseMs = object.dumpPhaseMs ?? 0;
message.dumpIntervalMs = object.dumpIntervalMs ?? 0;
message.scanPidsOnlyOnStart = object.scanPidsOnlyOnStart ?? false;
return message;
}
            };

function createBasePerfEvents(): PerfEvents {
      return {  };
    }

export const PerfEvents: MessageFns<PerfEvents> = {
              encode(
      _: PerfEvents,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): PerfEvents {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePerfEvents();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(_: any): PerfEvents {
      return {
};
},

toJSON(_: PerfEvents): unknown {
      const obj: any = {};
return obj;
},

create<I extends Exact<DeepPartial<PerfEvents>, I>>(base?: I): PerfEvents {
        return PerfEvents.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<PerfEvents>, I>>(_: I): PerfEvents {
const message = createBasePerfEvents();
return message;
}
            };

function createBasePerfEvents_Timebase(): PerfEvents_Timebase {
      return { frequency: undefined,period: undefined,pollPeriodMs: undefined,counter: undefined,tracepoint: undefined,rawEvent: undefined,modifiers: [],timestampClock: 0,name: "" };
    }

export const PerfEvents_Timebase: MessageFns<PerfEvents_Timebase> = {
              encode(
      message: PerfEvents_Timebase,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.frequency !== undefined ) {
          writer.uint32(16).uint64(message.frequency);
        }
if (message.period !== undefined ) {
          writer.uint32(8).uint64(message.period);
        }
if (message.pollPeriodMs !== undefined ) {
          writer.uint32(48).uint32(message.pollPeriodMs);
        }
if (message.counter !== undefined ) {
          writer.uint32(32).int32(message.counter);
        }
if (message.tracepoint !== undefined ) {
          PerfEvents_Tracepoint.encode(message.tracepoint, writer.uint32(26).fork()).join();
        }
if (message.rawEvent !== undefined ) {
          PerfEvents_RawEvent.encode(message.rawEvent, writer.uint32(42).fork()).join();
        }
if (message.modifiers !== undefined && message.modifiers.length !== 0) {
              
          for (const v of message.modifiers) {
            writer.uint32(96).int32(v!);
          }
        
            }
if (message.timestampClock !== undefined  && message.timestampClock !== 0) {
          writer.uint32(88).int32(message.timestampClock);
        }
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(82).string(message.name);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): PerfEvents_Timebase {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePerfEvents_Timebase();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.frequency = longToNumber(reader.uint64());
continue; }
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.period = longToNumber(reader.uint64());
continue; }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.pollPeriodMs = reader.uint32();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.counter = reader.int32() as any;
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
        message.tracepoint = PerfEvents_Tracepoint.decode(reader, reader.uint32());
continue; }
case 5: {
if (tag !== 42) {
        break;
      }
    
        message.rawEvent = PerfEvents_RawEvent.decode(reader, reader.uint32());
continue; }
case 12: {
if (tag === 96) {
              
              message.modifiers!.push(reader.int32() as any);

              continue;
            }

            if (tag === 98) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.modifiers!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
case 11: {
if (tag !== 88) {
        break;
      }
    
        message.timestampClock = reader.int32() as any;
continue; }
case 10: {
if (tag !== 82) {
        break;
      }
    
        message.name = reader.string();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): PerfEvents_Timebase {
      return {
frequency: isSet(object.frequency)
          ? globalThis.Number(object.frequency)
          : undefined,
period: isSet(object.period)
          ? globalThis.Number(object.period)
          : undefined,
pollPeriodMs: isSet(object.pollPeriodMs)
          ? globalThis.Number(object.pollPeriodMs)
          : undefined,
counter: isSet(object.counter)
          ? perfEvents_CounterFromJSON(object.counter)
          : undefined,
tracepoint: isSet(object.tracepoint)
          ? PerfEvents_Tracepoint.fromJSON(object.tracepoint)
          : undefined,
rawEvent: isSet(object.rawEvent)
          ? PerfEvents_RawEvent.fromJSON(object.rawEvent)
          : undefined,
modifiers: globalThis.Array.isArray(object?.modifiers) ? object.modifiers.map((e: any) => perfEvents_EventModifierFromJSON(e)): [],
timestampClock: isSet(object.timestampClock)
          ? perfEvents_PerfClockFromJSON(object.timestampClock)
          : 0,
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
};
},

toJSON(message: PerfEvents_Timebase): unknown {
      const obj: any = {};
if (message.frequency !== undefined ) {
          obj.frequency = Math.round(message.frequency);
        }
if (message.period !== undefined ) {
          obj.period = Math.round(message.period);
        }
if (message.pollPeriodMs !== undefined ) {
          obj.pollPeriodMs = Math.round(message.pollPeriodMs);
        }
if (message.counter !== undefined ) {
          obj.counter = perfEvents_CounterToJSON(message.counter);
        }
if (message.tracepoint !== undefined ) {
          obj.tracepoint = PerfEvents_Tracepoint.toJSON(message.tracepoint);
        }
if (message.rawEvent !== undefined ) {
          obj.rawEvent = PerfEvents_RawEvent.toJSON(message.rawEvent);
        }
if (message.modifiers?.length) {
          obj.modifiers = message.modifiers.map(e => perfEvents_EventModifierToJSON(e));
        }
if (message.timestampClock !== undefined  && message.timestampClock !== 0) {
          obj.timestampClock = perfEvents_PerfClockToJSON(message.timestampClock);
        }
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
return obj;
},

create<I extends Exact<DeepPartial<PerfEvents_Timebase>, I>>(base?: I): PerfEvents_Timebase {
        return PerfEvents_Timebase.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<PerfEvents_Timebase>, I>>(object: I): PerfEvents_Timebase {
const message = createBasePerfEvents_Timebase();
message.frequency = object.frequency ?? undefined;
message.period = object.period ?? undefined;
message.pollPeriodMs = object.pollPeriodMs ?? undefined;
message.counter = object.counter ?? undefined;
message.tracepoint = (object.tracepoint !== undefined && object.tracepoint !== null)
          ? PerfEvents_Tracepoint.fromPartial(object.tracepoint)
          : undefined;
message.rawEvent = (object.rawEvent !== undefined && object.rawEvent !== null)
          ? PerfEvents_RawEvent.fromPartial(object.rawEvent)
          : undefined;
message.modifiers = object.modifiers?.map((e) => e) || [];
message.timestampClock = object.timestampClock ?? 0;
message.name = object.name ?? "";
return message;
}
            };

function createBasePerfEvents_Tracepoint(): PerfEvents_Tracepoint {
      return { name: "",filter: "" };
    }

export const PerfEvents_Tracepoint: MessageFns<PerfEvents_Tracepoint> = {
              encode(
      message: PerfEvents_Tracepoint,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(10).string(message.name);
        }
if (message.filter !== undefined  && message.filter !== "") {
          writer.uint32(18).string(message.filter);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): PerfEvents_Tracepoint {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePerfEvents_Tracepoint();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.name = reader.string();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
        message.filter = reader.string();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): PerfEvents_Tracepoint {
      return {
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
filter: isSet(object.filter)
          ? globalThis.String(object.filter)
          : "",
};
},

toJSON(message: PerfEvents_Tracepoint): unknown {
      const obj: any = {};
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
if (message.filter !== undefined  && message.filter !== "") {
          obj.filter = message.filter;
        }
return obj;
},

create<I extends Exact<DeepPartial<PerfEvents_Tracepoint>, I>>(base?: I): PerfEvents_Tracepoint {
        return PerfEvents_Tracepoint.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<PerfEvents_Tracepoint>, I>>(object: I): PerfEvents_Tracepoint {
const message = createBasePerfEvents_Tracepoint();
message.name = object.name ?? "";
message.filter = object.filter ?? "";
return message;
}
            };

function createBasePerfEvents_RawEvent(): PerfEvents_RawEvent {
      return { type: 0,config: 0,config1: 0,config2: 0,pmuName: "" };
    }

export const PerfEvents_RawEvent: MessageFns<PerfEvents_RawEvent> = {
              encode(
      message: PerfEvents_RawEvent,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.type !== undefined  && message.type !== 0) {
          writer.uint32(8).uint32(message.type);
        }
if (message.config !== undefined  && message.config !== 0) {
          writer.uint32(16).uint64(message.config);
        }
if (message.config1 !== undefined  && message.config1 !== 0) {
          writer.uint32(24).uint64(message.config1);
        }
if (message.config2 !== undefined  && message.config2 !== 0) {
          writer.uint32(32).uint64(message.config2);
        }
if (message.pmuName !== undefined  && message.pmuName !== "") {
          writer.uint32(42).string(message.pmuName);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): PerfEvents_RawEvent {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePerfEvents_RawEvent();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.type = reader.uint32();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.config = longToNumber(reader.uint64());
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.config1 = longToNumber(reader.uint64());
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.config2 = longToNumber(reader.uint64());
continue; }
case 5: {
if (tag !== 42) {
        break;
      }
    
        message.pmuName = reader.string();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): PerfEvents_RawEvent {
      return {
type: isSet(object.type)
          ? globalThis.Number(object.type)
          : 0,
config: isSet(object.config)
          ? globalThis.Number(object.config)
          : 0,
config1: isSet(object.config1)
          ? globalThis.Number(object.config1)
          : 0,
config2: isSet(object.config2)
          ? globalThis.Number(object.config2)
          : 0,
pmuName: isSet(object.pmuName)
          ? globalThis.String(object.pmuName)
          : "",
};
},

toJSON(message: PerfEvents_RawEvent): unknown {
      const obj: any = {};
if (message.type !== undefined  && message.type !== 0) {
          obj.type = Math.round(message.type);
        }
if (message.config !== undefined  && message.config !== 0) {
          obj.config = Math.round(message.config);
        }
if (message.config1 !== undefined  && message.config1 !== 0) {
          obj.config1 = Math.round(message.config1);
        }
if (message.config2 !== undefined  && message.config2 !== 0) {
          obj.config2 = Math.round(message.config2);
        }
if (message.pmuName !== undefined  && message.pmuName !== "") {
          obj.pmuName = message.pmuName;
        }
return obj;
},

create<I extends Exact<DeepPartial<PerfEvents_RawEvent>, I>>(base?: I): PerfEvents_RawEvent {
        return PerfEvents_RawEvent.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<PerfEvents_RawEvent>, I>>(object: I): PerfEvents_RawEvent {
const message = createBasePerfEvents_RawEvent();
message.type = object.type ?? 0;
message.config = object.config ?? 0;
message.config1 = object.config1 ?? 0;
message.config2 = object.config2 ?? 0;
message.pmuName = object.pmuName ?? "";
return message;
}
            };

function createBaseFollowerEvent(): FollowerEvent {
      return { counter: undefined,tracepoint: undefined,rawEvent: undefined,modifiers: [],name: "" };
    }

export const FollowerEvent: MessageFns<FollowerEvent> = {
              encode(
      message: FollowerEvent,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.counter !== undefined ) {
          writer.uint32(8).int32(message.counter);
        }
if (message.tracepoint !== undefined ) {
          PerfEvents_Tracepoint.encode(message.tracepoint, writer.uint32(18).fork()).join();
        }
if (message.rawEvent !== undefined ) {
          PerfEvents_RawEvent.encode(message.rawEvent, writer.uint32(26).fork()).join();
        }
if (message.modifiers !== undefined && message.modifiers.length !== 0) {
              
          for (const v of message.modifiers) {
            writer.uint32(40).int32(v!);
          }
        
            }
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(34).string(message.name);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): FollowerEvent {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseFollowerEvent();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.counter = reader.int32() as any;
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
        message.tracepoint = PerfEvents_Tracepoint.decode(reader, reader.uint32());
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
        message.rawEvent = PerfEvents_RawEvent.decode(reader, reader.uint32());
continue; }
case 5: {
if (tag === 40) {
              
              message.modifiers!.push(reader.int32() as any);

              continue;
            }

            if (tag === 42) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.modifiers!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
case 4: {
if (tag !== 34) {
        break;
      }
    
        message.name = reader.string();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): FollowerEvent {
      return {
counter: isSet(object.counter)
          ? perfEvents_CounterFromJSON(object.counter)
          : undefined,
tracepoint: isSet(object.tracepoint)
          ? PerfEvents_Tracepoint.fromJSON(object.tracepoint)
          : undefined,
rawEvent: isSet(object.rawEvent)
          ? PerfEvents_RawEvent.fromJSON(object.rawEvent)
          : undefined,
modifiers: globalThis.Array.isArray(object?.modifiers) ? object.modifiers.map((e: any) => perfEvents_EventModifierFromJSON(e)): [],
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
};
},

toJSON(message: FollowerEvent): unknown {
      const obj: any = {};
if (message.counter !== undefined ) {
          obj.counter = perfEvents_CounterToJSON(message.counter);
        }
if (message.tracepoint !== undefined ) {
          obj.tracepoint = PerfEvents_Tracepoint.toJSON(message.tracepoint);
        }
if (message.rawEvent !== undefined ) {
          obj.rawEvent = PerfEvents_RawEvent.toJSON(message.rawEvent);
        }
if (message.modifiers?.length) {
          obj.modifiers = message.modifiers.map(e => perfEvents_EventModifierToJSON(e));
        }
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
return obj;
},

create<I extends Exact<DeepPartial<FollowerEvent>, I>>(base?: I): FollowerEvent {
        return FollowerEvent.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<FollowerEvent>, I>>(object: I): FollowerEvent {
const message = createBaseFollowerEvent();
message.counter = object.counter ?? undefined;
message.tracepoint = (object.tracepoint !== undefined && object.tracepoint !== null)
          ? PerfEvents_Tracepoint.fromPartial(object.tracepoint)
          : undefined;
message.rawEvent = (object.rawEvent !== undefined && object.rawEvent !== null)
          ? PerfEvents_RawEvent.fromPartial(object.rawEvent)
          : undefined;
message.modifiers = object.modifiers?.map((e) => e) || [];
message.name = object.name ?? "";
return message;
}
            };

function createBasePerfEventConfig(): PerfEventConfig {
      return { timebase: undefined,followers: [],callstackSampling: undefined,targetCpu: [],ignoreOpenFailure: false,cpuid: [],ringBufferReadPeriodMs: 0,ringBufferPages: 0,maxEnqueuedFootprintKb: 0,maxDaemonMemoryKb: 0,remoteDescriptorTimeoutMs: 0,unwindStateClearPeriodMs: 0,targetInstalledBy: [],allCpus: false,samplingFrequency: 0,kernelFrames: false,targetPid: [],targetCmdline: [],excludePid: [],excludeCmdline: [],additionalCmdlineCount: 0 };
    }

export const PerfEventConfig: MessageFns<PerfEventConfig> = {
              encode(
      message: PerfEventConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.timebase !== undefined ) {
          PerfEvents_Timebase.encode(message.timebase, writer.uint32(122).fork()).join();
        }
if (message.followers !== undefined && message.followers.length !== 0) {
              
          for (const v of message.followers) {
            FollowerEvent.encode(v!, writer.uint32(154).fork()).join();
          }
        
            }
if (message.callstackSampling !== undefined ) {
          PerfEventConfig_CallstackSampling.encode(message.callstackSampling, writer.uint32(130).fork()).join();
        }
if (message.targetCpu !== undefined && message.targetCpu.length !== 0) {
              
          for (const v of message.targetCpu) {
            writer.uint32(160).uint32(v!);
          }
        
            }
if (message.ignoreOpenFailure !== undefined  && message.ignoreOpenFailure !== false) {
          writer.uint32(168).bool(message.ignoreOpenFailure);
        }
if (message.cpuid !== undefined && message.cpuid.length !== 0) {
              
          for (const v of message.cpuid) {
            writer.uint32(178).string(v!);
          }
        
            }
if (message.ringBufferReadPeriodMs !== undefined  && message.ringBufferReadPeriodMs !== 0) {
          writer.uint32(64).uint32(message.ringBufferReadPeriodMs);
        }
if (message.ringBufferPages !== undefined  && message.ringBufferPages !== 0) {
          writer.uint32(24).uint32(message.ringBufferPages);
        }
if (message.maxEnqueuedFootprintKb !== undefined  && message.maxEnqueuedFootprintKb !== 0) {
          writer.uint32(136).uint64(message.maxEnqueuedFootprintKb);
        }
if (message.maxDaemonMemoryKb !== undefined  && message.maxDaemonMemoryKb !== 0) {
          writer.uint32(104).uint32(message.maxDaemonMemoryKb);
        }
if (message.remoteDescriptorTimeoutMs !== undefined  && message.remoteDescriptorTimeoutMs !== 0) {
          writer.uint32(72).uint32(message.remoteDescriptorTimeoutMs);
        }
if (message.unwindStateClearPeriodMs !== undefined  && message.unwindStateClearPeriodMs !== 0) {
          writer.uint32(80).uint32(message.unwindStateClearPeriodMs);
        }
if (message.targetInstalledBy !== undefined && message.targetInstalledBy.length !== 0) {
              
          for (const v of message.targetInstalledBy) {
            writer.uint32(146).string(v!);
          }
        
            }
if (message.allCpus !== undefined  && message.allCpus !== false) {
          writer.uint32(8).bool(message.allCpus);
        }
if (message.samplingFrequency !== undefined  && message.samplingFrequency !== 0) {
          writer.uint32(16).uint32(message.samplingFrequency);
        }
if (message.kernelFrames !== undefined  && message.kernelFrames !== false) {
          writer.uint32(96).bool(message.kernelFrames);
        }
if (message.targetPid !== undefined && message.targetPid.length !== 0) {
              
          for (const v of message.targetPid) {
            writer.uint32(32).int32(v!);
          }
        
            }
if (message.targetCmdline !== undefined && message.targetCmdline.length !== 0) {
              
          for (const v of message.targetCmdline) {
            writer.uint32(42).string(v!);
          }
        
            }
if (message.excludePid !== undefined && message.excludePid.length !== 0) {
              
          for (const v of message.excludePid) {
            writer.uint32(48).int32(v!);
          }
        
            }
if (message.excludeCmdline !== undefined && message.excludeCmdline.length !== 0) {
              
          for (const v of message.excludeCmdline) {
            writer.uint32(58).string(v!);
          }
        
            }
if (message.additionalCmdlineCount !== undefined  && message.additionalCmdlineCount !== 0) {
          writer.uint32(88).uint32(message.additionalCmdlineCount);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): PerfEventConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePerfEventConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 15: {
if (tag !== 122) {
        break;
      }
    
        message.timebase = PerfEvents_Timebase.decode(reader, reader.uint32());
continue; }
case 19: {
if (tag !== 154) {
        break;
      }
    
              
              const el = FollowerEvent.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.followers!.push(el);
              }
continue; }
case 16: {
if (tag !== 130) {
        break;
      }
    
        message.callstackSampling = PerfEventConfig_CallstackSampling.decode(reader, reader.uint32());
continue; }
case 20: {
if (tag === 160) {
              
              message.targetCpu!.push(reader.uint32());

              continue;
            }

            if (tag === 162) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.targetCpu!.push(reader.uint32());
              }

              continue;
            }

            break;
          }
case 21: {
if (tag !== 168) {
        break;
      }
    
        message.ignoreOpenFailure = reader.bool();
continue; }
case 22: {
if (tag !== 178) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.cpuid!.push(el);
              }
continue; }
case 8: {
if (tag !== 64) {
        break;
      }
    
        message.ringBufferReadPeriodMs = reader.uint32();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.ringBufferPages = reader.uint32();
continue; }
case 17: {
if (tag !== 136) {
        break;
      }
    
        message.maxEnqueuedFootprintKb = longToNumber(reader.uint64());
continue; }
case 13: {
if (tag !== 104) {
        break;
      }
    
        message.maxDaemonMemoryKb = reader.uint32();
continue; }
case 9: {
if (tag !== 72) {
        break;
      }
    
        message.remoteDescriptorTimeoutMs = reader.uint32();
continue; }
case 10: {
if (tag !== 80) {
        break;
      }
    
        message.unwindStateClearPeriodMs = reader.uint32();
continue; }
case 18: {
if (tag !== 146) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.targetInstalledBy!.push(el);
              }
continue; }
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.allCpus = reader.bool();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.samplingFrequency = reader.uint32();
continue; }
case 12: {
if (tag !== 96) {
        break;
      }
    
        message.kernelFrames = reader.bool();
continue; }
case 4: {
if (tag === 32) {
              
              message.targetPid!.push(reader.int32());

              continue;
            }

            if (tag === 34) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.targetPid!.push(reader.int32());
              }

              continue;
            }

            break;
          }
case 5: {
if (tag !== 42) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.targetCmdline!.push(el);
              }
continue; }
case 6: {
if (tag === 48) {
              
              message.excludePid!.push(reader.int32());

              continue;
            }

            if (tag === 50) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.excludePid!.push(reader.int32());
              }

              continue;
            }

            break;
          }
case 7: {
if (tag !== 58) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.excludeCmdline!.push(el);
              }
continue; }
case 11: {
if (tag !== 88) {
        break;
      }
    
        message.additionalCmdlineCount = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): PerfEventConfig {
      return {
timebase: isSet(object.timebase)
          ? PerfEvents_Timebase.fromJSON(object.timebase)
          : undefined,
followers: globalThis.Array.isArray(object?.followers) ? object.followers.map((e: any) => FollowerEvent.fromJSON(e)): [],
callstackSampling: isSet(object.callstackSampling)
          ? PerfEventConfig_CallstackSampling.fromJSON(object.callstackSampling)
          : undefined,
targetCpu: globalThis.Array.isArray(object?.targetCpu) ? object.targetCpu.map((e: any) => globalThis.Number(e)): [],
ignoreOpenFailure: isSet(object.ignoreOpenFailure)
          ? globalThis.Boolean(object.ignoreOpenFailure)
          : false,
cpuid: globalThis.Array.isArray(object?.cpuid) ? object.cpuid.map((e: any) => globalThis.String(e)): [],
ringBufferReadPeriodMs: isSet(object.ringBufferReadPeriodMs)
          ? globalThis.Number(object.ringBufferReadPeriodMs)
          : 0,
ringBufferPages: isSet(object.ringBufferPages)
          ? globalThis.Number(object.ringBufferPages)
          : 0,
maxEnqueuedFootprintKb: isSet(object.maxEnqueuedFootprintKb)
          ? globalThis.Number(object.maxEnqueuedFootprintKb)
          : 0,
maxDaemonMemoryKb: isSet(object.maxDaemonMemoryKb)
          ? globalThis.Number(object.maxDaemonMemoryKb)
          : 0,
remoteDescriptorTimeoutMs: isSet(object.remoteDescriptorTimeoutMs)
          ? globalThis.Number(object.remoteDescriptorTimeoutMs)
          : 0,
unwindStateClearPeriodMs: isSet(object.unwindStateClearPeriodMs)
          ? globalThis.Number(object.unwindStateClearPeriodMs)
          : 0,
targetInstalledBy: globalThis.Array.isArray(object?.targetInstalledBy) ? object.targetInstalledBy.map((e: any) => globalThis.String(e)): [],
allCpus: isSet(object.allCpus)
          ? globalThis.Boolean(object.allCpus)
          : false,
samplingFrequency: isSet(object.samplingFrequency)
          ? globalThis.Number(object.samplingFrequency)
          : 0,
kernelFrames: isSet(object.kernelFrames)
          ? globalThis.Boolean(object.kernelFrames)
          : false,
targetPid: globalThis.Array.isArray(object?.targetPid) ? object.targetPid.map((e: any) => globalThis.Number(e)): [],
targetCmdline: globalThis.Array.isArray(object?.targetCmdline) ? object.targetCmdline.map((e: any) => globalThis.String(e)): [],
excludePid: globalThis.Array.isArray(object?.excludePid) ? object.excludePid.map((e: any) => globalThis.Number(e)): [],
excludeCmdline: globalThis.Array.isArray(object?.excludeCmdline) ? object.excludeCmdline.map((e: any) => globalThis.String(e)): [],
additionalCmdlineCount: isSet(object.additionalCmdlineCount)
          ? globalThis.Number(object.additionalCmdlineCount)
          : 0,
};
},

toJSON(message: PerfEventConfig): unknown {
      const obj: any = {};
if (message.timebase !== undefined ) {
          obj.timebase = PerfEvents_Timebase.toJSON(message.timebase);
        }
if (message.followers?.length) {
          obj.followers = message.followers.map(e => FollowerEvent.toJSON(e));
        }
if (message.callstackSampling !== undefined ) {
          obj.callstackSampling = PerfEventConfig_CallstackSampling.toJSON(message.callstackSampling);
        }
if (message.targetCpu?.length) {
          obj.targetCpu = message.targetCpu.map(e => Math.round(e));
        }
if (message.ignoreOpenFailure !== undefined  && message.ignoreOpenFailure !== false) {
          obj.ignoreOpenFailure = message.ignoreOpenFailure;
        }
if (message.cpuid?.length) {
          obj.cpuid = message.cpuid;
        }
if (message.ringBufferReadPeriodMs !== undefined  && message.ringBufferReadPeriodMs !== 0) {
          obj.ringBufferReadPeriodMs = Math.round(message.ringBufferReadPeriodMs);
        }
if (message.ringBufferPages !== undefined  && message.ringBufferPages !== 0) {
          obj.ringBufferPages = Math.round(message.ringBufferPages);
        }
if (message.maxEnqueuedFootprintKb !== undefined  && message.maxEnqueuedFootprintKb !== 0) {
          obj.maxEnqueuedFootprintKb = Math.round(message.maxEnqueuedFootprintKb);
        }
if (message.maxDaemonMemoryKb !== undefined  && message.maxDaemonMemoryKb !== 0) {
          obj.maxDaemonMemoryKb = Math.round(message.maxDaemonMemoryKb);
        }
if (message.remoteDescriptorTimeoutMs !== undefined  && message.remoteDescriptorTimeoutMs !== 0) {
          obj.remoteDescriptorTimeoutMs = Math.round(message.remoteDescriptorTimeoutMs);
        }
if (message.unwindStateClearPeriodMs !== undefined  && message.unwindStateClearPeriodMs !== 0) {
          obj.unwindStateClearPeriodMs = Math.round(message.unwindStateClearPeriodMs);
        }
if (message.targetInstalledBy?.length) {
          obj.targetInstalledBy = message.targetInstalledBy;
        }
if (message.allCpus !== undefined  && message.allCpus !== false) {
          obj.allCpus = message.allCpus;
        }
if (message.samplingFrequency !== undefined  && message.samplingFrequency !== 0) {
          obj.samplingFrequency = Math.round(message.samplingFrequency);
        }
if (message.kernelFrames !== undefined  && message.kernelFrames !== false) {
          obj.kernelFrames = message.kernelFrames;
        }
if (message.targetPid?.length) {
          obj.targetPid = message.targetPid.map(e => Math.round(e));
        }
if (message.targetCmdline?.length) {
          obj.targetCmdline = message.targetCmdline;
        }
if (message.excludePid?.length) {
          obj.excludePid = message.excludePid.map(e => Math.round(e));
        }
if (message.excludeCmdline?.length) {
          obj.excludeCmdline = message.excludeCmdline;
        }
if (message.additionalCmdlineCount !== undefined  && message.additionalCmdlineCount !== 0) {
          obj.additionalCmdlineCount = Math.round(message.additionalCmdlineCount);
        }
return obj;
},

create<I extends Exact<DeepPartial<PerfEventConfig>, I>>(base?: I): PerfEventConfig {
        return PerfEventConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<PerfEventConfig>, I>>(object: I): PerfEventConfig {
const message = createBasePerfEventConfig();
message.timebase = (object.timebase !== undefined && object.timebase !== null)
          ? PerfEvents_Timebase.fromPartial(object.timebase)
          : undefined;
message.followers = object.followers?.map((e) => FollowerEvent.fromPartial(e)) || [];
message.callstackSampling = (object.callstackSampling !== undefined && object.callstackSampling !== null)
          ? PerfEventConfig_CallstackSampling.fromPartial(object.callstackSampling)
          : undefined;
message.targetCpu = object.targetCpu?.map((e) => e) || [];
message.ignoreOpenFailure = object.ignoreOpenFailure ?? false;
message.cpuid = object.cpuid?.map((e) => e) || [];
message.ringBufferReadPeriodMs = object.ringBufferReadPeriodMs ?? 0;
message.ringBufferPages = object.ringBufferPages ?? 0;
message.maxEnqueuedFootprintKb = object.maxEnqueuedFootprintKb ?? 0;
message.maxDaemonMemoryKb = object.maxDaemonMemoryKb ?? 0;
message.remoteDescriptorTimeoutMs = object.remoteDescriptorTimeoutMs ?? 0;
message.unwindStateClearPeriodMs = object.unwindStateClearPeriodMs ?? 0;
message.targetInstalledBy = object.targetInstalledBy?.map((e) => e) || [];
message.allCpus = object.allCpus ?? false;
message.samplingFrequency = object.samplingFrequency ?? 0;
message.kernelFrames = object.kernelFrames ?? false;
message.targetPid = object.targetPid?.map((e) => e) || [];
message.targetCmdline = object.targetCmdline?.map((e) => e) || [];
message.excludePid = object.excludePid?.map((e) => e) || [];
message.excludeCmdline = object.excludeCmdline?.map((e) => e) || [];
message.additionalCmdlineCount = object.additionalCmdlineCount ?? 0;
return message;
}
            };

function createBasePerfEventConfig_CallstackSampling(): PerfEventConfig_CallstackSampling {
      return { scope: undefined,kernelFrames: false,userFrames: 0 };
    }

export const PerfEventConfig_CallstackSampling: MessageFns<PerfEventConfig_CallstackSampling> = {
              encode(
      message: PerfEventConfig_CallstackSampling,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.scope !== undefined ) {
          PerfEventConfig_Scope.encode(message.scope, writer.uint32(10).fork()).join();
        }
if (message.kernelFrames !== undefined  && message.kernelFrames !== false) {
          writer.uint32(16).bool(message.kernelFrames);
        }
if (message.userFrames !== undefined  && message.userFrames !== 0) {
          writer.uint32(24).int32(message.userFrames);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): PerfEventConfig_CallstackSampling {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePerfEventConfig_CallstackSampling();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.scope = PerfEventConfig_Scope.decode(reader, reader.uint32());
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.kernelFrames = reader.bool();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.userFrames = reader.int32() as any;
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): PerfEventConfig_CallstackSampling {
      return {
scope: isSet(object.scope)
          ? PerfEventConfig_Scope.fromJSON(object.scope)
          : undefined,
kernelFrames: isSet(object.kernelFrames)
          ? globalThis.Boolean(object.kernelFrames)
          : false,
userFrames: isSet(object.userFrames)
          ? perfEventConfig_UnwindModeFromJSON(object.userFrames)
          : 0,
};
},

toJSON(message: PerfEventConfig_CallstackSampling): unknown {
      const obj: any = {};
if (message.scope !== undefined ) {
          obj.scope = PerfEventConfig_Scope.toJSON(message.scope);
        }
if (message.kernelFrames !== undefined  && message.kernelFrames !== false) {
          obj.kernelFrames = message.kernelFrames;
        }
if (message.userFrames !== undefined  && message.userFrames !== 0) {
          obj.userFrames = perfEventConfig_UnwindModeToJSON(message.userFrames);
        }
return obj;
},

create<I extends Exact<DeepPartial<PerfEventConfig_CallstackSampling>, I>>(base?: I): PerfEventConfig_CallstackSampling {
        return PerfEventConfig_CallstackSampling.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<PerfEventConfig_CallstackSampling>, I>>(object: I): PerfEventConfig_CallstackSampling {
const message = createBasePerfEventConfig_CallstackSampling();
message.scope = (object.scope !== undefined && object.scope !== null)
          ? PerfEventConfig_Scope.fromPartial(object.scope)
          : undefined;
message.kernelFrames = object.kernelFrames ?? false;
message.userFrames = object.userFrames ?? 0;
return message;
}
            };

function createBasePerfEventConfig_Scope(): PerfEventConfig_Scope {
      return { targetPid: [],targetCmdline: [],excludePid: [],excludeCmdline: [],additionalCmdlineCount: 0,processShardCount: 0 };
    }

export const PerfEventConfig_Scope: MessageFns<PerfEventConfig_Scope> = {
              encode(
      message: PerfEventConfig_Scope,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.targetPid !== undefined && message.targetPid.length !== 0) {
              
          for (const v of message.targetPid) {
            writer.uint32(8).int32(v!);
          }
        
            }
if (message.targetCmdline !== undefined && message.targetCmdline.length !== 0) {
              
          for (const v of message.targetCmdline) {
            writer.uint32(18).string(v!);
          }
        
            }
if (message.excludePid !== undefined && message.excludePid.length !== 0) {
              
          for (const v of message.excludePid) {
            writer.uint32(24).int32(v!);
          }
        
            }
if (message.excludeCmdline !== undefined && message.excludeCmdline.length !== 0) {
              
          for (const v of message.excludeCmdline) {
            writer.uint32(34).string(v!);
          }
        
            }
if (message.additionalCmdlineCount !== undefined  && message.additionalCmdlineCount !== 0) {
          writer.uint32(40).uint32(message.additionalCmdlineCount);
        }
if (message.processShardCount !== undefined  && message.processShardCount !== 0) {
          writer.uint32(48).uint32(message.processShardCount);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): PerfEventConfig_Scope {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBasePerfEventConfig_Scope();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag === 8) {
              
              message.targetPid!.push(reader.int32());

              continue;
            }

            if (tag === 10) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.targetPid!.push(reader.int32());
              }

              continue;
            }

            break;
          }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.targetCmdline!.push(el);
              }
continue; }
case 3: {
if (tag === 24) {
              
              message.excludePid!.push(reader.int32());

              continue;
            }

            if (tag === 26) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.excludePid!.push(reader.int32());
              }

              continue;
            }

            break;
          }
case 4: {
if (tag !== 34) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.excludeCmdline!.push(el);
              }
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.additionalCmdlineCount = reader.uint32();
continue; }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.processShardCount = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): PerfEventConfig_Scope {
      return {
targetPid: globalThis.Array.isArray(object?.targetPid) ? object.targetPid.map((e: any) => globalThis.Number(e)): [],
targetCmdline: globalThis.Array.isArray(object?.targetCmdline) ? object.targetCmdline.map((e: any) => globalThis.String(e)): [],
excludePid: globalThis.Array.isArray(object?.excludePid) ? object.excludePid.map((e: any) => globalThis.Number(e)): [],
excludeCmdline: globalThis.Array.isArray(object?.excludeCmdline) ? object.excludeCmdline.map((e: any) => globalThis.String(e)): [],
additionalCmdlineCount: isSet(object.additionalCmdlineCount)
          ? globalThis.Number(object.additionalCmdlineCount)
          : 0,
processShardCount: isSet(object.processShardCount)
          ? globalThis.Number(object.processShardCount)
          : 0,
};
},

toJSON(message: PerfEventConfig_Scope): unknown {
      const obj: any = {};
if (message.targetPid?.length) {
          obj.targetPid = message.targetPid.map(e => Math.round(e));
        }
if (message.targetCmdline?.length) {
          obj.targetCmdline = message.targetCmdline;
        }
if (message.excludePid?.length) {
          obj.excludePid = message.excludePid.map(e => Math.round(e));
        }
if (message.excludeCmdline?.length) {
          obj.excludeCmdline = message.excludeCmdline;
        }
if (message.additionalCmdlineCount !== undefined  && message.additionalCmdlineCount !== 0) {
          obj.additionalCmdlineCount = Math.round(message.additionalCmdlineCount);
        }
if (message.processShardCount !== undefined  && message.processShardCount !== 0) {
          obj.processShardCount = Math.round(message.processShardCount);
        }
return obj;
},

create<I extends Exact<DeepPartial<PerfEventConfig_Scope>, I>>(base?: I): PerfEventConfig_Scope {
        return PerfEventConfig_Scope.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<PerfEventConfig_Scope>, I>>(object: I): PerfEventConfig_Scope {
const message = createBasePerfEventConfig_Scope();
message.targetPid = object.targetPid?.map((e) => e) || [];
message.targetCmdline = object.targetCmdline?.map((e) => e) || [];
message.excludePid = object.excludePid?.map((e) => e) || [];
message.excludeCmdline = object.excludeCmdline?.map((e) => e) || [];
message.additionalCmdlineCount = object.additionalCmdlineCount ?? 0;
message.processShardCount = object.processShardCount ?? 0;
return message;
}
            };

function createBaseProtoVmConfig(): ProtoVmConfig {
      return { memoryLimitKb: 0 };
    }

export const ProtoVmConfig: MessageFns<ProtoVmConfig> = {
              encode(
      message: ProtoVmConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.memoryLimitKb !== undefined  && message.memoryLimitKb !== 0) {
          writer.uint32(8).uint32(message.memoryLimitKb);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): ProtoVmConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseProtoVmConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.memoryLimitKb = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): ProtoVmConfig {
      return {
memoryLimitKb: isSet(object.memoryLimitKb)
          ? globalThis.Number(object.memoryLimitKb)
          : 0,
};
},

toJSON(message: ProtoVmConfig): unknown {
      const obj: any = {};
if (message.memoryLimitKb !== undefined  && message.memoryLimitKb !== 0) {
          obj.memoryLimitKb = Math.round(message.memoryLimitKb);
        }
return obj;
},

create<I extends Exact<DeepPartial<ProtoVmConfig>, I>>(base?: I): ProtoVmConfig {
        return ProtoVmConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<ProtoVmConfig>, I>>(object: I): ProtoVmConfig {
const message = createBaseProtoVmConfig();
message.memoryLimitKb = object.memoryLimitKb ?? 0;
return message;
}
            };

function createBaseQnxConfig(): QnxConfig {
      return { qnxKernelBuffers: 0,qnxKernelKbuffers: 0,qnxKernelWideEvents: false,qnxCachePages: 0,qnxCacheMaxPages: 0,qnxTraceBufferInitBytes: 0 };
    }

export const QnxConfig: MessageFns<QnxConfig> = {
              encode(
      message: QnxConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.qnxKernelBuffers !== undefined  && message.qnxKernelBuffers !== 0) {
          writer.uint32(8).uint32(message.qnxKernelBuffers);
        }
if (message.qnxKernelKbuffers !== undefined  && message.qnxKernelKbuffers !== 0) {
          writer.uint32(16).uint32(message.qnxKernelKbuffers);
        }
if (message.qnxKernelWideEvents !== undefined  && message.qnxKernelWideEvents !== false) {
          writer.uint32(24).bool(message.qnxKernelWideEvents);
        }
if (message.qnxCachePages !== undefined  && message.qnxCachePages !== 0) {
          writer.uint32(32).uint32(message.qnxCachePages);
        }
if (message.qnxCacheMaxPages !== undefined  && message.qnxCacheMaxPages !== 0) {
          writer.uint32(40).int32(message.qnxCacheMaxPages);
        }
if (message.qnxTraceBufferInitBytes !== undefined  && message.qnxTraceBufferInitBytes !== 0) {
          writer.uint32(48).uint32(message.qnxTraceBufferInitBytes);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): QnxConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseQnxConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.qnxKernelBuffers = reader.uint32();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.qnxKernelKbuffers = reader.uint32();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.qnxKernelWideEvents = reader.bool();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.qnxCachePages = reader.uint32();
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.qnxCacheMaxPages = reader.int32();
continue; }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.qnxTraceBufferInitBytes = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): QnxConfig {
      return {
qnxKernelBuffers: isSet(object.qnxKernelBuffers)
          ? globalThis.Number(object.qnxKernelBuffers)
          : 0,
qnxKernelKbuffers: isSet(object.qnxKernelKbuffers)
          ? globalThis.Number(object.qnxKernelKbuffers)
          : 0,
qnxKernelWideEvents: isSet(object.qnxKernelWideEvents)
          ? globalThis.Boolean(object.qnxKernelWideEvents)
          : false,
qnxCachePages: isSet(object.qnxCachePages)
          ? globalThis.Number(object.qnxCachePages)
          : 0,
qnxCacheMaxPages: isSet(object.qnxCacheMaxPages)
          ? globalThis.Number(object.qnxCacheMaxPages)
          : 0,
qnxTraceBufferInitBytes: isSet(object.qnxTraceBufferInitBytes)
          ? globalThis.Number(object.qnxTraceBufferInitBytes)
          : 0,
};
},

toJSON(message: QnxConfig): unknown {
      const obj: any = {};
if (message.qnxKernelBuffers !== undefined  && message.qnxKernelBuffers !== 0) {
          obj.qnxKernelBuffers = Math.round(message.qnxKernelBuffers);
        }
if (message.qnxKernelKbuffers !== undefined  && message.qnxKernelKbuffers !== 0) {
          obj.qnxKernelKbuffers = Math.round(message.qnxKernelKbuffers);
        }
if (message.qnxKernelWideEvents !== undefined  && message.qnxKernelWideEvents !== false) {
          obj.qnxKernelWideEvents = message.qnxKernelWideEvents;
        }
if (message.qnxCachePages !== undefined  && message.qnxCachePages !== 0) {
          obj.qnxCachePages = Math.round(message.qnxCachePages);
        }
if (message.qnxCacheMaxPages !== undefined  && message.qnxCacheMaxPages !== 0) {
          obj.qnxCacheMaxPages = Math.round(message.qnxCacheMaxPages);
        }
if (message.qnxTraceBufferInitBytes !== undefined  && message.qnxTraceBufferInitBytes !== 0) {
          obj.qnxTraceBufferInitBytes = Math.round(message.qnxTraceBufferInitBytes);
        }
return obj;
},

create<I extends Exact<DeepPartial<QnxConfig>, I>>(base?: I): QnxConfig {
        return QnxConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<QnxConfig>, I>>(object: I): QnxConfig {
const message = createBaseQnxConfig();
message.qnxKernelBuffers = object.qnxKernelBuffers ?? 0;
message.qnxKernelKbuffers = object.qnxKernelKbuffers ?? 0;
message.qnxKernelWideEvents = object.qnxKernelWideEvents ?? false;
message.qnxCachePages = object.qnxCachePages ?? 0;
message.qnxCacheMaxPages = object.qnxCacheMaxPages ?? 0;
message.qnxTraceBufferInitBytes = object.qnxTraceBufferInitBytes ?? 0;
return message;
}
            };

function createBaseStatsdTracingConfig(): StatsdTracingConfig {
      return { pushAtomId: [],rawPushAtomId: [],pullConfig: [] };
    }

export const StatsdTracingConfig: MessageFns<StatsdTracingConfig> = {
              encode(
      message: StatsdTracingConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.pushAtomId !== undefined && message.pushAtomId.length !== 0) {
              
          for (const v of message.pushAtomId) {
            writer.uint32(8).int32(v!);
          }
        
            }
if (message.rawPushAtomId !== undefined && message.rawPushAtomId.length !== 0) {
              
          for (const v of message.rawPushAtomId) {
            writer.uint32(16).int32(v!);
          }
        
            }
if (message.pullConfig !== undefined && message.pullConfig.length !== 0) {
              
          for (const v of message.pullConfig) {
            StatsdPullAtomConfig.encode(v!, writer.uint32(26).fork()).join();
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): StatsdTracingConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseStatsdTracingConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag === 8) {
              
              message.pushAtomId!.push(reader.int32() as any);

              continue;
            }

            if (tag === 10) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.pushAtomId!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
case 2: {
if (tag === 16) {
              
              message.rawPushAtomId!.push(reader.int32());

              continue;
            }

            if (tag === 18) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.rawPushAtomId!.push(reader.int32());
              }

              continue;
            }

            break;
          }
case 3: {
if (tag !== 26) {
        break;
      }
    
              
              const el = StatsdPullAtomConfig.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.pullConfig!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): StatsdTracingConfig {
      return {
pushAtomId: globalThis.Array.isArray(object?.pushAtomId) ? object.pushAtomId.map((e: any) => atomIdFromJSON(e)): [],
rawPushAtomId: globalThis.Array.isArray(object?.rawPushAtomId) ? object.rawPushAtomId.map((e: any) => globalThis.Number(e)): [],
pullConfig: globalThis.Array.isArray(object?.pullConfig) ? object.pullConfig.map((e: any) => StatsdPullAtomConfig.fromJSON(e)): [],
};
},

toJSON(message: StatsdTracingConfig): unknown {
      const obj: any = {};
if (message.pushAtomId?.length) {
          obj.pushAtomId = message.pushAtomId.map(e => atomIdToJSON(e));
        }
if (message.rawPushAtomId?.length) {
          obj.rawPushAtomId = message.rawPushAtomId.map(e => Math.round(e));
        }
if (message.pullConfig?.length) {
          obj.pullConfig = message.pullConfig.map(e => StatsdPullAtomConfig.toJSON(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<StatsdTracingConfig>, I>>(base?: I): StatsdTracingConfig {
        return StatsdTracingConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<StatsdTracingConfig>, I>>(object: I): StatsdTracingConfig {
const message = createBaseStatsdTracingConfig();
message.pushAtomId = object.pushAtomId?.map((e) => e) || [];
message.rawPushAtomId = object.rawPushAtomId?.map((e) => e) || [];
message.pullConfig = object.pullConfig?.map((e) => StatsdPullAtomConfig.fromPartial(e)) || [];
return message;
}
            };

function createBaseStatsdPullAtomConfig(): StatsdPullAtomConfig {
      return { pullAtomId: [],rawPullAtomId: [],pullFrequencyMs: 0,packages: [] };
    }

export const StatsdPullAtomConfig: MessageFns<StatsdPullAtomConfig> = {
              encode(
      message: StatsdPullAtomConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.pullAtomId !== undefined && message.pullAtomId.length !== 0) {
              
          for (const v of message.pullAtomId) {
            writer.uint32(8).int32(v!);
          }
        
            }
if (message.rawPullAtomId !== undefined && message.rawPullAtomId.length !== 0) {
              
          for (const v of message.rawPullAtomId) {
            writer.uint32(16).int32(v!);
          }
        
            }
if (message.pullFrequencyMs !== undefined  && message.pullFrequencyMs !== 0) {
          writer.uint32(24).int32(message.pullFrequencyMs);
        }
if (message.packages !== undefined && message.packages.length !== 0) {
              
          for (const v of message.packages) {
            writer.uint32(34).string(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): StatsdPullAtomConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseStatsdPullAtomConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag === 8) {
              
              message.pullAtomId!.push(reader.int32() as any);

              continue;
            }

            if (tag === 10) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.pullAtomId!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
case 2: {
if (tag === 16) {
              
              message.rawPullAtomId!.push(reader.int32());

              continue;
            }

            if (tag === 18) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.rawPullAtomId!.push(reader.int32());
              }

              continue;
            }

            break;
          }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.pullFrequencyMs = reader.int32();
continue; }
case 4: {
if (tag !== 34) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.packages!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): StatsdPullAtomConfig {
      return {
pullAtomId: globalThis.Array.isArray(object?.pullAtomId) ? object.pullAtomId.map((e: any) => atomIdFromJSON(e)): [],
rawPullAtomId: globalThis.Array.isArray(object?.rawPullAtomId) ? object.rawPullAtomId.map((e: any) => globalThis.Number(e)): [],
pullFrequencyMs: isSet(object.pullFrequencyMs)
          ? globalThis.Number(object.pullFrequencyMs)
          : 0,
packages: globalThis.Array.isArray(object?.packages) ? object.packages.map((e: any) => globalThis.String(e)): [],
};
},

toJSON(message: StatsdPullAtomConfig): unknown {
      const obj: any = {};
if (message.pullAtomId?.length) {
          obj.pullAtomId = message.pullAtomId.map(e => atomIdToJSON(e));
        }
if (message.rawPullAtomId?.length) {
          obj.rawPullAtomId = message.rawPullAtomId.map(e => Math.round(e));
        }
if (message.pullFrequencyMs !== undefined  && message.pullFrequencyMs !== 0) {
          obj.pullFrequencyMs = Math.round(message.pullFrequencyMs);
        }
if (message.packages?.length) {
          obj.packages = message.packages;
        }
return obj;
},

create<I extends Exact<DeepPartial<StatsdPullAtomConfig>, I>>(base?: I): StatsdPullAtomConfig {
        return StatsdPullAtomConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<StatsdPullAtomConfig>, I>>(object: I): StatsdPullAtomConfig {
const message = createBaseStatsdPullAtomConfig();
message.pullAtomId = object.pullAtomId?.map((e) => e) || [];
message.rawPullAtomId = object.rawPullAtomId?.map((e) => e) || [];
message.pullFrequencyMs = object.pullFrequencyMs ?? 0;
message.packages = object.packages?.map((e) => e) || [];
return message;
}
            };

function createBaseSysStatsConfig(): SysStatsConfig {
      return { meminfoPeriodMs: 0,meminfoCounters: [],vmstatPeriodMs: 0,vmstatCounters: [],statPeriodMs: 0,statCounters: [],devfreqPeriodMs: 0,cpufreqPeriodMs: 0,buddyinfoPeriodMs: 0,diskstatPeriodMs: 0,psiPeriodMs: 0,thermalPeriodMs: 0,cpuidlePeriodMs: 0,gpufreqPeriodMs: 0,slabPeriodMs: 0 };
    }

export const SysStatsConfig: MessageFns<SysStatsConfig> = {
              encode(
      message: SysStatsConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.meminfoPeriodMs !== undefined  && message.meminfoPeriodMs !== 0) {
          writer.uint32(8).uint32(message.meminfoPeriodMs);
        }
if (message.meminfoCounters !== undefined && message.meminfoCounters.length !== 0) {
              
          for (const v of message.meminfoCounters) {
            writer.uint32(16).int32(v!);
          }
        
            }
if (message.vmstatPeriodMs !== undefined  && message.vmstatPeriodMs !== 0) {
          writer.uint32(24).uint32(message.vmstatPeriodMs);
        }
if (message.vmstatCounters !== undefined && message.vmstatCounters.length !== 0) {
              
          for (const v of message.vmstatCounters) {
            writer.uint32(32).int32(v!);
          }
        
            }
if (message.statPeriodMs !== undefined  && message.statPeriodMs !== 0) {
          writer.uint32(40).uint32(message.statPeriodMs);
        }
if (message.statCounters !== undefined && message.statCounters.length !== 0) {
              
          for (const v of message.statCounters) {
            writer.uint32(48).int32(v!);
          }
        
            }
if (message.devfreqPeriodMs !== undefined  && message.devfreqPeriodMs !== 0) {
          writer.uint32(56).uint32(message.devfreqPeriodMs);
        }
if (message.cpufreqPeriodMs !== undefined  && message.cpufreqPeriodMs !== 0) {
          writer.uint32(64).uint32(message.cpufreqPeriodMs);
        }
if (message.buddyinfoPeriodMs !== undefined  && message.buddyinfoPeriodMs !== 0) {
          writer.uint32(72).uint32(message.buddyinfoPeriodMs);
        }
if (message.diskstatPeriodMs !== undefined  && message.diskstatPeriodMs !== 0) {
          writer.uint32(80).uint32(message.diskstatPeriodMs);
        }
if (message.psiPeriodMs !== undefined  && message.psiPeriodMs !== 0) {
          writer.uint32(88).uint32(message.psiPeriodMs);
        }
if (message.thermalPeriodMs !== undefined  && message.thermalPeriodMs !== 0) {
          writer.uint32(96).uint32(message.thermalPeriodMs);
        }
if (message.cpuidlePeriodMs !== undefined  && message.cpuidlePeriodMs !== 0) {
          writer.uint32(104).uint32(message.cpuidlePeriodMs);
        }
if (message.gpufreqPeriodMs !== undefined  && message.gpufreqPeriodMs !== 0) {
          writer.uint32(112).uint32(message.gpufreqPeriodMs);
        }
if (message.slabPeriodMs !== undefined  && message.slabPeriodMs !== 0) {
          writer.uint32(120).uint32(message.slabPeriodMs);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): SysStatsConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseSysStatsConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.meminfoPeriodMs = reader.uint32();
continue; }
case 2: {
if (tag === 16) {
              
              message.meminfoCounters!.push(reader.int32() as any);

              continue;
            }

            if (tag === 18) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.meminfoCounters!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.vmstatPeriodMs = reader.uint32();
continue; }
case 4: {
if (tag === 32) {
              
              message.vmstatCounters!.push(reader.int32() as any);

              continue;
            }

            if (tag === 34) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.vmstatCounters!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.statPeriodMs = reader.uint32();
continue; }
case 6: {
if (tag === 48) {
              
              message.statCounters!.push(reader.int32() as any);

              continue;
            }

            if (tag === 50) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.statCounters!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
case 7: {
if (tag !== 56) {
        break;
      }
    
        message.devfreqPeriodMs = reader.uint32();
continue; }
case 8: {
if (tag !== 64) {
        break;
      }
    
        message.cpufreqPeriodMs = reader.uint32();
continue; }
case 9: {
if (tag !== 72) {
        break;
      }
    
        message.buddyinfoPeriodMs = reader.uint32();
continue; }
case 10: {
if (tag !== 80) {
        break;
      }
    
        message.diskstatPeriodMs = reader.uint32();
continue; }
case 11: {
if (tag !== 88) {
        break;
      }
    
        message.psiPeriodMs = reader.uint32();
continue; }
case 12: {
if (tag !== 96) {
        break;
      }
    
        message.thermalPeriodMs = reader.uint32();
continue; }
case 13: {
if (tag !== 104) {
        break;
      }
    
        message.cpuidlePeriodMs = reader.uint32();
continue; }
case 14: {
if (tag !== 112) {
        break;
      }
    
        message.gpufreqPeriodMs = reader.uint32();
continue; }
case 15: {
if (tag !== 120) {
        break;
      }
    
        message.slabPeriodMs = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): SysStatsConfig {
      return {
meminfoPeriodMs: isSet(object.meminfoPeriodMs)
          ? globalThis.Number(object.meminfoPeriodMs)
          : 0,
meminfoCounters: globalThis.Array.isArray(object?.meminfoCounters) ? object.meminfoCounters.map((e: any) => meminfoCountersFromJSON(e)): [],
vmstatPeriodMs: isSet(object.vmstatPeriodMs)
          ? globalThis.Number(object.vmstatPeriodMs)
          : 0,
vmstatCounters: globalThis.Array.isArray(object?.vmstatCounters) ? object.vmstatCounters.map((e: any) => vmstatCountersFromJSON(e)): [],
statPeriodMs: isSet(object.statPeriodMs)
          ? globalThis.Number(object.statPeriodMs)
          : 0,
statCounters: globalThis.Array.isArray(object?.statCounters) ? object.statCounters.map((e: any) => sysStatsConfig_StatCountersFromJSON(e)): [],
devfreqPeriodMs: isSet(object.devfreqPeriodMs)
          ? globalThis.Number(object.devfreqPeriodMs)
          : 0,
cpufreqPeriodMs: isSet(object.cpufreqPeriodMs)
          ? globalThis.Number(object.cpufreqPeriodMs)
          : 0,
buddyinfoPeriodMs: isSet(object.buddyinfoPeriodMs)
          ? globalThis.Number(object.buddyinfoPeriodMs)
          : 0,
diskstatPeriodMs: isSet(object.diskstatPeriodMs)
          ? globalThis.Number(object.diskstatPeriodMs)
          : 0,
psiPeriodMs: isSet(object.psiPeriodMs)
          ? globalThis.Number(object.psiPeriodMs)
          : 0,
thermalPeriodMs: isSet(object.thermalPeriodMs)
          ? globalThis.Number(object.thermalPeriodMs)
          : 0,
cpuidlePeriodMs: isSet(object.cpuidlePeriodMs)
          ? globalThis.Number(object.cpuidlePeriodMs)
          : 0,
gpufreqPeriodMs: isSet(object.gpufreqPeriodMs)
          ? globalThis.Number(object.gpufreqPeriodMs)
          : 0,
slabPeriodMs: isSet(object.slabPeriodMs)
          ? globalThis.Number(object.slabPeriodMs)
          : 0,
};
},

toJSON(message: SysStatsConfig): unknown {
      const obj: any = {};
if (message.meminfoPeriodMs !== undefined  && message.meminfoPeriodMs !== 0) {
          obj.meminfoPeriodMs = Math.round(message.meminfoPeriodMs);
        }
if (message.meminfoCounters?.length) {
          obj.meminfoCounters = message.meminfoCounters.map(e => meminfoCountersToJSON(e));
        }
if (message.vmstatPeriodMs !== undefined  && message.vmstatPeriodMs !== 0) {
          obj.vmstatPeriodMs = Math.round(message.vmstatPeriodMs);
        }
if (message.vmstatCounters?.length) {
          obj.vmstatCounters = message.vmstatCounters.map(e => vmstatCountersToJSON(e));
        }
if (message.statPeriodMs !== undefined  && message.statPeriodMs !== 0) {
          obj.statPeriodMs = Math.round(message.statPeriodMs);
        }
if (message.statCounters?.length) {
          obj.statCounters = message.statCounters.map(e => sysStatsConfig_StatCountersToJSON(e));
        }
if (message.devfreqPeriodMs !== undefined  && message.devfreqPeriodMs !== 0) {
          obj.devfreqPeriodMs = Math.round(message.devfreqPeriodMs);
        }
if (message.cpufreqPeriodMs !== undefined  && message.cpufreqPeriodMs !== 0) {
          obj.cpufreqPeriodMs = Math.round(message.cpufreqPeriodMs);
        }
if (message.buddyinfoPeriodMs !== undefined  && message.buddyinfoPeriodMs !== 0) {
          obj.buddyinfoPeriodMs = Math.round(message.buddyinfoPeriodMs);
        }
if (message.diskstatPeriodMs !== undefined  && message.diskstatPeriodMs !== 0) {
          obj.diskstatPeriodMs = Math.round(message.diskstatPeriodMs);
        }
if (message.psiPeriodMs !== undefined  && message.psiPeriodMs !== 0) {
          obj.psiPeriodMs = Math.round(message.psiPeriodMs);
        }
if (message.thermalPeriodMs !== undefined  && message.thermalPeriodMs !== 0) {
          obj.thermalPeriodMs = Math.round(message.thermalPeriodMs);
        }
if (message.cpuidlePeriodMs !== undefined  && message.cpuidlePeriodMs !== 0) {
          obj.cpuidlePeriodMs = Math.round(message.cpuidlePeriodMs);
        }
if (message.gpufreqPeriodMs !== undefined  && message.gpufreqPeriodMs !== 0) {
          obj.gpufreqPeriodMs = Math.round(message.gpufreqPeriodMs);
        }
if (message.slabPeriodMs !== undefined  && message.slabPeriodMs !== 0) {
          obj.slabPeriodMs = Math.round(message.slabPeriodMs);
        }
return obj;
},

create<I extends Exact<DeepPartial<SysStatsConfig>, I>>(base?: I): SysStatsConfig {
        return SysStatsConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<SysStatsConfig>, I>>(object: I): SysStatsConfig {
const message = createBaseSysStatsConfig();
message.meminfoPeriodMs = object.meminfoPeriodMs ?? 0;
message.meminfoCounters = object.meminfoCounters?.map((e) => e) || [];
message.vmstatPeriodMs = object.vmstatPeriodMs ?? 0;
message.vmstatCounters = object.vmstatCounters?.map((e) => e) || [];
message.statPeriodMs = object.statPeriodMs ?? 0;
message.statCounters = object.statCounters?.map((e) => e) || [];
message.devfreqPeriodMs = object.devfreqPeriodMs ?? 0;
message.cpufreqPeriodMs = object.cpufreqPeriodMs ?? 0;
message.buddyinfoPeriodMs = object.buddyinfoPeriodMs ?? 0;
message.diskstatPeriodMs = object.diskstatPeriodMs ?? 0;
message.psiPeriodMs = object.psiPeriodMs ?? 0;
message.thermalPeriodMs = object.thermalPeriodMs ?? 0;
message.cpuidlePeriodMs = object.cpuidlePeriodMs ?? 0;
message.gpufreqPeriodMs = object.gpufreqPeriodMs ?? 0;
message.slabPeriodMs = object.slabPeriodMs ?? 0;
return message;
}
            };

function createBaseSystemInfoConfig(): SystemInfoConfig {
      return { irqNames: false };
    }

export const SystemInfoConfig: MessageFns<SystemInfoConfig> = {
              encode(
      message: SystemInfoConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.irqNames !== undefined  && message.irqNames !== false) {
          writer.uint32(8).bool(message.irqNames);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): SystemInfoConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseSystemInfoConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.irqNames = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): SystemInfoConfig {
      return {
irqNames: isSet(object.irqNames)
          ? globalThis.Boolean(object.irqNames)
          : false,
};
},

toJSON(message: SystemInfoConfig): unknown {
      const obj: any = {};
if (message.irqNames !== undefined  && message.irqNames !== false) {
          obj.irqNames = message.irqNames;
        }
return obj;
},

create<I extends Exact<DeepPartial<SystemInfoConfig>, I>>(base?: I): SystemInfoConfig {
        return SystemInfoConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<SystemInfoConfig>, I>>(object: I): SystemInfoConfig {
const message = createBaseSystemInfoConfig();
message.irqNames = object.irqNames ?? false;
return message;
}
            };

function createBaseTestConfig(): TestConfig {
      return { messageCount: 0,maxMessagesPerSecond: 0,seed: 0,messageSize: 0,sendBatchOnRegister: false,dummyFields: undefined };
    }

export const TestConfig: MessageFns<TestConfig> = {
              encode(
      message: TestConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.messageCount !== undefined  && message.messageCount !== 0) {
          writer.uint32(8).uint32(message.messageCount);
        }
if (message.maxMessagesPerSecond !== undefined  && message.maxMessagesPerSecond !== 0) {
          writer.uint32(16).uint32(message.maxMessagesPerSecond);
        }
if (message.seed !== undefined  && message.seed !== 0) {
          writer.uint32(24).uint32(message.seed);
        }
if (message.messageSize !== undefined  && message.messageSize !== 0) {
          writer.uint32(32).uint32(message.messageSize);
        }
if (message.sendBatchOnRegister !== undefined  && message.sendBatchOnRegister !== false) {
          writer.uint32(40).bool(message.sendBatchOnRegister);
        }
if (message.dummyFields !== undefined ) {
          TestConfig_DummyFields.encode(message.dummyFields, writer.uint32(50).fork()).join();
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TestConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTestConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.messageCount = reader.uint32();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.maxMessagesPerSecond = reader.uint32();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.seed = reader.uint32();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.messageSize = reader.uint32();
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.sendBatchOnRegister = reader.bool();
continue; }
case 6: {
if (tag !== 50) {
        break;
      }
    
        message.dummyFields = TestConfig_DummyFields.decode(reader, reader.uint32());
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TestConfig {
      return {
messageCount: isSet(object.messageCount)
          ? globalThis.Number(object.messageCount)
          : 0,
maxMessagesPerSecond: isSet(object.maxMessagesPerSecond)
          ? globalThis.Number(object.maxMessagesPerSecond)
          : 0,
seed: isSet(object.seed)
          ? globalThis.Number(object.seed)
          : 0,
messageSize: isSet(object.messageSize)
          ? globalThis.Number(object.messageSize)
          : 0,
sendBatchOnRegister: isSet(object.sendBatchOnRegister)
          ? globalThis.Boolean(object.sendBatchOnRegister)
          : false,
dummyFields: isSet(object.dummyFields)
          ? TestConfig_DummyFields.fromJSON(object.dummyFields)
          : undefined,
};
},

toJSON(message: TestConfig): unknown {
      const obj: any = {};
if (message.messageCount !== undefined  && message.messageCount !== 0) {
          obj.messageCount = Math.round(message.messageCount);
        }
if (message.maxMessagesPerSecond !== undefined  && message.maxMessagesPerSecond !== 0) {
          obj.maxMessagesPerSecond = Math.round(message.maxMessagesPerSecond);
        }
if (message.seed !== undefined  && message.seed !== 0) {
          obj.seed = Math.round(message.seed);
        }
if (message.messageSize !== undefined  && message.messageSize !== 0) {
          obj.messageSize = Math.round(message.messageSize);
        }
if (message.sendBatchOnRegister !== undefined  && message.sendBatchOnRegister !== false) {
          obj.sendBatchOnRegister = message.sendBatchOnRegister;
        }
if (message.dummyFields !== undefined ) {
          obj.dummyFields = TestConfig_DummyFields.toJSON(message.dummyFields);
        }
return obj;
},

create<I extends Exact<DeepPartial<TestConfig>, I>>(base?: I): TestConfig {
        return TestConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TestConfig>, I>>(object: I): TestConfig {
const message = createBaseTestConfig();
message.messageCount = object.messageCount ?? 0;
message.maxMessagesPerSecond = object.maxMessagesPerSecond ?? 0;
message.seed = object.seed ?? 0;
message.messageSize = object.messageSize ?? 0;
message.sendBatchOnRegister = object.sendBatchOnRegister ?? false;
message.dummyFields = (object.dummyFields !== undefined && object.dummyFields !== null)
          ? TestConfig_DummyFields.fromPartial(object.dummyFields)
          : undefined;
return message;
}
            };

function createBaseTestConfig_DummyFields(): TestConfig_DummyFields {
      return { fieldUint32: 0,fieldInt32: 0,fieldUint64: 0,fieldInt64: 0,fieldFixed64: 0,fieldSfixed64: 0,fieldFixed32: 0,fieldSfixed32: 0,fieldDouble: 0,fieldFloat: 0,fieldSint64: 0,fieldSint32: 0,fieldString: "",fieldBytes: new Uint8Array(0) };
    }

export const TestConfig_DummyFields: MessageFns<TestConfig_DummyFields> = {
              encode(
      message: TestConfig_DummyFields,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.fieldUint32 !== undefined  && message.fieldUint32 !== 0) {
          writer.uint32(8).uint32(message.fieldUint32);
        }
if (message.fieldInt32 !== undefined  && message.fieldInt32 !== 0) {
          writer.uint32(16).int32(message.fieldInt32);
        }
if (message.fieldUint64 !== undefined  && message.fieldUint64 !== 0) {
          writer.uint32(24).uint64(message.fieldUint64);
        }
if (message.fieldInt64 !== undefined  && message.fieldInt64 !== 0) {
          writer.uint32(32).int64(message.fieldInt64);
        }
if (message.fieldFixed64 !== undefined  && message.fieldFixed64 !== 0) {
          writer.uint32(41).fixed64(message.fieldFixed64);
        }
if (message.fieldSfixed64 !== undefined  && message.fieldSfixed64 !== 0) {
          writer.uint32(49).sfixed64(message.fieldSfixed64);
        }
if (message.fieldFixed32 !== undefined  && message.fieldFixed32 !== 0) {
          writer.uint32(61).fixed32(message.fieldFixed32);
        }
if (message.fieldSfixed32 !== undefined  && message.fieldSfixed32 !== 0) {
          writer.uint32(69).sfixed32(message.fieldSfixed32);
        }
if (message.fieldDouble !== undefined  && message.fieldDouble !== 0) {
          writer.uint32(73).double(message.fieldDouble);
        }
if (message.fieldFloat !== undefined  && message.fieldFloat !== 0) {
          writer.uint32(85).float(message.fieldFloat);
        }
if (message.fieldSint64 !== undefined  && message.fieldSint64 !== 0) {
          writer.uint32(88).sint64(message.fieldSint64);
        }
if (message.fieldSint32 !== undefined  && message.fieldSint32 !== 0) {
          writer.uint32(96).sint32(message.fieldSint32);
        }
if (message.fieldString !== undefined  && message.fieldString !== "") {
          writer.uint32(106).string(message.fieldString);
        }
if (message.fieldBytes !== undefined  && message.fieldBytes.length !== 0) {
          writer.uint32(114).bytes(message.fieldBytes);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TestConfig_DummyFields {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTestConfig_DummyFields();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.fieldUint32 = reader.uint32();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.fieldInt32 = reader.int32();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.fieldUint64 = longToNumber(reader.uint64());
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.fieldInt64 = longToNumber(reader.int64());
continue; }
case 5: {
if (tag !== 41) {
        break;
      }
    
        message.fieldFixed64 = longToNumber(reader.fixed64());
continue; }
case 6: {
if (tag !== 49) {
        break;
      }
    
        message.fieldSfixed64 = longToNumber(reader.sfixed64());
continue; }
case 7: {
if (tag !== 61) {
        break;
      }
    
        message.fieldFixed32 = reader.fixed32();
continue; }
case 8: {
if (tag !== 69) {
        break;
      }
    
        message.fieldSfixed32 = reader.sfixed32();
continue; }
case 9: {
if (tag !== 73) {
        break;
      }
    
        message.fieldDouble = reader.double();
continue; }
case 10: {
if (tag !== 85) {
        break;
      }
    
        message.fieldFloat = reader.float();
continue; }
case 11: {
if (tag !== 88) {
        break;
      }
    
        message.fieldSint64 = longToNumber(reader.sint64());
continue; }
case 12: {
if (tag !== 96) {
        break;
      }
    
        message.fieldSint32 = reader.sint32();
continue; }
case 13: {
if (tag !== 106) {
        break;
      }
    
        message.fieldString = reader.string();
continue; }
case 14: {
if (tag !== 114) {
        break;
      }
    
        message.fieldBytes = reader.bytes();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TestConfig_DummyFields {
      return {
fieldUint32: isSet(object.fieldUint32)
          ? globalThis.Number(object.fieldUint32)
          : 0,
fieldInt32: isSet(object.fieldInt32)
          ? globalThis.Number(object.fieldInt32)
          : 0,
fieldUint64: isSet(object.fieldUint64)
          ? globalThis.Number(object.fieldUint64)
          : 0,
fieldInt64: isSet(object.fieldInt64)
          ? globalThis.Number(object.fieldInt64)
          : 0,
fieldFixed64: isSet(object.fieldFixed64)
          ? globalThis.Number(object.fieldFixed64)
          : 0,
fieldSfixed64: isSet(object.fieldSfixed64)
          ? globalThis.Number(object.fieldSfixed64)
          : 0,
fieldFixed32: isSet(object.fieldFixed32)
          ? globalThis.Number(object.fieldFixed32)
          : 0,
fieldSfixed32: isSet(object.fieldSfixed32)
          ? globalThis.Number(object.fieldSfixed32)
          : 0,
fieldDouble: isSet(object.fieldDouble)
          ? globalThis.Number(object.fieldDouble)
          : 0,
fieldFloat: isSet(object.fieldFloat)
          ? globalThis.Number(object.fieldFloat)
          : 0,
fieldSint64: isSet(object.fieldSint64)
          ? globalThis.Number(object.fieldSint64)
          : 0,
fieldSint32: isSet(object.fieldSint32)
          ? globalThis.Number(object.fieldSint32)
          : 0,
fieldString: isSet(object.fieldString)
          ? globalThis.String(object.fieldString)
          : "",
fieldBytes: isSet(object.fieldBytes)
          ? bytesFromBase64(object.fieldBytes)
          : new Uint8Array(0),
};
},

toJSON(message: TestConfig_DummyFields): unknown {
      const obj: any = {};
if (message.fieldUint32 !== undefined  && message.fieldUint32 !== 0) {
          obj.fieldUint32 = Math.round(message.fieldUint32);
        }
if (message.fieldInt32 !== undefined  && message.fieldInt32 !== 0) {
          obj.fieldInt32 = Math.round(message.fieldInt32);
        }
if (message.fieldUint64 !== undefined  && message.fieldUint64 !== 0) {
          obj.fieldUint64 = Math.round(message.fieldUint64);
        }
if (message.fieldInt64 !== undefined  && message.fieldInt64 !== 0) {
          obj.fieldInt64 = Math.round(message.fieldInt64);
        }
if (message.fieldFixed64 !== undefined  && message.fieldFixed64 !== 0) {
          obj.fieldFixed64 = Math.round(message.fieldFixed64);
        }
if (message.fieldSfixed64 !== undefined  && message.fieldSfixed64 !== 0) {
          obj.fieldSfixed64 = Math.round(message.fieldSfixed64);
        }
if (message.fieldFixed32 !== undefined  && message.fieldFixed32 !== 0) {
          obj.fieldFixed32 = Math.round(message.fieldFixed32);
        }
if (message.fieldSfixed32 !== undefined  && message.fieldSfixed32 !== 0) {
          obj.fieldSfixed32 = Math.round(message.fieldSfixed32);
        }
if (message.fieldDouble !== undefined  && message.fieldDouble !== 0) {
          obj.fieldDouble = message.fieldDouble;
        }
if (message.fieldFloat !== undefined  && message.fieldFloat !== 0) {
          obj.fieldFloat = message.fieldFloat;
        }
if (message.fieldSint64 !== undefined  && message.fieldSint64 !== 0) {
          obj.fieldSint64 = Math.round(message.fieldSint64);
        }
if (message.fieldSint32 !== undefined  && message.fieldSint32 !== 0) {
          obj.fieldSint32 = Math.round(message.fieldSint32);
        }
if (message.fieldString !== undefined  && message.fieldString !== "") {
          obj.fieldString = message.fieldString;
        }
if (message.fieldBytes !== undefined  && message.fieldBytes.length !== 0) {
          obj.fieldBytes = base64FromBytes(message.fieldBytes);
        }
return obj;
},

create<I extends Exact<DeepPartial<TestConfig_DummyFields>, I>>(base?: I): TestConfig_DummyFields {
        return TestConfig_DummyFields.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TestConfig_DummyFields>, I>>(object: I): TestConfig_DummyFields {
const message = createBaseTestConfig_DummyFields();
message.fieldUint32 = object.fieldUint32 ?? 0;
message.fieldInt32 = object.fieldInt32 ?? 0;
message.fieldUint64 = object.fieldUint64 ?? 0;
message.fieldInt64 = object.fieldInt64 ?? 0;
message.fieldFixed64 = object.fieldFixed64 ?? 0;
message.fieldSfixed64 = object.fieldSfixed64 ?? 0;
message.fieldFixed32 = object.fieldFixed32 ?? 0;
message.fieldSfixed32 = object.fieldSfixed32 ?? 0;
message.fieldDouble = object.fieldDouble ?? 0;
message.fieldFloat = object.fieldFloat ?? 0;
message.fieldSint64 = object.fieldSint64 ?? 0;
message.fieldSint32 = object.fieldSint32 ?? 0;
message.fieldString = object.fieldString ?? "";
message.fieldBytes = object.fieldBytes ?? new Uint8Array(0);
return message;
}
            };

function createBaseTrackEventConfig(): TrackEventConfig {
      return { disabledCategories: [],enabledCategories: [],disabledTags: [],enabledTags: [],disableIncrementalTimestamps: false,timestampUnitMultiplier: 0,filterDebugAnnotations: false,enableThreadTimeSampling: false,threadTimeSubsamplingNs: 0,filterDynamicEventNames: false };
    }

export const TrackEventConfig: MessageFns<TrackEventConfig> = {
              encode(
      message: TrackEventConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.disabledCategories !== undefined && message.disabledCategories.length !== 0) {
              
          for (const v of message.disabledCategories) {
            writer.uint32(10).string(v!);
          }
        
            }
if (message.enabledCategories !== undefined && message.enabledCategories.length !== 0) {
              
          for (const v of message.enabledCategories) {
            writer.uint32(18).string(v!);
          }
        
            }
if (message.disabledTags !== undefined && message.disabledTags.length !== 0) {
              
          for (const v of message.disabledTags) {
            writer.uint32(26).string(v!);
          }
        
            }
if (message.enabledTags !== undefined && message.enabledTags.length !== 0) {
              
          for (const v of message.enabledTags) {
            writer.uint32(34).string(v!);
          }
        
            }
if (message.disableIncrementalTimestamps !== undefined  && message.disableIncrementalTimestamps !== false) {
          writer.uint32(40).bool(message.disableIncrementalTimestamps);
        }
if (message.timestampUnitMultiplier !== undefined  && message.timestampUnitMultiplier !== 0) {
          writer.uint32(48).uint64(message.timestampUnitMultiplier);
        }
if (message.filterDebugAnnotations !== undefined  && message.filterDebugAnnotations !== false) {
          writer.uint32(56).bool(message.filterDebugAnnotations);
        }
if (message.enableThreadTimeSampling !== undefined  && message.enableThreadTimeSampling !== false) {
          writer.uint32(64).bool(message.enableThreadTimeSampling);
        }
if (message.threadTimeSubsamplingNs !== undefined  && message.threadTimeSubsamplingNs !== 0) {
          writer.uint32(80).uint64(message.threadTimeSubsamplingNs);
        }
if (message.filterDynamicEventNames !== undefined  && message.filterDynamicEventNames !== false) {
          writer.uint32(72).bool(message.filterDynamicEventNames);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TrackEventConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTrackEventConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.disabledCategories!.push(el);
              }
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.enabledCategories!.push(el);
              }
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.disabledTags!.push(el);
              }
continue; }
case 4: {
if (tag !== 34) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.enabledTags!.push(el);
              }
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.disableIncrementalTimestamps = reader.bool();
continue; }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.timestampUnitMultiplier = longToNumber(reader.uint64());
continue; }
case 7: {
if (tag !== 56) {
        break;
      }
    
        message.filterDebugAnnotations = reader.bool();
continue; }
case 8: {
if (tag !== 64) {
        break;
      }
    
        message.enableThreadTimeSampling = reader.bool();
continue; }
case 10: {
if (tag !== 80) {
        break;
      }
    
        message.threadTimeSubsamplingNs = longToNumber(reader.uint64());
continue; }
case 9: {
if (tag !== 72) {
        break;
      }
    
        message.filterDynamicEventNames = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TrackEventConfig {
      return {
disabledCategories: globalThis.Array.isArray(object?.disabledCategories) ? object.disabledCategories.map((e: any) => globalThis.String(e)): [],
enabledCategories: globalThis.Array.isArray(object?.enabledCategories) ? object.enabledCategories.map((e: any) => globalThis.String(e)): [],
disabledTags: globalThis.Array.isArray(object?.disabledTags) ? object.disabledTags.map((e: any) => globalThis.String(e)): [],
enabledTags: globalThis.Array.isArray(object?.enabledTags) ? object.enabledTags.map((e: any) => globalThis.String(e)): [],
disableIncrementalTimestamps: isSet(object.disableIncrementalTimestamps)
          ? globalThis.Boolean(object.disableIncrementalTimestamps)
          : false,
timestampUnitMultiplier: isSet(object.timestampUnitMultiplier)
          ? globalThis.Number(object.timestampUnitMultiplier)
          : 0,
filterDebugAnnotations: isSet(object.filterDebugAnnotations)
          ? globalThis.Boolean(object.filterDebugAnnotations)
          : false,
enableThreadTimeSampling: isSet(object.enableThreadTimeSampling)
          ? globalThis.Boolean(object.enableThreadTimeSampling)
          : false,
threadTimeSubsamplingNs: isSet(object.threadTimeSubsamplingNs)
          ? globalThis.Number(object.threadTimeSubsamplingNs)
          : 0,
filterDynamicEventNames: isSet(object.filterDynamicEventNames)
          ? globalThis.Boolean(object.filterDynamicEventNames)
          : false,
};
},

toJSON(message: TrackEventConfig): unknown {
      const obj: any = {};
if (message.disabledCategories?.length) {
          obj.disabledCategories = message.disabledCategories;
        }
if (message.enabledCategories?.length) {
          obj.enabledCategories = message.enabledCategories;
        }
if (message.disabledTags?.length) {
          obj.disabledTags = message.disabledTags;
        }
if (message.enabledTags?.length) {
          obj.enabledTags = message.enabledTags;
        }
if (message.disableIncrementalTimestamps !== undefined  && message.disableIncrementalTimestamps !== false) {
          obj.disableIncrementalTimestamps = message.disableIncrementalTimestamps;
        }
if (message.timestampUnitMultiplier !== undefined  && message.timestampUnitMultiplier !== 0) {
          obj.timestampUnitMultiplier = Math.round(message.timestampUnitMultiplier);
        }
if (message.filterDebugAnnotations !== undefined  && message.filterDebugAnnotations !== false) {
          obj.filterDebugAnnotations = message.filterDebugAnnotations;
        }
if (message.enableThreadTimeSampling !== undefined  && message.enableThreadTimeSampling !== false) {
          obj.enableThreadTimeSampling = message.enableThreadTimeSampling;
        }
if (message.threadTimeSubsamplingNs !== undefined  && message.threadTimeSubsamplingNs !== 0) {
          obj.threadTimeSubsamplingNs = Math.round(message.threadTimeSubsamplingNs);
        }
if (message.filterDynamicEventNames !== undefined  && message.filterDynamicEventNames !== false) {
          obj.filterDynamicEventNames = message.filterDynamicEventNames;
        }
return obj;
},

create<I extends Exact<DeepPartial<TrackEventConfig>, I>>(base?: I): TrackEventConfig {
        return TrackEventConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TrackEventConfig>, I>>(object: I): TrackEventConfig {
const message = createBaseTrackEventConfig();
message.disabledCategories = object.disabledCategories?.map((e) => e) || [];
message.enabledCategories = object.enabledCategories?.map((e) => e) || [];
message.disabledTags = object.disabledTags?.map((e) => e) || [];
message.enabledTags = object.enabledTags?.map((e) => e) || [];
message.disableIncrementalTimestamps = object.disableIncrementalTimestamps ?? false;
message.timestampUnitMultiplier = object.timestampUnitMultiplier ?? 0;
message.filterDebugAnnotations = object.filterDebugAnnotations ?? false;
message.enableThreadTimeSampling = object.enableThreadTimeSampling ?? false;
message.threadTimeSubsamplingNs = object.threadTimeSubsamplingNs ?? 0;
message.filterDynamicEventNames = object.filterDynamicEventNames ?? false;
return message;
}
            };

function createBaseDataSourceConfig(): DataSourceConfig {
      return { name: "",targetBuffer: 0,targetBufferName: "",traceDurationMs: 0,preferSuspendClockForDuration: false,stopTimeoutMs: 0,enableExtraGuardrails: false,sessionInitiator: 0,tracingSessionId: 0,bufferExhaustedPolicy: 0,priorityBoost: undefined,protovmConfig: undefined,ftraceConfig: undefined,inodeFileConfig: undefined,processStatsConfig: undefined,sysStatsConfig: undefined,heapprofdConfig: undefined,javaHprofConfig: undefined,androidPowerConfig: undefined,androidLogConfig: undefined,gpuCounterConfig: undefined,androidGameInterventionListConfig: undefined,packagesListConfig: undefined,perfEventConfig: undefined,vulkanMemoryConfig: undefined,trackEventConfig: undefined,androidPolledStateConfig: undefined,androidSystemPropertyConfig: undefined,statsdTracingConfig: undefined,systemInfoConfig: undefined,frozenFtraceConfig: undefined,chromeConfig: undefined,v8Config: undefined,interceptorConfig: undefined,networkPacketTraceConfig: undefined,surfaceflingerLayersConfig: undefined,surfaceflingerTransactionsConfig: undefined,androidSdkSyspropGuardConfig: undefined,etwConfig: undefined,protologConfig: undefined,androidInputEventConfig: undefined,pixelModemConfig: undefined,windowmanagerConfig: undefined,chromiumSystemMetrics: undefined,kernelWakelocksConfig: undefined,gpuRenderstagesConfig: undefined,chromiumHistogramSamples: undefined,appWakelocksConfig: undefined,cpuPerUidConfig: undefined,userListConfig: undefined,inputmethodConfig: undefined,androidAflagsConfig: undefined,journaldConfig: undefined,displayVideoConfig: undefined,qnxConfig: undefined,legacyConfig: "",forTesting: undefined };
    }

export const DataSourceConfig: MessageFns<DataSourceConfig> = {
              encode(
      message: DataSourceConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(10).string(message.name);
        }
if (message.targetBuffer !== undefined  && message.targetBuffer !== 0) {
          writer.uint32(16).uint32(message.targetBuffer);
        }
if (message.targetBufferName !== undefined  && message.targetBufferName !== "") {
          writer.uint32(90).string(message.targetBufferName);
        }
if (message.traceDurationMs !== undefined  && message.traceDurationMs !== 0) {
          writer.uint32(24).uint32(message.traceDurationMs);
        }
if (message.preferSuspendClockForDuration !== undefined  && message.preferSuspendClockForDuration !== false) {
          writer.uint32(976).bool(message.preferSuspendClockForDuration);
        }
if (message.stopTimeoutMs !== undefined  && message.stopTimeoutMs !== 0) {
          writer.uint32(56).uint32(message.stopTimeoutMs);
        }
if (message.enableExtraGuardrails !== undefined  && message.enableExtraGuardrails !== false) {
          writer.uint32(48).bool(message.enableExtraGuardrails);
        }
if (message.sessionInitiator !== undefined  && message.sessionInitiator !== 0) {
          writer.uint32(64).int32(message.sessionInitiator);
        }
if (message.tracingSessionId !== undefined  && message.tracingSessionId !== 0) {
          writer.uint32(32).uint64(message.tracingSessionId);
        }
if (message.bufferExhaustedPolicy !== undefined  && message.bufferExhaustedPolicy !== 0) {
          writer.uint32(72).int32(message.bufferExhaustedPolicy);
        }
if (message.priorityBoost !== undefined ) {
          PriorityBoostConfig.encode(message.priorityBoost, writer.uint32(82).fork()).join();
        }
if (message.protovmConfig !== undefined ) {
          ProtoVmConfig.encode(message.protovmConfig, writer.uint32(98).fork()).join();
        }
if (message.ftraceConfig !== undefined ) {
          FtraceConfig.encode(message.ftraceConfig, writer.uint32(802).fork()).join();
        }
if (message.inodeFileConfig !== undefined ) {
          InodeFileConfig.encode(message.inodeFileConfig, writer.uint32(818).fork()).join();
        }
if (message.processStatsConfig !== undefined ) {
          ProcessStatsConfig.encode(message.processStatsConfig, writer.uint32(826).fork()).join();
        }
if (message.sysStatsConfig !== undefined ) {
          SysStatsConfig.encode(message.sysStatsConfig, writer.uint32(834).fork()).join();
        }
if (message.heapprofdConfig !== undefined ) {
          HeapprofdConfig.encode(message.heapprofdConfig, writer.uint32(842).fork()).join();
        }
if (message.javaHprofConfig !== undefined ) {
          JavaHprofConfig.encode(message.javaHprofConfig, writer.uint32(882).fork()).join();
        }
if (message.androidPowerConfig !== undefined ) {
          AndroidPowerConfig.encode(message.androidPowerConfig, writer.uint32(850).fork()).join();
        }
if (message.androidLogConfig !== undefined ) {
          AndroidLogConfig.encode(message.androidLogConfig, writer.uint32(858).fork()).join();
        }
if (message.gpuCounterConfig !== undefined ) {
          GpuCounterConfig.encode(message.gpuCounterConfig, writer.uint32(866).fork()).join();
        }
if (message.androidGameInterventionListConfig !== undefined ) {
          AndroidGameInterventionListConfig.encode(message.androidGameInterventionListConfig, writer.uint32(930).fork()).join();
        }
if (message.packagesListConfig !== undefined ) {
          PackagesListConfig.encode(message.packagesListConfig, writer.uint32(874).fork()).join();
        }
if (message.perfEventConfig !== undefined ) {
          PerfEventConfig.encode(message.perfEventConfig, writer.uint32(890).fork()).join();
        }
if (message.vulkanMemoryConfig !== undefined ) {
          VulkanMemoryConfig.encode(message.vulkanMemoryConfig, writer.uint32(898).fork()).join();
        }
if (message.trackEventConfig !== undefined ) {
          TrackEventConfig.encode(message.trackEventConfig, writer.uint32(906).fork()).join();
        }
if (message.androidPolledStateConfig !== undefined ) {
          AndroidPolledStateConfig.encode(message.androidPolledStateConfig, writer.uint32(914).fork()).join();
        }
if (message.androidSystemPropertyConfig !== undefined ) {
          AndroidSystemPropertyConfig.encode(message.androidSystemPropertyConfig, writer.uint32(946).fork()).join();
        }
if (message.statsdTracingConfig !== undefined ) {
          StatsdTracingConfig.encode(message.statsdTracingConfig, writer.uint32(938).fork()).join();
        }
if (message.systemInfoConfig !== undefined ) {
          SystemInfoConfig.encode(message.systemInfoConfig, writer.uint32(954).fork()).join();
        }
if (message.frozenFtraceConfig !== undefined ) {
          FrozenFtraceConfig.encode(message.frozenFtraceConfig, writer.uint32(1090).fork()).join();
        }
if (message.chromeConfig !== undefined ) {
          ChromeConfig.encode(message.chromeConfig, writer.uint32(810).fork()).join();
        }
if (message.v8Config !== undefined ) {
          V8Config.encode(message.v8Config, writer.uint32(1018).fork()).join();
        }
if (message.interceptorConfig !== undefined ) {
          InterceptorConfig.encode(message.interceptorConfig, writer.uint32(922).fork()).join();
        }
if (message.networkPacketTraceConfig !== undefined ) {
          NetworkPacketTraceConfig.encode(message.networkPacketTraceConfig, writer.uint32(962).fork()).join();
        }
if (message.surfaceflingerLayersConfig !== undefined ) {
          SurfaceFlingerLayersConfig.encode(message.surfaceflingerLayersConfig, writer.uint32(970).fork()).join();
        }
if (message.surfaceflingerTransactionsConfig !== undefined ) {
          SurfaceFlingerTransactionsConfig.encode(message.surfaceflingerTransactionsConfig, writer.uint32(986).fork()).join();
        }
if (message.androidSdkSyspropGuardConfig !== undefined ) {
          AndroidSdkSyspropGuardConfig.encode(message.androidSdkSyspropGuardConfig, writer.uint32(994).fork()).join();
        }
if (message.etwConfig !== undefined ) {
          EtwConfig.encode(message.etwConfig, writer.uint32(1002).fork()).join();
        }
if (message.protologConfig !== undefined ) {
          ProtoLogConfig.encode(message.protologConfig, writer.uint32(1010).fork()).join();
        }
if (message.androidInputEventConfig !== undefined ) {
          AndroidInputEventConfig.encode(message.androidInputEventConfig, writer.uint32(1026).fork()).join();
        }
if (message.pixelModemConfig !== undefined ) {
          PixelModemConfig.encode(message.pixelModemConfig, writer.uint32(1034).fork()).join();
        }
if (message.windowmanagerConfig !== undefined ) {
          WindowManagerConfig.encode(message.windowmanagerConfig, writer.uint32(1042).fork()).join();
        }
if (message.chromiumSystemMetrics !== undefined ) {
          ChromiumSystemMetricsConfig.encode(message.chromiumSystemMetrics, writer.uint32(1050).fork()).join();
        }
if (message.kernelWakelocksConfig !== undefined ) {
          KernelWakelocksConfig.encode(message.kernelWakelocksConfig, writer.uint32(1058).fork()).join();
        }
if (message.gpuRenderstagesConfig !== undefined ) {
          GpuRenderStagesConfig.encode(message.gpuRenderstagesConfig, writer.uint32(1066).fork()).join();
        }
if (message.chromiumHistogramSamples !== undefined ) {
          ChromiumHistogramSamplesConfig.encode(message.chromiumHistogramSamples, writer.uint32(1074).fork()).join();
        }
if (message.appWakelocksConfig !== undefined ) {
          AppWakelocksConfig.encode(message.appWakelocksConfig, writer.uint32(1082).fork()).join();
        }
if (message.cpuPerUidConfig !== undefined ) {
          CpuPerUidConfig.encode(message.cpuPerUidConfig, writer.uint32(1098).fork()).join();
        }
if (message.userListConfig !== undefined ) {
          AndroidUserListConfig.encode(message.userListConfig, writer.uint32(1106).fork()).join();
        }
if (message.inputmethodConfig !== undefined ) {
          InputMethodConfig.encode(message.inputmethodConfig, writer.uint32(1114).fork()).join();
        }
if (message.androidAflagsConfig !== undefined ) {
          AndroidAflagsConfig.encode(message.androidAflagsConfig, writer.uint32(1122).fork()).join();
        }
if (message.journaldConfig !== undefined ) {
          SystemdJournaldConfig.encode(message.journaldConfig, writer.uint32(1130).fork()).join();
        }
if (message.displayVideoConfig !== undefined ) {
          DisplayVideoConfig.encode(message.displayVideoConfig, writer.uint32(1138).fork()).join();
        }
if (message.qnxConfig !== undefined ) {
          QnxConfig.encode(message.qnxConfig, writer.uint32(1202).fork()).join();
        }
if (message.legacyConfig !== undefined  && message.legacyConfig !== "") {
          writer.uint32(8002).string(message.legacyConfig);
        }
if (message.forTesting !== undefined ) {
          TestConfig.encode(message.forTesting, writer.uint32(8010).fork()).join();
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): DataSourceConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseDataSourceConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.name = reader.string();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.targetBuffer = reader.uint32();
continue; }
case 11: {
if (tag !== 90) {
        break;
      }
    
        message.targetBufferName = reader.string();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.traceDurationMs = reader.uint32();
continue; }
case 122: {
if (tag !== 976) {
        break;
      }
    
        message.preferSuspendClockForDuration = reader.bool();
continue; }
case 7: {
if (tag !== 56) {
        break;
      }
    
        message.stopTimeoutMs = reader.uint32();
continue; }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.enableExtraGuardrails = reader.bool();
continue; }
case 8: {
if (tag !== 64) {
        break;
      }
    
        message.sessionInitiator = reader.int32() as any;
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.tracingSessionId = longToNumber(reader.uint64());
continue; }
case 9: {
if (tag !== 72) {
        break;
      }
    
        message.bufferExhaustedPolicy = reader.int32() as any;
continue; }
case 10: {
if (tag !== 82) {
        break;
      }
    
        message.priorityBoost = PriorityBoostConfig.decode(reader, reader.uint32());
continue; }
case 12: {
if (tag !== 98) {
        break;
      }
    
        message.protovmConfig = ProtoVmConfig.decode(reader, reader.uint32());
continue; }
case 100: {
if (tag !== 802) {
        break;
      }
    
        message.ftraceConfig = FtraceConfig.decode(reader, reader.uint32());
continue; }
case 102: {
if (tag !== 818) {
        break;
      }
    
        message.inodeFileConfig = InodeFileConfig.decode(reader, reader.uint32());
continue; }
case 103: {
if (tag !== 826) {
        break;
      }
    
        message.processStatsConfig = ProcessStatsConfig.decode(reader, reader.uint32());
continue; }
case 104: {
if (tag !== 834) {
        break;
      }
    
        message.sysStatsConfig = SysStatsConfig.decode(reader, reader.uint32());
continue; }
case 105: {
if (tag !== 842) {
        break;
      }
    
        message.heapprofdConfig = HeapprofdConfig.decode(reader, reader.uint32());
continue; }
case 110: {
if (tag !== 882) {
        break;
      }
    
        message.javaHprofConfig = JavaHprofConfig.decode(reader, reader.uint32());
continue; }
case 106: {
if (tag !== 850) {
        break;
      }
    
        message.androidPowerConfig = AndroidPowerConfig.decode(reader, reader.uint32());
continue; }
case 107: {
if (tag !== 858) {
        break;
      }
    
        message.androidLogConfig = AndroidLogConfig.decode(reader, reader.uint32());
continue; }
case 108: {
if (tag !== 866) {
        break;
      }
    
        message.gpuCounterConfig = GpuCounterConfig.decode(reader, reader.uint32());
continue; }
case 116: {
if (tag !== 930) {
        break;
      }
    
        message.androidGameInterventionListConfig = AndroidGameInterventionListConfig.decode(reader, reader.uint32());
continue; }
case 109: {
if (tag !== 874) {
        break;
      }
    
        message.packagesListConfig = PackagesListConfig.decode(reader, reader.uint32());
continue; }
case 111: {
if (tag !== 890) {
        break;
      }
    
        message.perfEventConfig = PerfEventConfig.decode(reader, reader.uint32());
continue; }
case 112: {
if (tag !== 898) {
        break;
      }
    
        message.vulkanMemoryConfig = VulkanMemoryConfig.decode(reader, reader.uint32());
continue; }
case 113: {
if (tag !== 906) {
        break;
      }
    
        message.trackEventConfig = TrackEventConfig.decode(reader, reader.uint32());
continue; }
case 114: {
if (tag !== 914) {
        break;
      }
    
        message.androidPolledStateConfig = AndroidPolledStateConfig.decode(reader, reader.uint32());
continue; }
case 118: {
if (tag !== 946) {
        break;
      }
    
        message.androidSystemPropertyConfig = AndroidSystemPropertyConfig.decode(reader, reader.uint32());
continue; }
case 117: {
if (tag !== 938) {
        break;
      }
    
        message.statsdTracingConfig = StatsdTracingConfig.decode(reader, reader.uint32());
continue; }
case 119: {
if (tag !== 954) {
        break;
      }
    
        message.systemInfoConfig = SystemInfoConfig.decode(reader, reader.uint32());
continue; }
case 136: {
if (tag !== 1090) {
        break;
      }
    
        message.frozenFtraceConfig = FrozenFtraceConfig.decode(reader, reader.uint32());
continue; }
case 101: {
if (tag !== 810) {
        break;
      }
    
        message.chromeConfig = ChromeConfig.decode(reader, reader.uint32());
continue; }
case 127: {
if (tag !== 1018) {
        break;
      }
    
        message.v8Config = V8Config.decode(reader, reader.uint32());
continue; }
case 115: {
if (tag !== 922) {
        break;
      }
    
        message.interceptorConfig = InterceptorConfig.decode(reader, reader.uint32());
continue; }
case 120: {
if (tag !== 962) {
        break;
      }
    
        message.networkPacketTraceConfig = NetworkPacketTraceConfig.decode(reader, reader.uint32());
continue; }
case 121: {
if (tag !== 970) {
        break;
      }
    
        message.surfaceflingerLayersConfig = SurfaceFlingerLayersConfig.decode(reader, reader.uint32());
continue; }
case 123: {
if (tag !== 986) {
        break;
      }
    
        message.surfaceflingerTransactionsConfig = SurfaceFlingerTransactionsConfig.decode(reader, reader.uint32());
continue; }
case 124: {
if (tag !== 994) {
        break;
      }
    
        message.androidSdkSyspropGuardConfig = AndroidSdkSyspropGuardConfig.decode(reader, reader.uint32());
continue; }
case 125: {
if (tag !== 1002) {
        break;
      }
    
        message.etwConfig = EtwConfig.decode(reader, reader.uint32());
continue; }
case 126: {
if (tag !== 1010) {
        break;
      }
    
        message.protologConfig = ProtoLogConfig.decode(reader, reader.uint32());
continue; }
case 128: {
if (tag !== 1026) {
        break;
      }
    
        message.androidInputEventConfig = AndroidInputEventConfig.decode(reader, reader.uint32());
continue; }
case 129: {
if (tag !== 1034) {
        break;
      }
    
        message.pixelModemConfig = PixelModemConfig.decode(reader, reader.uint32());
continue; }
case 130: {
if (tag !== 1042) {
        break;
      }
    
        message.windowmanagerConfig = WindowManagerConfig.decode(reader, reader.uint32());
continue; }
case 131: {
if (tag !== 1050) {
        break;
      }
    
        message.chromiumSystemMetrics = ChromiumSystemMetricsConfig.decode(reader, reader.uint32());
continue; }
case 132: {
if (tag !== 1058) {
        break;
      }
    
        message.kernelWakelocksConfig = KernelWakelocksConfig.decode(reader, reader.uint32());
continue; }
case 133: {
if (tag !== 1066) {
        break;
      }
    
        message.gpuRenderstagesConfig = GpuRenderStagesConfig.decode(reader, reader.uint32());
continue; }
case 134: {
if (tag !== 1074) {
        break;
      }
    
        message.chromiumHistogramSamples = ChromiumHistogramSamplesConfig.decode(reader, reader.uint32());
continue; }
case 135: {
if (tag !== 1082) {
        break;
      }
    
        message.appWakelocksConfig = AppWakelocksConfig.decode(reader, reader.uint32());
continue; }
case 137: {
if (tag !== 1098) {
        break;
      }
    
        message.cpuPerUidConfig = CpuPerUidConfig.decode(reader, reader.uint32());
continue; }
case 138: {
if (tag !== 1106) {
        break;
      }
    
        message.userListConfig = AndroidUserListConfig.decode(reader, reader.uint32());
continue; }
case 139: {
if (tag !== 1114) {
        break;
      }
    
        message.inputmethodConfig = InputMethodConfig.decode(reader, reader.uint32());
continue; }
case 140: {
if (tag !== 1122) {
        break;
      }
    
        message.androidAflagsConfig = AndroidAflagsConfig.decode(reader, reader.uint32());
continue; }
case 141: {
if (tag !== 1130) {
        break;
      }
    
        message.journaldConfig = SystemdJournaldConfig.decode(reader, reader.uint32());
continue; }
case 142: {
if (tag !== 1138) {
        break;
      }
    
        message.displayVideoConfig = DisplayVideoConfig.decode(reader, reader.uint32());
continue; }
case 150: {
if (tag !== 1202) {
        break;
      }
    
        message.qnxConfig = QnxConfig.decode(reader, reader.uint32());
continue; }
case 1000: {
if (tag !== 8002) {
        break;
      }
    
        message.legacyConfig = reader.string();
continue; }
case 1001: {
if (tag !== 8010) {
        break;
      }
    
        message.forTesting = TestConfig.decode(reader, reader.uint32());
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): DataSourceConfig {
      return {
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
targetBuffer: isSet(object.targetBuffer)
          ? globalThis.Number(object.targetBuffer)
          : 0,
targetBufferName: isSet(object.targetBufferName)
          ? globalThis.String(object.targetBufferName)
          : "",
traceDurationMs: isSet(object.traceDurationMs)
          ? globalThis.Number(object.traceDurationMs)
          : 0,
preferSuspendClockForDuration: isSet(object.preferSuspendClockForDuration)
          ? globalThis.Boolean(object.preferSuspendClockForDuration)
          : false,
stopTimeoutMs: isSet(object.stopTimeoutMs)
          ? globalThis.Number(object.stopTimeoutMs)
          : 0,
enableExtraGuardrails: isSet(object.enableExtraGuardrails)
          ? globalThis.Boolean(object.enableExtraGuardrails)
          : false,
sessionInitiator: isSet(object.sessionInitiator)
          ? dataSourceConfig_SessionInitiatorFromJSON(object.sessionInitiator)
          : 0,
tracingSessionId: isSet(object.tracingSessionId)
          ? globalThis.Number(object.tracingSessionId)
          : 0,
bufferExhaustedPolicy: isSet(object.bufferExhaustedPolicy)
          ? dataSourceConfig_BufferExhaustedPolicyFromJSON(object.bufferExhaustedPolicy)
          : 0,
priorityBoost: isSet(object.priorityBoost)
          ? PriorityBoostConfig.fromJSON(object.priorityBoost)
          : undefined,
protovmConfig: isSet(object.protovmConfig)
          ? ProtoVmConfig.fromJSON(object.protovmConfig)
          : undefined,
ftraceConfig: isSet(object.ftraceConfig)
          ? FtraceConfig.fromJSON(object.ftraceConfig)
          : undefined,
inodeFileConfig: isSet(object.inodeFileConfig)
          ? InodeFileConfig.fromJSON(object.inodeFileConfig)
          : undefined,
processStatsConfig: isSet(object.processStatsConfig)
          ? ProcessStatsConfig.fromJSON(object.processStatsConfig)
          : undefined,
sysStatsConfig: isSet(object.sysStatsConfig)
          ? SysStatsConfig.fromJSON(object.sysStatsConfig)
          : undefined,
heapprofdConfig: isSet(object.heapprofdConfig)
          ? HeapprofdConfig.fromJSON(object.heapprofdConfig)
          : undefined,
javaHprofConfig: isSet(object.javaHprofConfig)
          ? JavaHprofConfig.fromJSON(object.javaHprofConfig)
          : undefined,
androidPowerConfig: isSet(object.androidPowerConfig)
          ? AndroidPowerConfig.fromJSON(object.androidPowerConfig)
          : undefined,
androidLogConfig: isSet(object.androidLogConfig)
          ? AndroidLogConfig.fromJSON(object.androidLogConfig)
          : undefined,
gpuCounterConfig: isSet(object.gpuCounterConfig)
          ? GpuCounterConfig.fromJSON(object.gpuCounterConfig)
          : undefined,
androidGameInterventionListConfig: isSet(object.androidGameInterventionListConfig)
          ? AndroidGameInterventionListConfig.fromJSON(object.androidGameInterventionListConfig)
          : undefined,
packagesListConfig: isSet(object.packagesListConfig)
          ? PackagesListConfig.fromJSON(object.packagesListConfig)
          : undefined,
perfEventConfig: isSet(object.perfEventConfig)
          ? PerfEventConfig.fromJSON(object.perfEventConfig)
          : undefined,
vulkanMemoryConfig: isSet(object.vulkanMemoryConfig)
          ? VulkanMemoryConfig.fromJSON(object.vulkanMemoryConfig)
          : undefined,
trackEventConfig: isSet(object.trackEventConfig)
          ? TrackEventConfig.fromJSON(object.trackEventConfig)
          : undefined,
androidPolledStateConfig: isSet(object.androidPolledStateConfig)
          ? AndroidPolledStateConfig.fromJSON(object.androidPolledStateConfig)
          : undefined,
androidSystemPropertyConfig: isSet(object.androidSystemPropertyConfig)
          ? AndroidSystemPropertyConfig.fromJSON(object.androidSystemPropertyConfig)
          : undefined,
statsdTracingConfig: isSet(object.statsdTracingConfig)
          ? StatsdTracingConfig.fromJSON(object.statsdTracingConfig)
          : undefined,
systemInfoConfig: isSet(object.systemInfoConfig)
          ? SystemInfoConfig.fromJSON(object.systemInfoConfig)
          : undefined,
frozenFtraceConfig: isSet(object.frozenFtraceConfig)
          ? FrozenFtraceConfig.fromJSON(object.frozenFtraceConfig)
          : undefined,
chromeConfig: isSet(object.chromeConfig)
          ? ChromeConfig.fromJSON(object.chromeConfig)
          : undefined,
v8Config: isSet(object.v8Config)
          ? V8Config.fromJSON(object.v8Config)
          : undefined,
interceptorConfig: isSet(object.interceptorConfig)
          ? InterceptorConfig.fromJSON(object.interceptorConfig)
          : undefined,
networkPacketTraceConfig: isSet(object.networkPacketTraceConfig)
          ? NetworkPacketTraceConfig.fromJSON(object.networkPacketTraceConfig)
          : undefined,
surfaceflingerLayersConfig: isSet(object.surfaceflingerLayersConfig)
          ? SurfaceFlingerLayersConfig.fromJSON(object.surfaceflingerLayersConfig)
          : undefined,
surfaceflingerTransactionsConfig: isSet(object.surfaceflingerTransactionsConfig)
          ? SurfaceFlingerTransactionsConfig.fromJSON(object.surfaceflingerTransactionsConfig)
          : undefined,
androidSdkSyspropGuardConfig: isSet(object.androidSdkSyspropGuardConfig)
          ? AndroidSdkSyspropGuardConfig.fromJSON(object.androidSdkSyspropGuardConfig)
          : undefined,
etwConfig: isSet(object.etwConfig)
          ? EtwConfig.fromJSON(object.etwConfig)
          : undefined,
protologConfig: isSet(object.protologConfig)
          ? ProtoLogConfig.fromJSON(object.protologConfig)
          : undefined,
androidInputEventConfig: isSet(object.androidInputEventConfig)
          ? AndroidInputEventConfig.fromJSON(object.androidInputEventConfig)
          : undefined,
pixelModemConfig: isSet(object.pixelModemConfig)
          ? PixelModemConfig.fromJSON(object.pixelModemConfig)
          : undefined,
windowmanagerConfig: isSet(object.windowmanagerConfig)
          ? WindowManagerConfig.fromJSON(object.windowmanagerConfig)
          : undefined,
chromiumSystemMetrics: isSet(object.chromiumSystemMetrics)
          ? ChromiumSystemMetricsConfig.fromJSON(object.chromiumSystemMetrics)
          : undefined,
kernelWakelocksConfig: isSet(object.kernelWakelocksConfig)
          ? KernelWakelocksConfig.fromJSON(object.kernelWakelocksConfig)
          : undefined,
gpuRenderstagesConfig: isSet(object.gpuRenderstagesConfig)
          ? GpuRenderStagesConfig.fromJSON(object.gpuRenderstagesConfig)
          : undefined,
chromiumHistogramSamples: isSet(object.chromiumHistogramSamples)
          ? ChromiumHistogramSamplesConfig.fromJSON(object.chromiumHistogramSamples)
          : undefined,
appWakelocksConfig: isSet(object.appWakelocksConfig)
          ? AppWakelocksConfig.fromJSON(object.appWakelocksConfig)
          : undefined,
cpuPerUidConfig: isSet(object.cpuPerUidConfig)
          ? CpuPerUidConfig.fromJSON(object.cpuPerUidConfig)
          : undefined,
userListConfig: isSet(object.userListConfig)
          ? AndroidUserListConfig.fromJSON(object.userListConfig)
          : undefined,
inputmethodConfig: isSet(object.inputmethodConfig)
          ? InputMethodConfig.fromJSON(object.inputmethodConfig)
          : undefined,
androidAflagsConfig: isSet(object.androidAflagsConfig)
          ? AndroidAflagsConfig.fromJSON(object.androidAflagsConfig)
          : undefined,
journaldConfig: isSet(object.journaldConfig)
          ? SystemdJournaldConfig.fromJSON(object.journaldConfig)
          : undefined,
displayVideoConfig: isSet(object.displayVideoConfig)
          ? DisplayVideoConfig.fromJSON(object.displayVideoConfig)
          : undefined,
qnxConfig: isSet(object.qnxConfig)
          ? QnxConfig.fromJSON(object.qnxConfig)
          : undefined,
legacyConfig: isSet(object.legacyConfig)
          ? globalThis.String(object.legacyConfig)
          : "",
forTesting: isSet(object.forTesting)
          ? TestConfig.fromJSON(object.forTesting)
          : undefined,
};
},

toJSON(message: DataSourceConfig): unknown {
      const obj: any = {};
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
if (message.targetBuffer !== undefined  && message.targetBuffer !== 0) {
          obj.targetBuffer = Math.round(message.targetBuffer);
        }
if (message.targetBufferName !== undefined  && message.targetBufferName !== "") {
          obj.targetBufferName = message.targetBufferName;
        }
if (message.traceDurationMs !== undefined  && message.traceDurationMs !== 0) {
          obj.traceDurationMs = Math.round(message.traceDurationMs);
        }
if (message.preferSuspendClockForDuration !== undefined  && message.preferSuspendClockForDuration !== false) {
          obj.preferSuspendClockForDuration = message.preferSuspendClockForDuration;
        }
if (message.stopTimeoutMs !== undefined  && message.stopTimeoutMs !== 0) {
          obj.stopTimeoutMs = Math.round(message.stopTimeoutMs);
        }
if (message.enableExtraGuardrails !== undefined  && message.enableExtraGuardrails !== false) {
          obj.enableExtraGuardrails = message.enableExtraGuardrails;
        }
if (message.sessionInitiator !== undefined  && message.sessionInitiator !== 0) {
          obj.sessionInitiator = dataSourceConfig_SessionInitiatorToJSON(message.sessionInitiator);
        }
if (message.tracingSessionId !== undefined  && message.tracingSessionId !== 0) {
          obj.tracingSessionId = Math.round(message.tracingSessionId);
        }
if (message.bufferExhaustedPolicy !== undefined  && message.bufferExhaustedPolicy !== 0) {
          obj.bufferExhaustedPolicy = dataSourceConfig_BufferExhaustedPolicyToJSON(message.bufferExhaustedPolicy);
        }
if (message.priorityBoost !== undefined ) {
          obj.priorityBoost = PriorityBoostConfig.toJSON(message.priorityBoost);
        }
if (message.protovmConfig !== undefined ) {
          obj.protovmConfig = ProtoVmConfig.toJSON(message.protovmConfig);
        }
if (message.ftraceConfig !== undefined ) {
          obj.ftraceConfig = FtraceConfig.toJSON(message.ftraceConfig);
        }
if (message.inodeFileConfig !== undefined ) {
          obj.inodeFileConfig = InodeFileConfig.toJSON(message.inodeFileConfig);
        }
if (message.processStatsConfig !== undefined ) {
          obj.processStatsConfig = ProcessStatsConfig.toJSON(message.processStatsConfig);
        }
if (message.sysStatsConfig !== undefined ) {
          obj.sysStatsConfig = SysStatsConfig.toJSON(message.sysStatsConfig);
        }
if (message.heapprofdConfig !== undefined ) {
          obj.heapprofdConfig = HeapprofdConfig.toJSON(message.heapprofdConfig);
        }
if (message.javaHprofConfig !== undefined ) {
          obj.javaHprofConfig = JavaHprofConfig.toJSON(message.javaHprofConfig);
        }
if (message.androidPowerConfig !== undefined ) {
          obj.androidPowerConfig = AndroidPowerConfig.toJSON(message.androidPowerConfig);
        }
if (message.androidLogConfig !== undefined ) {
          obj.androidLogConfig = AndroidLogConfig.toJSON(message.androidLogConfig);
        }
if (message.gpuCounterConfig !== undefined ) {
          obj.gpuCounterConfig = GpuCounterConfig.toJSON(message.gpuCounterConfig);
        }
if (message.androidGameInterventionListConfig !== undefined ) {
          obj.androidGameInterventionListConfig = AndroidGameInterventionListConfig.toJSON(message.androidGameInterventionListConfig);
        }
if (message.packagesListConfig !== undefined ) {
          obj.packagesListConfig = PackagesListConfig.toJSON(message.packagesListConfig);
        }
if (message.perfEventConfig !== undefined ) {
          obj.perfEventConfig = PerfEventConfig.toJSON(message.perfEventConfig);
        }
if (message.vulkanMemoryConfig !== undefined ) {
          obj.vulkanMemoryConfig = VulkanMemoryConfig.toJSON(message.vulkanMemoryConfig);
        }
if (message.trackEventConfig !== undefined ) {
          obj.trackEventConfig = TrackEventConfig.toJSON(message.trackEventConfig);
        }
if (message.androidPolledStateConfig !== undefined ) {
          obj.androidPolledStateConfig = AndroidPolledStateConfig.toJSON(message.androidPolledStateConfig);
        }
if (message.androidSystemPropertyConfig !== undefined ) {
          obj.androidSystemPropertyConfig = AndroidSystemPropertyConfig.toJSON(message.androidSystemPropertyConfig);
        }
if (message.statsdTracingConfig !== undefined ) {
          obj.statsdTracingConfig = StatsdTracingConfig.toJSON(message.statsdTracingConfig);
        }
if (message.systemInfoConfig !== undefined ) {
          obj.systemInfoConfig = SystemInfoConfig.toJSON(message.systemInfoConfig);
        }
if (message.frozenFtraceConfig !== undefined ) {
          obj.frozenFtraceConfig = FrozenFtraceConfig.toJSON(message.frozenFtraceConfig);
        }
if (message.chromeConfig !== undefined ) {
          obj.chromeConfig = ChromeConfig.toJSON(message.chromeConfig);
        }
if (message.v8Config !== undefined ) {
          obj.v8Config = V8Config.toJSON(message.v8Config);
        }
if (message.interceptorConfig !== undefined ) {
          obj.interceptorConfig = InterceptorConfig.toJSON(message.interceptorConfig);
        }
if (message.networkPacketTraceConfig !== undefined ) {
          obj.networkPacketTraceConfig = NetworkPacketTraceConfig.toJSON(message.networkPacketTraceConfig);
        }
if (message.surfaceflingerLayersConfig !== undefined ) {
          obj.surfaceflingerLayersConfig = SurfaceFlingerLayersConfig.toJSON(message.surfaceflingerLayersConfig);
        }
if (message.surfaceflingerTransactionsConfig !== undefined ) {
          obj.surfaceflingerTransactionsConfig = SurfaceFlingerTransactionsConfig.toJSON(message.surfaceflingerTransactionsConfig);
        }
if (message.androidSdkSyspropGuardConfig !== undefined ) {
          obj.androidSdkSyspropGuardConfig = AndroidSdkSyspropGuardConfig.toJSON(message.androidSdkSyspropGuardConfig);
        }
if (message.etwConfig !== undefined ) {
          obj.etwConfig = EtwConfig.toJSON(message.etwConfig);
        }
if (message.protologConfig !== undefined ) {
          obj.protologConfig = ProtoLogConfig.toJSON(message.protologConfig);
        }
if (message.androidInputEventConfig !== undefined ) {
          obj.androidInputEventConfig = AndroidInputEventConfig.toJSON(message.androidInputEventConfig);
        }
if (message.pixelModemConfig !== undefined ) {
          obj.pixelModemConfig = PixelModemConfig.toJSON(message.pixelModemConfig);
        }
if (message.windowmanagerConfig !== undefined ) {
          obj.windowmanagerConfig = WindowManagerConfig.toJSON(message.windowmanagerConfig);
        }
if (message.chromiumSystemMetrics !== undefined ) {
          obj.chromiumSystemMetrics = ChromiumSystemMetricsConfig.toJSON(message.chromiumSystemMetrics);
        }
if (message.kernelWakelocksConfig !== undefined ) {
          obj.kernelWakelocksConfig = KernelWakelocksConfig.toJSON(message.kernelWakelocksConfig);
        }
if (message.gpuRenderstagesConfig !== undefined ) {
          obj.gpuRenderstagesConfig = GpuRenderStagesConfig.toJSON(message.gpuRenderstagesConfig);
        }
if (message.chromiumHistogramSamples !== undefined ) {
          obj.chromiumHistogramSamples = ChromiumHistogramSamplesConfig.toJSON(message.chromiumHistogramSamples);
        }
if (message.appWakelocksConfig !== undefined ) {
          obj.appWakelocksConfig = AppWakelocksConfig.toJSON(message.appWakelocksConfig);
        }
if (message.cpuPerUidConfig !== undefined ) {
          obj.cpuPerUidConfig = CpuPerUidConfig.toJSON(message.cpuPerUidConfig);
        }
if (message.userListConfig !== undefined ) {
          obj.userListConfig = AndroidUserListConfig.toJSON(message.userListConfig);
        }
if (message.inputmethodConfig !== undefined ) {
          obj.inputmethodConfig = InputMethodConfig.toJSON(message.inputmethodConfig);
        }
if (message.androidAflagsConfig !== undefined ) {
          obj.androidAflagsConfig = AndroidAflagsConfig.toJSON(message.androidAflagsConfig);
        }
if (message.journaldConfig !== undefined ) {
          obj.journaldConfig = SystemdJournaldConfig.toJSON(message.journaldConfig);
        }
if (message.displayVideoConfig !== undefined ) {
          obj.displayVideoConfig = DisplayVideoConfig.toJSON(message.displayVideoConfig);
        }
if (message.qnxConfig !== undefined ) {
          obj.qnxConfig = QnxConfig.toJSON(message.qnxConfig);
        }
if (message.legacyConfig !== undefined  && message.legacyConfig !== "") {
          obj.legacyConfig = message.legacyConfig;
        }
if (message.forTesting !== undefined ) {
          obj.forTesting = TestConfig.toJSON(message.forTesting);
        }
return obj;
},

create<I extends Exact<DeepPartial<DataSourceConfig>, I>>(base?: I): DataSourceConfig {
        return DataSourceConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<DataSourceConfig>, I>>(object: I): DataSourceConfig {
const message = createBaseDataSourceConfig();
message.name = object.name ?? "";
message.targetBuffer = object.targetBuffer ?? 0;
message.targetBufferName = object.targetBufferName ?? "";
message.traceDurationMs = object.traceDurationMs ?? 0;
message.preferSuspendClockForDuration = object.preferSuspendClockForDuration ?? false;
message.stopTimeoutMs = object.stopTimeoutMs ?? 0;
message.enableExtraGuardrails = object.enableExtraGuardrails ?? false;
message.sessionInitiator = object.sessionInitiator ?? 0;
message.tracingSessionId = object.tracingSessionId ?? 0;
message.bufferExhaustedPolicy = object.bufferExhaustedPolicy ?? 0;
message.priorityBoost = (object.priorityBoost !== undefined && object.priorityBoost !== null)
          ? PriorityBoostConfig.fromPartial(object.priorityBoost)
          : undefined;
message.protovmConfig = (object.protovmConfig !== undefined && object.protovmConfig !== null)
          ? ProtoVmConfig.fromPartial(object.protovmConfig)
          : undefined;
message.ftraceConfig = (object.ftraceConfig !== undefined && object.ftraceConfig !== null)
          ? FtraceConfig.fromPartial(object.ftraceConfig)
          : undefined;
message.inodeFileConfig = (object.inodeFileConfig !== undefined && object.inodeFileConfig !== null)
          ? InodeFileConfig.fromPartial(object.inodeFileConfig)
          : undefined;
message.processStatsConfig = (object.processStatsConfig !== undefined && object.processStatsConfig !== null)
          ? ProcessStatsConfig.fromPartial(object.processStatsConfig)
          : undefined;
message.sysStatsConfig = (object.sysStatsConfig !== undefined && object.sysStatsConfig !== null)
          ? SysStatsConfig.fromPartial(object.sysStatsConfig)
          : undefined;
message.heapprofdConfig = (object.heapprofdConfig !== undefined && object.heapprofdConfig !== null)
          ? HeapprofdConfig.fromPartial(object.heapprofdConfig)
          : undefined;
message.javaHprofConfig = (object.javaHprofConfig !== undefined && object.javaHprofConfig !== null)
          ? JavaHprofConfig.fromPartial(object.javaHprofConfig)
          : undefined;
message.androidPowerConfig = (object.androidPowerConfig !== undefined && object.androidPowerConfig !== null)
          ? AndroidPowerConfig.fromPartial(object.androidPowerConfig)
          : undefined;
message.androidLogConfig = (object.androidLogConfig !== undefined && object.androidLogConfig !== null)
          ? AndroidLogConfig.fromPartial(object.androidLogConfig)
          : undefined;
message.gpuCounterConfig = (object.gpuCounterConfig !== undefined && object.gpuCounterConfig !== null)
          ? GpuCounterConfig.fromPartial(object.gpuCounterConfig)
          : undefined;
message.androidGameInterventionListConfig = (object.androidGameInterventionListConfig !== undefined && object.androidGameInterventionListConfig !== null)
          ? AndroidGameInterventionListConfig.fromPartial(object.androidGameInterventionListConfig)
          : undefined;
message.packagesListConfig = (object.packagesListConfig !== undefined && object.packagesListConfig !== null)
          ? PackagesListConfig.fromPartial(object.packagesListConfig)
          : undefined;
message.perfEventConfig = (object.perfEventConfig !== undefined && object.perfEventConfig !== null)
          ? PerfEventConfig.fromPartial(object.perfEventConfig)
          : undefined;
message.vulkanMemoryConfig = (object.vulkanMemoryConfig !== undefined && object.vulkanMemoryConfig !== null)
          ? VulkanMemoryConfig.fromPartial(object.vulkanMemoryConfig)
          : undefined;
message.trackEventConfig = (object.trackEventConfig !== undefined && object.trackEventConfig !== null)
          ? TrackEventConfig.fromPartial(object.trackEventConfig)
          : undefined;
message.androidPolledStateConfig = (object.androidPolledStateConfig !== undefined && object.androidPolledStateConfig !== null)
          ? AndroidPolledStateConfig.fromPartial(object.androidPolledStateConfig)
          : undefined;
message.androidSystemPropertyConfig = (object.androidSystemPropertyConfig !== undefined && object.androidSystemPropertyConfig !== null)
          ? AndroidSystemPropertyConfig.fromPartial(object.androidSystemPropertyConfig)
          : undefined;
message.statsdTracingConfig = (object.statsdTracingConfig !== undefined && object.statsdTracingConfig !== null)
          ? StatsdTracingConfig.fromPartial(object.statsdTracingConfig)
          : undefined;
message.systemInfoConfig = (object.systemInfoConfig !== undefined && object.systemInfoConfig !== null)
          ? SystemInfoConfig.fromPartial(object.systemInfoConfig)
          : undefined;
message.frozenFtraceConfig = (object.frozenFtraceConfig !== undefined && object.frozenFtraceConfig !== null)
          ? FrozenFtraceConfig.fromPartial(object.frozenFtraceConfig)
          : undefined;
message.chromeConfig = (object.chromeConfig !== undefined && object.chromeConfig !== null)
          ? ChromeConfig.fromPartial(object.chromeConfig)
          : undefined;
message.v8Config = (object.v8Config !== undefined && object.v8Config !== null)
          ? V8Config.fromPartial(object.v8Config)
          : undefined;
message.interceptorConfig = (object.interceptorConfig !== undefined && object.interceptorConfig !== null)
          ? InterceptorConfig.fromPartial(object.interceptorConfig)
          : undefined;
message.networkPacketTraceConfig = (object.networkPacketTraceConfig !== undefined && object.networkPacketTraceConfig !== null)
          ? NetworkPacketTraceConfig.fromPartial(object.networkPacketTraceConfig)
          : undefined;
message.surfaceflingerLayersConfig = (object.surfaceflingerLayersConfig !== undefined && object.surfaceflingerLayersConfig !== null)
          ? SurfaceFlingerLayersConfig.fromPartial(object.surfaceflingerLayersConfig)
          : undefined;
message.surfaceflingerTransactionsConfig = (object.surfaceflingerTransactionsConfig !== undefined && object.surfaceflingerTransactionsConfig !== null)
          ? SurfaceFlingerTransactionsConfig.fromPartial(object.surfaceflingerTransactionsConfig)
          : undefined;
message.androidSdkSyspropGuardConfig = (object.androidSdkSyspropGuardConfig !== undefined && object.androidSdkSyspropGuardConfig !== null)
          ? AndroidSdkSyspropGuardConfig.fromPartial(object.androidSdkSyspropGuardConfig)
          : undefined;
message.etwConfig = (object.etwConfig !== undefined && object.etwConfig !== null)
          ? EtwConfig.fromPartial(object.etwConfig)
          : undefined;
message.protologConfig = (object.protologConfig !== undefined && object.protologConfig !== null)
          ? ProtoLogConfig.fromPartial(object.protologConfig)
          : undefined;
message.androidInputEventConfig = (object.androidInputEventConfig !== undefined && object.androidInputEventConfig !== null)
          ? AndroidInputEventConfig.fromPartial(object.androidInputEventConfig)
          : undefined;
message.pixelModemConfig = (object.pixelModemConfig !== undefined && object.pixelModemConfig !== null)
          ? PixelModemConfig.fromPartial(object.pixelModemConfig)
          : undefined;
message.windowmanagerConfig = (object.windowmanagerConfig !== undefined && object.windowmanagerConfig !== null)
          ? WindowManagerConfig.fromPartial(object.windowmanagerConfig)
          : undefined;
message.chromiumSystemMetrics = (object.chromiumSystemMetrics !== undefined && object.chromiumSystemMetrics !== null)
          ? ChromiumSystemMetricsConfig.fromPartial(object.chromiumSystemMetrics)
          : undefined;
message.kernelWakelocksConfig = (object.kernelWakelocksConfig !== undefined && object.kernelWakelocksConfig !== null)
          ? KernelWakelocksConfig.fromPartial(object.kernelWakelocksConfig)
          : undefined;
message.gpuRenderstagesConfig = (object.gpuRenderstagesConfig !== undefined && object.gpuRenderstagesConfig !== null)
          ? GpuRenderStagesConfig.fromPartial(object.gpuRenderstagesConfig)
          : undefined;
message.chromiumHistogramSamples = (object.chromiumHistogramSamples !== undefined && object.chromiumHistogramSamples !== null)
          ? ChromiumHistogramSamplesConfig.fromPartial(object.chromiumHistogramSamples)
          : undefined;
message.appWakelocksConfig = (object.appWakelocksConfig !== undefined && object.appWakelocksConfig !== null)
          ? AppWakelocksConfig.fromPartial(object.appWakelocksConfig)
          : undefined;
message.cpuPerUidConfig = (object.cpuPerUidConfig !== undefined && object.cpuPerUidConfig !== null)
          ? CpuPerUidConfig.fromPartial(object.cpuPerUidConfig)
          : undefined;
message.userListConfig = (object.userListConfig !== undefined && object.userListConfig !== null)
          ? AndroidUserListConfig.fromPartial(object.userListConfig)
          : undefined;
message.inputmethodConfig = (object.inputmethodConfig !== undefined && object.inputmethodConfig !== null)
          ? InputMethodConfig.fromPartial(object.inputmethodConfig)
          : undefined;
message.androidAflagsConfig = (object.androidAflagsConfig !== undefined && object.androidAflagsConfig !== null)
          ? AndroidAflagsConfig.fromPartial(object.androidAflagsConfig)
          : undefined;
message.journaldConfig = (object.journaldConfig !== undefined && object.journaldConfig !== null)
          ? SystemdJournaldConfig.fromPartial(object.journaldConfig)
          : undefined;
message.displayVideoConfig = (object.displayVideoConfig !== undefined && object.displayVideoConfig !== null)
          ? DisplayVideoConfig.fromPartial(object.displayVideoConfig)
          : undefined;
message.qnxConfig = (object.qnxConfig !== undefined && object.qnxConfig !== null)
          ? QnxConfig.fromPartial(object.qnxConfig)
          : undefined;
message.legacyConfig = object.legacyConfig ?? "";
message.forTesting = (object.forTesting !== undefined && object.forTesting !== null)
          ? TestConfig.fromPartial(object.forTesting)
          : undefined;
return message;
}
            };

function createBaseTraceConfig(): TraceConfig {
      return { buffers: [],dataSources: [],builtinDataSources: undefined,durationMs: 0,preferSuspendClockForDuration: false,enableExtraGuardrails: false,lockdownMode: 0,producers: [],statsdMetadata: undefined,writeIntoFile: false,outputPath: "",fileWritePeriodMs: 0,maxFileSizeBytes: 0,guardrailOverrides: undefined,deferredStart: false,flushPeriodMs: 0,flushTimeoutMs: 0,dataSourceStopTimeoutMs: 0,notifyTraceur: false,bugreportScore: 0,bugreportFilename: "",triggerConfig: undefined,activateTriggers: [],incrementalStateConfig: undefined,allowUserBuildTracing: false,uniqueSessionName: "",compressionType: 0,incidentReportConfig: undefined,statsdLogging: 0,traceUuidMsb: 0,traceUuidLsb: 0,traceFilter: undefined,androidReportConfig: undefined,cmdTraceStartDelay: undefined,sessionSemaphores: [],priorityBoost: undefined,exclusivePrio: 0,writeFlushMode: 0,fflushPostWrite: 0,traceAllMachines: false,notes: [] };
    }

export const TraceConfig: MessageFns<TraceConfig> = {
              encode(
      message: TraceConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.buffers !== undefined && message.buffers.length !== 0) {
              
          for (const v of message.buffers) {
            TraceConfig_BufferConfig.encode(v!, writer.uint32(10).fork()).join();
          }
        
            }
if (message.dataSources !== undefined && message.dataSources.length !== 0) {
              
          for (const v of message.dataSources) {
            TraceConfig_DataSource.encode(v!, writer.uint32(18).fork()).join();
          }
        
            }
if (message.builtinDataSources !== undefined ) {
          TraceConfig_BuiltinDataSource.encode(message.builtinDataSources, writer.uint32(162).fork()).join();
        }
if (message.durationMs !== undefined  && message.durationMs !== 0) {
          writer.uint32(24).uint32(message.durationMs);
        }
if (message.preferSuspendClockForDuration !== undefined  && message.preferSuspendClockForDuration !== false) {
          writer.uint32(288).bool(message.preferSuspendClockForDuration);
        }
if (message.enableExtraGuardrails !== undefined  && message.enableExtraGuardrails !== false) {
          writer.uint32(32).bool(message.enableExtraGuardrails);
        }
if (message.lockdownMode !== undefined  && message.lockdownMode !== 0) {
          writer.uint32(40).int32(message.lockdownMode);
        }
if (message.producers !== undefined && message.producers.length !== 0) {
              
          for (const v of message.producers) {
            TraceConfig_ProducerConfig.encode(v!, writer.uint32(50).fork()).join();
          }
        
            }
if (message.statsdMetadata !== undefined ) {
          TraceConfig_StatsdMetadata.encode(message.statsdMetadata, writer.uint32(58).fork()).join();
        }
if (message.writeIntoFile !== undefined  && message.writeIntoFile !== false) {
          writer.uint32(64).bool(message.writeIntoFile);
        }
if (message.outputPath !== undefined  && message.outputPath !== "") {
          writer.uint32(234).string(message.outputPath);
        }
if (message.fileWritePeriodMs !== undefined  && message.fileWritePeriodMs !== 0) {
          writer.uint32(72).uint32(message.fileWritePeriodMs);
        }
if (message.maxFileSizeBytes !== undefined  && message.maxFileSizeBytes !== 0) {
          writer.uint32(80).uint64(message.maxFileSizeBytes);
        }
if (message.guardrailOverrides !== undefined ) {
          TraceConfig_GuardrailOverrides.encode(message.guardrailOverrides, writer.uint32(90).fork()).join();
        }
if (message.deferredStart !== undefined  && message.deferredStart !== false) {
          writer.uint32(96).bool(message.deferredStart);
        }
if (message.flushPeriodMs !== undefined  && message.flushPeriodMs !== 0) {
          writer.uint32(104).uint32(message.flushPeriodMs);
        }
if (message.flushTimeoutMs !== undefined  && message.flushTimeoutMs !== 0) {
          writer.uint32(112).uint32(message.flushTimeoutMs);
        }
if (message.dataSourceStopTimeoutMs !== undefined  && message.dataSourceStopTimeoutMs !== 0) {
          writer.uint32(184).uint32(message.dataSourceStopTimeoutMs);
        }
if (message.notifyTraceur !== undefined  && message.notifyTraceur !== false) {
          writer.uint32(128).bool(message.notifyTraceur);
        }
if (message.bugreportScore !== undefined  && message.bugreportScore !== 0) {
          writer.uint32(240).int32(message.bugreportScore);
        }
if (message.bugreportFilename !== undefined  && message.bugreportFilename !== "") {
          writer.uint32(306).string(message.bugreportFilename);
        }
if (message.triggerConfig !== undefined ) {
          TraceConfig_TriggerConfig.encode(message.triggerConfig, writer.uint32(138).fork()).join();
        }
if (message.activateTriggers !== undefined && message.activateTriggers.length !== 0) {
              
          for (const v of message.activateTriggers) {
            writer.uint32(146).string(v!);
          }
        
            }
if (message.incrementalStateConfig !== undefined ) {
          TraceConfig_IncrementalStateConfig.encode(message.incrementalStateConfig, writer.uint32(170).fork()).join();
        }
if (message.allowUserBuildTracing !== undefined  && message.allowUserBuildTracing !== false) {
          writer.uint32(152).bool(message.allowUserBuildTracing);
        }
if (message.uniqueSessionName !== undefined  && message.uniqueSessionName !== "") {
          writer.uint32(178).string(message.uniqueSessionName);
        }
if (message.compressionType !== undefined  && message.compressionType !== 0) {
          writer.uint32(192).int32(message.compressionType);
        }
if (message.incidentReportConfig !== undefined ) {
          TraceConfig_IncidentReportConfig.encode(message.incidentReportConfig, writer.uint32(202).fork()).join();
        }
if (message.statsdLogging !== undefined  && message.statsdLogging !== 0) {
          writer.uint32(248).int32(message.statsdLogging);
        }
if (message.traceUuidMsb !== undefined  && message.traceUuidMsb !== 0) {
          writer.uint32(216).int64(message.traceUuidMsb);
        }
if (message.traceUuidLsb !== undefined  && message.traceUuidLsb !== 0) {
          writer.uint32(224).int64(message.traceUuidLsb);
        }
if (message.traceFilter !== undefined ) {
          TraceConfig_TraceFilter.encode(message.traceFilter, writer.uint32(266).fork()).join();
        }
if (message.androidReportConfig !== undefined ) {
          TraceConfig_AndroidReportConfig.encode(message.androidReportConfig, writer.uint32(274).fork()).join();
        }
if (message.cmdTraceStartDelay !== undefined ) {
          TraceConfig_CmdTraceStartDelay.encode(message.cmdTraceStartDelay, writer.uint32(282).fork()).join();
        }
if (message.sessionSemaphores !== undefined && message.sessionSemaphores.length !== 0) {
              
          for (const v of message.sessionSemaphores) {
            TraceConfig_SessionSemaphore.encode(v!, writer.uint32(314).fork()).join();
          }
        
            }
if (message.priorityBoost !== undefined ) {
          PriorityBoostConfig.encode(message.priorityBoost, writer.uint32(322).fork()).join();
        }
if (message.exclusivePrio !== undefined  && message.exclusivePrio !== 0) {
          writer.uint32(328).uint32(message.exclusivePrio);
        }
if (message.writeFlushMode !== undefined  && message.writeFlushMode !== 0) {
          writer.uint32(352).int32(message.writeFlushMode);
        }
if (message.fflushPostWrite !== undefined  && message.fflushPostWrite !== 0) {
          writer.uint32(360).int32(message.fflushPostWrite);
        }
if (message.traceAllMachines !== undefined  && message.traceAllMachines !== false) {
          writer.uint32(344).bool(message.traceAllMachines);
        }
if (message.notes !== undefined && message.notes.length !== 0) {
              
          for (const v of message.notes) {
            TraceConfig_Note.encode(v!, writer.uint32(370).fork()).join();
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
              
              const el = TraceConfig_BufferConfig.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.buffers!.push(el);
              }
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = TraceConfig_DataSource.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.dataSources!.push(el);
              }
continue; }
case 20: {
if (tag !== 162) {
        break;
      }
    
        message.builtinDataSources = TraceConfig_BuiltinDataSource.decode(reader, reader.uint32());
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.durationMs = reader.uint32();
continue; }
case 36: {
if (tag !== 288) {
        break;
      }
    
        message.preferSuspendClockForDuration = reader.bool();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.enableExtraGuardrails = reader.bool();
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.lockdownMode = reader.int32() as any;
continue; }
case 6: {
if (tag !== 50) {
        break;
      }
    
              
              const el = TraceConfig_ProducerConfig.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.producers!.push(el);
              }
continue; }
case 7: {
if (tag !== 58) {
        break;
      }
    
        message.statsdMetadata = TraceConfig_StatsdMetadata.decode(reader, reader.uint32());
continue; }
case 8: {
if (tag !== 64) {
        break;
      }
    
        message.writeIntoFile = reader.bool();
continue; }
case 29: {
if (tag !== 234) {
        break;
      }
    
        message.outputPath = reader.string();
continue; }
case 9: {
if (tag !== 72) {
        break;
      }
    
        message.fileWritePeriodMs = reader.uint32();
continue; }
case 10: {
if (tag !== 80) {
        break;
      }
    
        message.maxFileSizeBytes = longToNumber(reader.uint64());
continue; }
case 11: {
if (tag !== 90) {
        break;
      }
    
        message.guardrailOverrides = TraceConfig_GuardrailOverrides.decode(reader, reader.uint32());
continue; }
case 12: {
if (tag !== 96) {
        break;
      }
    
        message.deferredStart = reader.bool();
continue; }
case 13: {
if (tag !== 104) {
        break;
      }
    
        message.flushPeriodMs = reader.uint32();
continue; }
case 14: {
if (tag !== 112) {
        break;
      }
    
        message.flushTimeoutMs = reader.uint32();
continue; }
case 23: {
if (tag !== 184) {
        break;
      }
    
        message.dataSourceStopTimeoutMs = reader.uint32();
continue; }
case 16: {
if (tag !== 128) {
        break;
      }
    
        message.notifyTraceur = reader.bool();
continue; }
case 30: {
if (tag !== 240) {
        break;
      }
    
        message.bugreportScore = reader.int32();
continue; }
case 38: {
if (tag !== 306) {
        break;
      }
    
        message.bugreportFilename = reader.string();
continue; }
case 17: {
if (tag !== 138) {
        break;
      }
    
        message.triggerConfig = TraceConfig_TriggerConfig.decode(reader, reader.uint32());
continue; }
case 18: {
if (tag !== 146) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.activateTriggers!.push(el);
              }
continue; }
case 21: {
if (tag !== 170) {
        break;
      }
    
        message.incrementalStateConfig = TraceConfig_IncrementalStateConfig.decode(reader, reader.uint32());
continue; }
case 19: {
if (tag !== 152) {
        break;
      }
    
        message.allowUserBuildTracing = reader.bool();
continue; }
case 22: {
if (tag !== 178) {
        break;
      }
    
        message.uniqueSessionName = reader.string();
continue; }
case 24: {
if (tag !== 192) {
        break;
      }
    
        message.compressionType = reader.int32() as any;
continue; }
case 25: {
if (tag !== 202) {
        break;
      }
    
        message.incidentReportConfig = TraceConfig_IncidentReportConfig.decode(reader, reader.uint32());
continue; }
case 31: {
if (tag !== 248) {
        break;
      }
    
        message.statsdLogging = reader.int32() as any;
continue; }
case 27: {
if (tag !== 216) {
        break;
      }
    
        message.traceUuidMsb = longToNumber(reader.int64());
continue; }
case 28: {
if (tag !== 224) {
        break;
      }
    
        message.traceUuidLsb = longToNumber(reader.int64());
continue; }
case 33: {
if (tag !== 266) {
        break;
      }
    
        message.traceFilter = TraceConfig_TraceFilter.decode(reader, reader.uint32());
continue; }
case 34: {
if (tag !== 274) {
        break;
      }
    
        message.androidReportConfig = TraceConfig_AndroidReportConfig.decode(reader, reader.uint32());
continue; }
case 35: {
if (tag !== 282) {
        break;
      }
    
        message.cmdTraceStartDelay = TraceConfig_CmdTraceStartDelay.decode(reader, reader.uint32());
continue; }
case 39: {
if (tag !== 314) {
        break;
      }
    
              
              const el = TraceConfig_SessionSemaphore.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.sessionSemaphores!.push(el);
              }
continue; }
case 40: {
if (tag !== 322) {
        break;
      }
    
        message.priorityBoost = PriorityBoostConfig.decode(reader, reader.uint32());
continue; }
case 41: {
if (tag !== 328) {
        break;
      }
    
        message.exclusivePrio = reader.uint32();
continue; }
case 44: {
if (tag !== 352) {
        break;
      }
    
        message.writeFlushMode = reader.int32() as any;
continue; }
case 45: {
if (tag !== 360) {
        break;
      }
    
        message.fflushPostWrite = reader.int32() as any;
continue; }
case 43: {
if (tag !== 344) {
        break;
      }
    
        message.traceAllMachines = reader.bool();
continue; }
case 46: {
if (tag !== 370) {
        break;
      }
    
              
              const el = TraceConfig_Note.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.notes!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig {
      return {
buffers: globalThis.Array.isArray(object?.buffers) ? object.buffers.map((e: any) => TraceConfig_BufferConfig.fromJSON(e)): [],
dataSources: globalThis.Array.isArray(object?.dataSources) ? object.dataSources.map((e: any) => TraceConfig_DataSource.fromJSON(e)): [],
builtinDataSources: isSet(object.builtinDataSources)
          ? TraceConfig_BuiltinDataSource.fromJSON(object.builtinDataSources)
          : undefined,
durationMs: isSet(object.durationMs)
          ? globalThis.Number(object.durationMs)
          : 0,
preferSuspendClockForDuration: isSet(object.preferSuspendClockForDuration)
          ? globalThis.Boolean(object.preferSuspendClockForDuration)
          : false,
enableExtraGuardrails: isSet(object.enableExtraGuardrails)
          ? globalThis.Boolean(object.enableExtraGuardrails)
          : false,
lockdownMode: isSet(object.lockdownMode)
          ? traceConfig_LockdownModeOperationFromJSON(object.lockdownMode)
          : 0,
producers: globalThis.Array.isArray(object?.producers) ? object.producers.map((e: any) => TraceConfig_ProducerConfig.fromJSON(e)): [],
statsdMetadata: isSet(object.statsdMetadata)
          ? TraceConfig_StatsdMetadata.fromJSON(object.statsdMetadata)
          : undefined,
writeIntoFile: isSet(object.writeIntoFile)
          ? globalThis.Boolean(object.writeIntoFile)
          : false,
outputPath: isSet(object.outputPath)
          ? globalThis.String(object.outputPath)
          : "",
fileWritePeriodMs: isSet(object.fileWritePeriodMs)
          ? globalThis.Number(object.fileWritePeriodMs)
          : 0,
maxFileSizeBytes: isSet(object.maxFileSizeBytes)
          ? globalThis.Number(object.maxFileSizeBytes)
          : 0,
guardrailOverrides: isSet(object.guardrailOverrides)
          ? TraceConfig_GuardrailOverrides.fromJSON(object.guardrailOverrides)
          : undefined,
deferredStart: isSet(object.deferredStart)
          ? globalThis.Boolean(object.deferredStart)
          : false,
flushPeriodMs: isSet(object.flushPeriodMs)
          ? globalThis.Number(object.flushPeriodMs)
          : 0,
flushTimeoutMs: isSet(object.flushTimeoutMs)
          ? globalThis.Number(object.flushTimeoutMs)
          : 0,
dataSourceStopTimeoutMs: isSet(object.dataSourceStopTimeoutMs)
          ? globalThis.Number(object.dataSourceStopTimeoutMs)
          : 0,
notifyTraceur: isSet(object.notifyTraceur)
          ? globalThis.Boolean(object.notifyTraceur)
          : false,
bugreportScore: isSet(object.bugreportScore)
          ? globalThis.Number(object.bugreportScore)
          : 0,
bugreportFilename: isSet(object.bugreportFilename)
          ? globalThis.String(object.bugreportFilename)
          : "",
triggerConfig: isSet(object.triggerConfig)
          ? TraceConfig_TriggerConfig.fromJSON(object.triggerConfig)
          : undefined,
activateTriggers: globalThis.Array.isArray(object?.activateTriggers) ? object.activateTriggers.map((e: any) => globalThis.String(e)): [],
incrementalStateConfig: isSet(object.incrementalStateConfig)
          ? TraceConfig_IncrementalStateConfig.fromJSON(object.incrementalStateConfig)
          : undefined,
allowUserBuildTracing: isSet(object.allowUserBuildTracing)
          ? globalThis.Boolean(object.allowUserBuildTracing)
          : false,
uniqueSessionName: isSet(object.uniqueSessionName)
          ? globalThis.String(object.uniqueSessionName)
          : "",
compressionType: isSet(object.compressionType)
          ? traceConfig_CompressionTypeFromJSON(object.compressionType)
          : 0,
incidentReportConfig: isSet(object.incidentReportConfig)
          ? TraceConfig_IncidentReportConfig.fromJSON(object.incidentReportConfig)
          : undefined,
statsdLogging: isSet(object.statsdLogging)
          ? traceConfig_StatsdLoggingFromJSON(object.statsdLogging)
          : 0,
traceUuidMsb: isSet(object.traceUuidMsb)
          ? globalThis.Number(object.traceUuidMsb)
          : 0,
traceUuidLsb: isSet(object.traceUuidLsb)
          ? globalThis.Number(object.traceUuidLsb)
          : 0,
traceFilter: isSet(object.traceFilter)
          ? TraceConfig_TraceFilter.fromJSON(object.traceFilter)
          : undefined,
androidReportConfig: isSet(object.androidReportConfig)
          ? TraceConfig_AndroidReportConfig.fromJSON(object.androidReportConfig)
          : undefined,
cmdTraceStartDelay: isSet(object.cmdTraceStartDelay)
          ? TraceConfig_CmdTraceStartDelay.fromJSON(object.cmdTraceStartDelay)
          : undefined,
sessionSemaphores: globalThis.Array.isArray(object?.sessionSemaphores) ? object.sessionSemaphores.map((e: any) => TraceConfig_SessionSemaphore.fromJSON(e)): [],
priorityBoost: isSet(object.priorityBoost)
          ? PriorityBoostConfig.fromJSON(object.priorityBoost)
          : undefined,
exclusivePrio: isSet(object.exclusivePrio)
          ? globalThis.Number(object.exclusivePrio)
          : 0,
writeFlushMode: isSet(object.writeFlushMode)
          ? traceConfig_WriteFlushModeFromJSON(object.writeFlushMode)
          : 0,
fflushPostWrite: isSet(object.fflushPostWrite)
          ? traceConfig_FFlushModeFromJSON(object.fflushPostWrite)
          : 0,
traceAllMachines: isSet(object.traceAllMachines)
          ? globalThis.Boolean(object.traceAllMachines)
          : false,
notes: globalThis.Array.isArray(object?.notes) ? object.notes.map((e: any) => TraceConfig_Note.fromJSON(e)): [],
};
},

toJSON(message: TraceConfig): unknown {
      const obj: any = {};
if (message.buffers?.length) {
          obj.buffers = message.buffers.map(e => TraceConfig_BufferConfig.toJSON(e));
        }
if (message.dataSources?.length) {
          obj.dataSources = message.dataSources.map(e => TraceConfig_DataSource.toJSON(e));
        }
if (message.builtinDataSources !== undefined ) {
          obj.builtinDataSources = TraceConfig_BuiltinDataSource.toJSON(message.builtinDataSources);
        }
if (message.durationMs !== undefined  && message.durationMs !== 0) {
          obj.durationMs = Math.round(message.durationMs);
        }
if (message.preferSuspendClockForDuration !== undefined  && message.preferSuspendClockForDuration !== false) {
          obj.preferSuspendClockForDuration = message.preferSuspendClockForDuration;
        }
if (message.enableExtraGuardrails !== undefined  && message.enableExtraGuardrails !== false) {
          obj.enableExtraGuardrails = message.enableExtraGuardrails;
        }
if (message.lockdownMode !== undefined  && message.lockdownMode !== 0) {
          obj.lockdownMode = traceConfig_LockdownModeOperationToJSON(message.lockdownMode);
        }
if (message.producers?.length) {
          obj.producers = message.producers.map(e => TraceConfig_ProducerConfig.toJSON(e));
        }
if (message.statsdMetadata !== undefined ) {
          obj.statsdMetadata = TraceConfig_StatsdMetadata.toJSON(message.statsdMetadata);
        }
if (message.writeIntoFile !== undefined  && message.writeIntoFile !== false) {
          obj.writeIntoFile = message.writeIntoFile;
        }
if (message.outputPath !== undefined  && message.outputPath !== "") {
          obj.outputPath = message.outputPath;
        }
if (message.fileWritePeriodMs !== undefined  && message.fileWritePeriodMs !== 0) {
          obj.fileWritePeriodMs = Math.round(message.fileWritePeriodMs);
        }
if (message.maxFileSizeBytes !== undefined  && message.maxFileSizeBytes !== 0) {
          obj.maxFileSizeBytes = Math.round(message.maxFileSizeBytes);
        }
if (message.guardrailOverrides !== undefined ) {
          obj.guardrailOverrides = TraceConfig_GuardrailOverrides.toJSON(message.guardrailOverrides);
        }
if (message.deferredStart !== undefined  && message.deferredStart !== false) {
          obj.deferredStart = message.deferredStart;
        }
if (message.flushPeriodMs !== undefined  && message.flushPeriodMs !== 0) {
          obj.flushPeriodMs = Math.round(message.flushPeriodMs);
        }
if (message.flushTimeoutMs !== undefined  && message.flushTimeoutMs !== 0) {
          obj.flushTimeoutMs = Math.round(message.flushTimeoutMs);
        }
if (message.dataSourceStopTimeoutMs !== undefined  && message.dataSourceStopTimeoutMs !== 0) {
          obj.dataSourceStopTimeoutMs = Math.round(message.dataSourceStopTimeoutMs);
        }
if (message.notifyTraceur !== undefined  && message.notifyTraceur !== false) {
          obj.notifyTraceur = message.notifyTraceur;
        }
if (message.bugreportScore !== undefined  && message.bugreportScore !== 0) {
          obj.bugreportScore = Math.round(message.bugreportScore);
        }
if (message.bugreportFilename !== undefined  && message.bugreportFilename !== "") {
          obj.bugreportFilename = message.bugreportFilename;
        }
if (message.triggerConfig !== undefined ) {
          obj.triggerConfig = TraceConfig_TriggerConfig.toJSON(message.triggerConfig);
        }
if (message.activateTriggers?.length) {
          obj.activateTriggers = message.activateTriggers;
        }
if (message.incrementalStateConfig !== undefined ) {
          obj.incrementalStateConfig = TraceConfig_IncrementalStateConfig.toJSON(message.incrementalStateConfig);
        }
if (message.allowUserBuildTracing !== undefined  && message.allowUserBuildTracing !== false) {
          obj.allowUserBuildTracing = message.allowUserBuildTracing;
        }
if (message.uniqueSessionName !== undefined  && message.uniqueSessionName !== "") {
          obj.uniqueSessionName = message.uniqueSessionName;
        }
if (message.compressionType !== undefined  && message.compressionType !== 0) {
          obj.compressionType = traceConfig_CompressionTypeToJSON(message.compressionType);
        }
if (message.incidentReportConfig !== undefined ) {
          obj.incidentReportConfig = TraceConfig_IncidentReportConfig.toJSON(message.incidentReportConfig);
        }
if (message.statsdLogging !== undefined  && message.statsdLogging !== 0) {
          obj.statsdLogging = traceConfig_StatsdLoggingToJSON(message.statsdLogging);
        }
if (message.traceUuidMsb !== undefined  && message.traceUuidMsb !== 0) {
          obj.traceUuidMsb = Math.round(message.traceUuidMsb);
        }
if (message.traceUuidLsb !== undefined  && message.traceUuidLsb !== 0) {
          obj.traceUuidLsb = Math.round(message.traceUuidLsb);
        }
if (message.traceFilter !== undefined ) {
          obj.traceFilter = TraceConfig_TraceFilter.toJSON(message.traceFilter);
        }
if (message.androidReportConfig !== undefined ) {
          obj.androidReportConfig = TraceConfig_AndroidReportConfig.toJSON(message.androidReportConfig);
        }
if (message.cmdTraceStartDelay !== undefined ) {
          obj.cmdTraceStartDelay = TraceConfig_CmdTraceStartDelay.toJSON(message.cmdTraceStartDelay);
        }
if (message.sessionSemaphores?.length) {
          obj.sessionSemaphores = message.sessionSemaphores.map(e => TraceConfig_SessionSemaphore.toJSON(e));
        }
if (message.priorityBoost !== undefined ) {
          obj.priorityBoost = PriorityBoostConfig.toJSON(message.priorityBoost);
        }
if (message.exclusivePrio !== undefined  && message.exclusivePrio !== 0) {
          obj.exclusivePrio = Math.round(message.exclusivePrio);
        }
if (message.writeFlushMode !== undefined  && message.writeFlushMode !== 0) {
          obj.writeFlushMode = traceConfig_WriteFlushModeToJSON(message.writeFlushMode);
        }
if (message.fflushPostWrite !== undefined  && message.fflushPostWrite !== 0) {
          obj.fflushPostWrite = traceConfig_FFlushModeToJSON(message.fflushPostWrite);
        }
if (message.traceAllMachines !== undefined  && message.traceAllMachines !== false) {
          obj.traceAllMachines = message.traceAllMachines;
        }
if (message.notes?.length) {
          obj.notes = message.notes.map(e => TraceConfig_Note.toJSON(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig>, I>>(base?: I): TraceConfig {
        return TraceConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig>, I>>(object: I): TraceConfig {
const message = createBaseTraceConfig();
message.buffers = object.buffers?.map((e) => TraceConfig_BufferConfig.fromPartial(e)) || [];
message.dataSources = object.dataSources?.map((e) => TraceConfig_DataSource.fromPartial(e)) || [];
message.builtinDataSources = (object.builtinDataSources !== undefined && object.builtinDataSources !== null)
          ? TraceConfig_BuiltinDataSource.fromPartial(object.builtinDataSources)
          : undefined;
message.durationMs = object.durationMs ?? 0;
message.preferSuspendClockForDuration = object.preferSuspendClockForDuration ?? false;
message.enableExtraGuardrails = object.enableExtraGuardrails ?? false;
message.lockdownMode = object.lockdownMode ?? 0;
message.producers = object.producers?.map((e) => TraceConfig_ProducerConfig.fromPartial(e)) || [];
message.statsdMetadata = (object.statsdMetadata !== undefined && object.statsdMetadata !== null)
          ? TraceConfig_StatsdMetadata.fromPartial(object.statsdMetadata)
          : undefined;
message.writeIntoFile = object.writeIntoFile ?? false;
message.outputPath = object.outputPath ?? "";
message.fileWritePeriodMs = object.fileWritePeriodMs ?? 0;
message.maxFileSizeBytes = object.maxFileSizeBytes ?? 0;
message.guardrailOverrides = (object.guardrailOverrides !== undefined && object.guardrailOverrides !== null)
          ? TraceConfig_GuardrailOverrides.fromPartial(object.guardrailOverrides)
          : undefined;
message.deferredStart = object.deferredStart ?? false;
message.flushPeriodMs = object.flushPeriodMs ?? 0;
message.flushTimeoutMs = object.flushTimeoutMs ?? 0;
message.dataSourceStopTimeoutMs = object.dataSourceStopTimeoutMs ?? 0;
message.notifyTraceur = object.notifyTraceur ?? false;
message.bugreportScore = object.bugreportScore ?? 0;
message.bugreportFilename = object.bugreportFilename ?? "";
message.triggerConfig = (object.triggerConfig !== undefined && object.triggerConfig !== null)
          ? TraceConfig_TriggerConfig.fromPartial(object.triggerConfig)
          : undefined;
message.activateTriggers = object.activateTriggers?.map((e) => e) || [];
message.incrementalStateConfig = (object.incrementalStateConfig !== undefined && object.incrementalStateConfig !== null)
          ? TraceConfig_IncrementalStateConfig.fromPartial(object.incrementalStateConfig)
          : undefined;
message.allowUserBuildTracing = object.allowUserBuildTracing ?? false;
message.uniqueSessionName = object.uniqueSessionName ?? "";
message.compressionType = object.compressionType ?? 0;
message.incidentReportConfig = (object.incidentReportConfig !== undefined && object.incidentReportConfig !== null)
          ? TraceConfig_IncidentReportConfig.fromPartial(object.incidentReportConfig)
          : undefined;
message.statsdLogging = object.statsdLogging ?? 0;
message.traceUuidMsb = object.traceUuidMsb ?? 0;
message.traceUuidLsb = object.traceUuidLsb ?? 0;
message.traceFilter = (object.traceFilter !== undefined && object.traceFilter !== null)
          ? TraceConfig_TraceFilter.fromPartial(object.traceFilter)
          : undefined;
message.androidReportConfig = (object.androidReportConfig !== undefined && object.androidReportConfig !== null)
          ? TraceConfig_AndroidReportConfig.fromPartial(object.androidReportConfig)
          : undefined;
message.cmdTraceStartDelay = (object.cmdTraceStartDelay !== undefined && object.cmdTraceStartDelay !== null)
          ? TraceConfig_CmdTraceStartDelay.fromPartial(object.cmdTraceStartDelay)
          : undefined;
message.sessionSemaphores = object.sessionSemaphores?.map((e) => TraceConfig_SessionSemaphore.fromPartial(e)) || [];
message.priorityBoost = (object.priorityBoost !== undefined && object.priorityBoost !== null)
          ? PriorityBoostConfig.fromPartial(object.priorityBoost)
          : undefined;
message.exclusivePrio = object.exclusivePrio ?? 0;
message.writeFlushMode = object.writeFlushMode ?? 0;
message.fflushPostWrite = object.fflushPostWrite ?? 0;
message.traceAllMachines = object.traceAllMachines ?? false;
message.notes = object.notes?.map((e) => TraceConfig_Note.fromPartial(e)) || [];
return message;
}
            };

function createBaseTraceConfig_BufferConfig(): TraceConfig_BufferConfig {
      return { sizeKb: 0,fillPolicy: 0,transferOnClone: false,clearBeforeClone: false,name: "",experimentalMode: 0 };
    }

export const TraceConfig_BufferConfig: MessageFns<TraceConfig_BufferConfig> = {
              encode(
      message: TraceConfig_BufferConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.sizeKb !== undefined  && message.sizeKb !== 0) {
          writer.uint32(8).uint32(message.sizeKb);
        }
if (message.fillPolicy !== undefined  && message.fillPolicy !== 0) {
          writer.uint32(32).int32(message.fillPolicy);
        }
if (message.transferOnClone !== undefined  && message.transferOnClone !== false) {
          writer.uint32(40).bool(message.transferOnClone);
        }
if (message.clearBeforeClone !== undefined  && message.clearBeforeClone !== false) {
          writer.uint32(48).bool(message.clearBeforeClone);
        }
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(58).string(message.name);
        }
if (message.experimentalMode !== undefined  && message.experimentalMode !== 0) {
          writer.uint32(64).int32(message.experimentalMode);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_BufferConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_BufferConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.sizeKb = reader.uint32();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.fillPolicy = reader.int32() as any;
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.transferOnClone = reader.bool();
continue; }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.clearBeforeClone = reader.bool();
continue; }
case 7: {
if (tag !== 58) {
        break;
      }
    
        message.name = reader.string();
continue; }
case 8: {
if (tag !== 64) {
        break;
      }
    
        message.experimentalMode = reader.int32() as any;
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_BufferConfig {
      return {
sizeKb: isSet(object.sizeKb)
          ? globalThis.Number(object.sizeKb)
          : 0,
fillPolicy: isSet(object.fillPolicy)
          ? traceConfig_BufferConfig_FillPolicyFromJSON(object.fillPolicy)
          : 0,
transferOnClone: isSet(object.transferOnClone)
          ? globalThis.Boolean(object.transferOnClone)
          : false,
clearBeforeClone: isSet(object.clearBeforeClone)
          ? globalThis.Boolean(object.clearBeforeClone)
          : false,
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
experimentalMode: isSet(object.experimentalMode)
          ? traceConfig_BufferConfig_ExperimentalModeFromJSON(object.experimentalMode)
          : 0,
};
},

toJSON(message: TraceConfig_BufferConfig): unknown {
      const obj: any = {};
if (message.sizeKb !== undefined  && message.sizeKb !== 0) {
          obj.sizeKb = Math.round(message.sizeKb);
        }
if (message.fillPolicy !== undefined  && message.fillPolicy !== 0) {
          obj.fillPolicy = traceConfig_BufferConfig_FillPolicyToJSON(message.fillPolicy);
        }
if (message.transferOnClone !== undefined  && message.transferOnClone !== false) {
          obj.transferOnClone = message.transferOnClone;
        }
if (message.clearBeforeClone !== undefined  && message.clearBeforeClone !== false) {
          obj.clearBeforeClone = message.clearBeforeClone;
        }
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
if (message.experimentalMode !== undefined  && message.experimentalMode !== 0) {
          obj.experimentalMode = traceConfig_BufferConfig_ExperimentalModeToJSON(message.experimentalMode);
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_BufferConfig>, I>>(base?: I): TraceConfig_BufferConfig {
        return TraceConfig_BufferConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_BufferConfig>, I>>(object: I): TraceConfig_BufferConfig {
const message = createBaseTraceConfig_BufferConfig();
message.sizeKb = object.sizeKb ?? 0;
message.fillPolicy = object.fillPolicy ?? 0;
message.transferOnClone = object.transferOnClone ?? false;
message.clearBeforeClone = object.clearBeforeClone ?? false;
message.name = object.name ?? "";
message.experimentalMode = object.experimentalMode ?? 0;
return message;
}
            };

function createBaseTraceConfig_DataSource(): TraceConfig_DataSource {
      return { config: undefined,producerNameFilter: [],producerNameRegexFilter: [],machineNameFilter: [] };
    }

export const TraceConfig_DataSource: MessageFns<TraceConfig_DataSource> = {
              encode(
      message: TraceConfig_DataSource,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.config !== undefined ) {
          DataSourceConfig.encode(message.config, writer.uint32(10).fork()).join();
        }
if (message.producerNameFilter !== undefined && message.producerNameFilter.length !== 0) {
              
          for (const v of message.producerNameFilter) {
            writer.uint32(18).string(v!);
          }
        
            }
if (message.producerNameRegexFilter !== undefined && message.producerNameRegexFilter.length !== 0) {
              
          for (const v of message.producerNameRegexFilter) {
            writer.uint32(26).string(v!);
          }
        
            }
if (message.machineNameFilter !== undefined && message.machineNameFilter.length !== 0) {
              
          for (const v of message.machineNameFilter) {
            writer.uint32(34).string(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_DataSource {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_DataSource();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.config = DataSourceConfig.decode(reader, reader.uint32());
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.producerNameFilter!.push(el);
              }
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.producerNameRegexFilter!.push(el);
              }
continue; }
case 4: {
if (tag !== 34) {
        break;
      }
    
              
              const el = reader.string();
              if (el !== undefined) {
                message.machineNameFilter!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_DataSource {
      return {
config: isSet(object.config)
          ? DataSourceConfig.fromJSON(object.config)
          : undefined,
producerNameFilter: globalThis.Array.isArray(object?.producerNameFilter) ? object.producerNameFilter.map((e: any) => globalThis.String(e)): [],
producerNameRegexFilter: globalThis.Array.isArray(object?.producerNameRegexFilter) ? object.producerNameRegexFilter.map((e: any) => globalThis.String(e)): [],
machineNameFilter: globalThis.Array.isArray(object?.machineNameFilter) ? object.machineNameFilter.map((e: any) => globalThis.String(e)): [],
};
},

toJSON(message: TraceConfig_DataSource): unknown {
      const obj: any = {};
if (message.config !== undefined ) {
          obj.config = DataSourceConfig.toJSON(message.config);
        }
if (message.producerNameFilter?.length) {
          obj.producerNameFilter = message.producerNameFilter;
        }
if (message.producerNameRegexFilter?.length) {
          obj.producerNameRegexFilter = message.producerNameRegexFilter;
        }
if (message.machineNameFilter?.length) {
          obj.machineNameFilter = message.machineNameFilter;
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_DataSource>, I>>(base?: I): TraceConfig_DataSource {
        return TraceConfig_DataSource.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_DataSource>, I>>(object: I): TraceConfig_DataSource {
const message = createBaseTraceConfig_DataSource();
message.config = (object.config !== undefined && object.config !== null)
          ? DataSourceConfig.fromPartial(object.config)
          : undefined;
message.producerNameFilter = object.producerNameFilter?.map((e) => e) || [];
message.producerNameRegexFilter = object.producerNameRegexFilter?.map((e) => e) || [];
message.machineNameFilter = object.machineNameFilter?.map((e) => e) || [];
return message;
}
            };

function createBaseTraceConfig_BuiltinDataSource(): TraceConfig_BuiltinDataSource {
      return { disableClockSnapshotting: false,disableTraceConfig: false,disableSystemInfo: false,disableServiceEvents: false,primaryTraceClock: 0,snapshotIntervalMs: 0,preferSuspendClockForSnapshot: false,disableChunkUsageHistograms: false,disableExtensionDescriptors: false };
    }

export const TraceConfig_BuiltinDataSource: MessageFns<TraceConfig_BuiltinDataSource> = {
              encode(
      message: TraceConfig_BuiltinDataSource,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.disableClockSnapshotting !== undefined  && message.disableClockSnapshotting !== false) {
          writer.uint32(8).bool(message.disableClockSnapshotting);
        }
if (message.disableTraceConfig !== undefined  && message.disableTraceConfig !== false) {
          writer.uint32(16).bool(message.disableTraceConfig);
        }
if (message.disableSystemInfo !== undefined  && message.disableSystemInfo !== false) {
          writer.uint32(24).bool(message.disableSystemInfo);
        }
if (message.disableServiceEvents !== undefined  && message.disableServiceEvents !== false) {
          writer.uint32(32).bool(message.disableServiceEvents);
        }
if (message.primaryTraceClock !== undefined  && message.primaryTraceClock !== 0) {
          writer.uint32(40).int32(message.primaryTraceClock);
        }
if (message.snapshotIntervalMs !== undefined  && message.snapshotIntervalMs !== 0) {
          writer.uint32(48).uint32(message.snapshotIntervalMs);
        }
if (message.preferSuspendClockForSnapshot !== undefined  && message.preferSuspendClockForSnapshot !== false) {
          writer.uint32(56).bool(message.preferSuspendClockForSnapshot);
        }
if (message.disableChunkUsageHistograms !== undefined  && message.disableChunkUsageHistograms !== false) {
          writer.uint32(64).bool(message.disableChunkUsageHistograms);
        }
if (message.disableExtensionDescriptors !== undefined  && message.disableExtensionDescriptors !== false) {
          writer.uint32(72).bool(message.disableExtensionDescriptors);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_BuiltinDataSource {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_BuiltinDataSource();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.disableClockSnapshotting = reader.bool();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.disableTraceConfig = reader.bool();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.disableSystemInfo = reader.bool();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.disableServiceEvents = reader.bool();
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.primaryTraceClock = reader.int32() as any;
continue; }
case 6: {
if (tag !== 48) {
        break;
      }
    
        message.snapshotIntervalMs = reader.uint32();
continue; }
case 7: {
if (tag !== 56) {
        break;
      }
    
        message.preferSuspendClockForSnapshot = reader.bool();
continue; }
case 8: {
if (tag !== 64) {
        break;
      }
    
        message.disableChunkUsageHistograms = reader.bool();
continue; }
case 9: {
if (tag !== 72) {
        break;
      }
    
        message.disableExtensionDescriptors = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_BuiltinDataSource {
      return {
disableClockSnapshotting: isSet(object.disableClockSnapshotting)
          ? globalThis.Boolean(object.disableClockSnapshotting)
          : false,
disableTraceConfig: isSet(object.disableTraceConfig)
          ? globalThis.Boolean(object.disableTraceConfig)
          : false,
disableSystemInfo: isSet(object.disableSystemInfo)
          ? globalThis.Boolean(object.disableSystemInfo)
          : false,
disableServiceEvents: isSet(object.disableServiceEvents)
          ? globalThis.Boolean(object.disableServiceEvents)
          : false,
primaryTraceClock: isSet(object.primaryTraceClock)
          ? builtinClockFromJSON(object.primaryTraceClock)
          : 0,
snapshotIntervalMs: isSet(object.snapshotIntervalMs)
          ? globalThis.Number(object.snapshotIntervalMs)
          : 0,
preferSuspendClockForSnapshot: isSet(object.preferSuspendClockForSnapshot)
          ? globalThis.Boolean(object.preferSuspendClockForSnapshot)
          : false,
disableChunkUsageHistograms: isSet(object.disableChunkUsageHistograms)
          ? globalThis.Boolean(object.disableChunkUsageHistograms)
          : false,
disableExtensionDescriptors: isSet(object.disableExtensionDescriptors)
          ? globalThis.Boolean(object.disableExtensionDescriptors)
          : false,
};
},

toJSON(message: TraceConfig_BuiltinDataSource): unknown {
      const obj: any = {};
if (message.disableClockSnapshotting !== undefined  && message.disableClockSnapshotting !== false) {
          obj.disableClockSnapshotting = message.disableClockSnapshotting;
        }
if (message.disableTraceConfig !== undefined  && message.disableTraceConfig !== false) {
          obj.disableTraceConfig = message.disableTraceConfig;
        }
if (message.disableSystemInfo !== undefined  && message.disableSystemInfo !== false) {
          obj.disableSystemInfo = message.disableSystemInfo;
        }
if (message.disableServiceEvents !== undefined  && message.disableServiceEvents !== false) {
          obj.disableServiceEvents = message.disableServiceEvents;
        }
if (message.primaryTraceClock !== undefined  && message.primaryTraceClock !== 0) {
          obj.primaryTraceClock = builtinClockToJSON(message.primaryTraceClock);
        }
if (message.snapshotIntervalMs !== undefined  && message.snapshotIntervalMs !== 0) {
          obj.snapshotIntervalMs = Math.round(message.snapshotIntervalMs);
        }
if (message.preferSuspendClockForSnapshot !== undefined  && message.preferSuspendClockForSnapshot !== false) {
          obj.preferSuspendClockForSnapshot = message.preferSuspendClockForSnapshot;
        }
if (message.disableChunkUsageHistograms !== undefined  && message.disableChunkUsageHistograms !== false) {
          obj.disableChunkUsageHistograms = message.disableChunkUsageHistograms;
        }
if (message.disableExtensionDescriptors !== undefined  && message.disableExtensionDescriptors !== false) {
          obj.disableExtensionDescriptors = message.disableExtensionDescriptors;
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_BuiltinDataSource>, I>>(base?: I): TraceConfig_BuiltinDataSource {
        return TraceConfig_BuiltinDataSource.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_BuiltinDataSource>, I>>(object: I): TraceConfig_BuiltinDataSource {
const message = createBaseTraceConfig_BuiltinDataSource();
message.disableClockSnapshotting = object.disableClockSnapshotting ?? false;
message.disableTraceConfig = object.disableTraceConfig ?? false;
message.disableSystemInfo = object.disableSystemInfo ?? false;
message.disableServiceEvents = object.disableServiceEvents ?? false;
message.primaryTraceClock = object.primaryTraceClock ?? 0;
message.snapshotIntervalMs = object.snapshotIntervalMs ?? 0;
message.preferSuspendClockForSnapshot = object.preferSuspendClockForSnapshot ?? false;
message.disableChunkUsageHistograms = object.disableChunkUsageHistograms ?? false;
message.disableExtensionDescriptors = object.disableExtensionDescriptors ?? false;
return message;
}
            };

function createBaseTraceConfig_ProducerConfig(): TraceConfig_ProducerConfig {
      return { producerName: "",shmSizeKb: 0,pageSizeKb: 0 };
    }

export const TraceConfig_ProducerConfig: MessageFns<TraceConfig_ProducerConfig> = {
              encode(
      message: TraceConfig_ProducerConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.producerName !== undefined  && message.producerName !== "") {
          writer.uint32(10).string(message.producerName);
        }
if (message.shmSizeKb !== undefined  && message.shmSizeKb !== 0) {
          writer.uint32(16).uint32(message.shmSizeKb);
        }
if (message.pageSizeKb !== undefined  && message.pageSizeKb !== 0) {
          writer.uint32(24).uint32(message.pageSizeKb);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_ProducerConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_ProducerConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.producerName = reader.string();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.shmSizeKb = reader.uint32();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.pageSizeKb = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_ProducerConfig {
      return {
producerName: isSet(object.producerName)
          ? globalThis.String(object.producerName)
          : "",
shmSizeKb: isSet(object.shmSizeKb)
          ? globalThis.Number(object.shmSizeKb)
          : 0,
pageSizeKb: isSet(object.pageSizeKb)
          ? globalThis.Number(object.pageSizeKb)
          : 0,
};
},

toJSON(message: TraceConfig_ProducerConfig): unknown {
      const obj: any = {};
if (message.producerName !== undefined  && message.producerName !== "") {
          obj.producerName = message.producerName;
        }
if (message.shmSizeKb !== undefined  && message.shmSizeKb !== 0) {
          obj.shmSizeKb = Math.round(message.shmSizeKb);
        }
if (message.pageSizeKb !== undefined  && message.pageSizeKb !== 0) {
          obj.pageSizeKb = Math.round(message.pageSizeKb);
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_ProducerConfig>, I>>(base?: I): TraceConfig_ProducerConfig {
        return TraceConfig_ProducerConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_ProducerConfig>, I>>(object: I): TraceConfig_ProducerConfig {
const message = createBaseTraceConfig_ProducerConfig();
message.producerName = object.producerName ?? "";
message.shmSizeKb = object.shmSizeKb ?? 0;
message.pageSizeKb = object.pageSizeKb ?? 0;
return message;
}
            };

function createBaseTraceConfig_StatsdMetadata(): TraceConfig_StatsdMetadata {
      return { triggeringAlertId: 0,triggeringConfigUid: 0,triggeringConfigId: 0,triggeringSubscriptionId: 0 };
    }

export const TraceConfig_StatsdMetadata: MessageFns<TraceConfig_StatsdMetadata> = {
              encode(
      message: TraceConfig_StatsdMetadata,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.triggeringAlertId !== undefined  && message.triggeringAlertId !== 0) {
          writer.uint32(8).int64(message.triggeringAlertId);
        }
if (message.triggeringConfigUid !== undefined  && message.triggeringConfigUid !== 0) {
          writer.uint32(16).int32(message.triggeringConfigUid);
        }
if (message.triggeringConfigId !== undefined  && message.triggeringConfigId !== 0) {
          writer.uint32(24).int64(message.triggeringConfigId);
        }
if (message.triggeringSubscriptionId !== undefined  && message.triggeringSubscriptionId !== 0) {
          writer.uint32(32).int64(message.triggeringSubscriptionId);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_StatsdMetadata {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_StatsdMetadata();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.triggeringAlertId = longToNumber(reader.int64());
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.triggeringConfigUid = reader.int32();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.triggeringConfigId = longToNumber(reader.int64());
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.triggeringSubscriptionId = longToNumber(reader.int64());
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_StatsdMetadata {
      return {
triggeringAlertId: isSet(object.triggeringAlertId)
          ? globalThis.Number(object.triggeringAlertId)
          : 0,
triggeringConfigUid: isSet(object.triggeringConfigUid)
          ? globalThis.Number(object.triggeringConfigUid)
          : 0,
triggeringConfigId: isSet(object.triggeringConfigId)
          ? globalThis.Number(object.triggeringConfigId)
          : 0,
triggeringSubscriptionId: isSet(object.triggeringSubscriptionId)
          ? globalThis.Number(object.triggeringSubscriptionId)
          : 0,
};
},

toJSON(message: TraceConfig_StatsdMetadata): unknown {
      const obj: any = {};
if (message.triggeringAlertId !== undefined  && message.triggeringAlertId !== 0) {
          obj.triggeringAlertId = Math.round(message.triggeringAlertId);
        }
if (message.triggeringConfigUid !== undefined  && message.triggeringConfigUid !== 0) {
          obj.triggeringConfigUid = Math.round(message.triggeringConfigUid);
        }
if (message.triggeringConfigId !== undefined  && message.triggeringConfigId !== 0) {
          obj.triggeringConfigId = Math.round(message.triggeringConfigId);
        }
if (message.triggeringSubscriptionId !== undefined  && message.triggeringSubscriptionId !== 0) {
          obj.triggeringSubscriptionId = Math.round(message.triggeringSubscriptionId);
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_StatsdMetadata>, I>>(base?: I): TraceConfig_StatsdMetadata {
        return TraceConfig_StatsdMetadata.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_StatsdMetadata>, I>>(object: I): TraceConfig_StatsdMetadata {
const message = createBaseTraceConfig_StatsdMetadata();
message.triggeringAlertId = object.triggeringAlertId ?? 0;
message.triggeringConfigUid = object.triggeringConfigUid ?? 0;
message.triggeringConfigId = object.triggeringConfigId ?? 0;
message.triggeringSubscriptionId = object.triggeringSubscriptionId ?? 0;
return message;
}
            };

function createBaseTraceConfig_GuardrailOverrides(): TraceConfig_GuardrailOverrides {
      return { maxUploadPerDayBytes: 0,maxTracingBufferSizeKb: 0 };
    }

export const TraceConfig_GuardrailOverrides: MessageFns<TraceConfig_GuardrailOverrides> = {
              encode(
      message: TraceConfig_GuardrailOverrides,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.maxUploadPerDayBytes !== undefined  && message.maxUploadPerDayBytes !== 0) {
          writer.uint32(8).uint64(message.maxUploadPerDayBytes);
        }
if (message.maxTracingBufferSizeKb !== undefined  && message.maxTracingBufferSizeKb !== 0) {
          writer.uint32(16).uint32(message.maxTracingBufferSizeKb);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_GuardrailOverrides {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_GuardrailOverrides();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.maxUploadPerDayBytes = longToNumber(reader.uint64());
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.maxTracingBufferSizeKb = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_GuardrailOverrides {
      return {
maxUploadPerDayBytes: isSet(object.maxUploadPerDayBytes)
          ? globalThis.Number(object.maxUploadPerDayBytes)
          : 0,
maxTracingBufferSizeKb: isSet(object.maxTracingBufferSizeKb)
          ? globalThis.Number(object.maxTracingBufferSizeKb)
          : 0,
};
},

toJSON(message: TraceConfig_GuardrailOverrides): unknown {
      const obj: any = {};
if (message.maxUploadPerDayBytes !== undefined  && message.maxUploadPerDayBytes !== 0) {
          obj.maxUploadPerDayBytes = Math.round(message.maxUploadPerDayBytes);
        }
if (message.maxTracingBufferSizeKb !== undefined  && message.maxTracingBufferSizeKb !== 0) {
          obj.maxTracingBufferSizeKb = Math.round(message.maxTracingBufferSizeKb);
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_GuardrailOverrides>, I>>(base?: I): TraceConfig_GuardrailOverrides {
        return TraceConfig_GuardrailOverrides.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_GuardrailOverrides>, I>>(object: I): TraceConfig_GuardrailOverrides {
const message = createBaseTraceConfig_GuardrailOverrides();
message.maxUploadPerDayBytes = object.maxUploadPerDayBytes ?? 0;
message.maxTracingBufferSizeKb = object.maxTracingBufferSizeKb ?? 0;
return message;
}
            };

function createBaseTraceConfig_TriggerConfig(): TraceConfig_TriggerConfig {
      return { triggerMode: 0,useCloneSnapshotIfAvailable: false,triggers: [],triggerTimeoutMs: 0 };
    }

export const TraceConfig_TriggerConfig: MessageFns<TraceConfig_TriggerConfig> = {
              encode(
      message: TraceConfig_TriggerConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.triggerMode !== undefined  && message.triggerMode !== 0) {
          writer.uint32(8).int32(message.triggerMode);
        }
if (message.useCloneSnapshotIfAvailable !== undefined  && message.useCloneSnapshotIfAvailable !== false) {
          writer.uint32(40).bool(message.useCloneSnapshotIfAvailable);
        }
if (message.triggers !== undefined && message.triggers.length !== 0) {
              
          for (const v of message.triggers) {
            TraceConfig_TriggerConfig_Trigger.encode(v!, writer.uint32(18).fork()).join();
          }
        
            }
if (message.triggerTimeoutMs !== undefined  && message.triggerTimeoutMs !== 0) {
          writer.uint32(24).uint32(message.triggerTimeoutMs);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_TriggerConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_TriggerConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.triggerMode = reader.int32() as any;
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.useCloneSnapshotIfAvailable = reader.bool();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
              
              const el = TraceConfig_TriggerConfig_Trigger.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.triggers!.push(el);
              }
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.triggerTimeoutMs = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_TriggerConfig {
      return {
triggerMode: isSet(object.triggerMode)
          ? traceConfig_TriggerConfig_TriggerModeFromJSON(object.triggerMode)
          : 0,
useCloneSnapshotIfAvailable: isSet(object.useCloneSnapshotIfAvailable)
          ? globalThis.Boolean(object.useCloneSnapshotIfAvailable)
          : false,
triggers: globalThis.Array.isArray(object?.triggers) ? object.triggers.map((e: any) => TraceConfig_TriggerConfig_Trigger.fromJSON(e)): [],
triggerTimeoutMs: isSet(object.triggerTimeoutMs)
          ? globalThis.Number(object.triggerTimeoutMs)
          : 0,
};
},

toJSON(message: TraceConfig_TriggerConfig): unknown {
      const obj: any = {};
if (message.triggerMode !== undefined  && message.triggerMode !== 0) {
          obj.triggerMode = traceConfig_TriggerConfig_TriggerModeToJSON(message.triggerMode);
        }
if (message.useCloneSnapshotIfAvailable !== undefined  && message.useCloneSnapshotIfAvailable !== false) {
          obj.useCloneSnapshotIfAvailable = message.useCloneSnapshotIfAvailable;
        }
if (message.triggers?.length) {
          obj.triggers = message.triggers.map(e => TraceConfig_TriggerConfig_Trigger.toJSON(e));
        }
if (message.triggerTimeoutMs !== undefined  && message.triggerTimeoutMs !== 0) {
          obj.triggerTimeoutMs = Math.round(message.triggerTimeoutMs);
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_TriggerConfig>, I>>(base?: I): TraceConfig_TriggerConfig {
        return TraceConfig_TriggerConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_TriggerConfig>, I>>(object: I): TraceConfig_TriggerConfig {
const message = createBaseTraceConfig_TriggerConfig();
message.triggerMode = object.triggerMode ?? 0;
message.useCloneSnapshotIfAvailable = object.useCloneSnapshotIfAvailable ?? false;
message.triggers = object.triggers?.map((e) => TraceConfig_TriggerConfig_Trigger.fromPartial(e)) || [];
message.triggerTimeoutMs = object.triggerTimeoutMs ?? 0;
return message;
}
            };

function createBaseTraceConfig_TriggerConfig_Trigger(): TraceConfig_TriggerConfig_Trigger {
      return { name: "",producerNameRegex: "",stopDelayMs: 0,maxPer24H: 0,skipProbability: 0 };
    }

export const TraceConfig_TriggerConfig_Trigger: MessageFns<TraceConfig_TriggerConfig_Trigger> = {
              encode(
      message: TraceConfig_TriggerConfig_Trigger,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(10).string(message.name);
        }
if (message.producerNameRegex !== undefined  && message.producerNameRegex !== "") {
          writer.uint32(18).string(message.producerNameRegex);
        }
if (message.stopDelayMs !== undefined  && message.stopDelayMs !== 0) {
          writer.uint32(24).uint32(message.stopDelayMs);
        }
if (message.maxPer24H !== undefined  && message.maxPer24H !== 0) {
          writer.uint32(32).uint32(message.maxPer24H);
        }
if (message.skipProbability !== undefined  && message.skipProbability !== 0) {
          writer.uint32(41).double(message.skipProbability);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_TriggerConfig_Trigger {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_TriggerConfig_Trigger();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.name = reader.string();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
        message.producerNameRegex = reader.string();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.stopDelayMs = reader.uint32();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.maxPer24H = reader.uint32();
continue; }
case 5: {
if (tag !== 41) {
        break;
      }
    
        message.skipProbability = reader.double();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_TriggerConfig_Trigger {
      return {
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
producerNameRegex: isSet(object.producerNameRegex)
          ? globalThis.String(object.producerNameRegex)
          : "",
stopDelayMs: isSet(object.stopDelayMs)
          ? globalThis.Number(object.stopDelayMs)
          : 0,
maxPer24H: isSet(object.maxPer24H)
          ? globalThis.Number(object.maxPer24H)
          : 0,
skipProbability: isSet(object.skipProbability)
          ? globalThis.Number(object.skipProbability)
          : 0,
};
},

toJSON(message: TraceConfig_TriggerConfig_Trigger): unknown {
      const obj: any = {};
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
if (message.producerNameRegex !== undefined  && message.producerNameRegex !== "") {
          obj.producerNameRegex = message.producerNameRegex;
        }
if (message.stopDelayMs !== undefined  && message.stopDelayMs !== 0) {
          obj.stopDelayMs = Math.round(message.stopDelayMs);
        }
if (message.maxPer24H !== undefined  && message.maxPer24H !== 0) {
          obj.maxPer24H = Math.round(message.maxPer24H);
        }
if (message.skipProbability !== undefined  && message.skipProbability !== 0) {
          obj.skipProbability = message.skipProbability;
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_TriggerConfig_Trigger>, I>>(base?: I): TraceConfig_TriggerConfig_Trigger {
        return TraceConfig_TriggerConfig_Trigger.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_TriggerConfig_Trigger>, I>>(object: I): TraceConfig_TriggerConfig_Trigger {
const message = createBaseTraceConfig_TriggerConfig_Trigger();
message.name = object.name ?? "";
message.producerNameRegex = object.producerNameRegex ?? "";
message.stopDelayMs = object.stopDelayMs ?? 0;
message.maxPer24H = object.maxPer24H ?? 0;
message.skipProbability = object.skipProbability ?? 0;
return message;
}
            };

function createBaseTraceConfig_IncrementalStateConfig(): TraceConfig_IncrementalStateConfig {
      return { clearPeriodMs: 0 };
    }

export const TraceConfig_IncrementalStateConfig: MessageFns<TraceConfig_IncrementalStateConfig> = {
              encode(
      message: TraceConfig_IncrementalStateConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.clearPeriodMs !== undefined  && message.clearPeriodMs !== 0) {
          writer.uint32(8).uint32(message.clearPeriodMs);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_IncrementalStateConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_IncrementalStateConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.clearPeriodMs = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_IncrementalStateConfig {
      return {
clearPeriodMs: isSet(object.clearPeriodMs)
          ? globalThis.Number(object.clearPeriodMs)
          : 0,
};
},

toJSON(message: TraceConfig_IncrementalStateConfig): unknown {
      const obj: any = {};
if (message.clearPeriodMs !== undefined  && message.clearPeriodMs !== 0) {
          obj.clearPeriodMs = Math.round(message.clearPeriodMs);
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_IncrementalStateConfig>, I>>(base?: I): TraceConfig_IncrementalStateConfig {
        return TraceConfig_IncrementalStateConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_IncrementalStateConfig>, I>>(object: I): TraceConfig_IncrementalStateConfig {
const message = createBaseTraceConfig_IncrementalStateConfig();
message.clearPeriodMs = object.clearPeriodMs ?? 0;
return message;
}
            };

function createBaseTraceConfig_IncidentReportConfig(): TraceConfig_IncidentReportConfig {
      return { destinationPackage: "",destinationClass: "",privacyLevel: 0,skipIncidentd: false,skipDropbox: false };
    }

export const TraceConfig_IncidentReportConfig: MessageFns<TraceConfig_IncidentReportConfig> = {
              encode(
      message: TraceConfig_IncidentReportConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.destinationPackage !== undefined  && message.destinationPackage !== "") {
          writer.uint32(10).string(message.destinationPackage);
        }
if (message.destinationClass !== undefined  && message.destinationClass !== "") {
          writer.uint32(18).string(message.destinationClass);
        }
if (message.privacyLevel !== undefined  && message.privacyLevel !== 0) {
          writer.uint32(24).int32(message.privacyLevel);
        }
if (message.skipIncidentd !== undefined  && message.skipIncidentd !== false) {
          writer.uint32(40).bool(message.skipIncidentd);
        }
if (message.skipDropbox !== undefined  && message.skipDropbox !== false) {
          writer.uint32(32).bool(message.skipDropbox);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_IncidentReportConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_IncidentReportConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.destinationPackage = reader.string();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
        message.destinationClass = reader.string();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.privacyLevel = reader.int32();
continue; }
case 5: {
if (tag !== 40) {
        break;
      }
    
        message.skipIncidentd = reader.bool();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.skipDropbox = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_IncidentReportConfig {
      return {
destinationPackage: isSet(object.destinationPackage)
          ? globalThis.String(object.destinationPackage)
          : "",
destinationClass: isSet(object.destinationClass)
          ? globalThis.String(object.destinationClass)
          : "",
privacyLevel: isSet(object.privacyLevel)
          ? globalThis.Number(object.privacyLevel)
          : 0,
skipIncidentd: isSet(object.skipIncidentd)
          ? globalThis.Boolean(object.skipIncidentd)
          : false,
skipDropbox: isSet(object.skipDropbox)
          ? globalThis.Boolean(object.skipDropbox)
          : false,
};
},

toJSON(message: TraceConfig_IncidentReportConfig): unknown {
      const obj: any = {};
if (message.destinationPackage !== undefined  && message.destinationPackage !== "") {
          obj.destinationPackage = message.destinationPackage;
        }
if (message.destinationClass !== undefined  && message.destinationClass !== "") {
          obj.destinationClass = message.destinationClass;
        }
if (message.privacyLevel !== undefined  && message.privacyLevel !== 0) {
          obj.privacyLevel = Math.round(message.privacyLevel);
        }
if (message.skipIncidentd !== undefined  && message.skipIncidentd !== false) {
          obj.skipIncidentd = message.skipIncidentd;
        }
if (message.skipDropbox !== undefined  && message.skipDropbox !== false) {
          obj.skipDropbox = message.skipDropbox;
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_IncidentReportConfig>, I>>(base?: I): TraceConfig_IncidentReportConfig {
        return TraceConfig_IncidentReportConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_IncidentReportConfig>, I>>(object: I): TraceConfig_IncidentReportConfig {
const message = createBaseTraceConfig_IncidentReportConfig();
message.destinationPackage = object.destinationPackage ?? "";
message.destinationClass = object.destinationClass ?? "";
message.privacyLevel = object.privacyLevel ?? 0;
message.skipIncidentd = object.skipIncidentd ?? false;
message.skipDropbox = object.skipDropbox ?? false;
return message;
}
            };

function createBaseTraceConfig_TraceFilter(): TraceConfig_TraceFilter {
      return { bytecode: new Uint8Array(0),bytecodeV2: new Uint8Array(0),stringFilterChain: undefined,bytecodeOverlayV54: new Uint8Array(0),stringFilterChainV54: undefined };
    }

export const TraceConfig_TraceFilter: MessageFns<TraceConfig_TraceFilter> = {
              encode(
      message: TraceConfig_TraceFilter,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.bytecode !== undefined  && message.bytecode.length !== 0) {
          writer.uint32(10).bytes(message.bytecode);
        }
if (message.bytecodeV2 !== undefined  && message.bytecodeV2.length !== 0) {
          writer.uint32(18).bytes(message.bytecodeV2);
        }
if (message.stringFilterChain !== undefined ) {
          TraceConfig_TraceFilter_StringFilterChain.encode(message.stringFilterChain, writer.uint32(26).fork()).join();
        }
if (message.bytecodeOverlayV54 !== undefined  && message.bytecodeOverlayV54.length !== 0) {
          writer.uint32(34).bytes(message.bytecodeOverlayV54);
        }
if (message.stringFilterChainV54 !== undefined ) {
          TraceConfig_TraceFilter_StringFilterChain.encode(message.stringFilterChainV54, writer.uint32(42).fork()).join();
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_TraceFilter {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_TraceFilter();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.bytecode = reader.bytes();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
        message.bytecodeV2 = reader.bytes();
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
        message.stringFilterChain = TraceConfig_TraceFilter_StringFilterChain.decode(reader, reader.uint32());
continue; }
case 4: {
if (tag !== 34) {
        break;
      }
    
        message.bytecodeOverlayV54 = reader.bytes();
continue; }
case 5: {
if (tag !== 42) {
        break;
      }
    
        message.stringFilterChainV54 = TraceConfig_TraceFilter_StringFilterChain.decode(reader, reader.uint32());
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_TraceFilter {
      return {
bytecode: isSet(object.bytecode)
          ? bytesFromBase64(object.bytecode)
          : new Uint8Array(0),
bytecodeV2: isSet(object.bytecodeV2)
          ? bytesFromBase64(object.bytecodeV2)
          : new Uint8Array(0),
stringFilterChain: isSet(object.stringFilterChain)
          ? TraceConfig_TraceFilter_StringFilterChain.fromJSON(object.stringFilterChain)
          : undefined,
bytecodeOverlayV54: isSet(object.bytecodeOverlayV54)
          ? bytesFromBase64(object.bytecodeOverlayV54)
          : new Uint8Array(0),
stringFilterChainV54: isSet(object.stringFilterChainV54)
          ? TraceConfig_TraceFilter_StringFilterChain.fromJSON(object.stringFilterChainV54)
          : undefined,
};
},

toJSON(message: TraceConfig_TraceFilter): unknown {
      const obj: any = {};
if (message.bytecode !== undefined  && message.bytecode.length !== 0) {
          obj.bytecode = base64FromBytes(message.bytecode);
        }
if (message.bytecodeV2 !== undefined  && message.bytecodeV2.length !== 0) {
          obj.bytecodeV2 = base64FromBytes(message.bytecodeV2);
        }
if (message.stringFilterChain !== undefined ) {
          obj.stringFilterChain = TraceConfig_TraceFilter_StringFilterChain.toJSON(message.stringFilterChain);
        }
if (message.bytecodeOverlayV54 !== undefined  && message.bytecodeOverlayV54.length !== 0) {
          obj.bytecodeOverlayV54 = base64FromBytes(message.bytecodeOverlayV54);
        }
if (message.stringFilterChainV54 !== undefined ) {
          obj.stringFilterChainV54 = TraceConfig_TraceFilter_StringFilterChain.toJSON(message.stringFilterChainV54);
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_TraceFilter>, I>>(base?: I): TraceConfig_TraceFilter {
        return TraceConfig_TraceFilter.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_TraceFilter>, I>>(object: I): TraceConfig_TraceFilter {
const message = createBaseTraceConfig_TraceFilter();
message.bytecode = object.bytecode ?? new Uint8Array(0);
message.bytecodeV2 = object.bytecodeV2 ?? new Uint8Array(0);
message.stringFilterChain = (object.stringFilterChain !== undefined && object.stringFilterChain !== null)
          ? TraceConfig_TraceFilter_StringFilterChain.fromPartial(object.stringFilterChain)
          : undefined;
message.bytecodeOverlayV54 = object.bytecodeOverlayV54 ?? new Uint8Array(0);
message.stringFilterChainV54 = (object.stringFilterChainV54 !== undefined && object.stringFilterChainV54 !== null)
          ? TraceConfig_TraceFilter_StringFilterChain.fromPartial(object.stringFilterChainV54)
          : undefined;
return message;
}
            };

function createBaseTraceConfig_TraceFilter_StringFilterRule(): TraceConfig_TraceFilter_StringFilterRule {
      return { policy: 0,regexPattern: "",atracePayloadStartsWith: "",name: "",semanticType: [] };
    }

export const TraceConfig_TraceFilter_StringFilterRule: MessageFns<TraceConfig_TraceFilter_StringFilterRule> = {
              encode(
      message: TraceConfig_TraceFilter_StringFilterRule,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.policy !== undefined  && message.policy !== 0) {
          writer.uint32(8).int32(message.policy);
        }
if (message.regexPattern !== undefined  && message.regexPattern !== "") {
          writer.uint32(18).string(message.regexPattern);
        }
if (message.atracePayloadStartsWith !== undefined  && message.atracePayloadStartsWith !== "") {
          writer.uint32(26).string(message.atracePayloadStartsWith);
        }
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(34).string(message.name);
        }
if (message.semanticType !== undefined && message.semanticType.length !== 0) {
              
          for (const v of message.semanticType) {
            writer.uint32(40).int32(v!);
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_TraceFilter_StringFilterRule {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_TraceFilter_StringFilterRule();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.policy = reader.int32() as any;
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
        message.regexPattern = reader.string();
continue; }
case 3: {
if (tag !== 26) {
        break;
      }
    
        message.atracePayloadStartsWith = reader.string();
continue; }
case 4: {
if (tag !== 34) {
        break;
      }
    
        message.name = reader.string();
continue; }
case 5: {
if (tag === 40) {
              
              message.semanticType!.push(reader.int32() as any);

              continue;
            }

            if (tag === 42) {
              
              const end2 = reader.uint32() + reader.pos;
              while (reader.pos < end2) {
                message.semanticType!.push(reader.int32() as any);
              }

              continue;
            }

            break;
          }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_TraceFilter_StringFilterRule {
      return {
policy: isSet(object.policy)
          ? traceConfig_TraceFilter_StringFilterPolicyFromJSON(object.policy)
          : 0,
regexPattern: isSet(object.regexPattern)
          ? globalThis.String(object.regexPattern)
          : "",
atracePayloadStartsWith: isSet(object.atracePayloadStartsWith)
          ? globalThis.String(object.atracePayloadStartsWith)
          : "",
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
semanticType: globalThis.Array.isArray(object?.semanticType) ? object.semanticType.map((e: any) => semanticTypeFromJSON(e)): [],
};
},

toJSON(message: TraceConfig_TraceFilter_StringFilterRule): unknown {
      const obj: any = {};
if (message.policy !== undefined  && message.policy !== 0) {
          obj.policy = traceConfig_TraceFilter_StringFilterPolicyToJSON(message.policy);
        }
if (message.regexPattern !== undefined  && message.regexPattern !== "") {
          obj.regexPattern = message.regexPattern;
        }
if (message.atracePayloadStartsWith !== undefined  && message.atracePayloadStartsWith !== "") {
          obj.atracePayloadStartsWith = message.atracePayloadStartsWith;
        }
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
if (message.semanticType?.length) {
          obj.semanticType = message.semanticType.map(e => semanticTypeToJSON(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_TraceFilter_StringFilterRule>, I>>(base?: I): TraceConfig_TraceFilter_StringFilterRule {
        return TraceConfig_TraceFilter_StringFilterRule.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_TraceFilter_StringFilterRule>, I>>(object: I): TraceConfig_TraceFilter_StringFilterRule {
const message = createBaseTraceConfig_TraceFilter_StringFilterRule();
message.policy = object.policy ?? 0;
message.regexPattern = object.regexPattern ?? "";
message.atracePayloadStartsWith = object.atracePayloadStartsWith ?? "";
message.name = object.name ?? "";
message.semanticType = object.semanticType?.map((e) => e) || [];
return message;
}
            };

function createBaseTraceConfig_TraceFilter_StringFilterChain(): TraceConfig_TraceFilter_StringFilterChain {
      return { rules: [] };
    }

export const TraceConfig_TraceFilter_StringFilterChain: MessageFns<TraceConfig_TraceFilter_StringFilterChain> = {
              encode(
      message: TraceConfig_TraceFilter_StringFilterChain,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.rules !== undefined && message.rules.length !== 0) {
              
          for (const v of message.rules) {
            TraceConfig_TraceFilter_StringFilterRule.encode(v!, writer.uint32(10).fork()).join();
          }
        
            }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_TraceFilter_StringFilterChain {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_TraceFilter_StringFilterChain();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
              
              const el = TraceConfig_TraceFilter_StringFilterRule.decode(reader, reader.uint32());
              if (el !== undefined) {
                message.rules!.push(el);
              }
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_TraceFilter_StringFilterChain {
      return {
rules: globalThis.Array.isArray(object?.rules) ? object.rules.map((e: any) => TraceConfig_TraceFilter_StringFilterRule.fromJSON(e)): [],
};
},

toJSON(message: TraceConfig_TraceFilter_StringFilterChain): unknown {
      const obj: any = {};
if (message.rules?.length) {
          obj.rules = message.rules.map(e => TraceConfig_TraceFilter_StringFilterRule.toJSON(e));
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_TraceFilter_StringFilterChain>, I>>(base?: I): TraceConfig_TraceFilter_StringFilterChain {
        return TraceConfig_TraceFilter_StringFilterChain.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_TraceFilter_StringFilterChain>, I>>(object: I): TraceConfig_TraceFilter_StringFilterChain {
const message = createBaseTraceConfig_TraceFilter_StringFilterChain();
message.rules = object.rules?.map((e) => TraceConfig_TraceFilter_StringFilterRule.fromPartial(e)) || [];
return message;
}
            };

function createBaseTraceConfig_AndroidReportConfig(): TraceConfig_AndroidReportConfig {
      return { reporterServicePackage: "",reporterServiceClass: "",skipReport: false,usePipeInFrameworkForTesting: false };
    }

export const TraceConfig_AndroidReportConfig: MessageFns<TraceConfig_AndroidReportConfig> = {
              encode(
      message: TraceConfig_AndroidReportConfig,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.reporterServicePackage !== undefined  && message.reporterServicePackage !== "") {
          writer.uint32(10).string(message.reporterServicePackage);
        }
if (message.reporterServiceClass !== undefined  && message.reporterServiceClass !== "") {
          writer.uint32(18).string(message.reporterServiceClass);
        }
if (message.skipReport !== undefined  && message.skipReport !== false) {
          writer.uint32(24).bool(message.skipReport);
        }
if (message.usePipeInFrameworkForTesting !== undefined  && message.usePipeInFrameworkForTesting !== false) {
          writer.uint32(32).bool(message.usePipeInFrameworkForTesting);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_AndroidReportConfig {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_AndroidReportConfig();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.reporterServicePackage = reader.string();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
        message.reporterServiceClass = reader.string();
continue; }
case 3: {
if (tag !== 24) {
        break;
      }
    
        message.skipReport = reader.bool();
continue; }
case 4: {
if (tag !== 32) {
        break;
      }
    
        message.usePipeInFrameworkForTesting = reader.bool();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_AndroidReportConfig {
      return {
reporterServicePackage: isSet(object.reporterServicePackage)
          ? globalThis.String(object.reporterServicePackage)
          : "",
reporterServiceClass: isSet(object.reporterServiceClass)
          ? globalThis.String(object.reporterServiceClass)
          : "",
skipReport: isSet(object.skipReport)
          ? globalThis.Boolean(object.skipReport)
          : false,
usePipeInFrameworkForTesting: isSet(object.usePipeInFrameworkForTesting)
          ? globalThis.Boolean(object.usePipeInFrameworkForTesting)
          : false,
};
},

toJSON(message: TraceConfig_AndroidReportConfig): unknown {
      const obj: any = {};
if (message.reporterServicePackage !== undefined  && message.reporterServicePackage !== "") {
          obj.reporterServicePackage = message.reporterServicePackage;
        }
if (message.reporterServiceClass !== undefined  && message.reporterServiceClass !== "") {
          obj.reporterServiceClass = message.reporterServiceClass;
        }
if (message.skipReport !== undefined  && message.skipReport !== false) {
          obj.skipReport = message.skipReport;
        }
if (message.usePipeInFrameworkForTesting !== undefined  && message.usePipeInFrameworkForTesting !== false) {
          obj.usePipeInFrameworkForTesting = message.usePipeInFrameworkForTesting;
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_AndroidReportConfig>, I>>(base?: I): TraceConfig_AndroidReportConfig {
        return TraceConfig_AndroidReportConfig.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_AndroidReportConfig>, I>>(object: I): TraceConfig_AndroidReportConfig {
const message = createBaseTraceConfig_AndroidReportConfig();
message.reporterServicePackage = object.reporterServicePackage ?? "";
message.reporterServiceClass = object.reporterServiceClass ?? "";
message.skipReport = object.skipReport ?? false;
message.usePipeInFrameworkForTesting = object.usePipeInFrameworkForTesting ?? false;
return message;
}
            };

function createBaseTraceConfig_CmdTraceStartDelay(): TraceConfig_CmdTraceStartDelay {
      return { minDelayMs: 0,maxDelayMs: 0 };
    }

export const TraceConfig_CmdTraceStartDelay: MessageFns<TraceConfig_CmdTraceStartDelay> = {
              encode(
      message: TraceConfig_CmdTraceStartDelay,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.minDelayMs !== undefined  && message.minDelayMs !== 0) {
          writer.uint32(8).uint32(message.minDelayMs);
        }
if (message.maxDelayMs !== undefined  && message.maxDelayMs !== 0) {
          writer.uint32(16).uint32(message.maxDelayMs);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_CmdTraceStartDelay {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_CmdTraceStartDelay();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 8) {
        break;
      }
    
        message.minDelayMs = reader.uint32();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.maxDelayMs = reader.uint32();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_CmdTraceStartDelay {
      return {
minDelayMs: isSet(object.minDelayMs)
          ? globalThis.Number(object.minDelayMs)
          : 0,
maxDelayMs: isSet(object.maxDelayMs)
          ? globalThis.Number(object.maxDelayMs)
          : 0,
};
},

toJSON(message: TraceConfig_CmdTraceStartDelay): unknown {
      const obj: any = {};
if (message.minDelayMs !== undefined  && message.minDelayMs !== 0) {
          obj.minDelayMs = Math.round(message.minDelayMs);
        }
if (message.maxDelayMs !== undefined  && message.maxDelayMs !== 0) {
          obj.maxDelayMs = Math.round(message.maxDelayMs);
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_CmdTraceStartDelay>, I>>(base?: I): TraceConfig_CmdTraceStartDelay {
        return TraceConfig_CmdTraceStartDelay.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_CmdTraceStartDelay>, I>>(object: I): TraceConfig_CmdTraceStartDelay {
const message = createBaseTraceConfig_CmdTraceStartDelay();
message.minDelayMs = object.minDelayMs ?? 0;
message.maxDelayMs = object.maxDelayMs ?? 0;
return message;
}
            };

function createBaseTraceConfig_SessionSemaphore(): TraceConfig_SessionSemaphore {
      return { name: "",maxOtherSessionCount: 0 };
    }

export const TraceConfig_SessionSemaphore: MessageFns<TraceConfig_SessionSemaphore> = {
              encode(
      message: TraceConfig_SessionSemaphore,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.name !== undefined  && message.name !== "") {
          writer.uint32(10).string(message.name);
        }
if (message.maxOtherSessionCount !== undefined  && message.maxOtherSessionCount !== 0) {
          writer.uint32(16).uint64(message.maxOtherSessionCount);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_SessionSemaphore {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_SessionSemaphore();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.name = reader.string();
continue; }
case 2: {
if (tag !== 16) {
        break;
      }
    
        message.maxOtherSessionCount = longToNumber(reader.uint64());
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_SessionSemaphore {
      return {
name: isSet(object.name)
          ? globalThis.String(object.name)
          : "",
maxOtherSessionCount: isSet(object.maxOtherSessionCount)
          ? globalThis.Number(object.maxOtherSessionCount)
          : 0,
};
},

toJSON(message: TraceConfig_SessionSemaphore): unknown {
      const obj: any = {};
if (message.name !== undefined  && message.name !== "") {
          obj.name = message.name;
        }
if (message.maxOtherSessionCount !== undefined  && message.maxOtherSessionCount !== 0) {
          obj.maxOtherSessionCount = Math.round(message.maxOtherSessionCount);
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_SessionSemaphore>, I>>(base?: I): TraceConfig_SessionSemaphore {
        return TraceConfig_SessionSemaphore.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_SessionSemaphore>, I>>(object: I): TraceConfig_SessionSemaphore {
const message = createBaseTraceConfig_SessionSemaphore();
message.name = object.name ?? "";
message.maxOtherSessionCount = object.maxOtherSessionCount ?? 0;
return message;
}
            };

function createBaseTraceConfig_Note(): TraceConfig_Note {
      return { key: "",value: "" };
    }

export const TraceConfig_Note: MessageFns<TraceConfig_Note> = {
              encode(
      message: TraceConfig_Note,
      writer: BinaryWriter = new BinaryWriter(),
    ): BinaryWriter {
if (message.key !== undefined  && message.key !== "") {
          writer.uint32(10).string(message.key);
        }
if (message.value !== undefined  && message.value !== "") {
          writer.uint32(18).string(message.value);
        }
return writer;
},

decode(
      input: BinaryReader | Uint8Array,
      length?: number,
    ): TraceConfig_Note {
      const reader = input instanceof BinaryReader ? input : new BinaryReader(input);
      const end = length === undefined ? reader.len : reader.pos + length;
const message = createBaseTraceConfig_Note();
while (reader.pos < end) {
      const tag = reader.uint32();
      switch (tag >>> 3) {
case 1: {
if (tag !== 10) {
        break;
      }
    
        message.key = reader.string();
continue; }
case 2: {
if (tag !== 18) {
        break;
      }
    
        message.value = reader.string();
continue; }
}
if ((tag & 7) === 4 || tag === 0) {
        break;
      }
reader.skip(tag & 7);
}
return message;
},

fromJSON(object: any): TraceConfig_Note {
      return {
key: isSet(object.key)
          ? globalThis.String(object.key)
          : "",
value: isSet(object.value)
          ? globalThis.String(object.value)
          : "",
};
},

toJSON(message: TraceConfig_Note): unknown {
      const obj: any = {};
if (message.key !== undefined  && message.key !== "") {
          obj.key = message.key;
        }
if (message.value !== undefined  && message.value !== "") {
          obj.value = message.value;
        }
return obj;
},

create<I extends Exact<DeepPartial<TraceConfig_Note>, I>>(base?: I): TraceConfig_Note {
        return TraceConfig_Note.fromPartial(base ?? ({} as any));
      },
fromPartial<I extends Exact<DeepPartial<TraceConfig_Note>, I>>(object: I): TraceConfig_Note {
const message = createBaseTraceConfig_Note();
message.key = object.key ?? "";
message.value = object.value ?? "";
return message;
}
            };



function bytesFromBase64(b64: string): Uint8Array {
        
      const bin = globalThis.atob(b64);
      const arr = new Uint8Array(bin.length);
      for (let i = 0; i < bin.length; ++i) {
          arr[i] = bin.charCodeAt(i);
      }
      return arr;
    
      }

function base64FromBytes(arr: Uint8Array): string {
        
      const bin: string[] = [];
      arr.forEach((byte) => {
        bin.push(globalThis.String.fromCharCode(byte));
      });
      return globalThis.btoa(bin.join(''));
    
      }

type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;

export type DeepPartial<T> =  T extends Builtin
        ? T
        
        : T extends globalThis.Array<infer U>
        ? globalThis.Array<DeepPartial<U>>
        : T extends ReadonlyArray<infer U>
        ? ReadonlyArray<DeepPartial<U>>
        : T extends {}
        ? { [K in keyof T]?: DeepPartial<T[K]> }
        : Partial<T>;

type KeysOfUnion<T> = T extends T ? keyof T : never;
      export type Exact<P, I extends P> = P extends Builtin
        ? P
        : P &
        { [K in keyof P]: Exact<P[K], I[K]> } & { [K in Exclude<keyof I, KeysOfUnion<P> >]: never };















function longToNumber(int64: { toString(): string }): number {
        const num = globalThis.Number(int64.toString());
        if (num > globalThis.Number.MAX_SAFE_INTEGER) {
          throw new globalThis.Error("Value is larger than Number.MAX_SAFE_INTEGER")
        }
        if (num < globalThis.Number.MIN_SAFE_INTEGER) {
          throw new globalThis.Error("Value is smaller than Number.MIN_SAFE_INTEGER")
        }
        return num;
      }





function isSet(value: any): boolean {
      return value !== null && value !== undefined;
    }









export interface MessageFns<T> {
        encode(message: T, writer?: BinaryWriter): BinaryWriter;
decode(input: BinaryReader | Uint8Array, length?: number): T;
fromJSON(object: any): T;
toJSON(message: T): unknown;
create<I extends Exact<DeepPartial<T>, I>>(base?: I): T;
fromPartial<I extends Exact<DeepPartial<T>, I>>(object: I): T;
      }











