diff -urdN ../../Tekkotsu_2.2.2/project/CVS/Entries ./CVS/Entries
--- ../../Tekkotsu_2.2.2/project/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ ./CVS/Entries	Fri Jan 28 20:12:57 2005
@@ -0,0 +1,14 @@
+/Environment.conf/1.7/Tue Nov 30 21:13:16 2004//Ttekkotsu-2_3
+/Makefile/1.98/Tue Jan 18 23:25:14 2005//Ttekkotsu-2_3
+/StartupBehavior.cc/1.67/Tue Dec 21 21:49:50 2004//Ttekkotsu-2_3
+/StartupBehavior.h/1.12/Thu Nov 11 01:45:37 2004//Ttekkotsu-2_3
+/StartupBehavior_SetupBackgroundBehaviors.cc/1.17/Thu Jan 27 05:42:31 2005//Ttekkotsu-2_3
+/StartupBehavior_SetupFileAccess.cc/1.6/Fri Jan  7 19:37:43 2005//Ttekkotsu-2_3
+/StartupBehavior_SetupModeSwitch.cc/1.41/Sat Jan 29 00:58:25 2005//Ttekkotsu-2_3
+/StartupBehavior_SetupStatusReports.cc/1.4/Wed Jan 12 22:37:26 2005//Ttekkotsu-2_3
+/StartupBehavior_SetupTekkotsuMon.cc/1.17/Tue Dec 14 02:54:01 2004//Ttekkotsu-2_3
+/StartupBehavior_SetupVision.cc/1.16/Wed Mar 17 22:49:15 2004//Ttekkotsu-2_3
+/StartupBehavior_SetupWalkEdit.cc/1.8/Fri May 14 07:18:19 2004//Ttekkotsu-2_3
+/entry.h/1.1/Sat Mar  1 20:53:46 2003//Ttekkotsu-2_3
+D/ms////
+D/templates////
diff -urdN ../../Tekkotsu_2.2.2/project/CVS/Repository ./CVS/Repository
--- ../../Tekkotsu_2.2.2/project/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ ./CVS/Repository	Fri Jan 28 20:12:57 2005
@@ -0,0 +1 @@
+Tekkotsu/project
diff -urdN ../../Tekkotsu_2.2.2/project/CVS/Root ./CVS/Root
--- ../../Tekkotsu_2.2.2/project/CVS/Root	Wed Dec 31 19:00:00 1969
+++ ./CVS/Root	Fri Jan 28 20:12:57 2005
@@ -0,0 +1 @@
+/afs/cs/project/skinnerbots/aibo
diff -urdN ../../Tekkotsu_2.2.2/project/CVS/Tag ./CVS/Tag
--- ../../Tekkotsu_2.2.2/project/CVS/Tag	Wed Dec 31 19:00:00 1969
+++ ./CVS/Tag	Fri Jan 28 20:12:57 2005
@@ -0,0 +1 @@
+Ntekkotsu-2_3
diff -urdN ../../Tekkotsu_2.2.2/project/Environment.conf ./Environment.conf
--- ../../Tekkotsu_2.2.2/project/Environment.conf	Tue Nov 30 16:13:16 2004
+++ ./Environment.conf	Tue Nov 30 16:13:16 2004
@@ -1,5 +1,5 @@
 ############  ENVIRONMENT VARIABLES  ##############
-############# $Name: HEAD $ ###############
+############# $Name: HEAD $ ###############
 ############### $Revision: 1.1 $ #################
 ########## $Date: 2005/01/30 17:44:13 $ ###########
 # If you need to modify these, you should set them as environment
diff -urdN ../../Tekkotsu_2.2.2/project/Makefile ./Makefile
--- ../../Tekkotsu_2.2.2/project/Makefile	Wed Dec 22 17:25:40 2004
+++ ./Makefile	Tue Jan 18 18:25:14 2005
@@ -1,7 +1,7 @@
 ################ PROJECT MAKEFILE #################
-############# $Name: HEAD $ ###############
-############### $Revision: 1.1 $ #################
-########## $Date: 2005/01/30 17:44:13 $ ###########
+############# $Name: HEAD $ ###############
+############### $Revision: 1.1 $ #################
+########## $Date: 2005/01/30 17:44:13 $ ###########
 
 # Make sure the default target is 'all' by listing it first
 all:
@@ -434,44 +434,54 @@
 
 install: compile
 	@echo "Installing files to memory stick at $(MEMSTICK_ROOT)"
-	$(TEKKOTSU_ROOT)/tools/mntmem $(MEMSTICK_ROOT)
-	@if [ \! -r $(MEMSTICK_ROOT)/open-r/version.txt -o \! -r $(MEMSTICK_ROOT)/open-r/system/objs/ipstack.bin -o \! -r $(MEMSTICK_ROOT)/open-r/system/objs/vr.bin -o \! -r $(MEMSTICK_ROOT)/open-r/system/objs/wlanenbl.bin ] ; then \
+	$(TEKKOTSU_ROOT)/tools/mntmem "$(MEMSTICK_ROOT)"
+	@if [ \! -r "$(MEMSTICK_ROOT)/open-r/version.txt" -o \! -r "$(MEMSTICK_ROOT)/open-r/system/objs/ipstack.bin" -o \! -r "$(MEMSTICK_ROOT)/open-r/system/objs/vr.bin" -o \! -r "$(MEMSTICK_ROOT)/open-r/system/objs/wlanenbl.bin" ] ; then \
 		echo "** ERROR: It looks like your memory stick is missing critical system files."; \
 		echo "**        You may want to 'make newstick' first to clear the memory stick"; \
 		echo "**        and copy the OPEN-R system files onto it."; \
-		echo $(TEKKOTSU_ROOT)/tools/umntmem $(MEMSTICK_ROOT); \
-		$(TEKKOTSU_ROOT)/tools/umntmem $(MEMSTICK_ROOT); \
+		echo $(TEKKOTSU_ROOT)/tools/umntmem "$(MEMSTICK_ROOT)"; \
+		$(TEKKOTSU_ROOT)/tools/umntmem "$(MEMSTICK_ROOT)"; \
 		exit 1; \
 	fi;
 	@if [ -z "`grep \"$(if $(findstring TGT_ERS7,$(TEKKOTSU_TARGET_MODEL)),ERS-7,ERS-210/220)\" \"$(MEMSTICK_ROOT)/open-r/version.txt\"`" ] ; then \
 		echo "** ERROR: It looks like your memory stick has the system files for the wrong"; \
 		echo "**        model of AIBO.  You may want to 'make newstick' first to clear the"; \
 		echo "**        memory stick and reinstall the OPEN-R system files onto it."; \
-		echo $(TEKKOTSU_ROOT)/tools/umntmem $(MEMSTICK_ROOT); \
-		$(TEKKOTSU_ROOT)/tools/umntmem $(MEMSTICK_ROOT); \
+		echo $(TEKKOTSU_ROOT)/tools/umntmem "$(MEMSTICK_ROOT)"; \
+		$(TEKKOTSU_ROOT)/tools/umntmem "$(MEMSTICK_ROOT)"; \
 		exit 1; \
 	fi;
-	@$(TEKKOTSU_ROOT)/tools/cpymem --all --img $(MSIMGDIR) --tgt $(MEMSTICK_ROOT) --tools $(TEKKOTSU_ROOT)/tools
+	@$(TEKKOTSU_ROOT)/tools/cpymem --all --img $(MSIMGDIR) --tgt "$(MEMSTICK_ROOT)" --tools $(TEKKOTSU_ROOT)/tools
 	@touch .copiedtomemstick.timestamp
 
 update: compile $(TEKKOTSU_ROOT)/tools/evenmodtime/evenmodtime
 	@echo "Syncing $(MSIMGDIR) and $(MEMSTICK_ROOT)"
 	@$(TEKKOTSU_ROOT)/tools/evenmodtime/evenmodtime `find $(MSIMGDIR)` $(PROJ_BD)/installbin.timestamp
-	@$(TEKKOTSU_ROOT)/tools/mntmem $(MEMSTICK_ROOT)
+	@$(TEKKOTSU_ROOT)/tools/mntmem "$(MEMSTICK_ROOT)"
 	@if [ $(STRICT_MEMSTICK_IMAGE) ] ; then \
 		echo "Strict image copy is on." ; \
