private List<Gate> getIncrementedGates(List<Gate> parsedGates){
		List<Gate> res = new ArrayList<Gate>();
		int incNumber = largestAugOutputWire + 1 - numberOfOriginalInputs;

		for (Gate g: parsedGates) {
			if(!g.isXOR()){
				g.setGateNumber(g.getGateNumber() + numberOfNonXORGatesAdded);
			}

			//If left wire is y, increment it, else increment wires with new added wire size
			int leftWireIndex = g.getLeftWireIndex();
			if (leftWireIndex < numberOfOriginalInputs &&
					leftWireIndex > t_a - 1) {
				g.setLeftWireIndex(leftWireIndex + l);
			} else if (leftWireIndex >= numberOfOriginalInputs) {
				g.setLeftWireIndex(leftWireIndex + incNumber);
			}

			// Same, but for right wire
			int rightWireIndex = g.getRightWireIndex();
			if (rightWireIndex < numberOfOriginalInputs &&
					rightWireIndex > t_a - 1) {
				g.setRightWireIndex(rightWireIndex + l);
			} else if (rightWireIndex >= numberOfOriginalInputs) {
				g.setRightWireIndex(g.getRightWireIndex() + incNumber);
			}

			// Output wires should always be incremented
			int newIndex = g.getOutputWireIndex() + incNumber;
			g.setOutputWireIndex(newIndex);
			largestOutputWire = Math.max(largestOutputWire, g.getOutputWireIndex());
			res.add(g);
		}
		return res;
	}