[TeamTalk 339]: [875] trunk/TeamTalk: 1) Commented all of PenDecoderServer. java with javadoc comments.

tk@edam.speech.cs.cmu.edu tk at edam.speech.cs.cmu.edu
Tue Nov 13 01:38:54 EST 2007


An HTML attachment was scrubbed...
URL: http://mailman.srv.cs.cmu.edu/pipermail/teamtalk-developers/attachments/20071113/3d91126f/attachment-0001.html
-------------- next part --------------
Modified: trunk/TeamTalk/Agents/PenDecoder/src/edu/cmu/ravenclaw/pendecoder/PenDecoderServer.java
===================================================================
--- trunk/TeamTalk/Agents/PenDecoder/src/edu/cmu/ravenclaw/pendecoder/PenDecoderServer.java	2007-11-11 21:51:45 UTC (rev 874)
+++ trunk/TeamTalk/Agents/PenDecoder/src/edu/cmu/ravenclaw/pendecoder/PenDecoderServer.java	2007-11-13 06:38:53 UTC (rev 875)
@@ -20,14 +20,39 @@
 import galaxy.lang.*;
 import java.awt.geom.Point2D;
 
+/**
+ * This is the main interface for the Galaxy server.
+ */
 public class PenDecoderServer extends galaxy.server.Server {
   
+  /**
+   * This is port for the Galaxy server.
+   */
   public static final int PORT = 11002;
+  
+  /**
+   * This is the main application frame.
+   */
   protected static PenDecoderDisplay frame = null;
+  /**
+   * This is an artifact required in Olympus1, but probably not
+   * required in Olympus2.
+   */
   protected static int lastUttID = 0;
+  /**
+   * This is the system that keeps track of the robot's locations.
+   */
   public static BotTracker botTracker = null;
   
-  /** Creates a new instance of PenDecoderServer */
+  /**
+   * Created a new galaxy server instance. The first instance will
+   * instantiate the PenDecoderDisplay and the bot tracker.
+   * @param mainserver the main galaxy server that accepts connections from
+   * hubs and spawns galaxy servers
+   * @param socket the socket that the mainserver hands off to the
+   * servers
+   * @exception java.io.IOException there are problems handling the socket this is thrown
+   */
   public PenDecoderServer(MainServer mainserver, java.net.Socket socket) throws IOException {
     super(mainserver,  socket);
     if(frame == null) {
@@ -39,6 +64,11 @@
     frame.addServer(this);
   }
   
+  /**
+   * This is called when a hub connects (when else?).
+   * We set the bot to be at the origin.
+   * @param f the galaxy frame with the server info
+   */
   public void serverOpReinitialize(GFrame f) {
     String botName = (String)f.getProperty(":user_id");
     if(!botName.equals("TeamTalk")) {
@@ -46,6 +76,12 @@
     }
   }
   
+  /**
+   * This is called when evidence arises of a bot position change.
+   * We inform the bot tracker.
+   * @param f the Galaxy frame with the bot location information.
+   * @return the unaltered Galaxy frame.
+   */
   public GFrame serverOpSetBot(GFrame f) {
     String name = (String)f.getProperty(":robot_name");
     //we operate in centimeter space
@@ -58,6 +94,13 @@
     return (GFrame) null;
   }
   
+  /**
+   * This function is called when evidence of "treasure" comes up.
+   * We set an "object" in the bot tracker.
+   * @param f The Galaxy frame with the trasure information.
+   * @ return The unmodified Galaxy frame.
+   * @return An unmodified Galaxy frame.
+   */ 
   public GFrame serverOpInfoUpdate(GFrame f) {
     System.err.println("got info update");
     String ip = (String)f.getProperty(":ip");
@@ -70,6 +113,13 @@
     return (GFrame) null;
   }
   
+  /**
+   * This function is called when there is a status update on a task.
+   * We update the taskkeeper with the information and print out status info
+   * about the task to the console for now.
+   * @param f The galaxy frame with the task status info.
+   * @return An unmodified galaxy frame.
+   */
   public GFrame serverOpTaskUpdate(GFrame f) {
     System.err.println("got task update");
     String type = (String)f.getProperty(":type");
@@ -108,6 +158,12 @@
     return (GFrame) null;
   }
   
+  /**
+   * This function is called when there is evidence that a bot has a goal 
+   * position.
+   * @param f A Galaxy frame with information about a robot translation goal.
+   * @return An unmodified Galaxy frame.
+   */
   public GFrame serverOpSetGoal(GFrame f) {
     String name = (String)f.getProperty(":robot_name");
     boolean relative = (((Integer)f.getProperty(":relative")).intValue() == 1);
@@ -125,12 +181,26 @@
     return (GFrame) null;
   }
   
+  /**
+   * This function is called when there is evidence that a robot has been halted.
+   * For now this is a noop. There's probably a nice way to display this though.
+   * @param f A Galaxy frame with the name of a robot that has been halted.
+   * @return An unmodified Galaxy frame.
+   */
   public GFrame serverOpSetHalt(GFrame f) {
       String name = (String)f.getProperty(":robot_name");
       System.err.println(name + " should halt");
       return (GFrame) null;
   }
   
+  /**
+   * This function is called when there is evidence that a robot is planning to
+   * follow another robot.
+   * For now this function is a noop, but there's probably a nice graphical
+   * way to display this information.
+   * @param f A Galaxy frame with following information.
+   * @return An unmodified Galaxy frame.
+   */
   public GFrame serverOpSetFollow(GFrame f) {
       String name = (String)f.getProperty(":robot_name");
       String followee = (String)f.getProperty(":followee");
@@ -138,6 +208,13 @@
       return (GFrame) null;
   }
   
+  /**
+   * This function is called when there is evidence that a robot is planning to
+   * "cover" an "area". For now the "area" is just a set of waypoints.
+   * This function is currently just a noop.
+   * @param f A Galaxy frame with robot covering intention information.
+   * @return An unmodified Galaxy frame.
+   */ 
   public GFrame serverOpSetCover(GFrame f) {
       String name = (String)f.getProperty(":robot_name");
       GVector x = f.getList(":x");
@@ -146,6 +223,12 @@
       return (GFrame) null;
   }
   
+  /**
+   * This function is called when a robot says something.
+   * The text of what the robot says is displayed in the console window.
+   * @param f A Galaxy frame with information about which robot sais what.
+   * @return An unmodified Galaxy frame.
+   */
   public GFrame serverOpSpeak(GFrame f) {
     String utt = (String)f.getProperty(":speaktext");
     utt.trim();
@@ -164,6 +247,14 @@
     return (GFrame) null;
   }
   
+  /**
+   * This function is called when the human operator says something. The
+   * information comes from helios, so it represents the best guess (possibly
+   * using multiple sources of information) as to what the person said.
+   * We display the hypothesized utterance and a confidence score in the console.
+   * @param f A galaxy frame with the annotated utterance.
+   * @return An unmodified galaxy frame.
+   */
   public GFrame serverOpProcessParse(GFrame f) {
     //lets only listen to one parse per utt
     //this may be the wrong bot's parse, but they're normally almost identical
@@ -187,6 +278,17 @@
     return (GFrame) null;
   }
   
+  /**
+   * This function is called when a bot believes that it is the current addressee. 
+   * This occurs in three distinct ways:
+   * 1) The robot is selected on the GUI.
+   * 2) The robot hears its name called by the human operator.
+   * 3) The robot starts a conversation.
+   * We change the color of this bot to yellow, and non-selected bots are changed
+   * to red.
+   * @param f A Galaxy frame with the name of the selected bot.
+   * @return An unmodified Galaxy frame.
+   */
   public GFrame serverOpSelectBot(GFrame f) {
     System.err.println("got select_bot: " + f.toString());
     String inframe = (String)f.getProperty(":inframe");
@@ -198,6 +300,13 @@
     return (GFrame)null;
   }
   
+  /**
+   * The function is called when there is new map data from the map server.
+   * We update the map.
+   * @param f A Galaxy frame with the new map data. The map data may be a full
+   * map or a diff on the previous map.
+   * @return An unmodified Galaxy frame.
+   */
   public GFrame serverOpMapUpdate(GFrame f) {
     System.err.println("got map update");
     String type = (String)f.getProperty(":type");
@@ -220,6 +329,13 @@
     return (GFrame)null;
   }
   
+  /**
+   * This function is called when we get a camera image from a robot with a
+   * camera.
+   * We display the image in the lower right corner.
+   * @param f A Galaxy frame with the camera image.
+   * @return An unmodified Galaxy frame.
+   */
   public GFrame serverOpImage(GFrame f) {
     GBinary gb = f.getBinary(":jpeg");
     try {
@@ -232,6 +348,11 @@
     return (GFrame)null;
   }
   
+  /**
+   * This function sends a robot selection to the hub. We use this to express
+   * a desired conversation addressee.
+   * @param name The name of the robot that we wish to address.
+   */
   public void saySelectBot(String name) {
     System.err.println("selecting from server: " + name);
     Map<String, String> rname = new HashMap<String, String>();
@@ -239,6 +360,14 @@
     sayToBot("Commands", "[HumanReportCommand]", rname);
   }
   
+  /**
+   * This function sends a location and an orientation to a robot. We use this
+   * to tell robots where we think they are.
+   * @param name The name of the robot that we're talking about.
+   * @param x The x location of the robot w.r.t. the map (in centimeters)
+   * @param y The y location of the robot w.r.t. the map (in centimeters)
+   * @param theta The yaw of the robot (in radians?)
+   */
   public void placeBot(String name, float x, float y, float theta) {
     System.err.println("placing bot " + name + ": (" + x/100 + " " + y/100 + ") " + theta);
     Map<String, String> pose = new HashMap<String, String>();
@@ -248,6 +377,13 @@
     sayToBot("Commands", "[HumanSetPoseCommand]", pose);
   }
   
+  /**
+   * This function sends an instruction for the robots to search an "area".
+   * The "area" here is defined by a rectangle.
+   * For now this is not used as the robots don't have this capability.
+   * @param shape A rectangle within whose bounds the robots are requested to
+   * search. The rectangle is w.r.t. the map and it's verticies are in centimeters.
+   */
   public void search(RectangleShape shape) {
     System.err.println("Searching...");
     Map<String, String> loc = new HashMap<String, String>();
@@ -259,6 +395,12 @@
     sayToBot("Commands", "[HumanSearchCommand]", loc);
   }
   
+  /**
+   * This function sends an instruction for the robots to explore an "area".
+   * The "area" here is defined by an ordered set of waypoints.
+   * @param shape An ordered set of waypoints the robots are requested to
+   * search along. Waypoints are in centimeters.
+   */
   public void explore(PolyLineShape shape) {
     System.err.println("Exploring...");
     Map<String, String> loc = new HashMap<String, String>();
@@ -271,6 +413,10 @@
     sayToBot("Commands", "[HumanExploreCommand]", loc);
   }
   
+  /**
+   * This function attempts to cancel the specified task.
+   * @param taskid The taskid of the task to cancel.
+   */
   public void cancelTask(Integer taskid) {
     System.err.println("Cancelling " + taskid);
     Map<String, String> task = new HashMap<String, String>();
@@ -278,6 +424,12 @@
     sayToBot("Commands", "[HumanCancelTaskCommand]", task);
   }
   
+  /**
+   * This function sends an instruction for the robots to search an "area".
+   * The "area" here is defined by an ordered set of waypoints.
+   * @param shape An ordered set of waypoints along which the robots are requested to
+   * search. The waypoints are in centimeters.
+   */
   public void search(PolyLineShape shape) {
     System.err.println("Searching...");
     Map<String, String> loc = new HashMap<String, String>();
@@ -290,6 +442,10 @@
     sayToBot("Commands", "[HumanSearchCommand]", loc);
   }
   
+  /**
+   * This functions sents a "start session" to the hub. A "start session"
+   * indicates that the operator is ready to speak and listen to the robots.
+   */ 
   public void startSession() {
     GFrame f = new Clause("main");
     long time = System.currentTimeMillis()/1000;
@@ -298,29 +454,47 @@
     send_to_hub(f);
   }
   
+  /**
+   * This functions sents an "end session" to the hub. An "end session"
+   * indicates that the operator is not ready to speak or listen to the robots.
+   */ 
   public void endSession() {
     GFrame f = new Clause("main");
     f.setProperty(":close_session", "");
     send_to_hub(f);
   }
   
+  /**
+   * This function tells all of the robots to immediately stop. It is designed
+   * for emergency situations.
+   */
   public void eStop() {
     System.err.println("estop...");
     sayToBot("Commands", "[HumanHaltCommand]", null);
   }
   
+  /**
+   * This function instructs a robot to pause what it's currently attempting,
+   * but not necessarily to abandon its task.
+   */
   public void pauseRobot() {
     System.err.println("Pausing...");
-    //Map<String, String> loc = new HashMap<String, String>();
     sayToBot("Commands", "[HumanPauseCommand]", null);
   }
   
+  /**
+   * This function instructs a robot to resume from a pause.
+   */
   public void unpauseRobot() {
     System.err.println("Unpausing...");
-    //Map<String, String> loc = new HashMap<String, String>();
     sayToBot("Commands", "[HumanContinueCommand]", null);
   }
   
+  /**
+   * This function simulates a spoken utterance, and is called when words are
+   * typed in the console window. It's primary pupose is a debugging and testing aid.
+   * @param utt The utterance to be simulated.
+   */
   public void say(String utt) {
     GFrame f = new Clause("main");
     
@@ -338,6 +512,17 @@
     send_to_hub(f);
   }
   
+  /**
+   * This function packages the things that the operator expresses with the
+   * pendecoder as parsed utterances to be sent to helios. This is a bit of
+   * a kludge, since those expressions are not utterances at all, and features
+   * such as "acoustic_gap_norm" have no meaning. Ultimately Helios will need
+   * to be generalized to handle this a little better.
+   * @param frame This is the type of utterance (FUNCTION in Phoenix parlance)
+   * for the time being "Commands" is the only type used.
+   * @param slot This is the top-level slot for the pseudo-utterance.
+   * @param net This is a list of second-level nets and associated pseudo-words.
+   */
   public void sayToBot(String frame, String slot, Map<String, String> net) {
     GFrame f = new Clause("main");
     
@@ -377,25 +562,41 @@
     pgoSlots.addElement(gfSlot);
     
     // then construct the encompassing parse
-    gfParse.setProperty(":slots", pgoSlots);
-    gfParse.setProperty(":numslots", 1);
+    gfParse.setProperty(":hyp", hyp); //bogus but so what?
+    gfParse.setProperty(":confhyp", hyp); //bogus but so what?
     gfParse.setProperty(":uttid", "-1");
-    gfParse.setProperty(":hyp", hyp); //bogus but so what?
-    gfParse.setProperty(":hyp_index", 0);
-    gfParse.setProperty(":hyp_num_parses", 1);
+    gfParse.setProperty(":engine_name", "bogus");
+    gfParse.setProperty(":nbest_index", 0);
     gfParse.setProperty(":decoder_score", 0.0F);
+    gfParse.setProperty(":lm_score", 0.0F);
     gfParse.setProperty(":am_score", 0.0F);
-    gfParse.setProperty(":lm_score", 0.0F);
     gfParse.setProperty(":frame_num", 0);
     gfParse.setProperty(":acoustic_gap_norm", 0.0F);
+    gfParse.setProperty(":avg_sphinxwordconf", 0.0F);
+    gfParse.setProperty(":min_sphinxwordconf", 0.0F);
+    gfParse.setProperty(":max_sphinxwordconf", 0.0F);
     gfParse.setProperty(":avg_wordconf", 0.0F);
     gfParse.setProperty(":min_wordconf", 0.0F);
     gfParse.setProperty(":max_wordconf", 0.0F);
     gfParse.setProperty(":avg_validwordconf", 0.0F);
     gfParse.setProperty(":min_validwordconf", 0.0F);
     gfParse.setProperty(":max_validwordconf", 0.0F);
+    gfParse.setProperty(":startframes", "0");
+    gfParse.setProperty(":endframes", "0");
+    gfParse.setProperty(":init_timestamp", 0);
+    gfParse.setProperty(":end_timestamp", 0);
+    gfParse.setProperty(":slots", pgoSlots);
+    gfParse.setProperty(":numslots", 1);
+    int tokens = 0;
+    for(String phrase: net.values()) {
+      tokens += phrase.split(" +").length;
+    }
+    gfParse.setProperty(":numtokens", tokens);
     gfParse.setProperty(":parsestring", 
             frame + "\n" + slot + " " + parse + "\n\n");
+    gfParse.setProperty(":hyp_index", 0);
+    gfParse.setProperty(":hyp_num_parses", 1);
+    gfParse.setProperty(":gal_slotstring", gfSlot.toString());
     pgoParses.addElement(gfParse);
     
     f.setProperty(":parses", pgoParses);
@@ -404,6 +605,10 @@
     send_to_hub(f);
   }
 
+  /**
+   * This function marshals a constructed Galaxy frame to the hub.
+   * @param f The frame that we wish to send to the hub.
+   */
   public void send_to_hub(GFrame f) {
     System.err.println("sending the frame: " + f.toString());
     
@@ -416,6 +621,15 @@
     }
   }
   
+  /**
+   * This function reads a peerfile configuration to determine the ip address of
+   * the opatrader. At one time this was required because the maps were registered
+   * to the bot that running the optrader server. Now this function is probably
+   * irrelevant since the map server handles that registration internally.
+   * @param peerfilename The filename of the peerfile configuration.
+   * @return The name of the bot that is running the optrader as specified in the
+   * peerfile configuration.
+   */
   private static String getOpTraderFrameHolder(String peerfilename) {
     try {
       BufferedReader reader = new BufferedReader(new FileReader(peerfilename));
@@ -433,6 +647,13 @@
     return "CLYDE";
   }
   
+  /**
+   * This main block gets the optrader frame holder (probably uneccessary) and 
+   * then starts the mainserver. The mainserver waits for hub connections and 
+   * instantiates this class for every connecting hub.
+   * @param args The command line args. Only the peerfile may be specified, and
+   * even that is probably not neccessary.
+   */
   public static void main(String[] args) {
     for(int i=0; i<args.length; i++) {
         System.err.println("looking at arg '" + args[i] + "'");

Modified: trunk/TeamTalk/Agents/TeamTalkBackend/TeamTalkBackend.vcproj
===================================================================
--- trunk/TeamTalk/Agents/TeamTalkBackend/TeamTalkBackend.vcproj	2007-11-11 21:51:45 UTC (rev 874)
+++ trunk/TeamTalk/Agents/TeamTalkBackend/TeamTalkBackend.vcproj	2007-11-13 06:38:53 UTC (rev 875)
@@ -66,7 +66,7 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="wsock32.lib $(OLYMPUS_ROOT)\Libraries\Galaxy\lib\x86-nt\libgalaxy_debug.lib $(OLYMPUS_ROOT)\Agents\Pythia\PythiaDynamicClient\Debug\PythiaDynamicClient.lib"
+				AdditionalDependencies="wsock32.lib"
 				OutputFile="$(OutDir)/TeamTalkBackend.exe"
 				LinkIncremental="2"
 				GenerateDebugInformation="true"
@@ -148,7 +148,7 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="$(OLYMPUS_ROOT)\Libraries\Galaxy\lib\x86-nt\libgalaxy.lib $(OLYMPUS_ROOT)\Agents\Pythia\PythiaDynamicClient\Release\PythiaDynamicClient.lib ws2_32.lib"
+				AdditionalDependencies="ws2_32.lib"
 				OutputFile="$(OutDir)/TeamTalkBackend.exe"
 				LinkIncremental="1"
 				IgnoreAllDefaultLibraries="false"

Modified: trunk/TeamTalk/Agents/TeamTalkDM/TeamTalkDM.vcproj
===================================================================
--- trunk/TeamTalk/Agents/TeamTalkDM/TeamTalkDM.vcproj	2007-11-11 21:51:45 UTC (rev 874)
+++ trunk/TeamTalk/Agents/TeamTalkDM/TeamTalkDM.vcproj	2007-11-13 06:38:53 UTC (rev 875)
@@ -69,7 +69,7 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="user32.lib ws2_32.lib $(OLYMPUS_ROOT)\Libraries\Galaxy\lib\x86-nt\libGalaxy_debug.lib"
+				AdditionalDependencies="user32.lib ws2_32.lib"
 				OutputFile="$(OutDir)/TeamTalkDM.exe"
 				LinkIncremental="2"
 				SuppressStartupBanner="true"
@@ -157,7 +157,7 @@
 			/>
 			<Tool
 				Name="VCLinkerTool"
-				AdditionalDependencies="user32.lib ws2_32.lib $(OLYMPUS_ROOT)\Libraries\Galaxy\lib\x86-nt\libGalaxy.lib"
+				AdditionalDependencies="user32.lib ws2_32.lib"
 				OutputFile="$(OutDir)/TeamTalkDM.exe"
 				LinkIncremental="1"
 				GenerateDebugInformation="true"

Modified: trunk/TeamTalk/Configurations/DesktopConfiguration/helios-template.cfg
===================================================================
--- trunk/TeamTalk/Configurations/DesktopConfiguration/helios-template.cfg	2007-11-11 21:51:45 UTC (rev 874)
+++ trunk/TeamTalk/Configurations/DesktopConfiguration/helios-template.cfg	2007-11-13 06:38:53 UTC (rev 875)
@@ -26,7 +26,7 @@
 log_filename=helios-%%NAME%%.log
 
 # the name of the dictionary
-dictionary=..\..\Resources\DecoderConfig\Dictionary\zap2.dict.reduced_phoneset
+dictionary=..\..\Resources\DecoderConfig\Dictionary\TeamTalk.dict
 
 # dialog state map
 dialog_state_mapping=null.dsm

Modified: trunk/TeamTalk/Configurations/DesktopConfiguration/startlist-desktop.config
===================================================================
--- trunk/TeamTalk/Configurations/DesktopConfiguration/startlist-desktop.config	2007-11-11 21:51:45 UTC (rev 874)
+++ trunk/TeamTalk/Configurations/DesktopConfiguration/startlist-desktop.config	2007-11-13 06:38:53 UTC (rev 875)
@@ -59,5 +59,6 @@
 PROCESS_MONITOR_ARGS: --start
 PROCESS_TITLE: Hub
 
-PROCESS: $OLYMPUS_BIN\Apollo -config Apollo.cfg
+PROCESS: $OLYMPUS_BIN\Apollo -maxconns 6 -config Apollo.cfg
+PROCESS_MONITOR_ARGS: --start
 PROCESS_TITLE: Apollo
\ No newline at end of file

Modified: trunk/TeamTalk/TeamTalk.sln
===================================================================
--- trunk/TeamTalk/TeamTalk.sln	2007-11-11 21:51:45 UTC (rev 874)
+++ trunk/TeamTalk/TeamTalk.sln	2007-11-13 06:38:53 UTC (rev 875)
@@ -3,7 +3,9 @@
 # Visual Studio 2005
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TeamTalkBackend", "Agents\TeamTalkBackend\TeamTalkBackend.vcproj", "{098CB2CB-4903-4D0E-83AA-C9781D6C1F2F}"
 	ProjectSection(ProjectDependencies) = postProject
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17} = {945E2005-F07F-4686-9815-2E2AEE0E0D17}
 		{4051C912-8C55-442F-9AF8-3F3AE9859776} = {4051C912-8C55-442F-9AF8-3F3AE9859776}
+		{BC3C2AF0-EF36-4587-B384-E154B6EDCC33} = {BC3C2AF0-EF36-4587-B384-E154B6EDCC33}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "backendstub", "Agents\TeamTalkBackend\backendstub\backendstub.vcproj", "{596C5D37-C409-4C46-BA28-B7F5EFB96851}"
@@ -13,108 +15,218 @@
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "TeamTalkDM", "Agents\TeamTalkDM\TeamTalkDM.vcproj", "{8AD2EDB1-F154-40E3-8317-6799592E8B34}"
 	ProjectSection(ProjectDependencies) = postProject
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17} = {945E2005-F07F-4686-9815-2E2AEE0E0D17}
 		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE} = {924E0F51-560D-42C1-9A34-C3A9ED5AEABE}
 	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PrimitiveComm", "Libraries\PrimitiveComm\PrimitiveComm.vcproj", "{4051C912-8C55-442F-9AF8-3F3AE9859776}"
 EndProject
 Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "TeamTalk-Setup", "TeamTalk-Setup\TeamTalk-Setup.vdproj", "{0639F43D-780B-4C5E-97B1-CBE1362892BE}"
+	ProjectSection(ProjectDependencies) = postProject
+		{AFBC1733-937B-4859-A464-7235F15D9CB1} = {AFBC1733-937B-4859-A464-7235F15D9CB1}
+		{1F467936-3874-41DF-AE19-623655D0D7AA} = {1F467936-3874-41DF-AE19-623655D0D7AA}
+		{10A6C637-B857-4CAA-84C6-841F6BDFD819} = {10A6C637-B857-4CAA-84C6-841F6BDFD819}
+		{3F616A44-C0F1-4587-AB08-6A34041FD798} = {3F616A44-C0F1-4587-AB08-6A34041FD798}
+		{45BAAD46-E855-4963-9CB6-324A3E276851} = {45BAAD46-E855-4963-9CB6-324A3E276851}
+		{58282A64-D289-455D-8FBE-FAD6F3FF1760} = {58282A64-D289-455D-8FBE-FAD6F3FF1760}
+		{9CDBFBA5-F7EB-432F-A7CF-2E80322FE2ED} = {9CDBFBA5-F7EB-432F-A7CF-2E80322FE2ED}
+		{8DD7B7BB-FB1B-4F70-9E6E-29227AF65D5B} = {8DD7B7BB-FB1B-4F70-9E6E-29227AF65D5B}
+		{93C8F5F8-6C43-4179-9B9F-A31AA6438513} = {93C8F5F8-6C43-4179-9B9F-A31AA6438513}
+	EndProjectSection
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "RavenClaw", "%OLYMPUS_ROOT%\Libraries\RavenClaw\RavenClaw.vcproj", "{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}"
 EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGalaxyHubControl", "%OLYMPUS_ROOT%\Libraries\Galaxy\contrib\MIT\galaxy\src\libGalaxyHubControl\libGalaxyHubControl.vcproj", "{C1022E2A-A8D7-4ABB-BBFF-AE47A3E7B074}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGalaxy", "%OLYMPUS_ROOT%\Libraries\Galaxy\src\libGalaxy\libGalaxy.vcproj", "{945E2005-F07F-4686-9815-2E2AEE0E0D17}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "HUB", "%OLYMPUS_ROOT%\Libraries\Galaxy\src\HUB\HUB.vcproj", "{8DD7B7BB-FB1B-4F70-9E6E-29227AF65D5B}"
+	ProjectSection(ProjectDependencies) = postProject
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17} = {945E2005-F07F-4686-9815-2E2AEE0E0D17}
+		{C1022E2A-A8D7-4ABB-BBFF-AE47A3E7B074} = {C1022E2A-A8D7-4ABB-BBFF-AE47A3E7B074}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libpocketsphinx", "%OLYMPUS_ROOT%\Libraries\pocketsphinx\win32\msdev\libpocketsphinx\libpocketsphinx.vcproj", "{C18844B6-86D9-49CF-B7B4-A165B0B64EE0}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sphinxbase", "%OLYMPUS_ROOT%\Libraries\sphinxbase\win32\sphinxbase\sphinxbase.vcproj", "{2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sphinxVAD", "%OLYMPUS_ROOT%\Libraries\sphinxVAD\sphinxVAD.vcproj", "{8DC7970D-587B-4F9B-9BEC-BDA354FAA5D4}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Apollo", "%OLYMPUS_ROOT%\Agents\Apollo\Apollo.vcproj", "{10A6C637-B857-4CAA-84C6-841F6BDFD819}"
+	ProjectSection(ProjectDependencies) = postProject
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17} = {945E2005-F07F-4686-9815-2E2AEE0E0D17}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DateTime", "%OLYMPUS_ROOT%\Agents\DateTime\DateTime.vcproj", "{45BAAD46-E855-4963-9CB6-324A3E276851}"
+	ProjectSection(ProjectDependencies) = postProject
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17} = {945E2005-F07F-4686-9815-2E2AEE0E0D17}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Helios", "%OLYMPUS_ROOT%\Agents\Helios\Helios.vcproj", "{93C8F5F8-6C43-4179-9B9F-A31AA6438513}"
+	ProjectSection(ProjectDependencies) = postProject
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17} = {945E2005-F07F-4686-9815-2E2AEE0E0D17}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Kalliope", "%OLYMPUS_ROOT%\Agents\Kalliope\Kalliope.vcproj", "{9CDBFBA5-F7EB-432F-A7CF-2E80322FE2ED}"
+	ProjectSection(ProjectDependencies) = postProject
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17} = {945E2005-F07F-4686-9815-2E2AEE0E0D17}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "AudioServer", "%OLYMPUS_ROOT%\Agents\MultiDecoder\AudioServer\AudioServer.vcproj", "{58282A64-D289-455D-8FBE-FAD6F3FF1760}"
+	ProjectSection(ProjectDependencies) = postProject
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17} = {945E2005-F07F-4686-9815-2E2AEE0E0D17}
+		{8DC7970D-587B-4F9B-9BEC-BDA354FAA5D4} = {8DC7970D-587B-4F9B-9BEC-BDA354FAA5D4}
+		{2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PocketSphinxEngine", "%OLYMPUS_ROOT%\Agents\MultiDecoder\PocketSphinxEngine\PocketSphinxEngine.vcproj", "{1F467936-3874-41DF-AE19-623655D0D7AA}"
+	ProjectSection(ProjectDependencies) = postProject
+		{2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D} = {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NlgServer", "%OLYMPUS_ROOT%\Agents\NlgServer\NlgServer.vcproj", "{3F616A44-C0F1-4587-AB08-6A34041FD798}"
+	ProjectSection(ProjectDependencies) = postProject
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17} = {945E2005-F07F-4686-9815-2E2AEE0E0D17}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "phoenix", "%OLYMPUS_ROOT%\Agents\Phoenix\phoenix.vcproj", "{AFBC1733-937B-4859-A464-7235F15D9CB1}"
+	ProjectSection(ProjectDependencies) = postProject
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17} = {945E2005-F07F-4686-9815-2E2AEE0E0D17}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PythiaDynamicClient", "%OLYMPUS_ROOT%\Agents\Pythia\PythiaDynamicClient\PythiaDynamicClient.vcproj", "{BC3C2AF0-EF36-4587-B384-E154B6EDCC33}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Win32 = Debug|Win32
-		DebugGalaxy|Win32 = DebugGalaxy|Win32
-		DebugOAA|Win32 = DebugOAA|Win32
 		Publish|Win32 = Publish|Win32
 		Release|Win32 = Release|Win32
