protected void addOutsidersAndTimers(Faction F, Vector<Faction.FactionChangeEvent> outSiders, Vector<Faction.FactionChangeEvent> timers)
	{
		Faction.FactionChangeEvent[] CEs=null;
		CEs=F.getChangeEvents("ADDOUTSIDER");
		if(CEs!=null)
		{
			for (final FactionChangeEvent ce : CEs)
				outSiders.addElement(ce);
		}
		CEs=F.getChangeEvents("TIME");
		if(CEs!=null)
		{
			for (final FactionChangeEvent ce : CEs)
			{
				if(ce.triggerParameters().length()==0)
					timers.addElement(ce);
				else
				{
					int[] ctr=(int[])ce.stateVariable(0);
					if(ctr==null)
					{
						ctr=new int[]{CMath.s_int(ce.getTriggerParm("ROUNDS"))};
						ce.setStateVariable(0,ctr);
					}
					if((--ctr[0])<=0)
					{
						ctr[0]=CMath.s_int(ce.getTriggerParm("ROUNDS"));
						timers.addElement(ce);
					}
				}
			}
		}
	}