/* Do not modify this file -- it is automatically generated! */

#include "debugtools.h"

#define DEBUG_CLASS_COUNT __DBCL_COUNT

#ifdef DEBUG_RUNTIME

const char * const debug_cl_name[] = { "fixme", "err", "warn", "trace" };

int dbch_accel = 0;
int dbch_advapi = 1;
int dbch_animate = 2;
int dbch_aspi = 3;
int dbch_atom = 4;
int dbch_avifile = 5;
int dbch_bitblt = 6;
int dbch_bitmap = 7;
int dbch_caret = 8;
int dbch_cdaudio = 9;
int dbch_class = 10;
int dbch_clipboard = 11;
int dbch_clipping = 12;
int dbch_combo = 13;
int dbch_comboex = 14;
int dbch_comm = 15;
int dbch_commctrl = 16;
int dbch_commdlg = 17;
int dbch_console = 18;
int dbch_crtdll = 19;
int dbch_cursor = 20;
int dbch_datetime = 21;
int dbch_dc = 22;
int dbch_dde = 23;
int dbch_ddeml = 24;
int dbch_ddraw = 25;
int dbch_debug = 26;
int dbch_delayhlp = 27;
int dbch_dialog = 28;
int dbch_dinput = 29;
int dbch_dll = 30;
int dbch_dosfs = 31;
int dbch_dosmem = 32;
int dbch_dplay = 33;
int dbch_driver = 34;
int dbch_dsound = 35;
int dbch_edit = 36;
int dbch_elfdll = 37;
int dbch_enhmetafile = 38;
int dbch_event = 39;
int dbch_exec = 40;
int dbch_file = 41;
int dbch_fixup = 42;
int dbch_font = 43;
int dbch_gdi = 44;
int dbch_global = 45;
int dbch_graphics = 46;
int dbch_header = 47;
int dbch_heap = 48;
int dbch_hook = 49;
int dbch_hotkey = 50;
int dbch_icon = 51;
int dbch_imagehlp = 52;
int dbch_imagelist = 53;
int dbch_imm = 54;
int dbch_int = 55;
int dbch_int10 = 56;
int dbch_int16 = 57;
int dbch_int17 = 58;
int dbch_int19 = 59;
int dbch_int21 = 60;
int dbch_int31 = 61;
int dbch_io = 62;
int dbch_ipaddress = 63;
int dbch_key = 64;
int dbch_keyboard = 65;
int dbch_ldt = 66;
int dbch_listbox = 67;
int dbch_listview = 68;
int dbch_local = 69;
int dbch_mci = 70;
int dbch_mcianim = 71;
int dbch_mciavi = 72;
int dbch_mcimidi = 73;
int dbch_mciwave = 74;
int dbch_mdi = 75;
int dbch_menu = 76;
int dbch_message = 77;
int dbch_metafile = 78;
int dbch_midi = 79;
int dbch_mmaux = 80;
int dbch_mmio = 81;
int dbch_mmsys = 82;
int dbch_mmtime = 83;
int dbch_module = 84;
int dbch_monthcal = 85;
int dbch_mpr = 86;
int dbch_msacm = 87;
int dbch_msg = 88;
int dbch_msvideo = 89;
int dbch_nativefont = 90;
int dbch_nonclient = 91;
int dbch_ntdll = 92;
int dbch_ole = 93;
int dbch_pager = 94;
int dbch_palette = 95;
int dbch_pidl = 96;
int dbch_print = 97;
int dbch_process = 98;
int dbch_profile = 99;
int dbch_progress = 100;
int dbch_prop = 101;
int dbch_propsheet = 102;
int dbch_psapi = 103;
int dbch_psdrv = 104;
int dbch_ras = 105;
int dbch_rebar = 106;
int dbch_reg = 107;
int dbch_region = 108;
int dbch_relay = 109;
int dbch_resource = 110;
int dbch_scroll = 111;
int dbch_security = 112;
int dbch_segment = 113;
int dbch_selector = 114;
int dbch_sem = 115;
int dbch_sendmsg = 116;
int dbch_server = 117;
int dbch_shell = 118;
int dbch_shm = 119;
int dbch_snoop = 120;
int dbch_sound = 121;
int dbch_static = 122;
int dbch_statusbar = 123;
int dbch_stress = 124;
int dbch_string = 125;
int dbch_syscolor = 126;
int dbch_system = 127;
int dbch_tab = 128;
int dbch_tapi = 129;
int dbch_task = 130;
int dbch_text = 131;
int dbch_thread = 132;
int dbch_thunk = 133;
int dbch_timer = 134;
int dbch_toolbar = 135;
int dbch_toolhelp = 136;
int dbch_tooltips = 137;
int dbch_trackbar = 138;
int dbch_treeview = 139;
int dbch_ttydrv = 140;
int dbch_tweak = 141;
int dbch_updown = 142;
int dbch_ver = 143;
int dbch_virtual = 144;
int dbch_vxd = 145;
int dbch_wave = 146;
int dbch_win = 147;
int dbch_win16drv = 148;
int dbch_win32 = 149;
int dbch_wing = 150;
int dbch_winsock = 151;
int dbch_wnet = 152;
int dbch_x11 = 153;
int dbch_x11drv = 154;