-		ReleaseGalaxy|Win32 = ReleaseGalaxy|Win32
-		ReleaseOAA|Win32 = ReleaseOAA|Win32
 	EndGlobalSection
 	GlobalSection(ProjectConfigurationPlatforms) = postSolution
 		{098CB2CB-4903-4D0E-83AA-C9781D6C1F2F}.Debug|Win32.ActiveCfg = Debug|Win32
 		{098CB2CB-4903-4D0E-83AA-C9781D6C1F2F}.Debug|Win32.Build.0 = Debug|Win32
-		{098CB2CB-4903-4D0E-83AA-C9781D6C1F2F}.DebugGalaxy|Win32.ActiveCfg = Debug|Win32
-		{098CB2CB-4903-4D0E-83AA-C9781D6C1F2F}.DebugGalaxy|Win32.Build.0 = Debug|Win32
-		{098CB2CB-4903-4D0E-83AA-C9781D6C1F2F}.DebugOAA|Win32.ActiveCfg = Debug|Win32
-		{098CB2CB-4903-4D0E-83AA-C9781D6C1F2F}.DebugOAA|Win32.Build.0 = Debug|Win32
 		{098CB2CB-4903-4D0E-83AA-C9781D6C1F2F}.Publish|Win32.ActiveCfg = Release|Win32
 		{098CB2CB-4903-4D0E-83AA-C9781D6C1F2F}.Publish|Win32.Build.0 = Release|Win32
 		{098CB2CB-4903-4D0E-83AA-C9781D6C1F2F}.Release|Win32.ActiveCfg = Release|Win32
 		{098CB2CB-4903-4D0E-83AA-C9781D6C1F2F}.Release|Win32.Build.0 = Release|Win32
