public void activate(){
		activated = true;
		vectors = new int[input.size()];
		for(int i = 0; i < input.size(); i++){
			vectors[i] = Circuit.booleanToInt(getValue(input.get(i)));
		}
		box.execute(vectors);
		for(int i = 0; i < outputPorts.length; i++){
			outputPorts[i] = box.gates.get(box.outputLabels.get(i)).value;
		}
		boolean allActive = true;
		for(Connection g : output){  //	Cycle through all outputs
			allActive = true;  //	variable to check if all inputs are activated
			for(Connection j : g.getChild().input){	//	iterate through all the inputs
				if(j.getParent().activated == false)	//	if one of the inputs on the child aren't activated, don't activate it
					allActive = false;
			}
			if(allActive == true)
				g.getChild().activate();	//	if all of the inputs on this child are active, then activate that child (yay recursion)
		}	
	}