#define DEBUG_CHANNEL_COUNT 155

char debug_msg_enabled[DEBUG_CHANNEL_COUNT][DEBUG_CLASS_COUNT] = {
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0},
{1, 1, 0, 0}
};

const char * const debug_ch_name[DEBUG_CHANNEL_COUNT] = {
"accel",
"advapi",
"animate",
"aspi",
"atom",
"avifile",
"bitblt",
"bitmap",
"caret",
"cdaudio",
"class",
"clipboard",
"clipping",
"combo",
"comboex",
"comm",
"commctrl",
"commdlg",
"console",
"crtdll",
"cursor",
"datetime",
"dc",
"dde",
"ddeml",
"ddraw",
"debug",
"delayhlp",
"dialog",
"dinput",
"dll",
"dosfs",
"dosmem",
"dplay",
"driver",
"dsound",
"edit",
"elfdll",
"enhmetafile",
"event",
"exec",
"file",
"fixup",
"font",
"gdi",
"global",
"graphics",
"header",
"heap",
"hook",
"hotkey",
"icon",
"imagehlp",
"imagelist",
"imm",
"int",
"int10",
"int16",
"int17",
"int19",
"int21",
"int31",
"io",
"ipaddress",
"key",
"keyboard",
"ldt",
"listbox",
"listview",
"local",
"mci",
"mcianim",
"mciavi",
"mcimidi",
"mciwave",
"mdi",
"menu",
"message",
"metafile",
"midi",
"mmaux",
"mmio",
"mmsys",
"mmtime",
"module",
"monthcal",
"mpr",
"msacm",
"msg",
"msvideo",
"nativefont",
"nonclient",
"ntdll",
"ole",
"pager",
"palette",
"pidl",
"print",
"process",
"profile",
"progress",
"prop",
"propsheet",
"psapi",
"psdrv",
"ras",
"rebar",
"reg",
"region",
"relay",
"resource",
"scroll",
"security",
"segment",
"selector",
"sem",
"sendmsg",
"server",
"shell",
"shm",
"snoop",
"sound",
"static",
"statusbar",
"stress",
"string",
"syscolor",
"system",
"tab",
"tapi",
"task",
"text",
"thread",
"thunk",
"timer",
"toolbar",
"toolhelp",
"tooltips",
"trackbar",
"treeview",
"ttydrv",
"tweak",
"updown",
"ver",
"virtual",
"vxd",
"wave",
"win",
"win16drv",
"win32",
"wing",
"winsock",
"wnet",
"x11",
"x11drv"
};

#endif /*DEBUG_RUNTIME*/

/* end of automatically generated debug.h */