-		{098CB2CB-4903-4D0E-83AA-C9781D6C1F2F}.ReleaseGalaxy|Win32.ActiveCfg = Release|Win32
-		{098CB2CB-4903-4D0E-83AA-C9781D6C1F2F}.ReleaseGalaxy|Win32.Build.0 = Release|Win32
-		{098CB2CB-4903-4D0E-83AA-C9781D6C1F2F}.ReleaseOAA|Win32.ActiveCfg = Release|Win32
-		{098CB2CB-4903-4D0E-83AA-C9781D6C1F2F}.ReleaseOAA|Win32.Build.0 = Release|Win32
 		{596C5D37-C409-4C46-BA28-B7F5EFB96851}.Debug|Win32.ActiveCfg = Debug|Win32
 		{596C5D37-C409-4C46-BA28-B7F5EFB96851}.Debug|Win32.Build.0 = Debug|Win32
-		{596C5D37-C409-4C46-BA28-B7F5EFB96851}.DebugGalaxy|Win32.ActiveCfg = Debug|Win32
-		{596C5D37-C409-4C46-BA28-B7F5EFB96851}.DebugGalaxy|Win32.Build.0 = Debug|Win32
-		{596C5D37-C409-4C46-BA28-B7F5EFB96851}.DebugOAA|Win32.ActiveCfg = Debug|Win32
-		{596C5D37-C409-4C46-BA28-B7F5EFB96851}.DebugOAA|Win32.Build.0 = Debug|Win32
 		{596C5D37-C409-4C46-BA28-B7F5EFB96851}.Publish|Win32.ActiveCfg = Release|Win32
 		{596C5D37-C409-4C46-BA28-B7F5EFB96851}.Publish|Win32.Build.0 = Release|Win32
 		{596C5D37-C409-4C46-BA28-B7F5EFB96851}.Release|Win32.ActiveCfg = Release|Win32
 		{596C5D37-C409-4C46-BA28-B7F5EFB96851}.Release|Win32.Build.0 = Release|Win32
