text: // This file is automatically generated. Do not edit.
  
  cah.$ = {};
  
  cah.$.GamePlayerStatus = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.GamePlayerStatus.prototype.dummyForAutocomplete = undefined;
  cah.$.GamePlayerStatus.SPECTATOR = "sv";
  cah.$.GamePlayerStatus.WINNER = "sw";
  cah.$.GamePlayerStatus.IDLE = "si";
  cah.$.GamePlayerStatus.HOST = "sh";
  cah.$.GamePlayerStatus.JUDGING = "sjj";
  cah.$.GamePlayerStatus.JUDGE = "sj";
  cah.$.GamePlayerStatus.PLAYING = "sp";
  cah.$.GamePlayerStatus_msg = {};
  cah.$.GamePlayerStatus_msg['sjj'] = "Selecting";
  cah.$.GamePlayerStatus_msg['sv'] = "Spectator";
  cah.$.GamePlayerStatus_msg['sw'] = "Winner!";
  cah.$.GamePlayerStatus_msg['sh'] = "Host";
  cah.$.GamePlayerStatus_msg['si'] = "";
  cah.$.GamePlayerStatus_msg['sj'] = "Card Czar";
  cah.$.GamePlayerStatus_msg['sp'] = "Playing";
  cah.$.GamePlayerStatus_msg_2 = {};
  cah.$.GamePlayerStatus_msg_2['sjj'] = "Select a winning card.";
  cah.$.GamePlayerStatus_msg_2['sv'] = "You are just spectating.";
  cah.$.GamePlayerStatus_msg_2['sw'] = "You have won!";
  cah.$.GamePlayerStatus_msg_2['sh'] = "Wait for players then click Start Game.";
  cah.$.GamePlayerStatus_msg_2['si'] = "Waiting for players...";
  cah.$.GamePlayerStatus_msg_2['sj'] = "You are the Card Czar.";
  cah.$.GamePlayerStatus_msg_2['sp'] = "Select a card to play.";
  
  cah.$.GamePlayerInfo = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.GamePlayerInfo.prototype.dummyForAutocomplete = undefined;
  cah.$.GamePlayerInfo.STATUS = "st";
  cah.$.GamePlayerInfo.SCORE = "sc";
  cah.$.GamePlayerInfo.NAME = "N";
  
  cah.$.GameOptionData = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.GameOptionData.prototype.dummyForAutocomplete = undefined;
  cah.$.GameOptionData.TIMER_MULTIPLIER = "tm";
  cah.$.GameOptionData.PASSWORD = "pw";
  cah.$.GameOptionData.SPECTATOR_LIMIT = "vL";
  cah.$.GameOptionData.SCORE_LIMIT = "sl";
  cah.$.GameOptionData.BLANKS_LIMIT = "bl";
  cah.$.GameOptionData.PLAYER_LIMIT = "pL";
  cah.$.GameOptionData.CARD_SETS = "css";
  
  cah.$.GameInfo = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.GameInfo.prototype.dummyForAutocomplete = undefined;
  cah.$.GameInfo.GAME_OPTIONS = "go";
  cah.$.GameInfo.CREATED = "gca";
  cah.$.GameInfo.PLAYERS = "P";
  cah.$.GameInfo.SPECTATORS = "V";
  cah.$.GameInfo.HOST = "H";
  cah.$.GameInfo.STATE = "S";
  cah.$.GameInfo.ID = "gid";
  cah.$.GameInfo.HAS_PASSWORD = "hp";
  
  cah.$.GameState = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.GameState.prototype.dummyForAutocomplete = undefined;
  cah.$.GameState.ROUND_OVER = "ro";
  cah.$.GameState.LOBBY = "l";
  cah.$.GameState.JUDGING = "j";
  cah.$.GameState.PLAYING = "p";
  cah.$.GameState_msg = {};
  cah.$.GameState_msg['p'] = "In Progress";
  cah.$.GameState_msg['j'] = "In Progress";
  cah.$.GameState_msg['l'] = "Not Started";
  cah.$.GameState_msg['ro'] = "In Progress";
  
  cah.$.CardSetData = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.CardSetData.prototype.dummyForAutocomplete = undefined;
  cah.$.CardSetData.WHITE_CARDS_IN_DECK = "wcid";
  cah.$.CardSetData.BLACK_CARDS_IN_DECK = "bcid";
  cah.$.CardSetData.CARD_SET_NAME = "csn";
  cah.$.CardSetData.CARD_SET_DESCRIPTION = "csd";
  cah.$.CardSetData.BASE_DECK = "bd";
  cah.$.CardSetData.ID = "cid";
  cah.$.CardSetData.WEIGHT = "w";
  
  cah.$.BlackCardData = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.BlackCardData.prototype.dummyForAutocomplete = undefined;
  cah.$.BlackCardData.DRAW = "D";
  cah.$.BlackCardData.PICK = "PK";
  cah.$.BlackCardData.TEXT = "T";
  cah.$.BlackCardData.ID = "cid";
  cah.$.BlackCardData.WATERMARK = "W";
  
  cah.$.WhiteCardData = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.WhiteCardData.prototype.dummyForAutocomplete = undefined;
  cah.$.WhiteCardData.WRITE_IN = "wi";
  cah.$.WhiteCardData.TEXT = "T";
  cah.$.WhiteCardData.ID = "cid";
  cah.$.WhiteCardData.WATERMARK = "W";
  
  cah.$.Sigil = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.Sigil.prototype.dummyForAutocomplete = undefined;
  cah.$.Sigil.NORMAL_USER = "";
  cah.$.Sigil.ADMIN = "@";
  cah.$.Sigil.ID_CODE = "+";
  
  cah.$.LongPollResponse = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.LongPollResponse.prototype.dummyForAutocomplete = undefined;
  cah.$.LongPollResponse.PLAY_TIMER = "Pt";
  cah.$.LongPollResponse.PLAYER_INFO = "pi";
  cah.$.LongPollResponse.FROM = "f";
  cah.$.LongPollResponse.WHITE_CARDS = "wc";
  cah.$.LongPollResponse.EVENT = "E";
  cah.$.LongPollResponse.HAND = "h";
  cah.$.LongPollResponse.ERROR_CODE = "ec";
  cah.$.LongPollResponse.MESSAGE = "m";
  cah.$.LongPollResponse.WINNING_CARD = "WC";
  cah.$.LongPollResponse.FROM_ADMIN = "fa";
  cah.$.LongPollResponse.TIMESTAMP = "ts";
  cah.$.LongPollResponse.GAME_INFO = "gi";
  cah.$.LongPollResponse.ERROR = "e";
  cah.$.LongPollResponse.ID_CODE = "idc";
  cah.$.LongPollResponse.REASON = "qr";
  cah.$.LongPollResponse.WALL = "wall";
  cah.$.LongPollResponse.ROUND_WINNER = "rw";
  cah.$.LongPollResponse.SIGIL = "?";
  cah.$.LongPollResponse.EMOTE = "me";
  cah.$.LongPollResponse.CARDCAST_DECK_INFO = "cdi";
  cah.$.LongPollResponse.GAME_ID = "gid";
  cah.$.LongPollResponse.ROUND_PERMALINK = "rP";
  cah.$.LongPollResponse.NICKNAME = "n";
  cah.$.LongPollResponse.BLACK_CARD = "bc";
  cah.$.LongPollResponse.GAME_PERMALINK = "gp";
  cah.$.LongPollResponse.GAME_STATE = "gs";
  cah.$.LongPollResponse.INTERMISSION = "i";
  
  cah.$.LongPollEvent = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.LongPollEvent.prototype.dummyForAutocomplete = undefined;
  cah.$.LongPollEvent.GAME_ROUND_COMPLETE = "grc";
  cah.$.LongPollEvent.BANNED = "B&";
  cah.$.LongPollEvent.NOOP = "_";
  cah.$.LongPollEvent.CHAT = "c";
  cah.$.LongPollEvent.GAME_PLAYER_INFO_CHANGE = "gpic";
  cah.$.LongPollEvent.HAND_DEAL = "hd";
  cah.$.LongPollEvent.CARDCAST_ADD_CARDSET = "cac";
  cah.$.LongPollEvent.PLAYER_LEAVE = "pl";
  cah.$.LongPollEvent.GAME_BLACK_RESHUFFLE = "gbr";
  cah.$.LongPollEvent.GAME_JUDGE_SKIPPED = "gjs";
  cah.$.LongPollEvent.GAME_LIST_REFRESH = "glr";
  cah.$.LongPollEvent.NEW_PLAYER = "np";
  cah.$.LongPollEvent.GAME_PLAYER_SKIPPED = "gps";
  cah.$.LongPollEvent.GAME_PLAYER_JOIN = "gpj";
  cah.$.LongPollEvent.GAME_WHITE_RESHUFFLE = "gwr";
  cah.$.LongPollEvent.CARDCAST_REMOVE_CARDSET = "crc";
  cah.$.LongPollEvent.GAME_OPTIONS_CHANGED = "goc";
  cah.$.LongPollEvent.GAME_PLAYER_KICKED_IDLE = "gpki";
  cah.$.LongPollEvent.GAME_SPECTATOR_LEAVE = "gvl";
  cah.$.LongPollEvent.GAME_PLAYER_LEAVE = "gpl";
  cah.$.LongPollEvent.GAME_SPECTATOR_JOIN = "gvj";
  cah.$.LongPollEvent.HURRY_UP = "hu";
  cah.$.LongPollEvent.GAME_JUDGE_LEFT = "gjl";
  cah.$.LongPollEvent.KICKED = "k";
  cah.$.LongPollEvent.KICKED_FROM_GAME_IDLE = "kfgi";
  cah.$.LongPollEvent.FILTERED_CHAT = "FC";
  cah.$.LongPollEvent.GAME_STATE_CHANGE = "gsc";
  
  cah.$.ErrorCode = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.ErrorCode.prototype.dummyForAutocomplete = undefined;
  cah.$.ErrorCode.INVALID_NICK = "in";
  cah.$.ErrorCode.TOO_MANY_USERS = "tmu";
  cah.$.ErrorCode.NOT_GAME_HOST = "ngh";
  cah.$.ErrorCode.MESSAGE_TOO_LONG = "mtl";
  cah.$.ErrorCode.NO_NICK_SPECIFIED = "nns";
  cah.$.ErrorCode.REPEATED_WORDS = "rW";
  cah.$.ErrorCode.BANNED = "B&";
  cah.$.ErrorCode.WRONG_PASSWORD = "wp";
  cah.$.ErrorCode.RESERVED_NICK = "rn";
  cah.$.ErrorCode.TOO_MANY_GAMES = "tmg";
  cah.$.ErrorCode.INVALID_ID_CODE = "iid";
  cah.$.ErrorCode.CANNOT_JOIN_ANOTHER_GAME = "cjag";
  cah.$.ErrorCode.NO_MSG_SPECIFIED = "nms";
  cah.$.ErrorCode.CAPSLOCK = "CL";
  cah.$.ErrorCode.ALREADY_STARTED = "as";
  cah.$.ErrorCode.NOT_ADMIN = "na";
  cah.$.ErrorCode.INVALID_GAME = "ig";
  cah.$.ErrorCode.NO_SESSION = "ns";
  cah.$.ErrorCode.ACCESS_DENIED = "ad";
  cah.$.ErrorCode.NICK_IN_USE = "niu";
  cah.$.ErrorCode.NOT_JUDGE = "nj";
  cah.$.ErrorCode.SERVER_ERROR = "serr";
  cah.$.ErrorCode.CARDCAST_INVALID_ID = "cii";
  cah.$.ErrorCode.TOO_FAST = "tf";
  cah.$.ErrorCode.NOT_ENOUGH_CARDS = "nec";
  cah.$.ErrorCode.NO_CARD_SPECIFIED = "ncs";
  cah.$.ErrorCode.REPEAT_MESSAGE = "rm";
  cah.$.ErrorCode.NO_GAME_SPECIFIED = "ngs";
  cah.$.ErrorCode.OP_NOT_SPECIFIED = "ons";
  cah.$.ErrorCode.TOO_MANY_SPECIAL_CHARACTERS = "tmsc";
  cah.$.ErrorCode.BAD_REQUEST = "br";
  cah.$.ErrorCode.NOT_ENOUGH_PLAYERS = "nep";
  cah.$.ErrorCode.CARDCAST_CANNOT_FIND = "ccf";
  cah.$.ErrorCode.NOT_IN_THAT_GAME = "nitg";
  cah.$.ErrorCode.NO_SUCH_USER = "nsu";
  cah.$.ErrorCode.NOT_REGISTERED = "nr";
  cah.$.ErrorCode.BAD_OP = "bo";
  cah.$.ErrorCode.DO_NOT_HAVE_CARD = "dnhc";
  cah.$.ErrorCode.NOT_YOUR_TURN = "nyt";
  cah.$.ErrorCode.PLAYED_ALL_CARDS = "pac";
  cah.$.ErrorCode.NOT_ENOUGH_SPACES = "nes";
  cah.$.ErrorCode.ALREADY_STOPPED = "aS";
  cah.$.ErrorCode.SESSION_EXPIRED = "se";
  cah.$.ErrorCode.GAME_FULL = "gf";
  cah.$.ErrorCode.INVALID_CARD = "ic";
  cah.$.ErrorCode_msg = {};
  cah.$.ErrorCode_msg['cii'] = "Invalid Cardcast ID. Must be exactly 5 characters.";
  cah.$.ErrorCode_msg['nr'] = "Not registered. Refresh the page.";
  cah.$.ErrorCode_msg['iid'] = "Identification code, if provided, must be between 8 and 100 characters, inclusive.";
  cah.$.ErrorCode_msg['ns'] = "Session not detected. Make sure you have cookies enabled.";
  cah.$.ErrorCode_msg['ccf'] = "Cannot find Cardcast deck with given ID. If you just added this deck to Cardcast, wait a few minutes and try again.";
  cah.$.ErrorCode_msg['nyt'] = "It is not your turn to play a card.";
  cah.$.ErrorCode_msg['bo'] = "Invalid operation.";
  cah.$.ErrorCode_msg['nec'] = "You must add card sets containing at least 50 black cards and 20 times the player limit white cards.";
  cah.$.ErrorCode_msg['ngh'] = "Only the game host can do that.";
  cah.$.ErrorCode_msg['tmg'] = "There are too many games already in progress. Either join an existing game, or wait for one to become available.";
  cah.$.ErrorCode_msg['br'] = "Bad request.";
  cah.$.ErrorCode_msg['nsu'] = "No such user.";
  cah.$.ErrorCode_msg['aS'] = "The game has already stopped.";
  cah.$.ErrorCode_msg['se'] = "Your session has expired. Refresh the page.";
  cah.$.ErrorCode_msg['pac'] = "You already played all the necessary cards!";
  cah.$.ErrorCode_msg['nms'] = "No message specified.";
  cah.$.ErrorCode_msg['nep'] = "There are not enough players to start the game.";
  cah.$.ErrorCode_msg['wp'] = "That password is incorrect.";
  cah.$.ErrorCode_msg['ic'] = "Invalid card specified.";
  cah.$.ErrorCode_msg['niu'] = "Nickname is already in use.";
  cah.$.ErrorCode_msg['ngs'] = "No game specified.";
  cah.$.ErrorCode_msg['nes'] = "You must use more words in a message that long.";
  cah.$.ErrorCode_msg['nitg'] = "You are not in that game.";
  cah.$.ErrorCode_msg['tmu'] = "There are too many users connected. Either join another server, or wait for a user to disconnect.";
  cah.$.ErrorCode_msg['ig'] = "Invalid game specified.";
  cah.$.ErrorCode_msg['gf'] = "That game is full. Join another.";
  cah.$.ErrorCode_msg['ncs'] = "No card specified.";
  cah.$.ErrorCode_msg['ad'] = "Access denied.";
  cah.$.ErrorCode_msg['cjag'] = "You cannot join another game.";
  cah.$.ErrorCode_msg['B&'] = "Banned.";
  cah.$.ErrorCode_msg['mtl'] = "Messages cannot be longer than 200 characters.";
  cah.$.ErrorCode_msg['in'] = "Nickname must contain only upper and lower case letters, numbers, or underscores, must be 3 to 30 characters long, and must not start with a number.";
  cah.$.ErrorCode_msg['rW'] = "You must use more unique words in your message.";
  cah.$.ErrorCode_msg['serr'] = "An error occurred on the server.";
  cah.$.ErrorCode_msg['CL'] = "Try turning caps lock off.";
  cah.$.ErrorCode_msg['dnhc'] = "You don't have that card.";
  cah.$.ErrorCode_msg['as'] = "The game has already started.";
  cah.$.ErrorCode_msg['nns'] = "No nickname specified.";
  cah.$.ErrorCode_msg['tf'] = "You are chatting too fast. Wait a few seconds and try again.";
  cah.$.ErrorCode_msg['na'] = "You are not an administrator.";
  cah.$.ErrorCode_msg['ons'] = "Operation not specified.";
  cah.$.ErrorCode_msg['rm'] = "You can't repeat the same message multiple times in a row.";
  cah.$.ErrorCode_msg['nj'] = "You are not the judge.";
  cah.$.ErrorCode_msg['rn'] = "That nick is reserved.";
  cah.$.ErrorCode_msg['tmsc'] = "You used too many special characters in that message.";
  
  cah.$.ErrorInformation = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.ErrorInformation.prototype.dummyForAutocomplete = undefined;
  cah.$.ErrorInformation.WHITE_CARDS_PRESENT = "wcp";
  cah.$.ErrorInformation.WHITE_CARDS_REQUIRED = "wcr";
  cah.$.ErrorInformation.BLACK_CARDS_REQUIRED = "bcr";
  cah.$.ErrorInformation.BLACK_CARDS_PRESENT = "bcp";
  
  cah.$.AjaxResponse = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.AjaxResponse.prototype.dummyForAutocomplete = undefined;
  cah.$.AjaxResponse.NAMES = "nl";
  cah.$.AjaxResponse.CLIENT_NAME = "cn";
  cah.$.AjaxResponse.PLAYER_INFO = "pi";
  cah.$.AjaxResponse.CONNECTED_AT = "ca";
  cah.$.AjaxResponse.WHITE_CARDS = "wc";
  cah.$.AjaxResponse.HAND = "h";
  cah.$.AjaxResponse.ERROR_CODE = "ec";
  cah.$.AjaxResponse.GLOBAL_CHAT_ENABLED = "gce";
  cah.$.AjaxResponse.SERVER_STARTED = "SS";
  cah.$.AjaxResponse.NEXT = "next";
  cah.$.AjaxResponse.GAME_INFO = "gi";
  cah.$.AjaxResponse.ERROR = "e";
  cah.$.AjaxResponse.GAME_STATE_DESCRIPTION = "gss";
  cah.$.AjaxResponse.ID_CODE = "idc";
  cah.$.AjaxResponse.CARD_SETS = "css";
  cah.$.AjaxResponse.SERIAL = "s";
  cah.$.AjaxResponse.PERSISTENT_ID = "pid";
  cah.$.AjaxResponse.USER_PERMALINK = "up";
  cah.$.AjaxResponse.GAMES = "gl";
  cah.$.AjaxResponse.SIGIL = "?";
  cah.$.AjaxResponse.GAME_ID = "gid";
  cah.$.AjaxResponse.MAX_GAMES = "mg";
  cah.$.AjaxResponse.IN_PROGRESS = "ip";
  cah.$.AjaxResponse.GAME_OPTIONS = "go";
  cah.$.AjaxResponse.NICKNAME = "n";
  cah.$.AjaxResponse.BLACK_CARD = "bc";
  cah.$.AjaxResponse.GAME_PERMALINK = "gp";
  cah.$.AjaxResponse.IDLE = "idl";
  cah.$.AjaxResponse.CARD_ID = "cid";
  cah.$.AjaxResponse.IP_ADDRESS = "IP";
  cah.$.AjaxResponse.SESSION_PERMALINK = "sP";
  
  cah.$.AjaxRequest = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.AjaxRequest.prototype.dummyForAutocomplete = undefined;
  cah.$.AjaxRequest.SERIAL = "s";
  cah.$.AjaxRequest.OP = "o";
  cah.$.AjaxRequest.WALL = "wall";
  cah.$.AjaxRequest.PERSISTENT_ID = "pid";
  cah.$.AjaxRequest.EMOTE = "me";
  cah.$.AjaxRequest.CARDCAST_ID = "cci";
  cah.$.AjaxRequest.GAME_ID = "gid";
  cah.$.AjaxRequest.GAME_OPTIONS = "go";
  cah.$.AjaxRequest.MESSAGE = "m";
  cah.$.AjaxRequest.NICKNAME = "n";
  cah.$.AjaxRequest.PASSWORD = "pw";
  cah.$.AjaxRequest.CARD_ID = "cid";
  cah.$.AjaxRequest.ID_CODE = "idc";
  
  cah.$.AjaxOperation = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.AjaxOperation.prototype.dummyForAutocomplete = undefined;
  cah.$.AjaxOperation.NAMES = "gn";
  cah.$.AjaxOperation.SCORE = "SC";
  cah.$.AjaxOperation.LEAVE_GAME = "lg";
  cah.$.AjaxOperation.JOIN_GAME = "jg";
  cah.$.AjaxOperation.CHAT = "c";
  cah.$.AjaxOperation.GAME_LIST = "ggl";
  cah.$.AjaxOperation.CARDCAST_ADD_CARDSET = "cac";
  cah.$.AjaxOperation.CARDCAST_LIST_CARDSETS = "clc";
  cah.$.AjaxOperation.PLAY_CARD = "pc";
  cah.$.AjaxOperation.CHANGE_GAME_OPTIONS = "cgo";
  cah.$.AjaxOperation.GET_GAME_INFO = "ggi";
  cah.$.AjaxOperation.GET_CARDS = "gc";
  cah.$.AjaxOperation.ADMIN_SET_VERBOSE_LOG = "svl";
  cah.$.AjaxOperation.REGISTER = "r";
  cah.$.AjaxOperation.CARDCAST_REMOVE_CARDSET = "crc";
  cah.$.AjaxOperation.WHOIS = "Wi";
  cah.$.AjaxOperation.KICK = "K";
  cah.$.AjaxOperation.FIRST_LOAD = "fl";
  cah.$.AjaxOperation.START_GAME = "sg";
  cah.$.AjaxOperation.LOG_OUT = "lo";
  cah.$.AjaxOperation.BAN = "b";
  cah.$.AjaxOperation.CREATE_GAME = "cg";
  cah.$.AjaxOperation.STOP_GAME = "Sg";
  cah.$.AjaxOperation.GAME_CHAT = "GC";
  cah.$.AjaxOperation.SPECTATE_GAME = "vg";
  cah.$.AjaxOperation.JUDGE_SELECT = "js";
  
  cah.$.ReconnectNextAction = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.ReconnectNextAction.prototype.dummyForAutocomplete = undefined;
  cah.$.ReconnectNextAction.GAME = "game";
  cah.$.ReconnectNextAction.NONE = "none";
  
  cah.$.DisconnectReason = function () {
      // Dummy constructor to make Eclipse auto-complete.
  };
  cah.$.DisconnectReason.prototype.dummyForAutocomplete = undefined;
  cah.$.DisconnectReason.PING_TIMEOUT = "pt";
  cah.$.DisconnectReason.BANNED = "B&";
  cah.$.DisconnectReason.IDLE_TIMEOUT = "it";
  cah.$.DisconnectReason.KICKED = "k";
  cah.$.DisconnectReason.MANUAL = "man";
  cah.$.DisconnectReason_msg = {};
  cah.$.DisconnectReason_msg['B&'] = "Banned";
  cah.$.DisconnectReason_msg['pt'] = "Ping timeout";
  cah.$.DisconnectReason_msg['it'] = "Kicked due to idle";
  cah.$.DisconnectReason_msg['k'] = "Kicked by server administrator";
  cah.$.DisconnectReason_msg['man'] = "Leaving";
  
  