//# 8 errors, 1,821 messages
//#
/*
    //#Query.java:1:1: class: com.dmdirc.Query
    //#Query.java:1:1: method: com.dmdirc.Query.com.dmdirc.Query__static_init
 * Copyright (c) 2006-2009 Chris Smith, Shane Mc Cormack, Gregory Holmes
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

package com.dmdirc;

import com.dmdirc.actions.ActionManager;
import com.dmdirc.actions.CoreActionType;
import com.dmdirc.commandparser.CommandManager;
import com.dmdirc.commandparser.CommandType;
import com.dmdirc.logger.ErrorLevel;
import com.dmdirc.logger.Logger;
import com.dmdirc.parser.irc.ClientInfo;
import com.dmdirc.parser.irc.IRCParser;
import com.dmdirc.parser.irc.callbacks.CallbackManager;
import com.dmdirc.parser.irc.callbacks.CallbackNotFoundException;
import com.dmdirc.parser.irc.callbacks.interfaces.INickChanged;
import com.dmdirc.parser.irc.callbacks.interfaces.IPrivateAction;
import com.dmdirc.parser.irc.callbacks.interfaces.IPrivateMessage;
import com.dmdirc.parser.irc.callbacks.interfaces.IQuit;
import com.dmdirc.ui.WindowManager;
import com.dmdirc.ui.input.TabCompleter;
import com.dmdirc.ui.input.TabCompletionType;
import com.dmdirc.ui.interfaces.InputWindow;
import com.dmdirc.ui.interfaces.QueryWindow;

import java.awt.Toolkit;
import java.io.Serializable;

/**
 * The Query class represents the client's view of a query with another user.
 * It handles callbacks for query events from the parser, maintains the
 * corresponding QueryWindow, and handles user input for the query.
 * @author chris
 */