-		{596C5D37-C409-4C46-BA28-B7F5EFB96851}.ReleaseGalaxy|Win32.ActiveCfg = Release|Win32
-		{596C5D37-C409-4C46-BA28-B7F5EFB96851}.ReleaseGalaxy|Win32.Build.0 = Release|Win32
-		{596C5D37-C409-4C46-BA28-B7F5EFB96851}.ReleaseOAA|Win32.ActiveCfg = Release|Win32
-		{596C5D37-C409-4C46-BA28-B7F5EFB96851}.ReleaseOAA|Win32.Build.0 = Release|Win32
 		{8AD2EDB1-F154-40E3-8317-6799592E8B34}.Debug|Win32.ActiveCfg = Debug|Win32
 		{8AD2EDB1-F154-40E3-8317-6799592E8B34}.Debug|Win32.Build.0 = Debug|Win32
-		{8AD2EDB1-F154-40E3-8317-6799592E8B34}.DebugGalaxy|Win32.ActiveCfg = Debug|Win32
-		{8AD2EDB1-F154-40E3-8317-6799592E8B34}.DebugGalaxy|Win32.Build.0 = Debug|Win32
-		{8AD2EDB1-F154-40E3-8317-6799592E8B34}.DebugOAA|Win32.ActiveCfg = Debug|Win32
-		{8AD2EDB1-F154-40E3-8317-6799592E8B34}.DebugOAA|Win32.Build.0 = Debug|Win32
 		{8AD2EDB1-F154-40E3-8317-6799592E8B34}.Publish|Win32.ActiveCfg = Release|Win32
 		{8AD2EDB1-F154-40E3-8317-6799592E8B34}.Publish|Win32.Build.0 = Release|Win32
 		{8AD2EDB1-F154-40E3-8317-6799592E8B34}.Release|Win32.ActiveCfg = Release|Win32
 		{8AD2EDB1-F154-40E3-8317-6799592E8B34}.Release|Win32.Build.0 = Release|Win32