-		rsync -rLtWCv --delete $(MSIMGDIR)/* $(PROJ_BD)/$(notdir $(MEMSTICK_ROOT))/* $(MEMSTICK_ROOT) ; \
+		rsync -rLtWCv --delete $(MSIMGDIR)/* "$(PROJ_BD)/$(notdir $(MEMSTICK_ROOT))/"* "$(MEMSTICK_ROOT)" ; \
 	else \
-		rsync -rLtWCv $(MSIMGDIR)/* $(PROJ_BD)/$(notdir $(MEMSTICK_ROOT))/* $(MEMSTICK_ROOT) ; \
+		rsync -rLtWCv $(MSIMGDIR)/* "$(PROJ_BD)/$(notdir $(MEMSTICK_ROOT))/"* "$(MEMSTICK_ROOT)" ; \
 	fi;
-	@$(TEKKOTSU_ROOT)/tools/umntmem $(MEMSTICK_ROOT)
+	@$(TEKKOTSU_ROOT)/tools/umntmem "$(MEMSTICK_ROOT)"
 	@touch .copiedtomemstick.timestamp
 
 newstick:
-	$(TEKKOTSU_ROOT)/tools/mntmem $(MEMSTICK_ROOT)
-	rm -rf $(MEMSTICK_ROOT)/*
-	cp -r $(SYSTEM_BINARIES)/* $(MEMSTICK_ROOT)
-	$(TEKKOTSU_ROOT)/tools/umntmem $(MEMSTICK_ROOT)
+	@echo "  We are about to delete all the files contained within '$(MEMSTICK_ROOT)':"
+	@echo "    rm -rf \"$(MEMSTICK_ROOT)/\"*"
+	@echo
+	@echo "  These files will be replaced with a fresh copy of the system binaries"
+	@echo "  from '$(SYSTEM_BINARIES)'"
+	@printf "  Are you sure you want to continue? (Type 'yes' to continue) > "
+	@read resp ; if [ "$$resp" != "yes" ] ; then \
+		echo "newstick canceled"; \
+		exit 1; \
+	fi;
+	$(TEKKOTSU_ROOT)/tools/mntmem "$(MEMSTICK_ROOT)";
+	rm -rf "$(MEMSTICK_ROOT)/"*;
+	cp -r "$(SYSTEM_BINARIES)/"* "$(MEMSTICK_ROOT)";
+	$(TEKKOTSU_ROOT)/tools/umntmem "$(MEMSTICK_ROOT)";
 
 $(FILTERSYSWARN):
 	(cd $(TEKKOTSU_ROOT)/tools && $(MAKE));
diff -urdN ../../Tekkotsu_2.2.2/project/StartupBehavior_SetupBackgroundBehaviors.cc ./StartupBehavior_SetupBackgroundBehaviors.cc
--- ../../Tekkotsu_2.2.2/project/StartupBehavior_SetupBackgroundBehaviors.cc	Mon Nov 15 17:22:36 2004
+++ ./StartupBehavior_SetupBackgroundBehaviors.cc	Thu Jan 27 00:42:31 2005
@@ -3,6 +3,7 @@
 #include "Behaviors/Controls/ControlBase.h"
 #include "Behaviors/Controls/BehaviorSwitchControl.h"
 
+#include "Behaviors/Demos/FlashIPAddrBehavior.h"
 #include "Behaviors/Demos/SimpleChaseBallBehavior.h"
 #include "Behaviors/Demos/StareAtBallBehavior.h"
 #include "Behaviors/Demos/AutoGetupBehavior.h"
@@ -26,6 +27,7 @@
 	addItem(new ControlBase("Background Behaviors","Background daemons and monitors"));
 	startSubMenu();
 	{ 
+		addItem((new BehaviorSwitchControl<FlashIPAddrBehavior>("Flash IP Address",false))->start());
 		addItem(new BehaviorSwitchControl<SimpleChaseBallBehavior>("Simple Chase Ball",false));
 		addItem(new BehaviorSwitchControl<StareAtBallBehavior>("Stare at Ball",false));
 		addItem(new BehaviorSwitchControl<HeadLevelBehavior>("Head Level",false));
diff -urdN ../../Tekkotsu_2.2.2/project/StartupBehavior_SetupFileAccess.cc ./StartupBehavior_SetupFileAccess.cc
--- ../../Tekkotsu_2.2.2/project/StartupBehavior_SetupFileAccess.cc	Tue Dec 21 15:29:18 2004
+++ ./StartupBehavior_SetupFileAccess.cc	Fri Jan  7 14:37:43 2005
@@ -7,12 +7,16 @@
 #include "Behaviors/Controls/PlaySoundControl.h"
 #include "Behaviors/Controls/DumpFileControl.h"
 #include "Behaviors/Controls/WaypointWalkControl.h"
+#include "Behaviors/Controls/LoadPostureControl.h"
+#include "Behaviors/Controls/SavePostureControl.h"
 
 ControlBase*
 StartupBehavior::SetupFileAccess() {
 	addItem(new ControlBase("File Access","Access/load files on the memory stick"));
 	startSubMenu();
-	{ 
+	{
+		addItem(new LoadPostureControl("Load Posture",stop_id));
+		addItem(new SavePostureControl("Save Posture"));
 		addItem(new PostureEditor(stop_id));
 		addItem(new RunSequenceControl<XLargeMotionSequenceMC::CAPACITY>("Run Motion Sequence",stop_id));
 		addItem(new PlaySoundControl("Play Sound"));
diff -urdN ../../Tekkotsu_2.2.2/project/StartupBehavior_SetupStatusReports.cc ./StartupBehavior_SetupStatusReports.cc
--- ../../Tekkotsu_2.2.2/project/StartupBehavior_SetupStatusReports.cc	Thu Nov 11 15:35:00 2004
+++ ./StartupBehavior_SetupStatusReports.cc	Wed Jan 12 17:37:26 2005
@@ -8,6 +8,7 @@
 #include "Behaviors/Controls/EventLogger.h"
 #include "Behaviors/Controls/SensorObserverControl.h"
 #include "Behaviors/Controls/BehaviorReportControl.h"
+#include "Behaviors/Controls/NetworkStatusControl.h"
 
 ControlBase*
 StartupBehavior::SetupStatusReports() {
@@ -22,6 +23,7 @@
 		FreeMemReportControl * tmp=new FreeMemReportControl();
 		tmp->DoStart();
 		addItem(tmp);
+		addItem(new NetworkStatusControl());
 	}
 	return endSubMenu();
 }
diff -urdN ../../Tekkotsu_2.2.2/project/StartupBehavior_SetupWalkEdit.cc ./StartupBehavior_SetupWalkEdit.cc
--- ../../Tekkotsu_2.2.2/project/StartupBehavior_SetupWalkEdit.cc	Fri May 14 03:18:19 2004
+++ ./StartupBehavior_SetupWalkEdit.cc	Fri May 14 03:18:19 2004
@@ -9,7 +9,7 @@
  * @author PA Gov. School for the Sciences 2003 Team Project - Motion group: Haoqian Chen, Yantian Martin, Jon Stahlman (creators)
  * 
  * $Author: ejt $
- * $Name: HEAD $
+ * $Name: HEAD $
  * $Revision: 1.1 $
  * $State: Exp $
  * $Date: 2005/01/30 17:44:13 $
diff -urdN ../../Tekkotsu_2.2.2/project/ms/CVS/Entries ./ms/CVS/Entries
--- ../../Tekkotsu_2.2.2/project/ms/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ ./ms/CVS/Entries	Fri Jan 28 20:12:00 2005
@@ -0,0 +1,3 @@
+D/config////
+D/data////
+D/open-r////
diff -urdN ../../Tekkotsu_2.2.2/project/ms/CVS/Repository ./ms/CVS/Repository
--- ../../Tekkotsu_2.2.2/project/ms/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ ./ms/CVS/Repository	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Tekkotsu/project/ms
diff -urdN ../../Tekkotsu_2.2.2/project/ms/CVS/Root ./ms/CVS/Root
--- ../../Tekkotsu_2.2.2/project/ms/CVS/Root	Wed Dec 31 19:00:00 1969
+++ ./ms/CVS/Root	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+/afs/cs/project/skinnerbots/aibo
diff -urdN ../../Tekkotsu_2.2.2/project/ms/CVS/Tag ./ms/CVS/Tag
--- ../../Tekkotsu_2.2.2/project/ms/CVS/Tag	Wed Dec 31 19:00:00 1969
+++ ./ms/CVS/Tag	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Ttekkotsu-2_3
diff -urdN ../../Tekkotsu_2.2.2/project/ms/config/CVS/Entries ./ms/config/CVS/Entries
--- ../../Tekkotsu_2.2.2/project/ms/config/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ ./ms/config/CVS/Entries	Fri Jan 28 20:12:00 2005
@@ -0,0 +1,15 @@
+/7red.tm/1.1/Thu Feb  5 23:40:33 2004/-kb/Ttekkotsu-2_3
+/ball.tm/1.4/Wed Feb 18 21:13:59 2004/-kb/Ttekkotsu-2_3
+/default.col/1.2/Mon Jul 28 06:58:16 2003//Ttekkotsu-2_3
+/ers210.kin/1.13/Fri Dec 10 23:49:54 2004//Ttekkotsu-2_3
+/ers220.kin/1.13/Fri Dec 10 23:49:54 2004//Ttekkotsu-2_3
+/ers7.kin/1.15/Fri Dec 10 23:49:54 2004//Ttekkotsu-2_3
+/ers7pnts.kin/1.2/Fri Dec 10 23:49:54 2004//Ttekkotsu-2_3
+/general.tm/1.1/Thu Oct  9 06:25:30 2003/-kb/Ttekkotsu-2_3
+/pb.tm/1.1/Thu Oct  9 06:25:30 2003/-kb/Ttekkotsu-2_3
+/phb.tm/1.1/Thu Oct  9 06:25:30 2003/-kb/Ttekkotsu-2_3
+/tekkotsu.cfg/1.58/Thu Jan 27 05:43:38 2005//Ttekkotsu-2_3
+/ttt.col/1.1/Wed Mar  3 23:14:44 2004//Ttekkotsu-2_3
+/ttt.tm/1.1/Wed Mar  3 23:14:44 2004//Ttekkotsu-2_3
+/ttt_old.tm/1.1/Wed Mar  3 23:14:44 2004//Ttekkotsu-2_3
+D
diff -urdN ../../Tekkotsu_2.2.2/project/ms/config/CVS/Repository ./ms/config/CVS/Repository
--- ../../Tekkotsu_2.2.2/project/ms/config/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ ./ms/config/CVS/Repository	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Tekkotsu/project/ms/config
diff -urdN ../../Tekkotsu_2.2.2/project/ms/config/CVS/Root ./ms/config/CVS/Root
--- ../../Tekkotsu_2.2.2/project/ms/config/CVS/Root	Wed Dec 31 19:00:00 1969
+++ ./ms/config/CVS/Root	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+/afs/cs/project/skinnerbots/aibo
diff -urdN ../../Tekkotsu_2.2.2/project/ms/config/CVS/Tag ./ms/config/CVS/Tag
--- ../../Tekkotsu_2.2.2/project/ms/config/CVS/Tag	Wed Dec 31 19:00:00 1969
+++ ./ms/config/CVS/Tag	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Ntekkotsu-2_3
diff -urdN ../../Tekkotsu_2.2.2/project/ms/config/tekkotsu.cfg ./ms/config/tekkotsu.cfg
--- ../../Tekkotsu_2.2.2/project/ms/config/tekkotsu.cfg	Mon Dec 20 16:27:15 2004
+++ ./ms/config/tekkotsu.cfg	Fri Jan 28 20:12:00 2005
@@ -1,9 +1,9 @@
 ##################################################################
 ######################   Tekkotsu config   #######################
 ##################################################################
-##################### $Name: HEAD $ ######################
-####################### $Revision: 1.1 $ ########################
-################## $Date: 2005/01/30 17:44:13 $ ##################
+##################### $Name: HEAD $ ######################
+####################### $Revision: 1.1 $ ########################
+################## $Date: 2005/01/30 17:44:13 $ ##################
 ##################################################################
 #
 # Format:
@@ -202,9 +202,21 @@
 [Behaviors]
 ##################################################################
 ##################################################################
-# your-stuff-here?
+
+### FlashIPAddrBehavior ###
+
+# You probably already know the first 3 bytes for your network
+# so you might only want the last byte for brevity
+# (valid values are 1 through 4)
+flash_bytes=4
+
+# Do you want to automatically trigger this on boot?
+# Will use a priority of kEmergencyPriority+1 in order to override
+# the emergency stop's status animation
+flash_on_start=0
 
 
+# your-stuff-here?
 
 ##################################################################
 ##################################################################
@@ -331,8 +343,12 @@
 # going above 0xF800 on a ERS-210 causes distortion (clipping) - full volume on a ERS-7 sounds fine though.
 volume=level_3
 
+# Sound playback currently requires all sounds to be the same bit
+# rate.  Aperios further requires only either 8bit/8KHz or 16bit/16KHz
+# formats
 sample_rate=16000
 sample_bits=16
+
 # Preload is a list of sounds to cache at boot
 # can be either root relative or full path
 preload=skid.wav
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/CVS/Entries ./ms/data/CVS/Entries
--- ../../Tekkotsu_2.2.2/project/ms/data/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ ./ms/data/CVS/Entries	Fri Jan 28 20:12:00 2005
@@ -0,0 +1,2 @@
+D/motion////
+D/sound////
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/CVS/Repository ./ms/data/CVS/Repository
--- ../../Tekkotsu_2.2.2/project/ms/data/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ ./ms/data/CVS/Repository	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Tekkotsu/project/ms/data
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/CVS/Root ./ms/data/CVS/Root
--- ../../Tekkotsu_2.2.2/project/ms/data/CVS/Root	Wed Dec 31 19:00:00 1969
+++ ./ms/data/CVS/Root	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+/afs/cs/project/skinnerbots/aibo
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/CVS/Tag ./ms/data/CVS/Tag
--- ../../Tekkotsu_2.2.2/project/ms/data/CVS/Tag	Wed Dec 31 19:00:00 1969
+++ ./ms/data/CVS/Tag	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Ttekkotsu-2_3
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/motion/CVS/Entries ./ms/data/motion/CVS/Entries
--- ../../Tekkotsu_2.2.2/project/ms/data/motion/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ ./ms/data/motion/CVS/Entries	Fri Jan 28 20:12:00 2005
@@ -0,0 +1,36 @@
+/circles.wyp/1.1/Tue Mar 30 04:31:39 2004//Ttekkotsu-2_3
+/clearcal.txt/1.2/Thu Feb 26 01:03:05 2004//Ttekkotsu-2_3
+/dance.mot/1.3/Tue Dec 21 22:30:28 2004//Ttekkotsu-2_3
+/dispos.pos/1.1/Sat Mar  1 21:08:28 2003//Ttekkotsu-2_3
+/gu_back.mot/1.5/Tue Dec 21 22:30:28 2004//Ttekkotsu-2_3
+/gu_front.mot/1.5/Tue Dec 21 22:30:28 2004//Ttekkotsu-2_3
+/gu_side.mot/1.5/Tue Dec 21 22:30:28 2004//Ttekkotsu-2_3
+/k_bump.mot/1.5/Tue Dec 21 22:30:28 2004//Ttekkotsu-2_3
+/k_diag.mot/1.5/Tue Dec 21 22:30:28 2004//Ttekkotsu-2_3
+/k_dive.mot/1.5/Tue Dec 21 22:30:28 2004//Ttekkotsu-2_3
+/k_fwd.mot/1.5/Tue Dec 21 22:30:28 2004//Ttekkotsu-2_3
+/k_grab.mot/1.5/Tue Dec 21 22:30:28 2004//Ttekkotsu-2_3
+/k_head.mot/1.5/Tue Dec 21 22:30:28 2004//Ttekkotsu-2_3
+/k_heads.mot/1.5/Tue Dec 21 22:30:28 2004//Ttekkotsu-2_3
+/k_hold.mot/1.3/Tue Dec 21 22:30:28 2004//Ttekkotsu-2_3
+/k_punch.mot/1.5/Tue Dec 21 22:30:28 2004//Ttekkotsu-2_3
+/leftkick.pos/1.1/Sun Sep 21 19:44:14 2003//Ttekkotsu-2_3
+/liedown.pos/1.1/Sat Mar  1 21:08:28 2003//Ttekkotsu-2_3
+/pace.prm/1.1/Fri Sep 12 03:36:10 2003/-kb/Ttekkotsu-2_3
+/pan_head.mot/1.2/Tue Dec 21 22:30:28 2004//Ttekkotsu-2_3
+/pounce.pos/1.1/Sat Mar  1 21:08:28 2003//Ttekkotsu-2_3
+/readme.txt/1.1/Wed Feb 18 21:14:14 2004//Ttekkotsu-2_3
+/rkick.pos/1.1/Thu Jul  8 03:04:21 2004//Ttekkotsu-2_3
+/situp.pos/1.1/Sat Mar  1 21:08:28 2003//Ttekkotsu-2_3
+/sqbasca2.wyp/1.1/Tue Mar 30 04:31:39 2004//Ttekkotsu-2_3
+/sqbasce2.wyp/1.1/Tue Mar 30 04:31:40 2004//Ttekkotsu-2_3
+/sqbasco2.wyp/1.1/Tue Mar 30 04:31:40 2004//Ttekkotsu-2_3
+/sqbasica.wyp/1.1/Tue Mar 30 04:31:40 2004//Ttekkotsu-2_3
+/sqbasice.wyp/1.1/Tue Mar 30 04:31:40 2004//Ttekkotsu-2_3
+/sqbasico.wyp/1.1/Tue Mar 30 04:31:40 2004//Ttekkotsu-2_3
+/sqpush.wyp/1.1/Tue Mar 30 04:31:40 2004//Ttekkotsu-2_3
+/stand.pos/1.1/Sat Mar  1 21:08:28 2003//Ttekkotsu-2_3
+/tiger.prm/1.1/Sun Sep 21 19:44:14 2003//Ttekkotsu-2_3
+/walk.prm/1.6/Sat Feb 28 01:58:55 2004/-kb/Ttekkotsu-2_3
+/walkcal.txt/1.3/Sat Feb 28 01:58:55 2004//Ttekkotsu-2_3
+D
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/motion/CVS/Repository ./ms/data/motion/CVS/Repository
--- ../../Tekkotsu_2.2.2/project/ms/data/motion/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ ./ms/data/motion/CVS/Repository	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Tekkotsu/project/ms/data/motion
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/motion/CVS/Root ./ms/data/motion/CVS/Root
--- ../../Tekkotsu_2.2.2/project/ms/data/motion/CVS/Root	Wed Dec 31 19:00:00 1969
+++ ./ms/data/motion/CVS/Root	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+/afs/cs/project/skinnerbots/aibo
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/motion/CVS/Tag ./ms/data/motion/CVS/Tag
--- ../../Tekkotsu_2.2.2/project/ms/data/motion/CVS/Tag	Wed Dec 31 19:00:00 1969
+++ ./ms/data/motion/CVS/Tag	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Ntekkotsu-2_3
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/sound/CVS/Entries ./ms/data/sound/CVS/Entries
--- ../../Tekkotsu_2.2.2/project/ms/data/sound/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ ./ms/data/sound/CVS/Entries	Fri Jan 28 20:12:00 2005
@@ -0,0 +1,31 @@
+/3barks.wav/1.1/Sun Mar  9 02:45:56 2003/-kb/Ttekkotsu-2_3
+/3yips.wav/1.1/Sun Mar  9 02:45:56 2003/-kb/Ttekkotsu-2_3
+/barkhigh.wav/1.1/Sun Mar  9 02:45:56 2003/-kb/Ttekkotsu-2_3
+/barklow.wav/1.1/Sun Mar  9 02:45:57 2003/-kb/Ttekkotsu-2_3
+/barkmed.wav/1.1/Sun Mar  9 02:45:57 2003/-kb/Ttekkotsu-2_3
+/barkreal.wav/1.1/Sat Mar 15 03:45:02 2003/-kb/Ttekkotsu-2_3
+/camera.wav/1.1/Sat Mar 15 03:45:02 2003/-kb/Ttekkotsu-2_3
+/catcry.wav/1.1/Sun Mar  9 02:45:57 2003/-kb/Ttekkotsu-2_3
+/catyowl.wav/1.1/Sun Mar  9 02:45:57 2003/-kb/Ttekkotsu-2_3
+/crash.wav/1.1/Sat Mar 15 03:45:02 2003/-kb/Ttekkotsu-2_3
+/cutey.wav/1.1/Sun Mar  9 02:45:57 2003/-kb/Ttekkotsu-2_3
+/donkey.wav/1.1/Sun Mar  9 02:45:58 2003/-kb/Ttekkotsu-2_3
+/fart.wav/1.1/Sat Mar 15 03:45:03 2003/-kb/Ttekkotsu-2_3
+/glass.wav/1.1/Sat Mar 15 03:45:03 2003/-kb/Ttekkotsu-2_3
+/growl.wav/1.1/Sun Mar  9 02:45:58 2003/-kb/Ttekkotsu-2_3
+/growl2.wav/1.1/Sat Mar 15 03:45:03 2003/-kb/Ttekkotsu-2_3
+/grrr.wav/1.1/Sun Mar  9 02:45:58 2003/-kb/Ttekkotsu-2_3
+/howl.wav/1.1/Sun Mar  9 02:45:59 2003/-kb/Ttekkotsu-2_3
+/mew.wav/1.1/Sun Mar  9 02:45:59 2003/-kb/Ttekkotsu-2_3
+/ping.wav/1.1/Sat Mar 15 03:45:03 2003/-kb/Ttekkotsu-2_3
+/roar.wav/1.1/Sun Mar  9 02:45:59 2003/-kb/Ttekkotsu-2_3
+/skid.wav/1.1/Sat Mar 15 03:45:03 2003/-kb/Ttekkotsu-2_3
+/sniff.wav/1.1/Sun Mar  9 02:45:59 2003/-kb/Ttekkotsu-2_3
+/tick.wav/1.1/Sat Mar 15 03:45:03 2003/-kb/Ttekkotsu-2_3
+/toc.wav/1.1/Sat Mar 15 03:45:04 2003/-kb/Ttekkotsu-2_3
+/whiip.wav/1.1/Sat Mar 15 03:45:04 2003/-kb/Ttekkotsu-2_3
+/whimper.wav/1.1/Sun Mar  9 02:46:00 2003/-kb/Ttekkotsu-2_3
+/whoop.wav/1.1/Sat Mar 15 03:45:04 2003/-kb/Ttekkotsu-2_3
+/yap.wav/1.1/Sun Mar  9 02:46:00 2003/-kb/Ttekkotsu-2_3
+/yipper.wav/1.1/Sun Mar  9 02:46:00 2003/-kb/Ttekkotsu-2_3
+D/numbers////
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/sound/CVS/Repository ./ms/data/sound/CVS/Repository
--- ../../Tekkotsu_2.2.2/project/ms/data/sound/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ ./ms/data/sound/CVS/Repository	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Tekkotsu/project/ms/data/sound
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/sound/CVS/Root ./ms/data/sound/CVS/Root
--- ../../Tekkotsu_2.2.2/project/ms/data/sound/CVS/Root	Wed Dec 31 19:00:00 1969
+++ ./ms/data/sound/CVS/Root	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+/afs/cs/project/skinnerbots/aibo
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/sound/CVS/Tag ./ms/data/sound/CVS/Tag
--- ../../Tekkotsu_2.2.2/project/ms/data/sound/CVS/Tag	Wed Dec 31 19:00:00 1969
+++ ./ms/data/sound/CVS/Tag	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Ntekkotsu-2_3
Binary files ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/0.wav and ./ms/data/sound/numbers/0.wav differ
Binary files ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/1.wav and ./ms/data/sound/numbers/1.wav differ
Binary files ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/2.wav and ./ms/data/sound/numbers/2.wav differ
Binary files ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/3.wav and ./ms/data/sound/numbers/3.wav differ
Binary files ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/4.wav and ./ms/data/sound/numbers/4.wav differ
Binary files ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/5.wav and ./ms/data/sound/numbers/5.wav differ
Binary files ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/6.wav and ./ms/data/sound/numbers/6.wav differ
Binary files ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/7.wav and ./ms/data/sound/numbers/7.wav differ
Binary files ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/8.wav and ./ms/data/sound/numbers/8.wav differ
Binary files ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/9.wav and ./ms/data/sound/numbers/9.wav differ
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/CVS/Entries ./ms/data/sound/numbers/CVS/Entries
--- ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ ./ms/data/sound/numbers/CVS/Entries	Fri Jan 28 20:12:00 2005
@@ -0,0 +1,13 @@
+/0.wav/1.1/Thu Jan 27 05:43:46 2005/-kb/Ttekkotsu-2_3
+/1.wav/1.1/Thu Jan 27 05:43:46 2005/-kb/Ttekkotsu-2_3
+/2.wav/1.1/Thu Jan 27 05:43:46 2005/-kb/Ttekkotsu-2_3
+/3.wav/1.1/Thu Jan 27 05:43:46 2005/-kb/Ttekkotsu-2_3
+/4.wav/1.1/Thu Jan 27 05:43:46 2005/-kb/Ttekkotsu-2_3
+/5.wav/1.1/Thu Jan 27 05:43:46 2005/-kb/Ttekkotsu-2_3
+/6.wav/1.1/Thu Jan 27 05:43:46 2005/-kb/Ttekkotsu-2_3
+/7.wav/1.1/Thu Jan 27 05:43:46 2005/-kb/Ttekkotsu-2_3
+/8.wav/1.1/Thu Jan 27 05:43:46 2005/-kb/Ttekkotsu-2_3
+/9.wav/1.1/Thu Jan 27 05:43:46 2005/-kb/Ttekkotsu-2_3
+/dot.wav/1.1/Thu Jan 27 05:43:46 2005/-kb/Ttekkotsu-2_3
+/point.wav/1.1/Thu Jan 27 05:43:46 2005/-kb/Ttekkotsu-2_3
+D
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/CVS/Repository ./ms/data/sound/numbers/CVS/Repository
--- ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ ./ms/data/sound/numbers/CVS/Repository	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Tekkotsu/project/ms/data/sound/numbers
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/CVS/Root ./ms/data/sound/numbers/CVS/Root
--- ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/CVS/Root	Wed Dec 31 19:00:00 1969
+++ ./ms/data/sound/numbers/CVS/Root	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+/afs/cs/project/skinnerbots/aibo
diff -urdN ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/CVS/Tag ./ms/data/sound/numbers/CVS/Tag
--- ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/CVS/Tag	Wed Dec 31 19:00:00 1969
+++ ./ms/data/sound/numbers/CVS/Tag	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Ntekkotsu-2_3
Binary files ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/dot.wav and ./ms/data/sound/numbers/dot.wav differ
Binary files ../../Tekkotsu_2.2.2/project/ms/data/sound/numbers/point.wav and ./ms/data/sound/numbers/point.wav differ
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/CVS/Entries ./ms/open-r/CVS/Entries
--- ../../Tekkotsu_2.2.2/project/ms/open-r/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/CVS/Entries	Fri Jan 28 20:12:00 2005
@@ -0,0 +1,2 @@
+D/mw////
+D/system////
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/CVS/Repository ./ms/open-r/CVS/Repository
--- ../../Tekkotsu_2.2.2/project/ms/open-r/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/CVS/Repository	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Tekkotsu/project/ms/open-r
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/CVS/Root ./ms/open-r/CVS/Root
--- ../../Tekkotsu_2.2.2/project/ms/open-r/CVS/Root	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/CVS/Root	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+/afs/cs/project/skinnerbots/aibo
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/CVS/Tag ./ms/open-r/CVS/Tag
--- ../../Tekkotsu_2.2.2/project/ms/open-r/CVS/Tag	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/CVS/Tag	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Ttekkotsu-2_3
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/mw/CVS/Entries ./ms/open-r/mw/CVS/Entries
--- ../../Tekkotsu_2.2.2/project/ms/open-r/mw/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/mw/CVS/Entries	Fri Jan 28 20:12:00 2005
@@ -0,0 +1,2 @@
+D/conf////
+D/objs////
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/mw/CVS/Repository ./ms/open-r/mw/CVS/Repository
--- ../../Tekkotsu_2.2.2/project/ms/open-r/mw/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/mw/CVS/Repository	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Tekkotsu/project/ms/open-r/mw
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/mw/CVS/Root ./ms/open-r/mw/CVS/Root
--- ../../Tekkotsu_2.2.2/project/ms/open-r/mw/CVS/Root	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/mw/CVS/Root	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+/afs/cs/project/skinnerbots/aibo
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/mw/CVS/Tag ./ms/open-r/mw/CVS/Tag
--- ../../Tekkotsu_2.2.2/project/ms/open-r/mw/CVS/Tag	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/mw/CVS/Tag	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Ttekkotsu-2_3
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/mw/conf/CVS/Entries ./ms/open-r/mw/conf/CVS/Entries
--- ../../Tekkotsu_2.2.2/project/ms/open-r/mw/conf/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/mw/conf/CVS/Entries	Fri Jan 28 20:12:00 2005
@@ -0,0 +1,5 @@
+/connect.cfg/1.7/Tue Sep 28 23:07:08 2004//Ttekkotsu-2_3
+/object.cfg/1.3/Wed Mar 26 21:33:21 2003//Ttekkotsu-2_3
+/passwd/1.5/Tue Jul  6 22:46:12 2004//Ttekkotsu-2_3
+/robotgw.cfg/1.2/Thu Mar 27 04:25:07 2003//Ttekkotsu-2_3
+D
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/mw/conf/CVS/Repository ./ms/open-r/mw/conf/CVS/Repository
--- ../../Tekkotsu_2.2.2/project/ms/open-r/mw/conf/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/mw/conf/CVS/Repository	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Tekkotsu/project/ms/open-r/mw/conf
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/mw/conf/CVS/Root ./ms/open-r/mw/conf/CVS/Root
--- ../../Tekkotsu_2.2.2/project/ms/open-r/mw/conf/CVS/Root	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/mw/conf/CVS/Root	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+/afs/cs/project/skinnerbots/aibo
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/mw/conf/CVS/Tag ./ms/open-r/mw/conf/CVS/Tag
--- ../../Tekkotsu_2.2.2/project/ms/open-r/mw/conf/CVS/Tag	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/mw/conf/CVS/Tag	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Ntekkotsu-2_3
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/mw/objs/CVS/Entries ./ms/open-r/mw/objs/CVS/Entries
--- ../../Tekkotsu_2.2.2/project/ms/open-r/mw/objs/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/mw/objs/CVS/Entries	Fri Jan 28 20:12:00 2005
@@ -0,0 +1,2 @@
+/placehld.jnk/1.1/Tue Jul  8 22:56:29 2003//Ttekkotsu-2_3
+D
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/mw/objs/CVS/Repository ./ms/open-r/mw/objs/CVS/Repository
--- ../../Tekkotsu_2.2.2/project/ms/open-r/mw/objs/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/mw/objs/CVS/Repository	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Tekkotsu/project/ms/open-r/mw/objs
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/mw/objs/CVS/Root ./ms/open-r/mw/objs/CVS/Root
--- ../../Tekkotsu_2.2.2/project/ms/open-r/mw/objs/CVS/Root	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/mw/objs/CVS/Root	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+/afs/cs/project/skinnerbots/aibo
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/mw/objs/CVS/Tag ./ms/open-r/mw/objs/CVS/Tag
--- ../../Tekkotsu_2.2.2/project/ms/open-r/mw/objs/CVS/Tag	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/mw/objs/CVS/Tag	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Ntekkotsu-2_3
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/system/CVS/Entries ./ms/open-r/system/CVS/Entries
--- ../../Tekkotsu_2.2.2/project/ms/open-r/system/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/system/CVS/Entries	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+D/conf////
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/system/CVS/Repository ./ms/open-r/system/CVS/Repository
--- ../../Tekkotsu_2.2.2/project/ms/open-r/system/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/system/CVS/Repository	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Tekkotsu/project/ms/open-r/system
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/system/CVS/Root ./ms/open-r/system/CVS/Root
--- ../../Tekkotsu_2.2.2/project/ms/open-r/system/CVS/Root	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/system/CVS/Root	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+/afs/cs/project/skinnerbots/aibo
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/system/CVS/Tag ./ms/open-r/system/CVS/Tag
--- ../../Tekkotsu_2.2.2/project/ms/open-r/system/CVS/Tag	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/system/CVS/Tag	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Ttekkotsu-2_3
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/system/conf/CVS/Entries ./ms/open-r/system/conf/CVS/Entries
--- ../../Tekkotsu_2.2.2/project/ms/open-r/system/conf/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/system/conf/CVS/Entries	Fri Jan 28 20:12:00 2005
@@ -0,0 +1,2 @@
+/wlandflt.txt/1.18/Tue Dec 23 06:33:44 2003//Ttekkotsu-2_3
+D
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/system/conf/CVS/Repository ./ms/open-r/system/conf/CVS/Repository
--- ../../Tekkotsu_2.2.2/project/ms/open-r/system/conf/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/system/conf/CVS/Repository	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Tekkotsu/project/ms/open-r/system/conf
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/system/conf/CVS/Root ./ms/open-r/system/conf/CVS/Root
--- ../../Tekkotsu_2.2.2/project/ms/open-r/system/conf/CVS/Root	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/system/conf/CVS/Root	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+/afs/cs/project/skinnerbots/aibo
diff -urdN ../../Tekkotsu_2.2.2/project/ms/open-r/system/conf/CVS/Tag ./ms/open-r/system/conf/CVS/Tag
--- ../../Tekkotsu_2.2.2/project/ms/open-r/system/conf/CVS/Tag	Wed Dec 31 19:00:00 1969
+++ ./ms/open-r/system/conf/CVS/Tag	Fri Jan 28 20:12:00 2005
@@ -0,0 +1 @@
+Ntekkotsu-2_3
diff -urdN ../../Tekkotsu_2.2.2/project/templates/CVS/Entries ./templates/CVS/Entries
--- ../../Tekkotsu_2.2.2/project/templates/CVS/Entries	Wed Dec 31 19:00:00 1969
+++ ./templates/CVS/Entries	Fri Jan 28 20:12:57 2005
@@ -0,0 +1,8 @@
+/behavior.h/1.1/Mon Jan 24 22:24:05 2005/-kk/Ttekkotsu-2_3
+/control.h/1.1/Tue Jan 25 23:52:52 2005/-kk/Ttekkotsu-2_3
+/header.h/1.1/Wed Aug 25 01:09:24 2004//Ttekkotsu-2_3
+/implementation.cc/1.1/Wed Aug 25 01:09:24 2004//Ttekkotsu-2_3
+/statemachine.h/1.2/Tue Jan 25 23:52:52 2005/-kk/Ttekkotsu-2_3
+/statenode.h/1.3/Wed Jan 26 00:02:44 2005/-kk/Ttekkotsu-2_3
+/transition.h/1.1/Wed Jan 26 00:02:44 2005/-kk/Ttekkotsu-2_3
+D
diff -urdN ../../Tekkotsu_2.2.2/project/templates/CVS/Repository ./templates/CVS/Repository
--- ../../Tekkotsu_2.2.2/project/templates/CVS/Repository	Wed Dec 31 19:00:00 1969
+++ ./templates/CVS/Repository	Fri Jan 28 20:12:57 2005
@@ -0,0 +1 @@
+Tekkotsu/project/templates
diff -urdN ../../Tekkotsu_2.2.2/project/templates/CVS/Root ./templates/CVS/Root
--- ../../Tekkotsu_2.2.2/project/templates/CVS/Root	Wed Dec 31 19:00:00 1969
+++ ./templates/CVS/Root	Fri Jan 28 20:12:57 2005
@@ -0,0 +1 @@
+/afs/cs/project/skinnerbots/aibo
diff -urdN ../../Tekkotsu_2.2.2/project/templates/CVS/Tag ./templates/CVS/Tag
--- ../../Tekkotsu_2.2.2/project/templates/CVS/Tag	Wed Dec 31 19:00:00 1969
+++ ./templates/CVS/Tag	Fri Jan 28 20:12:57 2005
@@ -0,0 +1 @@
+Ntekkotsu-2_3
diff -urdN ../../Tekkotsu_2.2.2/project/templates/behavior.h ./templates/behavior.h
--- ../../Tekkotsu_2.2.2/project/templates/behavior.h	Wed Dec 31 19:00:00 1969
+++ ./templates/behavior.h	Mon Jan 24 17:24:05 2005
@@ -0,0 +1,68 @@
+//-*-c++-*-
+#ifndef INCLUDED_CLASSNAME_h_
+#define INCLUDED_CLASSNAME_h_
+
+// This is an empty Behavior template file.
+// Replace YOURNAME, CLASSNAME, and DESCRIPTION as appropriate, and go to town!
+
+
+#include "Behaviors/BehaviorBase.h"
+#include "Events/EventRouter.h"
+
+//! DESCRIPTION
+class CLASSNAME : public BehaviorBase {
+public:
+	//! constructor
+	CLASSNAME() : BehaviorBase("CLASSNAME") {}
+
+	virtual void DoStart() {
+		BehaviorBase::DoStart(); // do this first (required)
+
+		// <your startup code here>
+		// e.g. erouter->addListener(this, ... );
+		// (Event IDs are found in Events/EventBase.h)
+	}
+
+	virtual void DoStop() {
+		// <your shutdown code here>
+
+		erouter->removeListener(this); //generally a good idea, unsubscribe all
+		BehaviorBase::DoStop(); // do this last (required)
+	}
+
+	virtual void processEvent(const EventBase& e) {
+		// <your event processing code here>
+		// you can delete this function if you don't use any events...
+		// (in which case, you may want to call DoStop() at the end of DoStart()
+	}
+
+	static std::string getClassDescription() { return "DESCRIPTION"; }
+	virtual std::string getDescription() const { return getClassDescription(); }
+	
+
+protected:
+	// <class members go here>
+
+	
+private:
+	// Providing declarations for these functions will avoid a compiler warning if
+	// you have any class members which are pointers.  However, as it is, an error
+	// will result if you inadvertantly cause a call to either (which is probably
+	// a good thing, unless you really intended to copy/assign a behavior, in
+	// which case simply provide implementations for the functions)
+	CLASSNAME(const CLASSNAME&); //!< don't call (copy constructor)
+	CLASSNAME operator=(const CLASSNAME&); //!< don't call (assignment operator)
+};
+
+/*! @file
+ * @brief Defines CLASSNAME, which DESCRIPTION
+ * @author YOURNAMEHERE (Creator)
+ *
+ * $Author: ejt $
+ * $Name: HEAD $
+ * $Revision: 1.1 $
+ * $State: Exp $
+ * $Date: 2005/01/30 17:44:13 $
+ */
+
+#endif
diff -urdN ../../Tekkotsu_2.2.2/project/templates/behavior_header.h ./templates/behavior_header.h
--- ../../Tekkotsu_2.2.2/project/templates/behavior_header.h	Thu Nov 11 15:35:00 2004
+++ ./templates/behavior_header.h	Wed Dec 31 19:00:00 1969
@@ -1,50 +0,0 @@
-//-*-c++-*-
-
-// This is an empty Behavior template file.
-// Replace CLASSNAME and DESCRIPTION as appropriate, and go to town!
-
-#ifndef INCLUDED_CLASSNAME_h_
-#define INCLUDED_CLASSNAME_h_
-
-#include "Behaviors/BehaviorBase.h"
-
-//! DESCRIPTION
-class CLASSNAME : public BehaviorBase {
-public:
-	//! constructor
-	CLASSNAME() : BehaviorBase("CLASSNAME") {}
-
-	virtual void DoStart() {
-		BehaviorBase::DoStart(); // do this first
-		// <your startup code here>
-	}
-
-	virtual void DoStop() {
-		// <your shutdown code here>
-		BehaviorBase::DoStop(); // do this last
-	}
-
-	virtual void processEvent(const EventBase& e) {
-		// <your event processing code here>
-		// you can delete this function if you don't use any events...
-	}
-
-	static std::string getClassDescription() { return "DESCRIPTION"; }
-	virtual std::string getDescription() const { return getClassDescription(); }
-	
-protected:
-	
-};
-
-/*! @file
- * @brief Defines CLASSNAME, which DESCRIPTION
- * @author YOURNAMEHERE (Creator)
- *
- * $Author: ejt $
- * $Name: HEAD $
- * $Revision: 1.1 $
- * $State: Exp $
- * $Date: 2005/01/30 17:44:13 $
- */
-
-#endif
diff -urdN ../../Tekkotsu_2.2.2/project/templates/control.h ./templates/control.h
--- ../../Tekkotsu_2.2.2/project/templates/control.h	Wed Dec 31 19:00:00 1969
+++ ./templates/control.h	Tue Jan 25 18:52:52 2005
@@ -0,0 +1,178 @@
+//-*-c++-*-
+#ifndef INCLUDED_CLASSNAME_h
+#define INCLUDED_CLASSNAME_h
+
+// This is an empty Control template file.
+// 
+// Controls provide an interface for user interaction.  Generally this is done
+// in the format of a menu listing, where the user can select one or more items
+// at the same time, and may (or may not) be able to send textual input to these
+// selected items.  Much more information is available in the ControlBase
+// documentation.
+//
+// Early control implementations would completely override the ControlBase
+// implementations and directly encode the ControlBase protocols for interaction
+// with the user's terminal and/or GUI.  This may be more efficient, but it is
+// fair easier, and possibly easier to maintain, code which builds/maintains a
+// set of submenus and blindly relies on the ControlBase implementation to
+// manage communication.
+//
+// Using multiple inheritance, a control can also be considered an EventListener
+// or even a full-fledged behavior.  This is completely expected and can be very
+// useful for providing real time feedback or editing capabilties to a user.
+//
+// You are highly encouraged to familiarize yourself with the controls available
+// in Behaviors/Controls in order to compose your interface.
+// 
+// Some methods return a ControlBase*.  These values are interpreted
+// by the Controller as follows:
+//   - 'this' if the control should stay active (default for most)
+//   - 'NULL' to return to parent control
+//   - other address to activate a child control
+//
+// Replace YOURNAME, CLASSNAME, and DESCRIPTION as appropriate, and go to town!
+
+
+#include "Behaviors/Controls/ControlBase.h"
+
+//! DESCRIPTION
+class CLASSNAME : public ControlBase {
+
+	// **************************** //
+	// ******* CONSTRUCTORS ******* //
+	// **************************** //
+	// Not all of these necessarily make sense to implement... feel free
+	// to remove those which don't -- none are required.
+
+public:
+	//! default constructor
+	CLASSNAME()
+		: ControlBase("CLASSNAME","DESCRIPTION")
+	{init();}
+	//! constructor which allows a custom name
+	CLASSNAME(const std::string& n)
+		: ControlBase(n,"DESCRIPTION")
+	{init();}
+	//! constructor which allows a custom name and tooltip
+	CLASSNAME(const std::string& n, const std::string& d)
+		: ControlBase(n,d)
+	{init();}
+
+	//! destructor
+	virtual ~CLASSNAME() {}
+
+protected:
+	//! initialization
+	virtual void init() {
+		// If your Control is relatively static, you'll probably want to do a series
+		// of pushSlot(...)'s here in order to build up your interface.  See
+		// controls available in Behaviors/Controls.
+		// Otherwise, see the refresh() function.
+	}
+
+
+	// **************************** //
+	// ********* METHODS ********** //
+	// **************************** //
+	// You *aren't* expected to override all of these functions.
+	// Feel free to remove those which you don't use -- none are
+	// required, and the ControlBase implementation is fully functional.
+
+public:
+	//! Called when the control is activated (or the control system is reactivating)
+	/*! Takes the id number of a LedMC which the control should use,
+	 *  maintained by Controller.  Controls share the display which is
+	 *  passed, and may use the socket @a gui to communicate with the
+	 *  GUI controller, although you shouldn't assume it is connected. */
+	virtual ControlBase * activate(MotionManager::MC_ID disp_id, Socket * gui) {
+		return ControlBase::activate(disp_id,gui);
+	}
+
+	//! called when a control is being overriden by a child, or the control system is deactivating (e-stop being turned off)
+	virtual void pause() {
+		ControlBase::pause();
+	}
+
+	//! called when a child has deactivated and this control should refresh its display, or some other event (such as the user pressing the refresh button) has happened to cause a refresh to be needed
+	virtual void refresh() {
+		// If you are displaying dynamic information, you may wish to call clearSlots()
+		// and then rebuild the menus with the current information.
+		// Alternatively, if you know which items need to be modified, you can simply
+		// change their name before calling the ControlBase::refresh below.
+		ControlBase::refresh();
+	}
+	
+	//! called when this control is being popped from the control stack
+	virtual void deactivate() {
+		ControlBase::deactivate();
+	}
+
+	//! when the user has trigger an "open selection"
+	/*! default is to return the hilighted control */
+	virtual ControlBase * doSelect() {
+		return ControlBase::doSelect();
+	}
+
+	//! when the user wants to increment the control
+	/*! default is to hilight the first non-null slot after the last hilight, and return @c this */
+	virtual ControlBase * doNextItem() {
+		return ControlBase::doNextItem();
+	}
+
+	//! when the user wants to decrement the control
+	/*! default is to hilight the last non-null slot before the first hilight, and return @c this */
+	virtual ControlBase * doPrevItem() {
+		return ControlBase::doPrevItem();
+	}
+
+	//! when the user wants to cancel
+	/*! you should almost always return NULL now unless you need to override the cancel in order to confirm something (e.g. "Save changes?") */
+	virtual ControlBase * doCancel() {
+		return ControlBase::doCancel();
+	}
+
+	//! prompt the user for text input on the current input device (cin, tekkotsu console (sout), or GUI)
+	virtual ControlBase * doReadStdIn(const std::string& prompt=std::string()) {
+		return ControlBase::doReadStdIn(prompt);
+	}
+
+	//! called when the user has supplied a text string
+	/*! May or may not have been prompted by doReadStdIn()!  May not
+	 *  even be active yet - the user can direct the same input to a set
+	 *  of hilighted menus */
+	virtual ControlBase * takeInput(const std::string& msg) {
+		return ControlBase::takeInput(msg);
+	}
+
+	//! may be called before takeInput to verify this Control can make sense of msg
+	virtual bool validInput(const std::string& msg) {
+		return ControlBase::validInput(msg);
+	}
+
+
+	// **************************** //
+	// ********* MEMBERS ********** //
+	// **************************** //
+protected:
+	// <class members go here>
+
+
+	// **************************** //
+	// ********** OTHER *********** //
+	// **************************** //
+private:
+	CLASSNAME(const CLASSNAME&); //!< you can override, but don't call this...
+	CLASSNAME& operator=(const CLASSNAME&); //!< you can override, but don't call this...
+};
+
+/*! @file
+ * @brief Defines CLASSNAME, which DESCRIPTION
+ * @author YOURNAMEHERE (Creator)
+ *
+ * $Author: ejt $
+ * $Name: HEAD $
+ * $Revision: 1.1 $
+ * $State: Exp $
+ * $Date: 2005/01/30 17:44:13 $
+ */
+#endif
diff -urdN ../../Tekkotsu_2.2.2/project/templates/header.h ./templates/header.h
--- ../../Tekkotsu_2.2.2/project/templates/header.h	Tue Aug 24 21:09:24 2004
+++ ./templates/header.h	Tue Aug 24 21:09:24 2004
@@ -15,7 +15,7 @@
  * @author YOURNAMEHERE (Creator)
  *
  * $Author: ejt $