public final class Query extends MessageTarget implements
    //#Query.java:54: method: Window com.dmdirc.Query.getFrame()
    //#input(Window getFrame()): this
    //#input(Window getFrame()): this.window
    //#output(Window getFrame()): return_value
    //#pre[2] (Window getFrame()): init'ed(this.window)
    //#post(Window getFrame()): return_value == this.window
    //#post(Window getFrame()): init'ed(return_value)
    //#Query.java:54: end of method: Window com.dmdirc.Query.getFrame()
        IPrivateAction, IPrivateMessage, INickChanged, IQuit, Serializable {

    /**
     * A version number for this class. It should be changed whenever the class
     * structure is changed (or anything else that would prevent serialized
     * objects being unserialized with the new class).
     */
    private static final long serialVersionUID = 1;

    /** The Server this Query is on. */
    private Server server;

    /** The QueryWindow used for this Query. */
    private QueryWindow window;

    /** The full host of the client associated with this Query. */
    private String host;

    /** The tab completer for the query window. */
    private final TabCompleter tabCompleter;

    /**
     * Creates a new instance of Query.
     *
     * @param newHost host of the remove client
     * @param newServer The server object that this Query belongs to
     */
    public Query(final Server newServer, final String newHost) {
        super("query", newServer.getConfigManager());
    //#Query.java:83: method: void com.dmdirc.Query.com.dmdirc.Query(Server, String)
    //#Query.java:83: Warning: method not available - call not analyzed
    //#    call on ConfigManager com.dmdirc.Server:getConfigManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void com.dmdirc.Query(Server, String)
    //#    unanalyzed callee: ConfigManager com.dmdirc.Server:getConfigManager()
    //#Query.java:83: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.Query
    //#    method: void com.dmdirc.Query(Server, String)
    //#    suspicious precondition index: [12]
    //#    Attribs:  Soft
    //#input(void com.dmdirc.Query(Server, String)): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.Query(Server, String)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#61).__Tag
    //#input(void com.dmdirc.Query(Server, String)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#61).type
    //#input(void com.dmdirc.Query(Server, String)): com.dmdirc.actions.metatypes.QueryEvents__static_init.new QueryEvents(QueryEvents__static_init#1).__Tag
    //#input(void com.dmdirc.Query(Server, String)): com.dmdirc.commandparser.CommandType.TYPE_CHAT
    //#input(void com.dmdirc.Query(Server, String)): com.dmdirc.commandparser.CommandType.TYPE_QUERY
    //#input(void com.dmdirc.Query(Server, String)): com.dmdirc.logger.ErrorLevel.HIGH
    //#input(void com.dmdirc.Query(Server, String)): com.dmdirc.ui.input.TabCompletionType.COMMAND
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/Channel.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/CustomWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Channel]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/FrameContainer]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/MessageTarget]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Raw]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Server]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/WritableFrameContainer]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCChatWindow]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCFrame]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCPlugin$3]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCSendWindow]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.__Descendant_Table[others]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/FrameContainer.java.awt.Color.BLACK
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/GlobalWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/Main.controller
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/MessageTarget.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/Raw.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/Server.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/InputWindow;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/Server.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/Server.__Dispatch_Table.getTabCompleter()Lcom/dmdirc/ui/input/TabCompleter;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/WritableFrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/ActionManager.killSwitch
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/ActionManager.listeners
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/CoreActionType.QUERY_OPENED
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/CoreActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionMetaType]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ActionEvents]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ChannelEvents]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ClientEvents]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/PluginEvents]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/QueryEvents]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ServerEvents]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCEvents]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[others]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Dispatch_Table.getArity()I
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/CoreActionType]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionType]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCActions]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[others]
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/interfaces/ActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/metatypes/ActionEvents.__Dispatch_Table.getArity()I
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/metatypes/ChannelEvents.__Dispatch_Table.getArity()I
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/metatypes/ClientEvents.__Dispatch_Table.getArity()I
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/metatypes/PluginEvents.__Dispatch_Table.getArity()I
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/metatypes/QueryEvents.__Dispatch_Table.getArity()I
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/actions/metatypes/ServerEvents.__Dispatch_Table.getArity()I
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/addons/dcc/actions/DCCActions.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void com.dmdirc.Query(Server, String)): com/dmdirc/addons/dcc/actions/DCCEvents.__Dispatch_Table.getArity()I
    //#input(void com.dmdirc.Query(Server, String)): newHost
    //#input(void com.dmdirc.Query(Server, String)): newServer
    //#input(void com.dmdirc.Query(Server, String)): newServer.__Tag
    //#input(void com.dmdirc.Query(Server, String)): newServer.parser
    //#input(void com.dmdirc.Query(Server, String)): newServer.tabCompleter
    //#input(void com.dmdirc.Query(Server, String)): newServer.window
    //#input(void com.dmdirc.Query(Server, String)): this
    //#input(void com.dmdirc.Query(Server, String)): this.__Tag
    //#output(void com.dmdirc.Query(Server, String)): com/dmdirc/ServerManager.me
    //#output(void com.dmdirc.Query(Server, String)): new ArrayList(ServerManager#1) num objects
    //#output(void com.dmdirc.Query(Server, String)): new FrameContainer$IconChanger(FrameContainer#2) num objects
    //#output(void com.dmdirc.Query(Server, String)): new FrameContainer$IconChanger(FrameContainer#2).__Tag
    //#output(void com.dmdirc.Query(Server, String)): new FrameContainer$IconChanger(FrameContainer#2).this$0
    //#output(void com.dmdirc.Query(Server, String)): new ListenerList(FrameContainer#1) num objects
    //#output(void com.dmdirc.Query(Server, String)): new ListenerList(FrameContainer#1).__Lock
    //#output(void com.dmdirc.Query(Server, String)): new ServerManager(getServerManager#1) num objects
    //#output(void com.dmdirc.Query(Server, String)): new ServerManager(getServerManager#1).__Tag
    //#output(void com.dmdirc.Query(Server, String)): new ServerManager(getServerManager#1).servers
    //#output(void com.dmdirc.Query(Server, String)): new TabCompleter(Query#2) num objects
    //#output(void com.dmdirc.Query(Server, String)): this.__Tag
    //#output(void com.dmdirc.Query(Server, String)): this.changer
    //#output(void com.dmdirc.Query(Server, String)): this.config
    //#output(void com.dmdirc.Query(Server, String)): this.host
    //#output(void com.dmdirc.Query(Server, String)): this.icon
    //#output(void com.dmdirc.Query(Server, String)): this.listeners
    //#output(void com.dmdirc.Query(Server, String)): this.notification
    //#output(void com.dmdirc.Query(Server, String)): this.server
    //#output(void com.dmdirc.Query(Server, String)): this.tabCompleter
    //#output(void com.dmdirc.Query(Server, String)): this.window
    //#new obj(void com.dmdirc.Query(Server, String)): new ArrayList(ServerManager#1)
    //#new obj(void com.dmdirc.Query(Server, String)): new FrameContainer$IconChanger(FrameContainer#2)
    //#new obj(void com.dmdirc.Query(Server, String)): new ListenerList(FrameContainer#1)
    //#new obj(void com.dmdirc.Query(Server, String)): new ServerManager(getServerManager#1)
    //#new obj(void com.dmdirc.Query(Server, String)): new TabCompleter(Query#2)
    //#pre[2] (void com.dmdirc.Query(Server, String)): com/dmdirc/Main.controller != null
    //#pre[4] (void com.dmdirc.Query(Server, String)): init'ed(com/dmdirc/actions/ActionManager.killSwitch)
    //#pre[6] (void com.dmdirc.Query(Server, String)): newServer != null
    //#pre[7] (void com.dmdirc.Query(Server, String)): newServer.__Tag == com/dmdirc/Server
    //#pre[8] (void com.dmdirc.Query(Server, String)): newServer.parser != null
    //#pre[10] (void com.dmdirc.Query(Server, String)): init'ed(newServer.window)
    //#pre[1] (void com.dmdirc.Query(Server, String)): (soft) com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#61).type != null
    //#pre[11] (void com.dmdirc.Query(Server, String)): (soft) init'ed(com/dmdirc/ServerManager.me)
    //#pre[12] (void com.dmdirc.Query(Server, String)): (soft) this.__Tag in {com/dmdirc/Channel, com/dmdirc/CustomWindow, com/dmdirc/FrameContainer, com/dmdirc/GlobalWindow, com/dmdirc/MessageTarget, com/dmdirc/Query, com/dmdirc/Raw, com/dmdirc/Server, com/dmdirc/WritableFrameContainer, com/dmdirc/addons/dcc/DCCChatWindow, com/dmdirc/addons/dcc/DCCFrame, com/dmdirc/addons/dcc/DCCPlugin$3, com/dmdirc/addons/dcc/DCCSendWindow}
    //#presumption(void com.dmdirc.Query(Server, String)): com.dmdirc.Server:getConfigManager(...)@83 != null
    //#presumption(void com.dmdirc.Query(Server, String)): com.dmdirc.Server:getConfigManager(...)@93 != null
    //#presumption(void com.dmdirc.Query(Server, String)): init'ed(com.dmdirc.commandparser.CommandType.TYPE_CHAT)
    //#presumption(void com.dmdirc.Query(Server, String)): init'ed(com.dmdirc.commandparser.CommandType.TYPE_QUERY)
    //#presumption(void com.dmdirc.Query(Server, String)): init'ed(com.dmdirc.ui.input.TabCompletionType.COMMAND)
    //#presumption(void com.dmdirc.Query(Server, String)): com.dmdirc.ui.interfaces.QueryWindow:getInputHandler(...)@102 != null
    //#presumption(void com.dmdirc.Query(Server, String)): com.dmdirc.ui.interfaces.UIController:getQuery(...)@88 != null
    //#presumption(void com.dmdirc.Query(Server, String)): init'ed(com/dmdirc/FrameContainer.java.awt.Color.BLACK)
    //#post(void com.dmdirc.Query(Server, String)): com/dmdirc/ServerManager.me == old com/dmdirc/ServerManager.me
    //#post(void com.dmdirc.Query(Server, String)): this.__Tag == old this.__Tag
    //#post(void com.dmdirc.Query(Server, String)): this.__Tag in {com/dmdirc/Channel, com/dmdirc/CustomWindow, com/dmdirc/FrameContainer, com/dmdirc/GlobalWindow, com/dmdirc/MessageTarget, com/dmdirc/Query, com/dmdirc/Raw, com/dmdirc/Server, com/dmdirc/WritableFrameContainer, com/dmdirc/addons/dcc/DCCChatWindow, com/dmdirc/addons/dcc/DCCFrame, com/dmdirc/addons/dcc/DCCPlugin$3, com/dmdirc/addons/dcc/DCCSendWindow}
    //#post(void com.dmdirc.Query(Server, String)): this.changer == &new FrameContainer$IconChanger(FrameContainer#2)
    //#post(void com.dmdirc.Query(Server, String)): this.config != null
    //#post(void com.dmdirc.Query(Server, String)): this.host == newHost
    //#post(void com.dmdirc.Query(Server, String)): init'ed(this.host)
    //#post(void com.dmdirc.Query(Server, String)): this.icon == &"query"
    //#post(void com.dmdirc.Query(Server, String)): this.listeners == &new ListenerList(FrameContainer#1)
    //#post(void com.dmdirc.Query(Server, String)): this.notification == com/dmdirc/FrameContainer.java.awt.Color.BLACK
    //#post(void com.dmdirc.Query(Server, String)): init'ed(this.notification)
    //#post(void com.dmdirc.Query(Server, String)): this.server == newServer
    //#post(void com.dmdirc.Query(Server, String)): this.server != null
    //#post(void com.dmdirc.Query(Server, String)): this.tabCompleter == &new TabCompleter(Query#2)
    //#post(void com.dmdirc.Query(Server, String)): this.window != null
    //#post(void com.dmdirc.Query(Server, String)): new ArrayList(ServerManager#1) num objects == undefined
    //#post(void com.dmdirc.Query(Server, String)): new ArrayList(ServerManager#1) num objects == 0, if init'ed
    //#post(void com.dmdirc.Query(Server, String)): new ServerManager(getServerManager#1) num objects == new ArrayList(ServerManager#1) num objects
    //#post(void com.dmdirc.Query(Server, String)): new ServerManager(getServerManager#1).__Tag == new ArrayList(ServerManager#1) num objects
    //#post(void com.dmdirc.Query(Server, String)): new FrameContainer$IconChanger(FrameContainer#2) num objects == 1
    //#post(void com.dmdirc.Query(Server, String)): new ListenerList(FrameContainer#1) num objects == 1
    //#post(void com.dmdirc.Query(Server, String)): new TabCompleter(Query#2) num objects == 1
    //#post(void com.dmdirc.Query(Server, String)): new FrameContainer$IconChanger(FrameContainer#2).__Tag == com/dmdirc/FrameContainer$IconChanger
    //#post(void com.dmdirc.Query(Server, String)): new FrameContainer$IconChanger(FrameContainer#2).this$0 == this
    //#post(void com.dmdirc.Query(Server, String)): new FrameContainer$IconChanger(FrameContainer#2).this$0 != null
    //#post(void com.dmdirc.Query(Server, String)): init'ed(new ListenerList(FrameContainer#1).__Lock)
    //#post(void com.dmdirc.Query(Server, String)): new ServerManager(getServerManager#1).servers == undefined
    //#post(void com.dmdirc.Query(Server, String)): new ServerManager(getServerManager#1).servers == null
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.parser.irc.ClientInfo:parseHost
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.ui.interfaces.QueryWindow:setTitle
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:getParser
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.parser.irc.IRCParser:getCallbackManager
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.logger.Logger:appError
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.logger.Logger:assertTrue
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:getType
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.ArrayList:iterator
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:trigger
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:getArity
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.interfaces.ActionListener:processEvent
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:triggerActions
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:getState
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.WritableFrameContainer
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:getUI
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:getFrame
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.actions.ConditionTree$OPERATION:ordinal
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.Deque:pollFirst
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.Character:instanceof
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.Character:charValue
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.Deque:isEmpty
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:readTerm
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.ArrayDeque
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.Deque:pollLast
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.Deque:addFirst
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:parseStack
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.Deque:poll
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.Deque:add
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.Deque:size
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.Integer:parseInt
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.Character:valueOf
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptions
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.StringBuilder:indexOf
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.StringBuilder:replace
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.Map:entrySet
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:[Ljava.lang.String;:instanceof
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.String:instanceof
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.StringBuffer:insert
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:doServerSubstitutions
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:doComponentSubstitutions
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:getServer
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.ServerState:equals
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:getCompatibleComponents
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:get
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:getArgTypes
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:test
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:evaluate
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.ui.interfaces.UIController:getActiveWindow
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:instanceof
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.util.List:get
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.commandparser.parsers.CommandParser:parseCommand
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.StringBuffer:setLength
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.FrameContainer
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.ui.IconManager:getIconManager
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.ui.IconManager:getIcon
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.util.ListenerList:get
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.interfaces.IconChangeListener:iconChanged
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.config.ConfigManager:removeListener
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.config.ConfigManager:addChangeListener
    //#unanalyzed(void com.dmdirc.Query(Server, String)): Effects-of-calling:com.dmdirc.util.ListenerList
    //#test_vector(void com.dmdirc.Query(Server, String)): com.dmdirc.config.ConfigManager:getOptionBool(...)@93: {1}, {0}

        this.server = newServer;
        this.host = newHost;

        window = Main.getUI().getQuery(this);
    //#Query.java:88: Warning: method not available - call not analyzed
    //#    call on QueryWindow com.dmdirc.ui.interfaces.UIController:getQuery(Query)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void com.dmdirc.Query(Server, String)
    //#    unanalyzed callee: QueryWindow com.dmdirc.ui.interfaces.UIController:getQuery(Query)
        WindowManager.addWindow(server.getFrame(), window);
    //#Query.java:89: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.WindowManager:addWindow(Window, Window)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void com.dmdirc.Query(Server, String)
    //#    unanalyzed callee: void com.dmdirc.ui.WindowManager:addWindow(Window, Window)

        ActionManager.processEvent(CoreActionType.QUERY_OPENED, null, this);
    //#Query.java:91: ?!precondition failure
    //#    com/dmdirc/actions/ActionManager.processEvent: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.Query
    //#    method: void com.dmdirc.Query(Server, String)
    //#    basic block: Entry_BB_1
    //#    assertion: (soft) undefined in {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    callee: void com/dmdirc/actions/ActionManager.processEvent(ActionType, StringBuffer, Object[])
    //#    callee assertion: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    callee file: ActionManager.java
    //#    callee precondition index: [29]
    //#    callee srcpos: 365
    //#    VN: undefined
    //#    Expected: {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    Bad: {0, Invalid}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Soft  Bad < Exp

        if (!server.getConfigManager().getOptionBool("general", "hidequeries")) {
    //#Query.java:93: Warning: method not available - call not analyzed
    //#    call on ConfigManager com.dmdirc.Server:getConfigManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void com.dmdirc.Query(Server, String)
    //#    unanalyzed callee: ConfigManager com.dmdirc.Server:getConfigManager()
    //#Query.java:93: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.config.ConfigManager:getOptionBool(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void com.dmdirc.Query(Server, String)
    //#    unanalyzed callee: bool com.dmdirc.config.ConfigManager:getOptionBool(String, String)
            window.open();
    //#Query.java:94: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.interfaces.QueryWindow:open()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void com.dmdirc.Query(Server, String)
    //#    unanalyzed callee: void com.dmdirc.ui.interfaces.QueryWindow:open()
        }

        tabCompleter = new TabCompleter(server.getTabCompleter());
    //#Query.java:97: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.input.TabCompleter(TabCompleter)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void com.dmdirc.Query(Server, String)
    //#    unanalyzed callee: void com.dmdirc.ui.input.TabCompleter(TabCompleter)
        tabCompleter.addEntries(TabCompletionType.COMMAND,
    //#Query.java:98: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.commandparser.CommandManager:getCommandNames(CommandType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void com.dmdirc.Query(Server, String)
    //#    unanalyzed callee: List com.dmdirc.commandparser.CommandManager:getCommandNames(CommandType)
    //#Query.java:98: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.input.TabCompleter:addEntries(TabCompletionType, List)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void com.dmdirc.Query(Server, String)
    //#    unanalyzed callee: void com.dmdirc.ui.input.TabCompleter:addEntries(TabCompletionType, List)
                CommandManager.getCommandNames(CommandType.TYPE_QUERY));
        tabCompleter.addEntries(TabCompletionType.COMMAND,
    //#Query.java:100: Warning: method not available - call not analyzed
    //#    call on List com.dmdirc.commandparser.CommandManager:getCommandNames(CommandType)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void com.dmdirc.Query(Server, String)
    //#    unanalyzed callee: List com.dmdirc.commandparser.CommandManager:getCommandNames(CommandType)
    //#Query.java:100: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.input.TabCompleter:addEntries(TabCompletionType, List)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void com.dmdirc.Query(Server, String)
    //#    unanalyzed callee: void com.dmdirc.ui.input.TabCompleter:addEntries(TabCompletionType, List)
                CommandManager.getCommandNames(CommandType.TYPE_CHAT));
        window.getInputHandler().setTabCompleter(tabCompleter);
    //#Query.java:102: Warning: method not available - call not analyzed
    //#    call on InputHandler com.dmdirc.ui.interfaces.QueryWindow:getInputHandler()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void com.dmdirc.Query(Server, String)
    //#    unanalyzed callee: InputHandler com.dmdirc.ui.interfaces.QueryWindow:getInputHandler()
    //#Query.java:102: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.input.InputHandler:setTabCompleter(TabCompleter)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void com.dmdirc.Query(Server, String)
    //#    unanalyzed callee: void com.dmdirc.ui.input.InputHandler:setTabCompleter(TabCompleter)

        reregister();

        updateTitle();
    }
    //#Query.java:107: end of method: void com.dmdirc.Query.com.dmdirc.Query(Server, String)

    /**
     * Shows this query's window.
     */
    public void show() {
        window.open();
    //#Query.java:113: method: void com.dmdirc.Query.show()
    //#Query.java:113: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.interfaces.QueryWindow:open()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void show()
    //#    unanalyzed callee: void com.dmdirc.ui.interfaces.QueryWindow:open()
    //#input(void show()): this
    //#input(void show()): this.window
    //#pre[2] (void show()): this.window != null
    }
    //#Query.java:114: end of method: void com.dmdirc.Query.show()

    /** {@inheritDoc} */
    @Override
    public InputWindow getFrame() {
        return window;
    //#Query.java:119: method: InputWindow com.dmdirc.Query.getFrame()
    //#input(InputWindow getFrame()): this
    //#input(InputWindow getFrame()): this.window
    //#output(InputWindow getFrame()): return_value
    //#pre[2] (InputWindow getFrame()): init'ed(this.window)
    //#post(InputWindow getFrame()): return_value == this.window
    //#post(InputWindow getFrame()): init'ed(return_value)
    //#Query.java:119: end of method: InputWindow com.dmdirc.Query.getFrame()
    }

    /**
     * Returns the tab completer for this query.
     *
     * @return This query's tab completer
     */
    public TabCompleter getTabCompleter() {
        return tabCompleter;
    //#Query.java:128: method: TabCompleter com.dmdirc.Query.getTabCompleter()
    //#input(TabCompleter getTabCompleter()): this
    //#input(TabCompleter getTabCompleter()): this.tabCompleter
    //#output(TabCompleter getTabCompleter()): return_value
    //#post(TabCompleter getTabCompleter()): return_value == this.tabCompleter
    //#post(TabCompleter getTabCompleter()): init'ed(return_value)
    //#Query.java:128: end of method: TabCompleter com.dmdirc.Query.getTabCompleter()
    }

    /** {@inheritDoc} */
    @Override
    public void sendLine(final String line) {
        if (server.getState() != ServerState.CONNECTED) {
    //#Query.java:134: method: void com.dmdirc.Query.sendLine(String)
    //#input(void sendLine(String)): "querySelfMessage"._tainted
    //#input(void sendLine(String)): __Descendant_Table[com/dmdirc/Query]
    //#input(void sendLine(String)): __Descendant_Table[others]
    //#input(void sendLine(String)): __Dispatch_Table.addLine(Ljava/lang/StringBuffer;[Ljava/lang/Object;)V
    //#input(void sendLine(String)): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendLine(String)): __Dispatch_Table.getMaxLineLength()I
    //#input(void sendLine(String)): __Dispatch_Table.splitLine(Ljava/lang/String;)Ljava/util/List;
    //#input(void sendLine(String)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#65).__Tag
    //#input(void sendLine(String)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#65).type
    //#input(void sendLine(String)): com.dmdirc.actions.metatypes.QueryEvents__static_init.new QueryEvents(QueryEvents__static_init#4).__Tag
    //#input(void sendLine(String)): com/dmdirc/Channel.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendLine(String)): com/dmdirc/Channel.__Dispatch_Table.getMaxLineLength()I
    //#input(void sendLine(String)): com/dmdirc/Channel.__Dispatch_Table.splitLine(Ljava/lang/String;)Ljava/util/List;
    //#input(void sendLine(String)): com/dmdirc/CustomWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendLine(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Channel]
    //#input(void sendLine(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow]
    //#input(void sendLine(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/FrameContainer]
    //#input(void sendLine(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(void sendLine(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/MessageTarget]
    //#input(void sendLine(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#input(void sendLine(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Raw]
    //#input(void sendLine(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Server]
    //#input(void sendLine(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/WritableFrameContainer]
    //#input(void sendLine(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCChatWindow]
    //#input(void sendLine(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCFrame]
    //#input(void sendLine(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCPlugin$3]
    //#input(void sendLine(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCSendWindow]
    //#input(void sendLine(String)): com/dmdirc/FrameContainer.__Descendant_Table[others]
    //#input(void sendLine(String)): com/dmdirc/FrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendLine(String)): com/dmdirc/GlobalWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendLine(String)): com/dmdirc/GlobalWindow.__Dispatch_Table.getMaxLineLength()I
    //#input(void sendLine(String)): com/dmdirc/GlobalWindow.__Dispatch_Table.splitLine(Ljava/lang/String;)Ljava/util/List;
    //#input(void sendLine(String)): com/dmdirc/MessageTarget.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendLine(String)): com/dmdirc/MessageTarget.__Dispatch_Table.getMaxLineLength()I
    //#input(void sendLine(String)): com/dmdirc/MessageTarget.__Dispatch_Table.splitLine(Ljava/lang/String;)Ljava/util/List;
    //#input(void sendLine(String)): com/dmdirc/Raw.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendLine(String)): com/dmdirc/Raw.__Dispatch_Table.getMaxLineLength()I
    //#input(void sendLine(String)): com/dmdirc/Raw.__Dispatch_Table.splitLine(Ljava/lang/String;)Ljava/util/List;
    //#input(void sendLine(String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void sendLine(String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void sendLine(String)): com/dmdirc/Server.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendLine(String)): com/dmdirc/Server.__Dispatch_Table.getMaxLineLength()I
    //#input(void sendLine(String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void sendLine(String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void sendLine(String)): com/dmdirc/Server.__Dispatch_Table.splitLine(Ljava/lang/String;)Ljava/util/List;
    //#input(void sendLine(String)): com/dmdirc/ServerState.CONNECTED
    //#input(void sendLine(String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void sendLine(String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void sendLine(String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void sendLine(String)): com/dmdirc/WritableFrameContainer.__Descendant_Table[com/dmdirc/Channel]
    //#input(void sendLine(String)): com/dmdirc/WritableFrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(void sendLine(String)): com/dmdirc/WritableFrameContainer.__Descendant_Table[com/dmdirc/MessageTarget]
    //#input(void sendLine(String)): com/dmdirc/WritableFrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#input(void sendLine(String)): com/dmdirc/WritableFrameContainer.__Descendant_Table[com/dmdirc/Raw]
    //#input(void sendLine(String)): com/dmdirc/WritableFrameContainer.__Descendant_Table[com/dmdirc/Server]
    //#input(void sendLine(String)): com/dmdirc/WritableFrameContainer.__Descendant_Table[com/dmdirc/WritableFrameContainer]
    //#input(void sendLine(String)): com/dmdirc/WritableFrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCChatWindow]
    //#input(void sendLine(String)): com/dmdirc/WritableFrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCFrame]
    //#input(void sendLine(String)): com/dmdirc/WritableFrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCPlugin$3]
    //#input(void sendLine(String)): com/dmdirc/WritableFrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCSendWindow]
    //#input(void sendLine(String)): com/dmdirc/WritableFrameContainer.__Descendant_Table[others]
    //#input(void sendLine(String)): com/dmdirc/WritableFrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendLine(String)): com/dmdirc/WritableFrameContainer.__Dispatch_Table.getMaxLineLength()I
    //#input(void sendLine(String)): com/dmdirc/WritableFrameContainer.__Dispatch_Table.splitLine(Ljava/lang/String;)Ljava/util/List;
    //#input(void sendLine(String)): com/dmdirc/actions/ActionManager.killSwitch
    //#input(void sendLine(String)): com/dmdirc/actions/ActionManager.listeners
    //#input(void sendLine(String)): com/dmdirc/actions/CoreActionType.QUERY_SELF_MESSAGE
    //#input(void sendLine(String)): com/dmdirc/actions/CoreActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void sendLine(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionMetaType]
    //#input(void sendLine(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ActionEvents]
    //#input(void sendLine(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ChannelEvents]
    //#input(void sendLine(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ClientEvents]
    //#input(void sendLine(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/PluginEvents]
    //#input(void sendLine(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/QueryEvents]
    //#input(void sendLine(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ServerEvents]
    //#input(void sendLine(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCEvents]
    //#input(void sendLine(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[others]
    //#input(void sendLine(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Dispatch_Table.getArity()I
    //#input(void sendLine(String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/CoreActionType]
    //#input(void sendLine(String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionType]
    //#input(void sendLine(String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCActions]
    //#input(void sendLine(String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[others]
    //#input(void sendLine(String)): com/dmdirc/actions/interfaces/ActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void sendLine(String)): com/dmdirc/actions/metatypes/ActionEvents.__Dispatch_Table.getArity()I
    //#input(void sendLine(String)): com/dmdirc/actions/metatypes/ChannelEvents.__Dispatch_Table.getArity()I
    //#input(void sendLine(String)): com/dmdirc/actions/metatypes/ClientEvents.__Dispatch_Table.getArity()I
    //#input(void sendLine(String)): com/dmdirc/actions/metatypes/PluginEvents.__Dispatch_Table.getArity()I
    //#input(void sendLine(String)): com/dmdirc/actions/metatypes/QueryEvents.__Dispatch_Table.getArity()I
    //#input(void sendLine(String)): com/dmdirc/actions/metatypes/ServerEvents.__Dispatch_Table.getArity()I
    //#input(void sendLine(String)): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendLine(String)): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.getMaxLineLength()I
    //#input(void sendLine(String)): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.splitLine(Ljava/lang/String;)Ljava/util/List;
    //#input(void sendLine(String)): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendLine(String)): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.getMaxLineLength()I
    //#input(void sendLine(String)): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.splitLine(Ljava/lang/String;)Ljava/util/List;
    //#input(void sendLine(String)): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendLine(String)): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.getMaxLineLength()I
    //#input(void sendLine(String)): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.splitLine(Ljava/lang/String;)Ljava/util/List;
    //#input(void sendLine(String)): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendLine(String)): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.getMaxLineLength()I
    //#input(void sendLine(String)): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.splitLine(Ljava/lang/String;)Ljava/util/List;
    //#input(void sendLine(String)): com/dmdirc/addons/dcc/actions/DCCActions.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void sendLine(String)): com/dmdirc/addons/dcc/actions/DCCEvents.__Dispatch_Table.getArity()I
    //#input(void sendLine(String)): line
    //#input(void sendLine(String)): this
    //#input(void sendLine(String)): this.__Tag
    //#input(void sendLine(String)): this.host
    //#input(void sendLine(String)): this.server
    //#input(void sendLine(String)): this.server.__Tag
    //#input(void sendLine(String)): this.server.myState
    //#input(void sendLine(String)): this.server.myState.__Tag
    //#input(void sendLine(String)): this.server.myState.state
    //#input(void sendLine(String)): this.server.parser
    //#input(void sendLine(String)): this.window
    //#output(void sendLine(String)): com/dmdirc/ServerManager.me
    //#output(void sendLine(String)): new ArrayList(ServerManager#1) num objects
    //#output(void sendLine(String)): new ServerManager(getServerManager#1) num objects
    //#output(void sendLine(String)): new ServerManager(getServerManager#1).__Tag
    //#output(void sendLine(String)): new ServerManager(getServerManager#1).servers
    //#new obj(void sendLine(String)): new ArrayList(ServerManager#1)
    //#new obj(void sendLine(String)): new ServerManager(getServerManager#1)
    //#pre[9] (void sendLine(String)): this.server != null
    //#pre[10] (void sendLine(String)): this.server.__Tag == com/dmdirc/Server
    //#pre[11] (void sendLine(String)): this.server.myState != null
    //#pre[13] (void sendLine(String)): this.server.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[14] (void sendLine(String)): init'ed(this.server.myState.state)
    //#pre[1] (void sendLine(String)): (soft) com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#65).type != null
    //#pre[3] (void sendLine(String)): (soft) init'ed(com/dmdirc/actions/ActionManager.killSwitch)
    //#pre[7] (void sendLine(String)): (soft) this.__Tag == com/dmdirc/Query
    //#pre[8] (void sendLine(String)): (soft) init'ed(this.host)
    //#pre[15] (void sendLine(String)): (soft) this.server.parser != null
    //#pre[16] (void sendLine(String)): (soft) this.window != null
    //#presumption(void sendLine(String)): com.dmdirc.parser.irc.IRCParser:getMyself(...)@139 != null
    //#presumption(void sendLine(String)): com.dmdirc.ui.interfaces.QueryWindow:getTranscoder(...)@141 != null
    //#presumption(void sendLine(String)): com.dmdirc.util.StringTranscoder:encode(...)@141 != null
    //#presumption(void sendLine(String)): java.awt.Toolkit:getDefaultToolkit(...)@135 != null
    //#post(void sendLine(String)): com/dmdirc/ServerManager.me == old com/dmdirc/ServerManager.me
    //#post(void sendLine(String)): init'ed(new ArrayList(ServerManager#1) num objects)
    //#post(void sendLine(String)): init'ed(new ServerManager(getServerManager#1) num objects)
    //#post(void sendLine(String)): new ServerManager(getServerManager#1).__Tag not init'ed, if init'ed
    //#post(void sendLine(String)): new ServerManager(getServerManager#1).servers == null
    //#unanalyzed(void sendLine(String)): Effects-of-calling:com.dmdirc.logger.Logger:assertTrue
    //#unanalyzed(void sendLine(String)): Effects-of-calling:getType
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void sendLine(String)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void sendLine(String)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.ArrayList:iterator
    //#unanalyzed(void sendLine(String)): Effects-of-calling:trigger
    //#unanalyzed(void sendLine(String)): Effects-of-calling:getArity
    //#unanalyzed(void sendLine(String)): Effects-of-calling:com.dmdirc.interfaces.ActionListener:processEvent
    //#unanalyzed(void sendLine(String)): Effects-of-calling:triggerActions
    //#unanalyzed(void sendLine(String)): Effects-of-calling:getState
    //#unanalyzed(void sendLine(String)): Effects-of-calling:splitLine
    //#unanalyzed(void sendLine(String)): Effects-of-calling:getUI
    //#unanalyzed(void sendLine(String)): Effects-of-calling:getFrame
    //#unanalyzed(void sendLine(String)): Effects-of-calling:com.dmdirc.actions.ConditionTree$OPERATION:ordinal
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.Deque:pollFirst
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.Character:instanceof
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.Character:charValue
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.Deque:isEmpty
    //#unanalyzed(void sendLine(String)): Effects-of-calling:readTerm
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.ArrayDeque
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.Deque:pollLast
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.Deque:addFirst
    //#unanalyzed(void sendLine(String)): Effects-of-calling:parseStack
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.Deque:poll
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.Deque:add
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.Deque:size
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.Integer:parseInt
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.Character:valueOf
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void sendLine(String)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void sendLine(String)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptions
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.StringBuilder:indexOf
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.StringBuilder:replace
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.Map:entrySet
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void sendLine(String)): Effects-of-calling:[Ljava.lang.String;:instanceof
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.String:instanceof
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.StringBuffer:insert
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(void sendLine(String)): Effects-of-calling:doServerSubstitutions
    //#unanalyzed(void sendLine(String)): Effects-of-calling:doComponentSubstitutions
    //#unanalyzed(void sendLine(String)): Effects-of-calling:getServer
    //#unanalyzed(void sendLine(String)): Effects-of-calling:com.dmdirc.ServerState:equals
    //#unanalyzed(void sendLine(String)): Effects-of-calling:getCompatibleComponents
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(void sendLine(String)): Effects-of-calling:get
    //#unanalyzed(void sendLine(String)): Effects-of-calling:getArgTypes
    //#unanalyzed(void sendLine(String)): Effects-of-calling:test
    //#unanalyzed(void sendLine(String)): Effects-of-calling:evaluate
    //#unanalyzed(void sendLine(String)): Effects-of-calling:com.dmdirc.ui.interfaces.UIController:getActiveWindow
    //#unanalyzed(void sendLine(String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:instanceof
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.List:get
    //#unanalyzed(void sendLine(String)): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void sendLine(String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void sendLine(String)): Effects-of-calling:com.dmdirc.commandparser.parsers.CommandParser:parseCommand
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.StringBuffer:setLength
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(void sendLine(String)): Effects-of-calling:com.dmdirc.ui.interfaces.Window:addLine
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.String:indexOf
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.List:add
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.util.List:addAll
    //#unanalyzed(void sendLine(String)): Effects-of-calling:getMaxLineLength
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.String:getBytes
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.Math:min
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.StringBuilder:substring
    //#unanalyzed(void sendLine(String)): Effects-of-calling:java.lang.StringBuilder:delete
    //#test_vector(void sendLine(String)): java.util.Iterator:hasNext(...)@141: {0}, {1}
            Toolkit.getDefaultToolkit().beep();
            return;
        }

        final ClientInfo client = server.getParser().getMyself();
    //#Query.java:139: Warning: method not available - call not analyzed
    //#    call on ClientInfo com.dmdirc.parser.irc.IRCParser:getMyself()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendLine(String)
    //#    unanalyzed callee: ClientInfo com.dmdirc.parser.irc.IRCParser:getMyself()

        for (String part : splitLine(window.getTranscoder().encode(line))) {
    //#Query.java:141: Warning: method not available - call not analyzed
    //#    call on StringTranscoder com.dmdirc.ui.interfaces.QueryWindow:getTranscoder()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendLine(String)
    //#    unanalyzed callee: StringTranscoder com.dmdirc.ui.interfaces.QueryWindow:getTranscoder()
    //#Query.java:141: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.util.StringTranscoder:encode(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendLine(String)
    //#    unanalyzed callee: String com.dmdirc.util.StringTranscoder:encode(String)
            server.getParser().sendMessage(ClientInfo.parseHost(host),
    //#Query.java:142: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendLine(String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#Query.java:142: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.parser.irc.IRCParser:sendMessage(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendLine(String)
    //#    unanalyzed callee: void com.dmdirc.parser.irc.IRCParser:sendMessage(String, String)
                    part);

            final StringBuffer buff = new StringBuffer("querySelfMessage");

            ActionManager.processEvent(CoreActionType.QUERY_SELF_MESSAGE, buff, this, part);
    //#Query.java:147: ?!precondition failure
    //#    com/dmdirc/actions/ActionManager.processEvent: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.Query
    //#    method: void sendLine(String)
    //#    basic block: bb_5
    //#    assertion: (soft) undefined in {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    callee: void com/dmdirc/actions/ActionManager.processEvent(ActionType, StringBuffer, Object[])
    //#    callee assertion: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    callee file: ActionManager.java
    //#    callee precondition index: [29]
    //#    callee srcpos: 365
    //#    VN: undefined
    //#    Expected: {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    Bad: {0, Invalid}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Soft  Bad < Exp

            addLine(buff, client.getNickname(), client.getIdent(),
    //#Query.java:149: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendLine(String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#Query.java:149: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getIdent()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendLine(String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getIdent()
    //#Query.java:149: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getHost()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendLine(String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getHost()
                    client.getHost(), part);
        }
    }
    //#Query.java:152: end of method: void com.dmdirc.Query.sendLine(String)

    /** {@inheritDoc} */
    @Override
    public int getMaxLineLength() {
        return server.getState() == ServerState.CONNECTED ? server.getParser()
    //#Query.java:157: method: int com.dmdirc.Query.getMaxLineLength()
    //#Query.java:157: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.parser.irc.IRCParser:getMaxLength(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: int getMaxLineLength()
    //#    unanalyzed callee: int com.dmdirc.parser.irc.IRCParser:getMaxLength(String, String)
    //#input(int getMaxLineLength()): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(int getMaxLineLength()): com/dmdirc/Server.__Descendant_Table[others]
    //#input(int getMaxLineLength()): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(int getMaxLineLength()): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(int getMaxLineLength()): com/dmdirc/ServerState.CONNECTED
    //#input(int getMaxLineLength()): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(int getMaxLineLength()): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(int getMaxLineLength()): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(int getMaxLineLength()): this
    //#input(int getMaxLineLength()): this.host
    //#input(int getMaxLineLength()): this.server
    //#input(int getMaxLineLength()): this.server.__Tag
    //#input(int getMaxLineLength()): this.server.myState
    //#input(int getMaxLineLength()): this.server.myState.__Tag
    //#input(int getMaxLineLength()): this.server.myState.state
    //#input(int getMaxLineLength()): this.server.parser
    //#output(int getMaxLineLength()): return_value
    //#pre[3] (int getMaxLineLength()): this.server != null
    //#pre[4] (int getMaxLineLength()): this.server.__Tag == com/dmdirc/Server
    //#pre[5] (int getMaxLineLength()): this.server.myState != null
    //#pre[7] (int getMaxLineLength()): this.server.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[8] (int getMaxLineLength()): init'ed(this.server.myState.state)
    //#pre[2] (int getMaxLineLength()): (soft) init'ed(this.host)
    //#pre[9] (int getMaxLineLength()): (soft) this.server.parser != null
    //#post(int getMaxLineLength()): init'ed(return_value)
    //#Query.java:157: end of method: int com.dmdirc.Query.getMaxLineLength()
                .getMaxLength("PRIVMSG", host) : -1;
    }

    /**
     * Sends a private action to the remote user.
     *
     * @param action action text to send
     */
    @Override
    public void sendAction(final String action) {
        if (server.getState() != ServerState.CONNECTED) {
    //#Query.java:168: method: void com.dmdirc.Query.sendAction(String)
    //#input(void sendAction(String)): "querySelfAction"._tainted
    //#input(void sendAction(String)): __Descendant_Table[com/dmdirc/Query]
    //#input(void sendAction(String)): __Descendant_Table[others]
    //#input(void sendAction(String)): __Dispatch_Table.addLine(Ljava/lang/String;[Ljava/lang/Object;)V
    //#input(void sendAction(String)): __Dispatch_Table.addLine(Ljava/lang/StringBuffer;[Ljava/lang/Object;)V
    //#input(void sendAction(String)): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendAction(String)): action
    //#input(void sendAction(String)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#66).__Tag
    //#input(void sendAction(String)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#66).type
    //#input(void sendAction(String)): com.dmdirc.actions.metatypes.QueryEvents__static_init.new QueryEvents(QueryEvents__static_init#4).__Tag
    //#input(void sendAction(String)): com/dmdirc/Channel.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendAction(String)): com/dmdirc/CustomWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendAction(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Channel]
    //#input(void sendAction(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow]
    //#input(void sendAction(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/FrameContainer]
    //#input(void sendAction(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(void sendAction(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/MessageTarget]
    //#input(void sendAction(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#input(void sendAction(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Raw]
    //#input(void sendAction(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Server]
    //#input(void sendAction(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/WritableFrameContainer]
    //#input(void sendAction(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCChatWindow]
    //#input(void sendAction(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCFrame]
    //#input(void sendAction(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCPlugin$3]
    //#input(void sendAction(String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCSendWindow]
    //#input(void sendAction(String)): com/dmdirc/FrameContainer.__Descendant_Table[others]
    //#input(void sendAction(String)): com/dmdirc/FrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendAction(String)): com/dmdirc/GlobalWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendAction(String)): com/dmdirc/MessageTarget.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendAction(String)): com/dmdirc/Raw.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendAction(String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void sendAction(String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void sendAction(String)): com/dmdirc/Server.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendAction(String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void sendAction(String)): com/dmdirc/Server.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void sendAction(String)): com/dmdirc/ServerState.CONNECTED
    //#input(void sendAction(String)): com/dmdirc/ServerStatus.__Descendant_Table[com/dmdirc/ServerStatus]
    //#input(void sendAction(String)): com/dmdirc/ServerStatus.__Descendant_Table[others]
    //#input(void sendAction(String)): com/dmdirc/ServerStatus.__Dispatch_Table.getState()Lcom/dmdirc/ServerState;
    //#input(void sendAction(String)): com/dmdirc/WritableFrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendAction(String)): com/dmdirc/actions/ActionManager.killSwitch
    //#input(void sendAction(String)): com/dmdirc/actions/ActionManager.listeners
    //#input(void sendAction(String)): com/dmdirc/actions/CoreActionType.QUERY_SELF_ACTION
    //#input(void sendAction(String)): com/dmdirc/actions/CoreActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void sendAction(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionMetaType]
    //#input(void sendAction(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ActionEvents]
    //#input(void sendAction(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ChannelEvents]
    //#input(void sendAction(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ClientEvents]
    //#input(void sendAction(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/PluginEvents]
    //#input(void sendAction(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/QueryEvents]
    //#input(void sendAction(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ServerEvents]
    //#input(void sendAction(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCEvents]
    //#input(void sendAction(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[others]
    //#input(void sendAction(String)): com/dmdirc/actions/interfaces/ActionMetaType.__Dispatch_Table.getArity()I
    //#input(void sendAction(String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/CoreActionType]
    //#input(void sendAction(String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionType]
    //#input(void sendAction(String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCActions]
    //#input(void sendAction(String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[others]
    //#input(void sendAction(String)): com/dmdirc/actions/interfaces/ActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void sendAction(String)): com/dmdirc/actions/metatypes/ActionEvents.__Dispatch_Table.getArity()I
    //#input(void sendAction(String)): com/dmdirc/actions/metatypes/ChannelEvents.__Dispatch_Table.getArity()I
    //#input(void sendAction(String)): com/dmdirc/actions/metatypes/ClientEvents.__Dispatch_Table.getArity()I
    //#input(void sendAction(String)): com/dmdirc/actions/metatypes/PluginEvents.__Dispatch_Table.getArity()I
    //#input(void sendAction(String)): com/dmdirc/actions/metatypes/QueryEvents.__Dispatch_Table.getArity()I
    //#input(void sendAction(String)): com/dmdirc/actions/metatypes/ServerEvents.__Dispatch_Table.getArity()I
    //#input(void sendAction(String)): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendAction(String)): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendAction(String)): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendAction(String)): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void sendAction(String)): com/dmdirc/addons/dcc/actions/DCCActions.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void sendAction(String)): com/dmdirc/addons/dcc/actions/DCCEvents.__Dispatch_Table.getArity()I
    //#input(void sendAction(String)): this
    //#input(void sendAction(String)): this.__Tag
    //#input(void sendAction(String)): this.host
    //#input(void sendAction(String)): this.server
    //#input(void sendAction(String)): this.server.__Tag
    //#input(void sendAction(String)): this.server.myState
    //#input(void sendAction(String)): this.server.myState.__Tag
    //#input(void sendAction(String)): this.server.myState.state
    //#input(void sendAction(String)): this.server.parser
    //#input(void sendAction(String)): this.window
    //#output(void sendAction(String)): com/dmdirc/ServerManager.me
    //#output(void sendAction(String)): new ArrayList(ServerManager#1) num objects
    //#output(void sendAction(String)): new ServerManager(getServerManager#1) num objects
    //#output(void sendAction(String)): new ServerManager(getServerManager#1).__Tag
    //#output(void sendAction(String)): new ServerManager(getServerManager#1).servers
    //#new obj(void sendAction(String)): new ArrayList(ServerManager#1)
    //#new obj(void sendAction(String)): new ServerManager(getServerManager#1)
    //#pre[12] (void sendAction(String)): this.server != null
    //#pre[13] (void sendAction(String)): this.server.__Tag == com/dmdirc/Server
    //#pre[14] (void sendAction(String)): this.server.myState != null
    //#pre[16] (void sendAction(String)): this.server.myState.__Tag == com/dmdirc/ServerStatus
    //#pre[17] (void sendAction(String)): init'ed(this.server.myState.state)
    //#pre[1] (void sendAction(String)): (soft) action != null
    //#pre[5] (void sendAction(String)): (soft) com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#66).type != null
    //#pre[7] (void sendAction(String)): (soft) init'ed(com/dmdirc/actions/ActionManager.killSwitch)
    //#pre[8] (void sendAction(String)): (soft) init'ed(com/dmdirc/ServerManager.me)
    //#pre[10] (void sendAction(String)): (soft) this.__Tag == com/dmdirc/Query
    //#pre[11] (void sendAction(String)): (soft) init'ed(this.host)
    //#pre[18] (void sendAction(String)): (soft) this.server.parser != null
    //#pre[19] (void sendAction(String)): (soft) this.window != null
    //#presumption(void sendAction(String)): com.dmdirc.parser.irc.IRCParser:getMyself(...)@173 != null
    //#presumption(void sendAction(String)): com.dmdirc.ui.interfaces.QueryWindow:getTranscoder(...)@177 != null
    //#presumption(void sendAction(String)): com.dmdirc.ui.interfaces.QueryWindow:getTranscoder(...)@183 != null
    //#presumption(void sendAction(String)): java.awt.Toolkit:getDefaultToolkit(...)@169 != null
    //#post(void sendAction(String)): com/dmdirc/ServerManager.me == old com/dmdirc/ServerManager.me
    //#post(void sendAction(String)): new ArrayList(ServerManager#1) num objects == 0, if init'ed
    //#post(void sendAction(String)): new ServerManager(getServerManager#1) num objects == 0, if init'ed
    //#post(void sendAction(String)): new ServerManager(getServerManager#1).__Tag not init'ed, if init'ed
    //#post(void sendAction(String)): new ServerManager(getServerManager#1).servers == null
    //#unanalyzed(void sendAction(String)): Effects-of-calling:com.dmdirc.logger.Logger:assertTrue
    //#unanalyzed(void sendAction(String)): Effects-of-calling:getType
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void sendAction(String)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void sendAction(String)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.ArrayList:iterator
    //#unanalyzed(void sendAction(String)): Effects-of-calling:trigger
    //#unanalyzed(void sendAction(String)): Effects-of-calling:getArity
    //#unanalyzed(void sendAction(String)): Effects-of-calling:com.dmdirc.interfaces.ActionListener:processEvent
    //#unanalyzed(void sendAction(String)): Effects-of-calling:triggerActions
    //#unanalyzed(void sendAction(String)): Effects-of-calling:getState
    //#unanalyzed(void sendAction(String)): Effects-of-calling:getUI
    //#unanalyzed(void sendAction(String)): Effects-of-calling:getFrame
    //#unanalyzed(void sendAction(String)): Effects-of-calling:com.dmdirc.actions.ConditionTree$OPERATION:ordinal
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.Deque:pollFirst
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.Character:instanceof
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.Character:charValue
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.Deque:isEmpty
    //#unanalyzed(void sendAction(String)): Effects-of-calling:readTerm
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.ArrayDeque
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.Deque:pollLast
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.Deque:addFirst
    //#unanalyzed(void sendAction(String)): Effects-of-calling:parseStack
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.Deque:poll
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.Deque:add
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.Deque:size
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.Integer:parseInt
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.Character:valueOf
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void sendAction(String)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void sendAction(String)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptions
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.StringBuilder:indexOf
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.StringBuilder:replace
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.Map:entrySet
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void sendAction(String)): Effects-of-calling:[Ljava.lang.String;:instanceof
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.String:instanceof
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.StringBuffer:insert
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(void sendAction(String)): Effects-of-calling:doServerSubstitutions
    //#unanalyzed(void sendAction(String)): Effects-of-calling:doComponentSubstitutions
    //#unanalyzed(void sendAction(String)): Effects-of-calling:getServer
    //#unanalyzed(void sendAction(String)): Effects-of-calling:com.dmdirc.ServerState:equals
    //#unanalyzed(void sendAction(String)): Effects-of-calling:getCompatibleComponents
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(void sendAction(String)): Effects-of-calling:get
    //#unanalyzed(void sendAction(String)): Effects-of-calling:getArgTypes
    //#unanalyzed(void sendAction(String)): Effects-of-calling:test
    //#unanalyzed(void sendAction(String)): Effects-of-calling:evaluate
    //#unanalyzed(void sendAction(String)): Effects-of-calling:com.dmdirc.ui.interfaces.UIController:getActiveWindow
    //#unanalyzed(void sendAction(String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:instanceof
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.util.List:get
    //#unanalyzed(void sendAction(String)): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void sendAction(String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void sendAction(String)): Effects-of-calling:com.dmdirc.commandparser.parsers.CommandParser:parseCommand
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.StringBuffer:setLength
    //#unanalyzed(void sendAction(String)): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(void sendAction(String)): Effects-of-calling:com.dmdirc.ui.interfaces.Window:addLine
            Toolkit.getDefaultToolkit().beep();
            return;
        }

        final ClientInfo client = server.getParser().getMyself();
    //#Query.java:173: Warning: method not available - call not analyzed
    //#    call on ClientInfo com.dmdirc.parser.irc.IRCParser:getMyself()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendAction(String)
    //#    unanalyzed callee: ClientInfo com.dmdirc.parser.irc.IRCParser:getMyself()
        final int maxLineLength = server.getParser().getMaxLength("PRIVMSG", host);
    //#Query.java:174: Warning: method not available - call not analyzed
    //#    call on int com.dmdirc.parser.irc.IRCParser:getMaxLength(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendAction(String)
    //#    unanalyzed callee: int com.dmdirc.parser.irc.IRCParser:getMaxLength(String, String)

        if (maxLineLength >= action.length() + 2) {
            server.getParser().sendAction(ClientInfo.parseHost(host), window.getTranscoder().encode(action));
    //#Query.java:177: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendAction(String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#Query.java:177: Warning: method not available - call not analyzed
    //#    call on StringTranscoder com.dmdirc.ui.interfaces.QueryWindow:getTranscoder()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendAction(String)
    //#    unanalyzed callee: StringTranscoder com.dmdirc.ui.interfaces.QueryWindow:getTranscoder()
    //#Query.java:177: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.util.StringTranscoder:encode(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendAction(String)
    //#    unanalyzed callee: String com.dmdirc.util.StringTranscoder:encode(String)
    //#Query.java:177: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.parser.irc.IRCParser:sendAction(String, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendAction(String)
    //#    unanalyzed callee: void com.dmdirc.parser.irc.IRCParser:sendAction(String, String)

            final StringBuffer buff = new StringBuffer("querySelfAction");

            ActionManager.processEvent(CoreActionType.QUERY_SELF_ACTION, buff, this, action);
    //#Query.java:181: ?!precondition failure
    //#    com/dmdirc/actions/ActionManager.processEvent: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.Query
    //#    method: void sendAction(String)
    //#    basic block: bb_4
    //#    assertion: (soft) undefined in {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    callee: void com/dmdirc/actions/ActionManager.processEvent(ActionType, StringBuffer, Object[])
    //#    callee assertion: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    callee file: ActionManager.java
    //#    callee precondition index: [29]
    //#    callee srcpos: 365
    //#    VN: undefined
    //#    Expected: {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    Bad: {0, Invalid}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Soft  Bad < Exp

            addLine(buff, client.getNickname(), client.getIdent(),
    //#Query.java:183: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendAction(String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#Query.java:183: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getIdent()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendAction(String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getIdent()
    //#Query.java:183: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getHost()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendAction(String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getHost()
    //#Query.java:183: Warning: method not available - call not analyzed
    //#    call on StringTranscoder com.dmdirc.ui.interfaces.QueryWindow:getTranscoder()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendAction(String)
    //#    unanalyzed callee: StringTranscoder com.dmdirc.ui.interfaces.QueryWindow:getTranscoder()
    //#Query.java:183: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.util.StringTranscoder:encode(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void sendAction(String)
    //#    unanalyzed callee: String com.dmdirc.util.StringTranscoder:encode(String)
                    client.getHost(), window.getTranscoder().encode(action));
        } else {
            addLine("actionTooLong", action.length());
        }
    }
    //#Query.java:188: end of method: void com.dmdirc.Query.sendAction(String)

    /**
     * Handles a private message event from the parser.
     *
     * @param parser Parser receiving the event
     * @param message message received
     * @param remoteHost remote user host
     */
    @Override
    public void onPrivateMessage(final IRCParser parser, final String message,
            final String remoteHost) {
        final String[] parts = ClientInfo.parseHostFull(remoteHost);
    //#Query.java:200: method: void com.dmdirc.Query.onPrivateMessage(IRCParser, String, String)
    //#Query.java:200: Warning: method not available - call not analyzed
    //#    call on String[] com.dmdirc.parser.irc.ClientInfo:parseHostFull(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onPrivateMessage(IRCParser, String, String)
    //#    unanalyzed callee: String[] com.dmdirc.parser.irc.ClientInfo:parseHostFull(String)
    //#input(void onPrivateMessage(IRCParser, String, String)): "queryMessage"._tainted
    //#input(void onPrivateMessage(IRCParser, String, String)): __Descendant_Table[com/dmdirc/Query]
    //#input(void onPrivateMessage(IRCParser, String, String)): __Descendant_Table[others]
    //#input(void onPrivateMessage(IRCParser, String, String)): __Dispatch_Table.addLine(Ljava/lang/StringBuffer;[Ljava/lang/Object;)V
    //#input(void onPrivateMessage(IRCParser, String, String)): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateMessage(IRCParser, String, String)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#63).__Tag
    //#input(void onPrivateMessage(IRCParser, String, String)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#63).type
    //#input(void onPrivateMessage(IRCParser, String, String)): com.dmdirc.actions.metatypes.QueryEvents__static_init.new QueryEvents(QueryEvents__static_init#4).__Tag
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Channel.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/CustomWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/FrameContainer]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/MessageTarget]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Raw]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Server]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/WritableFrameContainer]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCChatWindow]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCFrame]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCPlugin$3]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCSendWindow]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[others]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/FrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/GlobalWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/MessageTarget.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Raw.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/WritableFrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/ActionManager.killSwitch
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/ActionManager.listeners
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/CoreActionType.QUERY_MESSAGE
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/CoreActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionMetaType]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ActionEvents]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ChannelEvents]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ClientEvents]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/PluginEvents]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/QueryEvents]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ServerEvents]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCEvents]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[others]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Dispatch_Table.getArity()I
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/CoreActionType]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionType]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCActions]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[others]
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/metatypes/ActionEvents.__Dispatch_Table.getArity()I
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/metatypes/ChannelEvents.__Dispatch_Table.getArity()I
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/metatypes/ClientEvents.__Dispatch_Table.getArity()I
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/metatypes/PluginEvents.__Dispatch_Table.getArity()I
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/metatypes/QueryEvents.__Dispatch_Table.getArity()I
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/actions/metatypes/ServerEvents.__Dispatch_Table.getArity()I
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/addons/dcc/actions/DCCActions.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/addons/dcc/actions/DCCEvents.__Dispatch_Table.getArity()I
    //#input(void onPrivateMessage(IRCParser, String, String)): message
    //#input(void onPrivateMessage(IRCParser, String, String)): remoteHost
    //#input(void onPrivateMessage(IRCParser, String, String)): this
    //#input(void onPrivateMessage(IRCParser, String, String)): this.__Tag
    //#output(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/ServerManager.me
    //#output(void onPrivateMessage(IRCParser, String, String)): new ArrayList(ServerManager#1) num objects
    //#output(void onPrivateMessage(IRCParser, String, String)): new ServerManager(getServerManager#1) num objects
    //#output(void onPrivateMessage(IRCParser, String, String)): new ServerManager(getServerManager#1).__Tag
    //#output(void onPrivateMessage(IRCParser, String, String)): new ServerManager(getServerManager#1).servers
    //#new obj(void onPrivateMessage(IRCParser, String, String)): new ArrayList(ServerManager#1)
    //#new obj(void onPrivateMessage(IRCParser, String, String)): new ServerManager(getServerManager#1)
    //#pre[3] (void onPrivateMessage(IRCParser, String, String)): init'ed(com/dmdirc/actions/ActionManager.killSwitch)
    //#pre[11] (void onPrivateMessage(IRCParser, String, String)): this.__Tag == com/dmdirc/Query
    //#pre[1] (void onPrivateMessage(IRCParser, String, String)): (soft) com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#63).type != null
    //#pre[8] (void onPrivateMessage(IRCParser, String, String)): (soft) init'ed(com/dmdirc/ServerManager.me)
    //#presumption(void onPrivateMessage(IRCParser, String, String)): com.dmdirc.parser.irc.ClientInfo:parseHostFull(...)@200 != null
    //#presumption(void onPrivateMessage(IRCParser, String, String)): parts.length@200 >= 3
    //#post(void onPrivateMessage(IRCParser, String, String)): com/dmdirc/ServerManager.me == old com/dmdirc/ServerManager.me
    //#post(void onPrivateMessage(IRCParser, String, String)): new ArrayList(ServerManager#1) num objects == undefined
    //#post(void onPrivateMessage(IRCParser, String, String)): new ArrayList(ServerManager#1) num objects == 0, if init'ed
    //#post(void onPrivateMessage(IRCParser, String, String)): new ServerManager(getServerManager#1) num objects == new ArrayList(ServerManager#1) num objects
    //#post(void onPrivateMessage(IRCParser, String, String)): new ServerManager(getServerManager#1).__Tag == new ArrayList(ServerManager#1) num objects
    //#post(void onPrivateMessage(IRCParser, String, String)): new ServerManager(getServerManager#1).servers == undefined
    //#post(void onPrivateMessage(IRCParser, String, String)): new ServerManager(getServerManager#1).servers == null
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.logger.Logger:assertTrue
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getType
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.ArrayList:iterator
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:trigger
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getArity
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.interfaces.ActionListener:processEvent
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:triggerActions
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getState
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getUI
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getFrame
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.actions.ConditionTree$OPERATION:ordinal
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.Deque:pollFirst
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.Character:instanceof
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.Character:charValue
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.Deque:isEmpty
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:readTerm
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.ArrayDeque
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.Deque:pollLast
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.Deque:addFirst
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:parseStack
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.Deque:poll
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.Deque:add
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.Deque:size
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.Integer:parseInt
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.Character:valueOf
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptions
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:indexOf
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:replace
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.Map:entrySet
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:[Ljava.lang.String;:instanceof
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.String:instanceof
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuffer:insert
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:doServerSubstitutions
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:doComponentSubstitutions
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getServer
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ServerState:equals
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getCompatibleComponents
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:get
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:getArgTypes
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:test
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:evaluate
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.UIController:getActiveWindow
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:instanceof
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.util.List:get
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.commandparser.parsers.CommandParser:parseCommand
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuffer:setLength
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(void onPrivateMessage(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.Window:addLine

        final StringBuffer buff = new StringBuffer("queryMessage");

        ActionManager.processEvent(CoreActionType.QUERY_MESSAGE, buff, this, message);
    //#Query.java:204: ?!precondition failure
    //#    com/dmdirc/actions/ActionManager.processEvent: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.Query
    //#    method: void onPrivateMessage(IRCParser, String, String)
    //#    basic block: Entry_BB_1
    //#    assertion: (soft) undefined in {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    callee: void com/dmdirc/actions/ActionManager.processEvent(ActionType, StringBuffer, Object[])
    //#    callee assertion: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    callee file: ActionManager.java
    //#    callee precondition index: [29]
    //#    callee srcpos: 365
    //#    VN: undefined
    //#    Expected: {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    Bad: {0, Invalid}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Soft  Bad < Exp

        addLine(buff, parts[0], parts[1], parts[2], message);
    }
    //#Query.java:207: end of method: void com.dmdirc.Query.onPrivateMessage(IRCParser, String, String)

    /**
     * Handles a private action event from the parser.
     *
     * @param parser Parser receiving the event
     * @param message message received
     * @param remoteHost remote host
     */
    @Override
    public void onPrivateAction(final IRCParser parser, final String message,
            final String remoteHost) {
        final String[] parts = ClientInfo.parseHostFull(host);
    //#Query.java:219: method: void com.dmdirc.Query.onPrivateAction(IRCParser, String, String)
    //#Query.java:219: Warning: method not available - call not analyzed
    //#    call on String[] com.dmdirc.parser.irc.ClientInfo:parseHostFull(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onPrivateAction(IRCParser, String, String)
    //#    unanalyzed callee: String[] com.dmdirc.parser.irc.ClientInfo:parseHostFull(String)
    //#input(void onPrivateAction(IRCParser, String, String)): "queryAction"._tainted
    //#input(void onPrivateAction(IRCParser, String, String)): __Descendant_Table[com/dmdirc/Query]
    //#input(void onPrivateAction(IRCParser, String, String)): __Descendant_Table[others]
    //#input(void onPrivateAction(IRCParser, String, String)): __Dispatch_Table.addLine(Ljava/lang/StringBuffer;[Ljava/lang/Object;)V
    //#input(void onPrivateAction(IRCParser, String, String)): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateAction(IRCParser, String, String)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#64).__Tag
    //#input(void onPrivateAction(IRCParser, String, String)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#64).type
    //#input(void onPrivateAction(IRCParser, String, String)): com.dmdirc.actions.metatypes.QueryEvents__static_init.new QueryEvents(QueryEvents__static_init#4).__Tag
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Channel.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/CustomWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/FrameContainer]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/MessageTarget]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Raw]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Server]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/WritableFrameContainer]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCChatWindow]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCFrame]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCPlugin$3]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCSendWindow]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/FrameContainer.__Descendant_Table[others]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/FrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/GlobalWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/MessageTarget.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Raw.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/Server.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/WritableFrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/ActionManager.killSwitch
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/ActionManager.listeners
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/CoreActionType.QUERY_ACTION
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/CoreActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionMetaType]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ActionEvents]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ChannelEvents]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ClientEvents]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/PluginEvents]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/QueryEvents]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ServerEvents]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCEvents]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[others]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Dispatch_Table.getArity()I
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/CoreActionType]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionType]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCActions]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[others]
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/interfaces/ActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/metatypes/ActionEvents.__Dispatch_Table.getArity()I
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/metatypes/ChannelEvents.__Dispatch_Table.getArity()I
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/metatypes/ClientEvents.__Dispatch_Table.getArity()I
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/metatypes/PluginEvents.__Dispatch_Table.getArity()I
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/metatypes/QueryEvents.__Dispatch_Table.getArity()I
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/actions/metatypes/ServerEvents.__Dispatch_Table.getArity()I
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/addons/dcc/actions/DCCActions.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onPrivateAction(IRCParser, String, String)): com/dmdirc/addons/dcc/actions/DCCEvents.__Dispatch_Table.getArity()I
    //#input(void onPrivateAction(IRCParser, String, String)): message
    //#input(void onPrivateAction(IRCParser, String, String)): this
    //#input(void onPrivateAction(IRCParser, String, String)): this.__Tag
    //#input(void onPrivateAction(IRCParser, String, String)): this.host
    //#output(void onPrivateAction(IRCParser, String, String)): com/dmdirc/ServerManager.me
    //#output(void onPrivateAction(IRCParser, String, String)): new ArrayList(ServerManager#1) num objects
    //#output(void onPrivateAction(IRCParser, String, String)): new ServerManager(getServerManager#1) num objects
    //#output(void onPrivateAction(IRCParser, String, String)): new ServerManager(getServerManager#1).__Tag
    //#output(void onPrivateAction(IRCParser, String, String)): new ServerManager(getServerManager#1).servers
    //#new obj(void onPrivateAction(IRCParser, String, String)): new ArrayList(ServerManager#1)
    //#new obj(void onPrivateAction(IRCParser, String, String)): new ServerManager(getServerManager#1)
    //#pre[3] (void onPrivateAction(IRCParser, String, String)): init'ed(com/dmdirc/actions/ActionManager.killSwitch)
    //#pre[10] (void onPrivateAction(IRCParser, String, String)): this.__Tag == com/dmdirc/Query
    //#pre[11] (void onPrivateAction(IRCParser, String, String)): init'ed(this.host)
    //#pre[1] (void onPrivateAction(IRCParser, String, String)): (soft) com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#64).type != null
    //#pre[8] (void onPrivateAction(IRCParser, String, String)): (soft) init'ed(com/dmdirc/ServerManager.me)
    //#presumption(void onPrivateAction(IRCParser, String, String)): com.dmdirc.parser.irc.ClientInfo:parseHostFull(...)@219 != null
    //#presumption(void onPrivateAction(IRCParser, String, String)): parts.length@219 >= 3
    //#post(void onPrivateAction(IRCParser, String, String)): com/dmdirc/ServerManager.me == old com/dmdirc/ServerManager.me
    //#post(void onPrivateAction(IRCParser, String, String)): new ArrayList(ServerManager#1) num objects == undefined
    //#post(void onPrivateAction(IRCParser, String, String)): new ArrayList(ServerManager#1) num objects == 0, if init'ed
    //#post(void onPrivateAction(IRCParser, String, String)): new ServerManager(getServerManager#1) num objects == new ArrayList(ServerManager#1) num objects
    //#post(void onPrivateAction(IRCParser, String, String)): new ServerManager(getServerManager#1).__Tag == new ArrayList(ServerManager#1) num objects
    //#post(void onPrivateAction(IRCParser, String, String)): new ServerManager(getServerManager#1).servers == undefined
    //#post(void onPrivateAction(IRCParser, String, String)): new ServerManager(getServerManager#1).servers == null
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.logger.Logger:assertTrue
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getType
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.ArrayList:iterator
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:trigger
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getArity
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.interfaces.ActionListener:processEvent
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:triggerActions
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getState
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getUI
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getFrame
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.actions.ConditionTree$OPERATION:ordinal
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.Deque:pollFirst
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.Character:instanceof
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.Character:charValue
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.Deque:isEmpty
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:readTerm
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.ArrayDeque
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.Deque:pollLast
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.Deque:addFirst
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:parseStack
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.Deque:poll
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.Deque:add
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.Deque:size
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.Integer:parseInt
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.Character:valueOf
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptions
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:indexOf
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuilder:replace
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.Map:entrySet
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:[Ljava.lang.String;:instanceof
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.String:instanceof
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuffer:insert
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:doServerSubstitutions
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:doComponentSubstitutions
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getServer
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ServerState:equals
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getCompatibleComponents
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:get
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:getArgTypes
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:test
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:evaluate
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.UIController:getActiveWindow
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:instanceof
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.util.List:get
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.commandparser.parsers.CommandParser:parseCommand
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuffer:setLength
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(void onPrivateAction(IRCParser, String, String)): Effects-of-calling:com.dmdirc.ui.interfaces.Window:addLine

        final StringBuffer buff = new StringBuffer("queryAction");

        ActionManager.processEvent(CoreActionType.QUERY_ACTION, buff, this, message);
    //#Query.java:223: ?!precondition failure
    //#    com/dmdirc/actions/ActionManager.processEvent: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.Query
    //#    method: void onPrivateAction(IRCParser, String, String)
    //#    basic block: Entry_BB_1
    //#    assertion: (soft) undefined in {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    callee: void com/dmdirc/actions/ActionManager.processEvent(ActionType, StringBuffer, Object[])
    //#    callee assertion: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    callee file: ActionManager.java
    //#    callee precondition index: [29]
    //#    callee srcpos: 365
    //#    VN: undefined
    //#    Expected: {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    Bad: {0, Invalid}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Soft  Bad < Exp

        addLine(buff, parts[0], parts[1], parts[2], message);
    }
    //#Query.java:226: end of method: void com.dmdirc.Query.onPrivateAction(IRCParser, String, String)

    /**
     * Updates the QueryWindow's title.
     */
    private void updateTitle() {
        final String title = ClientInfo.parseHost(host);
    //#Query.java:232: method: void com.dmdirc.Query.updateTitle()
    //#Query.java:232: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void updateTitle()
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#input(void updateTitle()): this
    //#input(void updateTitle()): this.host
    //#input(void updateTitle()): this.window
    //#pre[2] (void updateTitle()): init'ed(this.host)
    //#pre[3] (void updateTitle()): this.window != null

        window.setTitle(title);
    //#Query.java:234: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.interfaces.QueryWindow:setTitle(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void updateTitle()
    //#    unanalyzed callee: void com.dmdirc.ui.interfaces.QueryWindow:setTitle(String)
    }
    //#Query.java:235: end of method: void com.dmdirc.Query.updateTitle()

    /**
     * Reregisters query callbacks. Called when reconnecting to the server.
     */
    public void reregister() {
        final CallbackManager callbackManager = server.getParser().getCallbackManager();
    //#Query.java:241: method: void com.dmdirc.Query.reregister()
    //#Query.java:241: Warning: method not available - call not analyzed
    //#    call on CallbackManager com.dmdirc.parser.irc.IRCParser:getCallbackManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void reregister()
    //#    unanalyzed callee: CallbackManager com.dmdirc.parser.irc.IRCParser:getCallbackManager()
    //#input(void reregister()): com.dmdirc.logger.ErrorLevel.HIGH
    //#input(void reregister()): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void reregister()): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void reregister()): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void reregister()): this
    //#input(void reregister()): this.host
    //#input(void reregister()): this.server
    //#input(void reregister()): this.server.__Tag
    //#input(void reregister()): this.server.parser
    //#pre[3] (void reregister()): this.server != null
    //#pre[4] (void reregister()): this.server.__Tag == com/dmdirc/Server
    //#pre[5] (void reregister()): this.server.parser != null
    //#pre[2] (void reregister()): (soft) init'ed(this.host)
    //#presumption(void reregister()): init'ed(com.dmdirc.logger.ErrorLevel.HIGH)
    //#presumption(void reregister()): com.dmdirc.parser.irc.IRCParser:getCallbackManager(...)@241 != null

        try {
            callbackManager.addCallback("onPrivateAction", this, ClientInfo.parseHost(host));
    //#Query.java:244: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void reregister()
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#Query.java:244: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback(String, ICallbackInterface, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void reregister()
    //#    unanalyzed callee: void com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback(String, ICallbackInterface, String)
            callbackManager.addCallback("onPrivateMessage", this, ClientInfo.parseHost(host));
    //#Query.java:245: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void reregister()
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#Query.java:245: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback(String, ICallbackInterface, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void reregister()
    //#    unanalyzed callee: void com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback(String, ICallbackInterface, String)
            callbackManager.addCallback("onQuit", this);
    //#Query.java:246: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback(String, ICallbackInterface)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void reregister()
    //#    unanalyzed callee: void com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback(String, ICallbackInterface)
            callbackManager.addCallback("onNickChanged", this);
    //#Query.java:247: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback(String, ICallbackInterface)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void reregister()
    //#    unanalyzed callee: void com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback(String, ICallbackInterface)
        } catch (CallbackNotFoundException ex) {
            Logger.appError(ErrorLevel.HIGH, "Unable to get query events", ex);
    //#Query.java:249: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void reregister()
    //#    unanalyzed callee: void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
        }
    }
    //#Query.java:251: end of method: void com.dmdirc.Query.reregister()

    /** {@inheritDoc} */
    @Override
    public void onNickChanged(final IRCParser tParser, final ClientInfo cClient,
            final String sOldNick) {
        if (sOldNick.equals(ClientInfo.parseHost(host))) {
    //#Query.java:257: method: void com.dmdirc.Query.onNickChanged(IRCParser, ClientInfo, String)
    //#Query.java:257: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): "!"._tainted
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): "@"._tainted
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): "queryNickChanged"._tainted
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): __Descendant_Table[com/dmdirc/Query]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): __Descendant_Table[others]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): __Dispatch_Table.addLine(Ljava/lang/StringBuffer;[Ljava/lang/Object;)V
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): cClient
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#68).__Tag
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#68).type
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com.dmdirc.actions.metatypes.QueryEvents__static_init.new QueryEvents(QueryEvents__static_init#4).__Tag
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com.dmdirc.logger.ErrorLevel.HIGH
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com.dmdirc.ui.input.TabCompletionType.QUERY_NICK
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/Channel.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/CustomWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/FrameContainer]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/MessageTarget]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Raw]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Server]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/WritableFrameContainer]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCChatWindow]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCFrame]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCPlugin$3]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCSendWindow]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[others]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/GlobalWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/MessageTarget.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/Raw.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Dispatch_Table.getTabCompleter()Lcom/dmdirc/ui/input/TabCompleter;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/WritableFrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/ActionManager.killSwitch
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/ActionManager.listeners
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/CoreActionType.QUERY_NICKCHANGE
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/CoreActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionMetaType]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ActionEvents]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ChannelEvents]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ClientEvents]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/PluginEvents]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/QueryEvents]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ServerEvents]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCEvents]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[others]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Dispatch_Table.getArity()I
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/CoreActionType]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionType]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCActions]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[others]
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/metatypes/ActionEvents.__Dispatch_Table.getArity()I
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/metatypes/ChannelEvents.__Dispatch_Table.getArity()I
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/metatypes/ClientEvents.__Dispatch_Table.getArity()I
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/metatypes/PluginEvents.__Dispatch_Table.getArity()I
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/metatypes/QueryEvents.__Dispatch_Table.getArity()I
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/actions/metatypes/ServerEvents.__Dispatch_Table.getArity()I
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/addons/dcc/actions/DCCActions.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/addons/dcc/actions/DCCEvents.__Dispatch_Table.getArity()I
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): sOldNick
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.__Tag
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.host
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.server
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.server.__Tag
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.server.parser
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.server.tabCompleter
    //#input(void onNickChanged(IRCParser, ClientInfo, String)): this.window
    //#output(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/ServerManager.me
    //#output(void onNickChanged(IRCParser, ClientInfo, String)): java.lang.StringBuilder:toString(...)._tainted
    //#output(void onNickChanged(IRCParser, ClientInfo, String)): new ArrayList(ServerManager#1) num objects
    //#output(void onNickChanged(IRCParser, ClientInfo, String)): new ServerManager(getServerManager#1) num objects
    //#output(void onNickChanged(IRCParser, ClientInfo, String)): new ServerManager(getServerManager#1).__Tag
    //#output(void onNickChanged(IRCParser, ClientInfo, String)): new ServerManager(getServerManager#1).servers
    //#output(void onNickChanged(IRCParser, ClientInfo, String)): this.host
    //#new obj(void onNickChanged(IRCParser, ClientInfo, String)): java.lang.StringBuilder:toString(...)
    //#new obj(void onNickChanged(IRCParser, ClientInfo, String)): new ArrayList(ServerManager#1)
    //#new obj(void onNickChanged(IRCParser, ClientInfo, String)): new ServerManager(getServerManager#1)
    //#pre[6] (void onNickChanged(IRCParser, ClientInfo, String)): init'ed(this.host)
    //#pre[7] (void onNickChanged(IRCParser, ClientInfo, String)): sOldNick != null
    //#pre[1] (void onNickChanged(IRCParser, ClientInfo, String)): (soft) cClient != null
    //#pre[2] (void onNickChanged(IRCParser, ClientInfo, String)): (soft) com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#68).type != null
    //#pre[4] (void onNickChanged(IRCParser, ClientInfo, String)): (soft) init'ed(com/dmdirc/actions/ActionManager.killSwitch)
    //#pre[5] (void onNickChanged(IRCParser, ClientInfo, String)): (soft) init'ed(com/dmdirc/ServerManager.me)
    //#pre[12] (void onNickChanged(IRCParser, ClientInfo, String)): (soft) this.__Tag == com/dmdirc/Query
    //#pre[13] (void onNickChanged(IRCParser, ClientInfo, String)): (soft) this.server != null
    //#pre[14] (void onNickChanged(IRCParser, ClientInfo, String)): (soft) this.server.__Tag == com/dmdirc/Server
    //#pre[15] (void onNickChanged(IRCParser, ClientInfo, String)): (soft) this.server.parser != null
    //#pre[16] (void onNickChanged(IRCParser, ClientInfo, String)): (soft) this.server.tabCompleter != null
    //#pre[17] (void onNickChanged(IRCParser, ClientInfo, String)): (soft) this.window != null
    //#presumption(void onNickChanged(IRCParser, ClientInfo, String)): init'ed(com.dmdirc.logger.ErrorLevel.HIGH)
    //#presumption(void onNickChanged(IRCParser, ClientInfo, String)): com.dmdirc.parser.irc.IRCParser:getCallbackManager(...)@258 != null
    //#presumption(void onNickChanged(IRCParser, ClientInfo, String)): init'ed(com.dmdirc.ui.input.TabCompletionType.QUERY_NICK)
    //#post(void onNickChanged(IRCParser, ClientInfo, String)): com/dmdirc/ServerManager.me == old com/dmdirc/ServerManager.me
    //#post(void onNickChanged(IRCParser, ClientInfo, String)): java.lang.StringBuilder:toString(...)._tainted == 0
    //#post(void onNickChanged(IRCParser, ClientInfo, String)): this.host == One-of{old this.host, &java.lang.StringBuilder:toString(...)}
    //#post(void onNickChanged(IRCParser, ClientInfo, String)): init'ed(this.host)
    //#post(void onNickChanged(IRCParser, ClientInfo, String)): new ArrayList(ServerManager#1) num objects == 0, if init'ed
    //#post(void onNickChanged(IRCParser, ClientInfo, String)): new ServerManager(getServerManager#1) num objects == 0, if init'ed
    //#post(void onNickChanged(IRCParser, ClientInfo, String)): new ServerManager(getServerManager#1).__Tag not init'ed, if init'ed
    //#post(void onNickChanged(IRCParser, ClientInfo, String)): new ServerManager(getServerManager#1).servers == null
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.parser.irc.ClientInfo:parseHost
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.ui.interfaces.QueryWindow:setTitle
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.logger.Logger:assertTrue
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:getType
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.ArrayList:iterator
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:trigger
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:getArity
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.interfaces.ActionListener:processEvent
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:triggerActions
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:getState
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:getUI
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:getFrame
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.actions.ConditionTree$OPERATION:ordinal
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Deque:pollFirst
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.Character:instanceof
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.Character:charValue
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Deque:isEmpty
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:readTerm
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.ArrayDeque
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Deque:pollLast
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Deque:addFirst
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:parseStack
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Deque:poll
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Deque:add
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Deque:size
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.Integer:parseInt
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.Character:valueOf
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptions
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:indexOf
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:replace
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Map:entrySet
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:[Ljava.lang.String;:instanceof
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.String:instanceof
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuffer:insert
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:doServerSubstitutions
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:doComponentSubstitutions
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:getServer
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.ServerState:equals
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:getCompatibleComponents
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:get
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:getArgTypes
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:test
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:evaluate
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.ui.interfaces.UIController:getActiveWindow
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:instanceof
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.List:get
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.commandparser.parsers.CommandParser:parseCommand
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuffer:setLength
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(void onNickChanged(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.ui.interfaces.Window:addLine
    //#test_vector(void onNickChanged(IRCParser, ClientInfo, String)): java.lang.String:equals(...)@257: {0}, {1}
            final CallbackManager callbackManager = server.getParser().getCallbackManager();
    //#Query.java:258: Warning: method not available - call not analyzed
    //#    call on CallbackManager com.dmdirc.parser.irc.IRCParser:getCallbackManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: CallbackManager com.dmdirc.parser.irc.IRCParser:getCallbackManager()

            callbackManager.delCallback("onPrivateAction", this);
    //#Query.java:260: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.parser.irc.callbacks.CallbackManager:delCallback(String, ICallbackInterface)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: void com.dmdirc.parser.irc.callbacks.CallbackManager:delCallback(String, ICallbackInterface)
            callbackManager.delCallback("onPrivateMessage", this);
    //#Query.java:261: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.parser.irc.callbacks.CallbackManager:delCallback(String, ICallbackInterface)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: void com.dmdirc.parser.irc.callbacks.CallbackManager:delCallback(String, ICallbackInterface)

            try {
                callbackManager.addCallback("onPrivateAction", this, cClient.getNickname());
    //#Query.java:264: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#Query.java:264: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback(String, ICallbackInterface, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: void com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback(String, ICallbackInterface, String)
                callbackManager.addCallback("onPrivateMessage", this, cClient.getNickname());
    //#Query.java:265: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#Query.java:265: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback(String, ICallbackInterface, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: void com.dmdirc.parser.irc.callbacks.CallbackManager:addCallback(String, ICallbackInterface, String)
            } catch (CallbackNotFoundException ex) {
                Logger.appError(ErrorLevel.HIGH, "Unable to get query events", ex);
    //#Query.java:267: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: void com.dmdirc.logger.Logger:appError(ErrorLevel, String, Throwable)
            }

            final StringBuffer format = new StringBuffer("queryNickChanged");

            ActionManager.processEvent(CoreActionType.QUERY_NICKCHANGE, format, this, sOldNick);
    //#Query.java:272: ?!precondition failure
    //#    com/dmdirc/actions/ActionManager.processEvent: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    basic block: bb_5
    //#    assertion: (soft) undefined in {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    callee: void com/dmdirc/actions/ActionManager.processEvent(ActionType, StringBuffer, Object[])
    //#    callee assertion: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    callee file: ActionManager.java
    //#    callee precondition index: [29]
    //#    callee srcpos: 365
    //#    VN: undefined
    //#    Expected: {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    Bad: {0, Invalid}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Soft  Bad < Exp

            server.getTabCompleter().removeEntry(TabCompletionType.QUERY_NICK, sOldNick);
    //#Query.java:274: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.input.TabCompleter:removeEntry(TabCompletionType, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: void com.dmdirc.ui.input.TabCompleter:removeEntry(TabCompletionType, String)
            server.getTabCompleter().addEntry(TabCompletionType.QUERY_NICK, cClient.getNickname());
    //#Query.java:275: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#Query.java:275: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.input.TabCompleter:addEntry(TabCompletionType, String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: void com.dmdirc.ui.input.TabCompleter:addEntry(TabCompletionType, String)

            addLine(format, sOldNick, cClient.getIdent(),
    //#Query.java:277: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getIdent()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getIdent()
    //#Query.java:277: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getHost()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getHost()
    //#Query.java:277: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getNickname()
                    cClient.getHost(), cClient.getNickname());
            host = cClient.getNickname() + "!" + cClient.getIdent() + "@" + cClient.getHost();
    //#Query.java:279: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#Query.java:279: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getIdent()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getIdent()
    //#Query.java:279: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getHost()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onNickChanged(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getHost()
            updateTitle();
        }
    }
    //#Query.java:282: end of method: void com.dmdirc.Query.onNickChanged(IRCParser, ClientInfo, String)

    /** {@inheritDoc} */
    @Override
    public void onQuit(final IRCParser tParser, final ClientInfo cClient,
            final String sReason) {
        if (cClient.getNickname().equals(ClientInfo.parseHost(host))) {
    //#Query.java:288: method: void com.dmdirc.Query.onQuit(IRCParser, ClientInfo, String)
    //#Query.java:288: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onQuit(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#Query.java:288: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onQuit(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#input(void onQuit(IRCParser, ClientInfo, String)): "queryQuit"._tainted
    //#input(void onQuit(IRCParser, ClientInfo, String)): "queryQuitReason"._tainted
    //#input(void onQuit(IRCParser, ClientInfo, String)): __Descendant_Table[com/dmdirc/Query]
    //#input(void onQuit(IRCParser, ClientInfo, String)): __Descendant_Table[others]
    //#input(void onQuit(IRCParser, ClientInfo, String)): __Dispatch_Table.addLine(Ljava/lang/StringBuffer;[Ljava/lang/Object;)V
    //#input(void onQuit(IRCParser, ClientInfo, String)): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onQuit(IRCParser, ClientInfo, String)): cClient
    //#input(void onQuit(IRCParser, ClientInfo, String)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#67).__Tag
    //#input(void onQuit(IRCParser, ClientInfo, String)): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#67).type
    //#input(void onQuit(IRCParser, ClientInfo, String)): com.dmdirc.actions.metatypes.QueryEvents__static_init.new QueryEvents(QueryEvents__static_init#4).__Tag
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/Channel.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/CustomWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Channel]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/FrameContainer]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/MessageTarget]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Raw]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Server]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/WritableFrameContainer]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCChatWindow]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCFrame]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCPlugin$3]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCSendWindow]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Descendant_Table[others]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/FrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/GlobalWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/MessageTarget.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/Raw.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/Server.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/WritableFrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/ActionManager.killSwitch
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/ActionManager.listeners
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/CoreActionType.QUERY_QUIT
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/CoreActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionMetaType]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ActionEvents]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ChannelEvents]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ClientEvents]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/PluginEvents]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/QueryEvents]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ServerEvents]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCEvents]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[others]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionMetaType.__Dispatch_Table.getArity()I
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/CoreActionType]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionType]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCActions]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[others]
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/interfaces/ActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/metatypes/ActionEvents.__Dispatch_Table.getArity()I
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/metatypes/ChannelEvents.__Dispatch_Table.getArity()I
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/metatypes/ClientEvents.__Dispatch_Table.getArity()I
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/metatypes/PluginEvents.__Dispatch_Table.getArity()I
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/metatypes/QueryEvents.__Dispatch_Table.getArity()I
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/actions/metatypes/ServerEvents.__Dispatch_Table.getArity()I
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/addons/dcc/actions/DCCActions.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/addons/dcc/actions/DCCEvents.__Dispatch_Table.getArity()I
    //#input(void onQuit(IRCParser, ClientInfo, String)): sReason
    //#input(void onQuit(IRCParser, ClientInfo, String)): this
    //#input(void onQuit(IRCParser, ClientInfo, String)): this.__Tag
    //#input(void onQuit(IRCParser, ClientInfo, String)): this.host
    //#output(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/ServerManager.me
    //#output(void onQuit(IRCParser, ClientInfo, String)): new ArrayList(ServerManager#1) num objects
    //#output(void onQuit(IRCParser, ClientInfo, String)): new ServerManager(getServerManager#1) num objects
    //#output(void onQuit(IRCParser, ClientInfo, String)): new ServerManager(getServerManager#1).__Tag
    //#output(void onQuit(IRCParser, ClientInfo, String)): new ServerManager(getServerManager#1).servers
    //#new obj(void onQuit(IRCParser, ClientInfo, String)): new ArrayList(ServerManager#1)
    //#new obj(void onQuit(IRCParser, ClientInfo, String)): new ServerManager(getServerManager#1)
    //#pre[1] (void onQuit(IRCParser, ClientInfo, String)): cClient != null
    //#pre[12] (void onQuit(IRCParser, ClientInfo, String)): init'ed(this.host)
    //#pre[2] (void onQuit(IRCParser, ClientInfo, String)): (soft) com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#67).type != null
    //#pre[4] (void onQuit(IRCParser, ClientInfo, String)): (soft) init'ed(com/dmdirc/actions/ActionManager.killSwitch)
    //#pre[5] (void onQuit(IRCParser, ClientInfo, String)): (soft) init'ed(com/dmdirc/ServerManager.me)
    //#pre[6] (void onQuit(IRCParser, ClientInfo, String)): (soft) sReason != null
    //#pre[11] (void onQuit(IRCParser, ClientInfo, String)): (soft) this.__Tag == com/dmdirc/Query
    //#presumption(void onQuit(IRCParser, ClientInfo, String)): com.dmdirc.parser.irc.ClientInfo:getNickname(...)@288 != null
    //#post(void onQuit(IRCParser, ClientInfo, String)): com/dmdirc/ServerManager.me == old com/dmdirc/ServerManager.me
    //#post(void onQuit(IRCParser, ClientInfo, String)): new ArrayList(ServerManager#1) num objects == 0, if init'ed
    //#post(void onQuit(IRCParser, ClientInfo, String)): new ServerManager(getServerManager#1) num objects == 0, if init'ed
    //#post(void onQuit(IRCParser, ClientInfo, String)): new ServerManager(getServerManager#1).__Tag not init'ed, if init'ed
    //#post(void onQuit(IRCParser, ClientInfo, String)): new ServerManager(getServerManager#1).servers == null
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.logger.Logger:assertTrue
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:getType
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.ArrayList:iterator
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:trigger
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:getArity
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.interfaces.ActionListener:processEvent
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:triggerActions
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:getState
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:getUI
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:getFrame
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.actions.ConditionTree$OPERATION:ordinal
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.List:size
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Deque:pollFirst
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.Character:instanceof
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.Character:charValue
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Deque:isEmpty
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:readTerm
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.ArrayDeque
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Deque:pollLast
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Deque:addFirst
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:parseStack
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Deque:poll
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Deque:add
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Deque:size
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.Integer:parseInt
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.Character:valueOf
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptions
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:indexOf
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuilder:replace
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Map:entrySet
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:[Ljava.lang.String;:instanceof
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.String:instanceof
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuffer:insert
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:doServerSubstitutions
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:doComponentSubstitutions
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:getServer
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.ServerState:equals
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:getCompatibleComponents
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:get
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:getArgTypes
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:test
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:evaluate
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.ui.interfaces.UIController:getActiveWindow
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:instanceof
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.util.List:get
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.commandparser.parsers.CommandParser:parseCommand
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuffer:setLength
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(void onQuit(IRCParser, ClientInfo, String)): Effects-of-calling:com.dmdirc.ui.interfaces.Window:addLine
    //#test_vector(void onQuit(IRCParser, ClientInfo, String)): java.lang.String:equals(...)@288: {0}, {1}
            final StringBuffer format = new StringBuffer(sReason.isEmpty()
                ? "queryQuit" : "queryQuitReason");

            ActionManager.processEvent(CoreActionType.QUERY_QUIT, format, this, sReason);
    //#Query.java:292: ?!precondition failure
    //#    com/dmdirc/actions/ActionManager.processEvent: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.Query
    //#    method: void onQuit(IRCParser, ClientInfo, String)
    //#    basic block: bb_5
    //#    assertion: (soft) undefined in {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    callee: void com/dmdirc/actions/ActionManager.processEvent(ActionType, StringBuffer, Object[])
    //#    callee assertion: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    callee file: ActionManager.java
    //#    callee precondition index: [29]
    //#    callee srcpos: 365
    //#    VN: undefined
    //#    Expected: {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    Bad: {0, Invalid}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Soft  Bad < Exp

            addLine(format, cClient.getNickname(),
    //#Query.java:294: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onQuit(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getNickname()
    //#Query.java:294: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getIdent()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onQuit(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getIdent()
    //#Query.java:294: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:getHost()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void onQuit(IRCParser, ClientInfo, String)
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:getHost()
                    cClient.getIdent(), cClient.getHost(), sReason);
        }
    }
    //#Query.java:297: end of method: void com.dmdirc.Query.onQuit(IRCParser, ClientInfo, String)

    /**
     * Returns the Server associated with this query.
     *
     * @return associated Server
     */
    @Override
    public Server getServer() {
        return server;
    //#Query.java:306: method: Server com.dmdirc.Query.getServer()
    //#input(Server getServer()): this
    //#input(Server getServer()): this.server
    //#output(Server getServer()): return_value
    //#pre[2] (Server getServer()): init'ed(this.server)
    //#post(Server getServer()): return_value == this.server
    //#post(Server getServer()): init'ed(return_value)
    //#Query.java:306: end of method: Server com.dmdirc.Query.getServer()
    }

    /** {@inheritDoc} */
    @Override
    public void windowClosing() {
        // 1: Make the window non-visible
        window.setVisible(false);
    //#Query.java:313: method: void com.dmdirc.Query.windowClosing()
    //#Query.java:313: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.interfaces.QueryWindow:setVisible(bool)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void windowClosing()
    //#    unanalyzed callee: void com.dmdirc.ui.interfaces.QueryWindow:setVisible(bool)
    //#input(void windowClosing()): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#62).__Tag
    //#input(void windowClosing()): com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#62).type
    //#input(void windowClosing()): com.dmdirc.actions.metatypes.QueryEvents__static_init.new QueryEvents(QueryEvents__static_init#1).__Tag
    //#input(void windowClosing()): com/dmdirc/Server.__Descendant_Table[com/dmdirc/Server]
    //#input(void windowClosing()): com/dmdirc/Server.__Descendant_Table[others]
    //#input(void windowClosing()): com/dmdirc/Server.__Dispatch_Table.delQuery(Lcom/dmdirc/Query;)V
    //#input(void windowClosing()): com/dmdirc/Server.__Dispatch_Table.getParser()Lcom/dmdirc/parser/irc/IRCParser;
    //#input(void windowClosing()): com/dmdirc/Server.com.dmdirc.ui.input.TabCompletionType.QUERY_NICK
    //#input(void windowClosing()): com/dmdirc/actions/ActionManager.killSwitch
    //#input(void windowClosing()): com/dmdirc/actions/ActionManager.listeners
    //#input(void windowClosing()): com/dmdirc/actions/CoreActionType.QUERY_CLOSED
    //#input(void windowClosing()): com/dmdirc/actions/CoreActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void windowClosing()): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionMetaType]
    //#input(void windowClosing()): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ActionEvents]
    //#input(void windowClosing()): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ChannelEvents]
    //#input(void windowClosing()): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ClientEvents]
    //#input(void windowClosing()): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/PluginEvents]
    //#input(void windowClosing()): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/QueryEvents]
    //#input(void windowClosing()): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/actions/metatypes/ServerEvents]
    //#input(void windowClosing()): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCEvents]
    //#input(void windowClosing()): com/dmdirc/actions/interfaces/ActionMetaType.__Descendant_Table[others]
    //#input(void windowClosing()): com/dmdirc/actions/interfaces/ActionMetaType.__Dispatch_Table.getArity()I
    //#input(void windowClosing()): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/CoreActionType]
    //#input(void windowClosing()): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/actions/interfaces/ActionType]
    //#input(void windowClosing()): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[com/dmdirc/addons/dcc/actions/DCCActions]
    //#input(void windowClosing()): com/dmdirc/actions/interfaces/ActionType.__Descendant_Table[others]
    //#input(void windowClosing()): com/dmdirc/actions/interfaces/ActionType.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void windowClosing()): com/dmdirc/actions/metatypes/ActionEvents.__Dispatch_Table.getArity()I
    //#input(void windowClosing()): com/dmdirc/actions/metatypes/ChannelEvents.__Dispatch_Table.getArity()I
    //#input(void windowClosing()): com/dmdirc/actions/metatypes/ClientEvents.__Dispatch_Table.getArity()I
    //#input(void windowClosing()): com/dmdirc/actions/metatypes/PluginEvents.__Dispatch_Table.getArity()I
    //#input(void windowClosing()): com/dmdirc/actions/metatypes/QueryEvents.__Dispatch_Table.getArity()I
    //#input(void windowClosing()): com/dmdirc/actions/metatypes/ServerEvents.__Dispatch_Table.getArity()I
    //#input(void windowClosing()): com/dmdirc/addons/dcc/actions/DCCActions.__Dispatch_Table.getType()Lcom/dmdirc/actions/interfaces/ActionMetaType;
    //#input(void windowClosing()): com/dmdirc/addons/dcc/actions/DCCEvents.__Dispatch_Table.getArity()I
    //#input(void windowClosing()): this
    //#input(void windowClosing()): this.host
    //#input(void windowClosing()): this.server
    //#input(void windowClosing()): this.server.__Tag
    //#input(void windowClosing()): this.server.parser
    //#input(void windowClosing()): this.server.queries
    //#input(void windowClosing()): this.server.tabCompleter
    //#input(void windowClosing()): this.window
    //#output(void windowClosing()): com/dmdirc/ServerManager.me
    //#output(void windowClosing()): new ArrayList(ServerManager#1) num objects
    //#output(void windowClosing()): new ServerManager(getServerManager#1) num objects
    //#output(void windowClosing()): new ServerManager(getServerManager#1).__Tag
    //#output(void windowClosing()): new ServerManager(getServerManager#1).servers
    //#output(void windowClosing()): this.server
    //#output(void windowClosing()): this.window
    //#new obj(void windowClosing()): new ArrayList(ServerManager#1)
    //#new obj(void windowClosing()): new ServerManager(getServerManager#1)
    //#pre[7] (void windowClosing()): init'ed(com/dmdirc/actions/ActionManager.killSwitch)
    //#pre[9] (void windowClosing()): init'ed(this.server)
    //#pre[10] (void windowClosing()): this.window != null
    //#pre[5] (void windowClosing()): (soft) com.dmdirc.actions.CoreActionType__static_init.new CoreActionType(CoreActionType__static_init#62).type != null
    //#pre[8] (void windowClosing()): (soft) init'ed(com/dmdirc/ServerManager.me)
    //#pre[13] (void windowClosing()): (soft) init'ed(this.host)
    //#pre[14] (void windowClosing()): (soft) this.server.__Tag == com/dmdirc/Server
    //#pre[15] (void windowClosing()): (soft) init'ed(this.server.parser)
    //#pre[16] (void windowClosing()): (soft) this.server.queries != null
    //#pre[17] (void windowClosing()): (soft) this.server.tabCompleter != null
    //#presumption(void windowClosing()): com.dmdirc.parser.irc.IRCParser:getCallbackManager(...)@317 != null
    //#post(void windowClosing()): com/dmdirc/ServerManager.me == old com/dmdirc/ServerManager.me
    //#post(void windowClosing()): this.server == null
    //#post(void windowClosing()): this.window == null
    //#post(void windowClosing()): new ArrayList(ServerManager#1) num objects == undefined
    //#post(void windowClosing()): new ArrayList(ServerManager#1) num objects == 0, if init'ed
    //#post(void windowClosing()): new ServerManager(getServerManager#1) num objects == new ArrayList(ServerManager#1) num objects
    //#post(void windowClosing()): new ServerManager(getServerManager#1).__Tag == new ArrayList(ServerManager#1) num objects
    //#post(void windowClosing()): new ServerManager(getServerManager#1).servers == undefined
    //#post(void windowClosing()): new ServerManager(getServerManager#1).servers == null
    //#unanalyzed(void windowClosing()): Effects-of-calling:com.dmdirc.parser.irc.ClientInfo:parseHost
    //#unanalyzed(void windowClosing()): Effects-of-calling:com.dmdirc.logger.Logger:assertTrue
    //#unanalyzed(void windowClosing()): Effects-of-calling:getType
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.Iterator:hasNext
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.Iterator:next
    //#unanalyzed(void windowClosing()): Effects-of-calling:com.dmdirc.util.MapList:containsKey
    //#unanalyzed(void windowClosing()): Effects-of-calling:com.dmdirc.util.MapList:get
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.ArrayList
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.ArrayList:iterator
    //#unanalyzed(void windowClosing()): Effects-of-calling:trigger
    //#unanalyzed(void windowClosing()): Effects-of-calling:getArity
    //#unanalyzed(void windowClosing()): Effects-of-calling:com.dmdirc.interfaces.ActionListener:processEvent
    //#unanalyzed(void windowClosing()): Effects-of-calling:triggerActions
    //#unanalyzed(void windowClosing()): Effects-of-calling:getState
    //#unanalyzed(void windowClosing()): Effects-of-calling:getUI
    //#unanalyzed(void windowClosing()): Effects-of-calling:getFrame
    //#unanalyzed(void windowClosing()): Effects-of-calling:com.dmdirc.actions.ConditionTree$OPERATION:ordinal
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.List:size
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.Deque:pollFirst
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.Character:instanceof
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.Character:charValue
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.Deque:isEmpty
    //#unanalyzed(void windowClosing()): Effects-of-calling:readTerm
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.ArrayDeque
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.Deque:pollLast
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.Deque:addFirst
    //#unanalyzed(void windowClosing()): Effects-of-calling:parseStack
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.Deque:poll
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.Deque:add
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.Deque:size
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.String:length
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.String:charAt
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.String:valueOf
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.Integer:parseInt
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.Throwable:__curr_excep_obj
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.Character:valueOf
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.StringBuilder:length
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.List:iterator
    //#unanalyzed(void windowClosing()): Effects-of-calling:com.dmdirc.config.IdentityManager:getGlobalConfig
    //#unanalyzed(void windowClosing()): Effects-of-calling:com.dmdirc.config.ConfigManager:getOptions
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.StringBuilder:indexOf
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.StringBuilder:replace
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.Map:entrySet
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.Set:iterator
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.Map$Entry:getKey
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.Map$Entry:getValue
    //#unanalyzed(void windowClosing()): Effects-of-calling:[Ljava.lang.String;:instanceof
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.String:instanceof
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.String:split
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.StringBuffer
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.StringBuffer:length
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.StringBuffer:insert
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.StringBuffer:toString
    //#unanalyzed(void windowClosing()): Effects-of-calling:doServerSubstitutions
    //#unanalyzed(void windowClosing()): Effects-of-calling:doComponentSubstitutions
    //#unanalyzed(void windowClosing()): Effects-of-calling:getServer
    //#unanalyzed(void windowClosing()): Effects-of-calling:com.dmdirc.ServerState:equals
    //#unanalyzed(void windowClosing()): Effects-of-calling:getCompatibleComponents
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.Object:toString
    //#unanalyzed(void windowClosing()): Effects-of-calling:get
    //#unanalyzed(void windowClosing()): Effects-of-calling:getArgTypes
    //#unanalyzed(void windowClosing()): Effects-of-calling:test
    //#unanalyzed(void windowClosing()): Effects-of-calling:evaluate
    //#unanalyzed(void windowClosing()): Effects-of-calling:com.dmdirc.ui.interfaces.UIController:getActiveWindow
    //#unanalyzed(void windowClosing()): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:instanceof
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.List:get
    //#unanalyzed(void windowClosing()): Effects-of-calling:com.dmdirc.commandparser.parsers.GlobalCommandParser:getGlobalCommandParser
    //#unanalyzed(void windowClosing()): Effects-of-calling:com.dmdirc.ui.interfaces.InputWindow:getCommandParser
    //#unanalyzed(void windowClosing()): Effects-of-calling:com.dmdirc.commandparser.parsers.CommandParser:parseCommand
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.StringBuffer:setLength
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.lang.StringBuffer:append
    //#unanalyzed(void windowClosing()): Effects-of-calling:com.dmdirc.ui.input.TabCompleter:removeEntry
    //#unanalyzed(void windowClosing()): Effects-of-calling:java.util.List:remove
    //#test_vector(void windowClosing()): this.server: Addr_Set{null}, Inverse{null}
    //#test_vector(void windowClosing()): this.server.parser: Addr_Set{null}, Inverse{null}

        // 2: Remove any callbacks or listeners
        if (server != null && server.getParser() != null) {
            server.getParser().getCallbackManager().delAllCallback(this);
    //#Query.java:317: Warning: method not available - call not analyzed
    //#    call on CallbackManager com.dmdirc.parser.irc.IRCParser:getCallbackManager()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void windowClosing()
    //#    unanalyzed callee: CallbackManager com.dmdirc.parser.irc.IRCParser:getCallbackManager()
    //#Query.java:317: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.parser.irc.callbacks.CallbackManager:delAllCallback(ICallbackInterface)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void windowClosing()
    //#    unanalyzed callee: void com.dmdirc.parser.irc.callbacks.CallbackManager:delAllCallback(ICallbackInterface)
        }

        // 3: Trigger any actions neccessary

        // 4: Trigger action for the window closing
        ActionManager.processEvent(CoreActionType.QUERY_CLOSED, null, this);
    //#Query.java:323: ?!precondition failure
    //#    com/dmdirc/actions/ActionManager.processEvent: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.Query
    //#    method: void windowClosing()
    //#    basic block: bb_4
    //#    assertion: (soft) undefined in {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    callee: void com/dmdirc/actions/ActionManager.processEvent(ActionType, StringBuffer, Object[])
    //#    callee assertion: (soft) type.type.__Tag in {com/dmdirc/actions/interfaces/ActionMetaType, com/dmdirc/actions/metatypes/ActionEvents, com/dmdirc/actions/metatypes/ChannelEvents, com/dmdirc/actions/metatypes/ClientEvents, com/dmdirc/actions/metatypes/PluginEvents, com/dmdirc/actions/metatypes/QueryEvents, com/dmdirc/actions/metatypes/ServerEvents, com/dmdirc/addons/dcc/actions/DCCEvents}
    //#    callee file: ActionManager.java
    //#    callee precondition index: [29]
    //#    callee srcpos: 365
    //#    VN: undefined
    //#    Expected: {340_736, 341_760, 342_528, 343_040, 343_552, 344_064, 344_576, 362_496}
    //#    Bad: {0, Invalid}
    //#    Attribs:  Int  Bad singleton  Bad overlaps +/-1000  Soft  Bad < Exp

        // 5: Inform any parents that the window is closing
        if (server != null) {
            server.delQuery(this);
        }

        // 6: Remove the window from the window manager
        WindowManager.removeWindow(window);
    //#Query.java:331: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.ui.WindowManager:removeWindow(Window)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void windowClosing()
    //#    unanalyzed callee: void com.dmdirc.ui.WindowManager:removeWindow(Window)

        // 7: Remove any references to the window and parents
        window = null;
        server = null;
    }
    //#Query.java:336: end of method: void com.dmdirc.Query.windowClosing()

    /**
     * Returns this query's name.
     *
     * @return A string representation of this query (i.e., the user's name)
     */
    @Override
    public String toString() {
        return ClientInfo.parseHost(host);
    //#Query.java:345: method: String com.dmdirc.Query.toString()
    //#Query.java:345: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: String toString()
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#input(String toString()): this
    //#input(String toString()): this.host
    //#output(String toString()): return_value
    //#pre[2] (String toString()): init'ed(this.host)
    //#post(String toString()): init'ed(return_value)
    //#Query.java:345: end of method: String com.dmdirc.Query.toString()
    }

    /**
     * Returns the host that this query is with.
     *
     * @return The full host that this query is with
     */
    public String getHost() {
        return host;
    //#Query.java:354: method: String com.dmdirc.Query.getHost()
    //#input(String getHost()): this
    //#input(String getHost()): this.host
    //#output(String getHost()): return_value
    //#pre[2] (String getHost()): init'ed(this.host)
    //#post(String getHost()): return_value == this.host
    //#post(String getHost()): init'ed(return_value)
    //#Query.java:354: end of method: String com.dmdirc.Query.getHost()
    }

    /**
     * Returns the current nickname of the user that this query is with.
     *
     * @return The nickname of this query's user
     */
    public String getNickname() {
        return ClientInfo.parseHost(host);
    //#Query.java:363: method: String com.dmdirc.Query.getNickname()
    //#Query.java:363: Warning: method not available - call not analyzed
    //#    call on String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: String getNickname()
    //#    unanalyzed callee: String com.dmdirc.parser.irc.ClientInfo:parseHost(String)
    //#input(String getNickname()): this
    //#input(String getNickname()): this.host
    //#output(String getNickname()): return_value
    //#pre[2] (String getNickname()): init'ed(this.host)
    //#post(String getNickname()): init'ed(return_value)
    //#Query.java:363: end of method: String com.dmdirc.Query.getNickname()
    }

    /** {@inheritDoc} */
    @Override
    public void activateFrame() {
        if (window == null) {
    //#Query.java:369: method: void com.dmdirc.Query.activateFrame()
    //#Query.java:369: Warning: suspicious precondition
    //#    The precondition for this.__Tag is not a contiguous range of values
    //#    severity: SUPPRESSED
    //#    class: com.dmdirc.Query
    //#    method: void activateFrame()
    //#    suspicious precondition index: [2]
    //#    Attribs:  Soft
    //#input(void activateFrame()): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void activateFrame()): com/dmdirc/Channel.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void activateFrame()): com/dmdirc/CustomWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void activateFrame()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Channel]
    //#input(void activateFrame()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/CustomWindow]
    //#input(void activateFrame()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/FrameContainer]
    //#input(void activateFrame()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/GlobalWindow]
    //#input(void activateFrame()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/MessageTarget]
    //#input(void activateFrame()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#input(void activateFrame()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Raw]
    //#input(void activateFrame()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Server]
    //#input(void activateFrame()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/WritableFrameContainer]
    //#input(void activateFrame()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCChatWindow]
    //#input(void activateFrame()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCFrame]
    //#input(void activateFrame()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCPlugin$3]
    //#input(void activateFrame()): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/addons/dcc/DCCSendWindow]
    //#input(void activateFrame()): com/dmdirc/FrameContainer.__Descendant_Table[others]
    //#input(void activateFrame()): com/dmdirc/FrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void activateFrame()): com/dmdirc/GlobalWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void activateFrame()): com/dmdirc/MessageTarget.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void activateFrame()): com/dmdirc/Raw.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void activateFrame()): com/dmdirc/Server.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void activateFrame()): com/dmdirc/WritableFrameContainer.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void activateFrame()): com/dmdirc/addons/dcc/DCCChatWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void activateFrame()): com/dmdirc/addons/dcc/DCCFrame.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void activateFrame()): com/dmdirc/addons/dcc/DCCPlugin$3.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void activateFrame()): com/dmdirc/addons/dcc/DCCSendWindow.__Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#input(void activateFrame()): this
    //#input(void activateFrame()): this.__Tag
    //#input(void activateFrame()): this.window
    //#pre[3] (void activateFrame()): init'ed(this.window)
    //#pre[2] (void activateFrame()): (soft) this.__Tag in {com/dmdirc/Channel, com/dmdirc/CustomWindow, com/dmdirc/FrameContainer, com/dmdirc/GlobalWindow, com/dmdirc/MessageTarget, com/dmdirc/Query, com/dmdirc/Raw, com/dmdirc/Server, com/dmdirc/WritableFrameContainer, com/dmdirc/addons/dcc/DCCChatWindow, com/dmdirc/addons/dcc/DCCFrame, com/dmdirc/addons/dcc/DCCPlugin$3, com/dmdirc/addons/dcc/DCCSendWindow}
    //#unanalyzed(void activateFrame()): Effects-of-calling:com.dmdirc.ui.interfaces.QueryWindow:open
    //#unanalyzed(void activateFrame()): Effects-of-calling:getFrame
    //#unanalyzed(void activateFrame()): Effects-of-calling:com.dmdirc.ui.interfaces.Window:activateFrame
    //#test_vector(void activateFrame()): this.window: Inverse{null}, Addr_Set{null}
    //#test_vector(void activateFrame()): com.dmdirc.ui.interfaces.QueryWindow:isVisible(...)@373: {1}, {0}
            return;
        }

        if (!window.isVisible()) {
    //#Query.java:373: Warning: method not available - call not analyzed
    //#    call on bool com.dmdirc.ui.interfaces.QueryWindow:isVisible()
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.Query
    //#    method: void activateFrame()
    //#    unanalyzed callee: bool com.dmdirc.ui.interfaces.QueryWindow:isVisible()
            show();
        }

        super.activateFrame();
    }
    //#Query.java:378: end of method: void com.dmdirc.Query.activateFrame()

}
    //#output(com.dmdirc.Query__static_init): __Descendant_Table[com/dmdirc/Query]
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.activateFrame()V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.addIconChangeListener(Lcom/dmdirc/interfaces/IconChangeListener;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.addLine(Ljava/lang/String;[Ljava/lang/Object;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.addLine(Ljava/lang/StringBuffer;[Ljava/lang/Object;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.addNotificationListener(Lcom/dmdirc/interfaces/NotificationListener;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.addSelectionListener(Lcom/dmdirc/interfaces/SelectionListener;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.clearNotification()V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.close()V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.despatchNotification(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.doNotification(Ljava/lang/String;Lcom/dmdirc/actions/interfaces/ActionType;[Ljava/lang/Object;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager;
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/InputWindow;
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window;
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.getHost()Ljava/lang/String;
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.getIcon()Ljavax/swing/Icon;
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.getMaxLineLength()I
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.getNickname()Ljava/lang/String;
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.getNotification()Ljava/awt/Color;
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.getNumLines(Ljava/lang/String;)I
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.getServer()Lcom/dmdirc/Server;
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.getTabCompleter()Lcom/dmdirc/ui/input/TabCompleter;
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.handleNotification(Ljava/lang/String;[Ljava/lang/Object;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.iconUpdated()V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.modifyNotificationArgs(Ljava/util/List;Ljava/util/List;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.onNickChanged(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ClientInfo;Ljava/lang/String;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.onPrivateAction(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.onPrivateMessage(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.onQuit(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ClientInfo;Ljava/lang/String;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.ownsFrame(Lcom/dmdirc/ui/interfaces/Window;)Z
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.processNotificationArg(Ljava/lang/Object;Ljava/util/List;)Z
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.removeIconChangeListener(Lcom/dmdirc/interfaces/IconChangeListener;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.removeNotificationListener(Lcom/dmdirc/interfaces/NotificationListener;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.removeSelectionListener(Lcom/dmdirc/interfaces/SelectionListener;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.reregister()V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.sendAction(Ljava/lang/String;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.sendLine(Ljava/lang/String;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.sendNotification(Ljava/awt/Color;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.setIcon(Ljava/lang/String;)V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.show()V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.splitLine(Ljava/lang/String;)Ljava/util/List;
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.toString()Ljava/lang/String;
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.updateTitle()V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.windowActivated()V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.windowClosed()V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.windowClosing()V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.windowDeactivated()V
    //#output(com.dmdirc.Query__static_init): __Dispatch_Table.windowOpened()V
    //#output(com.dmdirc.Query__static_init): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#output(com.dmdirc.Query__static_init): com/dmdirc/MessageTarget.__Descendant_Table[com/dmdirc/Query]
    //#output(com.dmdirc.Query__static_init): com/dmdirc/WritableFrameContainer.__Descendant_Table[com/dmdirc/Query]
    //#post(com.dmdirc.Query__static_init): __Descendant_Table[com/dmdirc/Query] == &__Dispatch_Table
    //#post(com.dmdirc.Query__static_init): com/dmdirc/FrameContainer.__Descendant_Table[com/dmdirc/Query] == &__Dispatch_Table
    //#post(com.dmdirc.Query__static_init): com/dmdirc/MessageTarget.__Descendant_Table[com/dmdirc/Query] == &__Dispatch_Table
    //#post(com.dmdirc.Query__static_init): com/dmdirc/WritableFrameContainer.__Descendant_Table[com/dmdirc/Query] == &__Dispatch_Table
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.activateFrame()V == &activateFrame
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.addIconChangeListener(Lcom/dmdirc/interfaces/IconChangeListener;)V == &com/dmdirc/FrameContainer.addIconChangeListener
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.addLine(Ljava/lang/String;[Ljava/lang/Object;)V == &com/dmdirc/FrameContainer.addLine
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.addLine(Ljava/lang/StringBuffer;[Ljava/lang/Object;)V == &com/dmdirc/FrameContainer.addLine
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.addNotificationListener(Lcom/dmdirc/interfaces/NotificationListener;)V == &com/dmdirc/FrameContainer.addNotificationListener
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.addSelectionListener(Lcom/dmdirc/interfaces/SelectionListener;)V == &com/dmdirc/FrameContainer.addSelectionListener
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.clearNotification()V == &com/dmdirc/FrameContainer.clearNotification
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.close()V == &com/dmdirc/FrameContainer.close
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.despatchNotification(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/Object;)V == &com/dmdirc/WritableFrameContainer.despatchNotification
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.doNotification(Ljava/lang/String;Lcom/dmdirc/actions/interfaces/ActionType;[Ljava/lang/Object;)V == &com/dmdirc/WritableFrameContainer.doNotification
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.getConfigManager()Lcom/dmdirc/config/ConfigManager; == &com/dmdirc/FrameContainer.getConfigManager
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/InputWindow; == &getFrame
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.getFrame()Lcom/dmdirc/ui/interfaces/Window; == &getFrame
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.getHost()Ljava/lang/String; == &getHost
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.getIcon()Ljavax/swing/Icon; == &com/dmdirc/FrameContainer.getIcon
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.getMaxLineLength()I == &getMaxLineLength
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.getNickname()Ljava/lang/String; == &getNickname
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.getNotification()Ljava/awt/Color; == &com/dmdirc/FrameContainer.getNotification
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.getNumLines(Ljava/lang/String;)I == &com/dmdirc/WritableFrameContainer.getNumLines
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.getServer()Lcom/dmdirc/Server; == &getServer
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.getTabCompleter()Lcom/dmdirc/ui/input/TabCompleter; == &getTabCompleter
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.handleNotification(Ljava/lang/String;[Ljava/lang/Object;)V == &com/dmdirc/WritableFrameContainer.handleNotification
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.iconUpdated()V == &com/dmdirc/FrameContainer.iconUpdated
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.modifyNotificationArgs(Ljava/util/List;Ljava/util/List;)V == &com/dmdirc/WritableFrameContainer.modifyNotificationArgs
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.onNickChanged(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ClientInfo;Ljava/lang/String;)V == &onNickChanged
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.onPrivateAction(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V == &onPrivateAction
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.onPrivateMessage(Lcom/dmdirc/parser/irc/IRCParser;Ljava/lang/String;Ljava/lang/String;)V == &onPrivateMessage
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.onQuit(Lcom/dmdirc/parser/irc/IRCParser;Lcom/dmdirc/parser/irc/ClientInfo;Ljava/lang/String;)V == &onQuit
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.ownsFrame(Lcom/dmdirc/ui/interfaces/Window;)Z == &com/dmdirc/FrameContainer.ownsFrame
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.processNotificationArg(Ljava/lang/Object;Ljava/util/List;)Z == &com/dmdirc/WritableFrameContainer.processNotificationArg
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.removeIconChangeListener(Lcom/dmdirc/interfaces/IconChangeListener;)V == &com/dmdirc/FrameContainer.removeIconChangeListener
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.removeNotificationListener(Lcom/dmdirc/interfaces/NotificationListener;)V == &com/dmdirc/FrameContainer.removeNotificationListener
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.removeSelectionListener(Lcom/dmdirc/interfaces/SelectionListener;)V == &com/dmdirc/FrameContainer.removeSelectionListener
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.reregister()V == &reregister
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.sendAction(Ljava/lang/String;)V == &sendAction
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.sendLine(Ljava/lang/String;)V == &sendLine
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.sendNotification(Ljava/awt/Color;)V == &com/dmdirc/FrameContainer.sendNotification
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.setIcon(Ljava/lang/String;)V == &com/dmdirc/FrameContainer.setIcon
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.show()V == &show
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.splitLine(Ljava/lang/String;)Ljava/util/List; == &com/dmdirc/WritableFrameContainer.splitLine
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.toString()Ljava/lang/String; == &toString
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.updateTitle()V == &updateTitle
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.windowActivated()V == &com/dmdirc/FrameContainer.windowActivated
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.windowClosed()V == &com/dmdirc/FrameContainer.windowClosed
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.windowClosing()V == &windowClosing
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.windowDeactivated()V == &com/dmdirc/FrameContainer.windowDeactivated
    //#post(com.dmdirc.Query__static_init): __Dispatch_Table.windowOpened()V == &com/dmdirc/FrameContainer.windowOpened
    //#Query.java:: end of method: com.dmdirc.Query.com.dmdirc.Query__static_init
    //#Query.java:: end of class: com.dmdirc.Query