-		{8AD2EDB1-F154-40E3-8317-6799592E8B34}.ReleaseGalaxy|Win32.ActiveCfg = Release|Win32
-		{8AD2EDB1-F154-40E3-8317-6799592E8B34}.ReleaseGalaxy|Win32.Build.0 = Release|Win32
-		{8AD2EDB1-F154-40E3-8317-6799592E8B34}.ReleaseOAA|Win32.ActiveCfg = Release|Win32
-		{8AD2EDB1-F154-40E3-8317-6799592E8B34}.ReleaseOAA|Win32.Build.0 = Release|Win32
 		{4051C912-8C55-442F-9AF8-3F3AE9859776}.Debug|Win32.ActiveCfg = Debug|Win32
 		{4051C912-8C55-442F-9AF8-3F3AE9859776}.Debug|Win32.Build.0 = Debug|Win32
-		{4051C912-8C55-442F-9AF8-3F3AE9859776}.DebugGalaxy|Win32.ActiveCfg = Debug|Win32
-		{4051C912-8C55-442F-9AF8-3F3AE9859776}.DebugGalaxy|Win32.Build.0 = Debug|Win32
-		{4051C912-8C55-442F-9AF8-3F3AE9859776}.DebugOAA|Win32.ActiveCfg = Debug|Win32
-		{4051C912-8C55-442F-9AF8-3F3AE9859776}.DebugOAA|Win32.Build.0 = Debug|Win32
 		{4051C912-8C55-442F-9AF8-3F3AE9859776}.Publish|Win32.ActiveCfg = Release|Win32
 		{4051C912-8C55-442F-9AF8-3F3AE9859776}.Publish|Win32.Build.0 = Release|Win32
 		{4051C912-8C55-442F-9AF8-3F3AE9859776}.Release|Win32.ActiveCfg = Release|Win32
 		{4051C912-8C55-442F-9AF8-3F3AE9859776}.Release|Win32.Build.0 = Release|Win32
