this.endAttempt(exitAt, false); 
exitAt=this.endAttempt(exitAt, false); 
	evaluateExitRules: function (iTentative)	{		sclog("SequencingExitActionRulesSub [TB.2.1]","seq");      		// Clear global state		this.mExitCourse = false;				// Always begin processing at the current activity		var start = this.mSeqTree.getCurrentActivity();		var exitAt = null;		var exited = null;		var path = new Array();				if (start != null)		{			var parent = start.getParent();					while (parent != null)			{				path[path.length] = parent;				parent = parent.getParent();			}					// Starting at the root, walk down the tree to the current activity'			// parent.			while (path.length > 0  && (exited == null))			{				parent = path[path.length - 1];				//delete path[path.length - 1];				path.splice(path.length - 1,1);				// Attempt to get rule information from the activity node				var exitRules = parent.getExitSeqRules();								if (exitRules != null)				{					exited = exitRules.evaluate(RULE_TYPE_EXIT, parent, false);				}								// If the rule evaluation did not return null, the activity must				// have exited.				if (exited != null)				{					exitAt = parent;				}			}			if (exited != null)			{				// If this was a 'real' evaluation, end the appropriate attempts.				if (!iTentative)				{					// If an activity exited, end attempts at all remaining cluster					// on the 'active' branch.					this.terminateDescendentAttempts(exitAt);										// End the attempt on the 'exited' activity					this.endAttempt(exitAt, false);				}				// Sequencing requests begin at the 'exited' activity				this.mSeqTree.setFirstCandidate(exitAt);			}		}	},
6251	/local1/tlutelli/issta_data/temp/all_js/javascript/2007_temp/2007/6251/13ee04e214149cc9fc055550730d017e420331db/ADLSequencer.js/clean/Modules/Scorm2004/scripts/adl2js/ADLSequencer.js