- * $Name: HEAD $
+ * $Name: HEAD $
  * $Revision: 1.1 $
  * $State: Exp $
  * $Date: 2005/01/30 17:44:13 $
diff -urdN ../../Tekkotsu_2.2.2/project/templates/implementation.cc ./templates/implementation.cc
--- ../../Tekkotsu_2.2.2/project/templates/implementation.cc	Tue Aug 24 21:09:24 2004
+++ ./templates/implementation.cc	Tue Aug 24 21:09:24 2004
@@ -5,7 +5,7 @@
  * @author YOURNAMEHERE (Creator)
  *
  * $Author: ejt $
- * $Name: HEAD $
+ * $Name: HEAD $
  * $Revision: 1.1 $
  * $State: Exp $
  * $Date: 2005/01/30 17:44:13 $
diff -urdN ../../Tekkotsu_2.2.2/project/templates/statemachine.h ./templates/statemachine.h
--- ../../Tekkotsu_2.2.2/project/templates/statemachine.h	Wed Dec 31 19:00:00 1969
+++ ./templates/statemachine.h	Tue Jan 25 18:52:52 2005
@@ -0,0 +1,111 @@
+//-*-c++-*-
+#ifndef INCLUDED_CLASSNAME_h_
+#define INCLUDED_CLASSNAME_h_
+
+// This is an empty StateNode template file.
+//
+// StateNodes are recursive data structures, can be used as either a leaf node
+// or a machine.  This template is the suggested form for a state machine, which
+// breaks a task down into one or more subnodes.
+//
+// You are of course welcome to combine the abilities of a leaf node (actual
+// execution) and a state machine (which breaks the task down into subnodes) --
+// simply add processEvent() and DoStop(), as seen in statenode.h
+//
+// Replace YOURNAME, CLASSNAME, and DESCRIPTION as appropriate, and go to town!
+
+
+#include "Behaviors/StateNode.h"
+
+//! DESCRIPTION
+class CLASSNAME : public StateNode {
+
+	// ****************************
+	// ******* CONSTRUCTORS *******
+	// ****************************
+public:
+	//! default constructor, use type name as instance name
+	CLASSNAME()
+		: StateNode("CLASSNAME","CLASSNAME"), start(NULL)
+	{}
+
+	//! constructor, take an instance name
+	CLASSNAME(const std::string& nm)
+		: StateNode("CLASSNAME",nm), start(NULL)
+	{}
+
+	//! destructor, check call to teardown -- only actually necessary if you override teardown()
+	~CLASSNAME() {
+		if(issetup) 
+			teardown();
+	}
+
+protected:
+  //! constructor for subclasses (which would need to provide a different class name)
+  CLASSNAME(const std::string &class_name, const std::string &node_name)
+    : StateNode(class_name,node_name), start(NULL)
+	{}
+	
+	
+	// ****************************
+	// ********* METHODS **********
+	// ****************************
+public:
+	//! This function should wire together any subnodes which you may desire
+	virtual void setup() {
+		StateNode::setup(); // call anytime(required)
+		// <your setup code here>
+		start=/*...*/;
+	}
+
+	//! You may not need this function if the only memory allocated in
+	//! setup() was subnodes and transitions
+	virtual void teardown() {
+		// <your teardown code here>
+		StateNode::teardown(); // may delete subnodes (required)
+	}
+
+	//! Just like a behavior, called when it's time to start doing your thing
+	virtual void DoStart() {
+		StateNode::DoStart(); // do this first (required)
+		start->DoStart();
+		// probably don't need to do anything else...
+	}
+
+	static std::string getClassDescription() { return "DESCRIPTION"; }
+	virtual std::string getDescription() const { return getClassDescription(); }
+
+
+	// ****************************
+	// ********* MEMBERS **********
+	// ****************************
+protected:
+	StateNode * start; //!< the subnode to begin within on DoStart()
+	// <class members go here>
+
+
+	// ****************************
+	// ********** OTHER ***********
+	// ****************************
+private:
+	// Providing declarations for these functions will avoid a compiler warning if
+	// you have any class members which are pointers.  However, as it is, an error
+	// will result if you inadvertantly cause a call to either (which is probably
+	// a good thing, unless you really intended to copy/assign a behavior, in
+	// which case simply provide implementations for the functions)
+	CLASSNAME(const CLASSNAME&); //!< don't call (copy constructor)
+	CLASSNAME operator=(const CLASSNAME&); //!< don't call (assignment operator)
+};
+
+/*! @file
+ * @brief Defines CLASSNAME, which DESCRIPTION
+ * @author YOURNAMEHERE (Creator)
+ *
+ * $Author: ejt $
+ * $Name: HEAD $
+ * $Revision: 1.1 $
+ * $State: Exp $
+ * $Date: 2005/01/30 17:44:13 $
+ */
+
+#endif
diff -urdN ../../Tekkotsu_2.2.2/project/templates/statenode.h ./templates/statenode.h
--- ../../Tekkotsu_2.2.2/project/templates/statenode.h	Wed Dec 31 19:00:00 1969
+++ ./templates/statenode.h	Tue Jan 25 19:02:44 2005
@@ -0,0 +1,109 @@
+//-*-c++-*-
+#ifndef INCLUDED_CLASSNAME_h_
+#define INCLUDED_CLASSNAME_h_
+
+// This is an empty StateNode template file.
+//
+// StateNodes are recursive data structures, can be used as either a leaf node
+// or a machine.  This template is the suggested form for a leaf node, which
+// does the actual implementation of a task without help from other subnodes.
+// Note the extreme similarity to a Behavior... the only significant difference
+// for implementation is a few extra suggested constructors.
+//
+// You are of course welcome to combine the abilities of a leaf node (actual
+// execution) and a state machine (which breaks the task down into subnodes),
+// but statemachine.h might provide an easier starting point for such usage.
+//
+// Replace YOURNAME, CLASSNAME, and DESCRIPTION as appropriate, and go to town!
+
+
+#include "Behaviors/StateNode.h"
+
+//! DESCRIPTION
+class CLASSNAME : public StateNode {
+
+	// **************************** //
+	// ******* CONSTRUCTORS ******* //
+	// **************************** //
+public:
+	//! default constructor, use type name as instance name
+	CLASSNAME()
+		: StateNode("CLASSNAME","CLASSNAME")
+	{}
+
+	//! constructor, take an instance name
+	CLASSNAME(const std::string& nm)
+		: StateNode("CLASSNAME",nm)
+	{}
+
+protected:
+  //! constructor for subclasses (which would need to provide a different class name)
+  CLASSNAME(const std::string &class_name, const std::string &node_name)
+    : StateNode(class_name,node_name)
+	{}
+	
+	
+	// **************************** //
+	// ********* METHODS ********** //
+	// **************************** //
+public:
+	//! Just like a behavior, called when it's time to start doing your thing
+	virtual void DoStart() {
+		StateNode::DoStart(); // do this first (required)
+		// <your startup code here>
+		// can also erouter->addListener(this, ... );
+		// (Event IDs are found in Events/EventBase.h)
+
+		// Don't call DoStop() yourself (as behaviors can do) -- let a transition do
+		// it when deemed appropriate
+	}
+
+	virtual void processEvent(const EventBase& /*e*/) {
+		// <your event processing code here>
+		// you can delete this function if you don't use any events...
+	}
+
+	//! Just like a behavior, called when it's time to stop doing your thing
+	virtual void DoStop() {
+		// <your shutdown code here>
+
+		erouter->removeListener(this); //generally a good idea, unsubscribe all
+		StateNode::DoStop(); // do this last (required)
+	}
+
+	static std::string getClassDescription() { return "DESCRIPTION"; }
+	virtual std::string getDescription() const { return getClassDescription(); }
+
+
+	// **************************** //
+	// ********* MEMBERS ********** //
+	// **************************** //
+protected:
+	// <class members go here>
+
+
+	// **************************** //
+	// ********** OTHER *********** //
+	// **************************** //
+private:
+	// Providing declarations for these functions will avoid a compiler warning if
+	// you have any class members which are pointers.  However, as it is, an error
+	// will result if you inadvertantly cause a call to either (which is probably
+	// a good thing, unless you really intended to copy/assign a behavior, in
+	// which case simply provide implementations for the functions)
+	CLASSNAME(const CLASSNAME&); //!< don't call (copy constructor)
+	CLASSNAME operator=(const CLASSNAME&); //!< don't call (assignment operator)
+};
+
+/*! @file
+ * @brief Defines CLASSNAME, which DESCRIPTION
+ * @author YOURNAMEHERE (Creator)
+ *
+ * $Author: ejt $
+ * $Name: HEAD $
+ * $Revision: 1.1 $
+ * $State: Exp $
+ * $Date: 2005/01/30 17:44:13 $
+ */
+
+#endif
diff -urdN ../../Tekkotsu_2.2.2/project/templates/transition.h ./templates/transition.h
--- ../../Tekkotsu_2.2.2/project/templates/transition.h	Wed Dec 31 19:00:00 1969
+++ ./templates/transition.h	Tue Jan 25 19:02:44 2005
@@ -0,0 +1,105 @@
+//-*-c++-*-
+#ifndef INCLUDED_CLASSNAME_h_
+#define INCLUDED_CLASSNAME_h_
+
+// This is an empty Transition template file.
+//
+// Note that Transitions are in fact behaviors, and indeed, there's little
+// extra.  Only now, the Transition base class provides a fire() function for
+// you to call when your transition decides it is time.
+//
+// Replace YOURNAME, CLASSNAME, and DESCRIPTION as appropriate, and go to town!
+
+
+#include "Behaviors/Transition.h"
+
+//! DESCRIPTION
+class CLASSNAME : public Transition {
+
+	// **************************** //
+	// ******* CONSTRUCTORS ******* //
+	// **************************** //
+public:
+	//! default constructor, use type name as instance name
+	CLASSNAME(StateNode* destination)
+		: Transition("CLASSNAME",destination)
+	{}
+
+	//! constructor, take an instance name
+	CLASSNAME(const std::string& nm, StateNode* destination)
+		: Transition("CLASSNAME",nm,destination)
+	{}
+
+protected:
+  //! constructor for subclasses (which would need to provide a different class name)
+  CLASSNAME(const std::string &class_name, const std::string &instance_name, StateNode* destination)
+    : Transition(class_name,instance_name,destination)
+	{}
+	
+	
+	// **************************** //
+	// ********* METHODS ********** //
+	// **************************** //
+public:
+	//! Just like a behavior, called when it's time to start doing your thing
+	virtual void DoStart() {
+		Transition::DoStart(); // do this first (required)
+		// <your startup code here>
+		// e.g. erouter->addListener(this, ... );
+		// (Event IDs are found in Events/EventBase.h)
+
+		// Don't call DoStop() yourself (as behaviors can do) -- let the source
+		// StateNode do it when a transition (perhaps this one) fires
+	}
+
+	virtual void processEvent(const EventBase& /*e*/) {
+		// <your event processing code here>
+		// Call fire() (a method of the Transition base class) whenever the
+		// environment satisifies whatever condition this Transition is supposed to
+		// monitor for.  This triggers all the machinery to cause the transition.
+	}
+
+	//! Just like a behavior, called when it's time to stop doing your thing
+	virtual void DoStop() {
+		// <your shutdown code here>
+
+		erouter->removeListener(this); //generally a good idea, unsubscribe all
+		Transition::DoStop(); // do this last (required)
+	}
+
+	static std::string getClassDescription() { return "DESCRIPTION"; }
+	virtual std::string getDescription() const { return getClassDescription(); }
+
+
+	// **************************** //
+	// ********* MEMBERS ********** //
+	// **************************** //
+protected:
+	// <class members go here>
+
+
+	// **************************** //
+	// ********** OTHER *********** //
+	// **************************** //
+private:
+	// Providing declarations for these functions will avoid a compiler warning if
+	// you have any class members which are pointers.  However, as it is, an error
+	// will result if you inadvertantly cause a call to either (which is probably
+	// a good thing, unless you really intended to copy/assign a behavior, in
+	// which case simply provide implementations for the functions)
+	CLASSNAME(const CLASSNAME&); //!< don't call (copy constructor)
+	CLASSNAME operator=(const CLASSNAME&); //!< don't call (assignment operator)
+};
+
+/*! @file
+ * @brief Defines CLASSNAME, which DESCRIPTION
+ * @author YOURNAMEHERE (Creator)
+ *
+ * $Author: ejt $
+ * $Name: HEAD $
+ * $Revision: 1.1 $
+ * $State: Exp $
+ * $Date: 2005/01/30 17:44:13 $
+ */
+
+#endif