-		{4051C912-8C55-442F-9AF8-3F3AE9859776}.ReleaseGalaxy|Win32.ActiveCfg = Release|Win32
-		{4051C912-8C55-442F-9AF8-3F3AE9859776}.ReleaseGalaxy|Win32.Build.0 = Release|Win32
-		{4051C912-8C55-442F-9AF8-3F3AE9859776}.ReleaseOAA|Win32.ActiveCfg = Release|Win32
-		{4051C912-8C55-442F-9AF8-3F3AE9859776}.ReleaseOAA|Win32.Build.0 = Release|Win32
 		{0639F43D-780B-4C5E-97B1-CBE1362892BE}.Debug|Win32.ActiveCfg = Debug
-		{0639F43D-780B-4C5E-97B1-CBE1362892BE}.DebugGalaxy|Win32.ActiveCfg = Debug
-		{0639F43D-780B-4C5E-97B1-CBE1362892BE}.DebugGalaxy|Win32.Build.0 = Debug
-		{0639F43D-780B-4C5E-97B1-CBE1362892BE}.DebugOAA|Win32.ActiveCfg = Debug
-		{0639F43D-780B-4C5E-97B1-CBE1362892BE}.DebugOAA|Win32.Build.0 = Debug
 		{0639F43D-780B-4C5E-97B1-CBE1362892BE}.Publish|Win32.ActiveCfg = Release
 		{0639F43D-780B-4C5E-97B1-CBE1362892BE}.Publish|Win32.Build.0 = Release
 		{0639F43D-780B-4C5E-97B1-CBE1362892BE}.Release|Win32.ActiveCfg = Release
