package org.eclipse.wst.xsl.internal.debug.ui.tabs.output;

import org.eclipse.osgi.util.NLS;

public class Messages extends NLS {
	private static final String BUNDLE_NAME = "org.eclipse.wst.xsl.internal.debug.ui.tabs.output.messages"; //$NON-NLS-1$
	public static String OutputPropertiesBlock_0;
	public static String OutputPropertiesBlock_1;
	public static String OutputPropertiesBlock_13;
	public static String OutputPropertiesBlock_3;
	public static String OutputPropertiesBlock_4;
	public static String OutputPropertiesBlock_5;
	public static String OutputPropertiesBlock_7;
	public static String OutputPropertiesBlock_8;
	public static String OutputPropertiesBlock_9;
	public static String OutputTab_0;
	public static String OutputTab_1;
	static {
		// initialize resource bundle
		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
	}

	private Messages() {
	}
}