-		{0639F43D-780B-4C5E-97B1-CBE1362892BE}.ReleaseGalaxy|Win32.ActiveCfg = Release
-		{0639F43D-780B-4C5E-97B1-CBE1362892BE}.ReleaseGalaxy|Win32.Build.0 = Release
-		{0639F43D-780B-4C5E-97B1-CBE1362892BE}.ReleaseOAA|Win32.ActiveCfg = Release
-		{0639F43D-780B-4C5E-97B1-CBE1362892BE}.ReleaseOAA|Win32.Build.0 = Release
 		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.Debug|Win32.ActiveCfg = DebugGalaxy|Win32
 		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.Debug|Win32.Build.0 = DebugGalaxy|Win32
-		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.DebugGalaxy|Win32.ActiveCfg = DebugGalaxy|Win32
-		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.DebugGalaxy|Win32.Build.0 = DebugGalaxy|Win32
-		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.DebugOAA|Win32.ActiveCfg = DebugOAA|Win32
-		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.DebugOAA|Win32.Build.0 = DebugOAA|Win32
-		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.Publish|Win32.ActiveCfg = ReleaseOAA|Win32
-		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.Publish|Win32.Build.0 = ReleaseOAA|Win32
+		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.Publish|Win32.ActiveCfg = ReleaseGalaxy|Win32
+		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.Publish|Win32.Build.0 = ReleaseGalaxy|Win32
 		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.Release|Win32.ActiveCfg = ReleaseGalaxy|Win32
 		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.Release|Win32.Build.0 = ReleaseGalaxy|Win32
-		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.ReleaseGalaxy|Win32.ActiveCfg = ReleaseGalaxy|Win32
-		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.ReleaseGalaxy|Win32.Build.0 = ReleaseGalaxy|Win32
-		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.ReleaseOAA|Win32.ActiveCfg = ReleaseOAA|Win32
-		{924E0F51-560D-42C1-9A34-C3A9ED5AEABE}.ReleaseOAA|Win32.Build.0 = ReleaseOAA|Win32
+		{C1022E2A-A8D7-4ABB-BBFF-AE47A3E7B074}.Debug|Win32.ActiveCfg = Debug|Win32
+		{C1022E2A-A8D7-4ABB-BBFF-AE47A3E7B074}.Debug|Win32.Build.0 = Debug|Win32
+		{C1022E2A-A8D7-4ABB-BBFF-AE47A3E7B074}.Publish|Win32.ActiveCfg = Release|Win32
+		{C1022E2A-A8D7-4ABB-BBFF-AE47A3E7B074}.Publish|Win32.Build.0 = Release|Win32
+		{C1022E2A-A8D7-4ABB-BBFF-AE47A3E7B074}.Release|Win32.ActiveCfg = Release|Win32
+		{C1022E2A-A8D7-4ABB-BBFF-AE47A3E7B074}.Release|Win32.Build.0 = Release|Win32
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17}.Debug|Win32.ActiveCfg = Debug|Win32
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17}.Debug|Win32.Build.0 = Debug|Win32
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17}.Publish|Win32.ActiveCfg = Release|Win32
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17}.Publish|Win32.Build.0 = Release|Win32
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17}.Release|Win32.ActiveCfg = Release|Win32
+		{945E2005-F07F-4686-9815-2E2AEE0E0D17}.Release|Win32.Build.0 = Release|Win32
+		{8DD7B7BB-FB1B-4F70-9E6E-29227AF65D5B}.Debug|Win32.ActiveCfg = Debug|Win32
+		{8DD7B7BB-FB1B-4F70-9E6E-29227AF65D5B}.Debug|Win32.Build.0 = Debug|Win32
+		{8DD7B7BB-FB1B-4F70-9E6E-29227AF65D5B}.Publish|Win32.ActiveCfg = Release|Win32
+		{8DD7B7BB-FB1B-4F70-9E6E-29227AF65D5B}.Publish|Win32.Build.0 = Release|Win32
+		{8DD7B7BB-FB1B-4F70-9E6E-29227AF65D5B}.Release|Win32.ActiveCfg = Release|Win32
+		{8DD7B7BB-FB1B-4F70-9E6E-29227AF65D5B}.Release|Win32.Build.0 = Release|Win32
+		{C18844B6-86D9-49CF-B7B4-A165B0B64EE0}.Debug|Win32.ActiveCfg = Debug|Win32
+		{C18844B6-86D9-49CF-B7B4-A165B0B64EE0}.Debug|Win32.Build.0 = Debug|Win32
+		{C18844B6-86D9-49CF-B7B4-A165B0B64EE0}.Publish|Win32.ActiveCfg = Release|Win32
+		{C18844B6-86D9-49CF-B7B4-A165B0B64EE0}.Publish|Win32.Build.0 = Release|Win32
+		{C18844B6-86D9-49CF-B7B4-A165B0B64EE0}.Release|Win32.ActiveCfg = Release|Win32
+		{C18844B6-86D9-49CF-B7B4-A165B0B64EE0}.Release|Win32.Build.0 = Release|Win32
+		{2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|Win32.ActiveCfg = Debug|Win32
+		{2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|Win32.Build.0 = Debug|Win32
+		{2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Publish|Win32.ActiveCfg = Release|Win32
+		{2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Publish|Win32.Build.0 = Release|Win32
+		{2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|Win32.ActiveCfg = Release|Win32
+		{2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release|Win32.Build.0 = Release|Win32
+		{8DC7970D-587B-4F9B-9BEC-BDA354FAA5D4}.Debug|Win32.ActiveCfg = Debug|Win32
+		{8DC7970D-587B-4F9B-9BEC-BDA354FAA5D4}.Debug|Win32.Build.0 = Debug|Win32
+		{8DC7970D-587B-4F9B-9BEC-BDA354FAA5D4}.Publish|Win32.ActiveCfg = Release|Win32
+		{8DC7970D-587B-4F9B-9BEC-BDA354FAA5D4}.Publish|Win32.Build.0 = Release|Win32
+		{8DC7970D-587B-4F9B-9BEC-BDA354FAA5D4}.Release|Win32.ActiveCfg = Release|Win32
+		{8DC7970D-587B-4F9B-9BEC-BDA354FAA5D4}.Release|Win32.Build.0 = Release|Win32
+		{10A6C637-B857-4CAA-84C6-841F6BDFD819}.Debug|Win32.ActiveCfg = Debug|Win32
+		{10A6C637-B857-4CAA-84C6-841F6BDFD819}.Debug|Win32.Build.0 = Debug|Win32
+		{10A6C637-B857-4CAA-84C6-841F6BDFD819}.Publish|Win32.ActiveCfg = Release|Win32
+		{10A6C637-B857-4CAA-84C6-841F6BDFD819}.Publish|Win32.Build.0 = Release|Win32
+		{10A6C637-B857-4CAA-84C6-841F6BDFD819}.Release|Win32.ActiveCfg = Release|Win32
+		{10A6C637-B857-4CAA-84C6-841F6BDFD819}.Release|Win32.Build.0 = Release|Win32
+		{45BAAD46-E855-4963-9CB6-324A3E276851}.Debug|Win32.ActiveCfg = Debug|Win32
+		{45BAAD46-E855-4963-9CB6-324A3E276851}.Debug|Win32.Build.0 = Debug|Win32
+		{45BAAD46-E855-4963-9CB6-324A3E276851}.Publish|Win32.ActiveCfg = Release|Win32
+		{45BAAD46-E855-4963-9CB6-324A3E276851}.Publish|Win32.Build.0 = Release|Win32
+		{45BAAD46-E855-4963-9CB6-324A3E276851}.Release|Win32.ActiveCfg = Release|Win32
+		{45BAAD46-E855-4963-9CB6-324A3E276851}.Release|Win32.Build.0 = Release|Win32
+		{93C8F5F8-6C43-4179-9B9F-A31AA6438513}.Debug|Win32.ActiveCfg = Debug|Win32
+		{93C8F5F8-6C43-4179-9B9F-A31AA6438513}.Debug|Win32.Build.0 = Debug|Win32
+		{93C8F5F8-6C43-4179-9B9F-A31AA6438513}.Publish|Win32.ActiveCfg = Release|Win32
+		{93C8F5F8-6C43-4179-9B9F-A31AA6438513}.Publish|Win32.Build.0 = Release|Win32
+		{93C8F5F8-6C43-4179-9B9F-A31AA6438513}.Release|Win32.ActiveCfg = Release|Win32
+		{93C8F5F8-6C43-4179-9B9F-A31AA6438513}.Release|Win32.Build.0 = Release|Win32
+		{9CDBFBA5-F7EB-432F-A7CF-2E80322FE2ED}.Debug|Win32.ActiveCfg = SwiftDebug|Win32
+		{9CDBFBA5-F7EB-432F-A7CF-2E80322FE2ED}.Debug|Win32.Build.0 = SwiftDebug|Win32
+		{9CDBFBA5-F7EB-432F-A7CF-2E80322FE2ED}.Publish|Win32.ActiveCfg = SwiftRelease|Win32
+		{9CDBFBA5-F7EB-432F-A7CF-2E80322FE2ED}.Publish|Win32.Build.0 = SwiftRelease|Win32
+		{9CDBFBA5-F7EB-432F-A7CF-2E80322FE2ED}.Release|Win32.ActiveCfg = SwiftRelease|Win32
+		{9CDBFBA5-F7EB-432F-A7CF-2E80322FE2ED}.Release|Win32.Build.0 = SwiftRelease|Win32
+		{58282A64-D289-455D-8FBE-FAD6F3FF1760}.Debug|Win32.ActiveCfg = Debug|Win32
+		{58282A64-D289-455D-8FBE-FAD6F3FF1760}.Debug|Win32.Build.0 = Debug|Win32
+		{58282A64-D289-455D-8FBE-FAD6F3FF1760}.Publish|Win32.ActiveCfg = Release|Win32
+		{58282A64-D289-455D-8FBE-FAD6F3FF1760}.Publish|Win32.Build.0 = Release|Win32
+		{58282A64-D289-455D-8FBE-FAD6F3FF1760}.Release|Win32.ActiveCfg = Release|Win32
+		{58282A64-D289-455D-8FBE-FAD6F3FF1760}.Release|Win32.Build.0 = Release|Win32
+		{1F467936-3874-41DF-AE19-623655D0D7AA}.Debug|Win32.ActiveCfg = Debug|Win32
+		{1F467936-3874-41DF-AE19-623655D0D7AA}.Debug|Win32.Build.0 = Debug|Win32
+		{1F467936-3874-41DF-AE19-623655D0D7AA}.Publish|Win32.ActiveCfg = Release|Win32
+		{1F467936-3874-41DF-AE19-623655D0D7AA}.Publish|Win32.Build.0 = Release|Win32
+		{1F467936-3874-41DF-AE19-623655D0D7AA}.Release|Win32.ActiveCfg = Release|Win32
+		{1F467936-3874-41DF-AE19-623655D0D7AA}.Release|Win32.Build.0 = Release|Win32
+		{3F616A44-C0F1-4587-AB08-6A34041FD798}.Debug|Win32.ActiveCfg = Debug|Win32
+		{3F616A44-C0F1-4587-AB08-6A34041FD798}.Debug|Win32.Build.0 = Debug|Win32
+		{3F616A44-C0F1-4587-AB08-6A34041FD798}.Publish|Win32.ActiveCfg = Release|Win32
+		{3F616A44-C0F1-4587-AB08-6A34041FD798}.Publish|Win32.Build.0 = Release|Win32
+		{3F616A44-C0F1-4587-AB08-6A34041FD798}.Release|Win32.ActiveCfg = Release|Win32
+		{3F616A44-C0F1-4587-AB08-6A34041FD798}.Release|Win32.Build.0 = Release|Win32
+		{AFBC1733-937B-4859-A464-7235F15D9CB1}.Debug|Win32.ActiveCfg = Debug|Win32
+		{AFBC1733-937B-4859-A464-7235F15D9CB1}.Debug|Win32.Build.0 = Debug|Win32
+		{AFBC1733-937B-4859-A464-7235F15D9CB1}.Publish|Win32.ActiveCfg = Release|Win32
+		{AFBC1733-937B-4859-A464-7235F15D9CB1}.Publish|Win32.Build.0 = Release|Win32
+		{AFBC1733-937B-4859-A464-7235F15D9CB1}.Release|Win32.ActiveCfg = Release|Win32
+		{AFBC1733-937B-4859-A464-7235F15D9CB1}.Release|Win32.Build.0 = Release|Win32
+		{BC3C2AF0-EF36-4587-B384-E154B6EDCC33}.Debug|Win32.ActiveCfg = Debug|Win32
+		{BC3C2AF0-EF36-4587-B384-E154B6EDCC33}.Debug|Win32.Build.0 = Debug|Win32
+		{BC3C2AF0-EF36-4587-B384-E154B6EDCC33}.Publish|Win32.ActiveCfg = Release|Win32
+		{BC3C2AF0-EF36-4587-B384-E154B6EDCC33}.Publish|Win32.Build.0 = Release|Win32
+		{BC3C2AF0-EF36-4587-B384-E154B6EDCC33}.Release|Win32.ActiveCfg = Release|Win32
+		{BC3C2AF0-EF36-4587-B384-E154B6EDCC33}.Release|Win32.Build.0 = Release|Win32
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE


More information about the TeamTalk-developers mailing list