import { JavaObject, cast_java_lang_Object } from '../../../java/lang/JavaObject';
import { JavaInteger, cast_java_lang_Integer } from '../../../java/lang/JavaInteger';
import { Fachgruppe, cast_de_nrw_schule_svws_core_types_statkue_Fachgruppe } from '../../../core/types/statkue/Fachgruppe';
import { HashMap, cast_java_util_HashMap } from '../../../java/util/HashMap';
import { Schulform, cast_de_nrw_schule_svws_core_types_statkue_Schulform } from '../../../core/types/statkue/Schulform';
import { JavaLong, cast_java_lang_Long } from '../../../java/lang/JavaLong';
import { Schulgliederung, cast_de_nrw_schule_svws_core_types_statkue_Schulgliederung } from '../../../core/types/statkue/Schulgliederung';
import { List, cast_java_util_List } from '../../../java/util/List';
import { JavaString, cast_java_lang_String } from '../../../java/lang/JavaString';
import { Arrays, cast_java_util_Arrays } from '../../../java/util/Arrays';
import { Vector, cast_java_util_Vector } from '../../../java/util/Vector';

export class ZulaessigesFach extends JavaObject {

	/** the name of the enumeration value */
	private readonly __name : String;

	/** the ordinal value for the enumeration value */
	private readonly __ordinal : number;

	/** an array containing all values of this enumeration */
	private static readonly all_values_by_ordinal : Array<ZulaessigesFach> = [];

	/** an array containing all values of this enumeration indexed by their name*/
	private static readonly all_values_by_name : Map<String, ZulaessigesFach> = new Map<String, ZulaessigesFach>();

	public static readonly A : ZulaessigesFach = new ZulaessigesFach("A", 0, "A", "Arabisch", Arrays.asList("BK", "GE", "GY", "SB", "SG", "WB"), null, "A", null, 3, null, true, false, false, false, false, false, true, null, null);

	public static readonly AB : ZulaessigesFach = new ZulaessigesFach("AB", 1, "AB", "Arbeits- und Betriebswirtschaftslehre", Arrays.asList("BK", "SB"), null, "AB", null, 2, null, false, false, false, false, false, false, true, null, null);

	public static readonly AG : ZulaessigesFach = new ZulaessigesFach("AG", 2, "AG", "Neigungs- und Projektgruppen", Arrays.asList("BK", "SB"), null, "AG", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly AH : ZulaessigesFach = new ZulaessigesFach("AH", 3, "AH", "Arbeitslehre - Schwerpunkt Hauswirtschaft", Arrays.asList("GE", "GM", "H", "PS", "SK", "V"), Arrays.asList("H"), "AH", null, 2, null, false, false, false, false, false, false, true, null, null);

	public static readonly AL : ZulaessigesFach = new ZulaessigesFach("AL", 4, "AL", "Arbeitslehre", Arrays.asList("GE", "GM", "PS", "S", "SG", "SK"), null, "AL", null, 2, null, false, false, false, false, false, false, true, null, null);

	public static readonly AM : ZulaessigesFach = new ZulaessigesFach("AM", 5, "AM", "Unterricht in der Herkunftssprache - Arabisch", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "AM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly AR : ZulaessigesFach = new ZulaessigesFach("AR", 6, "AR", "Alevitische Religionslehre nach den Grundsätzen des AABF", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "AR", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly AT : ZulaessigesFach = new ZulaessigesFach("AT", 7, "AT", "Arbeitslehre - Schwerpunkt Technik", Arrays.asList("GE", "GM", "H", "PS", "SK", "V"), Arrays.asList("H"), "AT", null, 2, null, false, false, false, false, false, false, true, null, null);

	public static readonly AV : ZulaessigesFach = new ZulaessigesFach("AV", 8, "AV", "Arbeitsvorbereitung", Arrays.asList("BK", "SB"), null, "AV", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly AW : ZulaessigesFach = new ZulaessigesFach("AW", 9, "AW", "Arbeitslehre - Schwerpunkt Wirtschaft", Arrays.asList("GE", "GM", "H", "PS", "SK", "V"), Arrays.asList("H"), "AW", null, 2, null, false, false, false, false, false, false, true, null, null);

	public static readonly AX : ZulaessigesFach = new ZulaessigesFach("AX", 10, "AX", "Arbeitslehre - Technik/Wirtschaft (nur Wahlpflichtunterricht)", Arrays.asList("GE", "GM", "PS", "SK"), null, "AX", null, 2, null, false, false, false, false, false, false, true, null, null);

	public static readonly AY : ZulaessigesFach = new ZulaessigesFach("AY", 11, "AY", "Arbeitslehre - Hauswirtschaft/Wirtschaft (nur Wahlpflichtunterricht)", Arrays.asList("GE", "GM", "PS", "SK"), null, "AY", null, 2, null, false, false, false, false, false, false, true, null, null);

	public static readonly BA : ZulaessigesFach = new ZulaessigesFach("BA", 12, "BA", "Berufs- und Arbeitspädagogik", Arrays.asList("BK", "SB"), null, "BA", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly BF : ZulaessigesFach = new ZulaessigesFach("BF", 13, "BF", "Bürowirtschaft", Arrays.asList("BK", "SB"), null, "BF", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly BG : ZulaessigesFach = new ZulaessigesFach("BG", 14, "BG", "Betrieb und Gesellschaft/Politik", Arrays.asList("BK", "SB"), null, "BG", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly BH : ZulaessigesFach = new ZulaessigesFach("BH", 15, "BH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Bosnisch", Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays.asList("R"), "BH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly BI : ZulaessigesFach = new ZulaessigesFach("BI", 16, "BI", "Biologie", Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "BI", 3, 10, null, false, false, false, false, false, false, true, null, null);

	public static readonly BK : ZulaessigesFach = new ZulaessigesFach("BK", 17, "BK", "Betriebsinformatik", Arrays.asList("BK", "SB"), null, "BK", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly BM : ZulaessigesFach = new ZulaessigesFach("BM", 18, "BM", "Unterricht in der Herkunftssprache - Bosnisch", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "BM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly BN : ZulaessigesFach = new ZulaessigesFach("BN", 19, "BN", "Braille\'sche Punktschrift", Arrays.asList("S"), null, "BN", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly BP : ZulaessigesFach = new ZulaessigesFach("BP", 20, "BP", "Betriebspraxis", Arrays.asList("BK", "SB"), null, "BP", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly BR : ZulaessigesFach = new ZulaessigesFach("BR", 21, "BR", "Betriebslehre", Arrays.asList("BK", "SB"), null, "BR", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly BS : ZulaessigesFach = new ZulaessigesFach("BS", 22, "BS", "Betriebssoziologie / Arbeitsrecht", Arrays.asList("BK", "SB"), null, "BS", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly BV : ZulaessigesFach = new ZulaessigesFach("BV", 23, "BV", "Berufsvorbereitung", Arrays.asList("GE", "PS"), null, "BV", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly BW : ZulaessigesFach = new ZulaessigesFach("BW", 24, "BW", "Betriebswirtschaftslehre", Arrays.asList("BK", "SB"), null, "BW", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly BY : ZulaessigesFach = new ZulaessigesFach("BY", 25, "BY", "Betriebssysteme / Netzwerke", Arrays.asList("BK", "SB"), null, "BY", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly C : ZulaessigesFach = new ZulaessigesFach("C", 26, "C", "Chinesisch", Arrays.asList("BK", "SB", "WB"), null, "C", 1, 3, null, true, false, false, false, false, false, true, null, null);

	public static readonly C0 : ZulaessigesFach = new ZulaessigesFach("C0", 27, "C0", "Chinesisch, regulärer Beginn in der Einführungsphase", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "C", 1, 3, "EF", true, false, false, false, false, true, true, null, null);

	public static readonly C1 : ZulaessigesFach = new ZulaessigesFach("C1", 28, "C1", "Chinesisch, regulärer Beginn in Jahrgang 11", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "C", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);

	public static readonly C5 : ZulaessigesFach = new ZulaessigesFach("C5", 29, "C5", "Chinesisch, regulärer Beginn in Jahrgang 5", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "C", 1, 3, "05", true, false, false, false, false, false, true, null, null);

	public static readonly C6 : ZulaessigesFach = new ZulaessigesFach("C6", 30, "C6", "Chinesisch, regulärer Beginn in Jahrgang 6", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "C", 1, 3, "06", true, false, false, false, false, false, true, null, null);

	public static readonly C7 : ZulaessigesFach = new ZulaessigesFach("C7", 31, "C7", "Chinesisch, regulärer Beginn in Jahrgang 7", Arrays.asList("GE", "GM", "GY", "SG", "SK"), null, "C", 1, 3, "07", true, false, false, false, false, false, true, null, null);

	public static readonly C8 : ZulaessigesFach = new ZulaessigesFach("C8", 32, "C8", "Chinesisch, regulärer Beginn in Jahrgang 8", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "C", 1, 3, "08", true, false, false, false, false, false, true, null, null);

	public static readonly C9 : ZulaessigesFach = new ZulaessigesFach("C9", 33, "C9", "Chinesisch, regulärer Beginn in Jahrgang 9", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "C", 1, 3, "09", true, false, false, false, false, false, true, null, null);

	public static readonly CH : ZulaessigesFach = new ZulaessigesFach("CH", 34, "CH", "Chemie", Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "CH", 3, 10, null, false, false, false, false, false, false, true, null, null);

	public static readonly CM : ZulaessigesFach = new ZulaessigesFach("CM", 35, "CM", "Unterricht in der Herkunftssprache - Kroatisch", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "CM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly CQ : ZulaessigesFach = new ZulaessigesFach("CQ", 36, "CQ", "Chinesisch, außerhalb des regulären Fachunterrichts", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "CQ", null, null, null, true, false, true, false, false, false, true, null, null);

	public static readonly D : ZulaessigesFach = new ZulaessigesFach("D", 37, "D", "Deutsch", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "D", 1, 1, null, false, false, false, false, false, false, true, null, null);

	public static readonly DB : ZulaessigesFach = new ZulaessigesFach("DB", 38, "DB", "Datenbanken", Arrays.asList("BK", "SB"), null, "DB", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly DH : ZulaessigesFach = new ZulaessigesFach("DH", 39, "DH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Rumänisch", Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR"), null, "DH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly DM : ZulaessigesFach = new ZulaessigesFach("DM", 40, "DM", "Didaktik u. Methodik der soz.päd. Praxis mit Übungen", Arrays.asList("BK", "SB"), null, "DM", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly DS : ZulaessigesFach = new ZulaessigesFach("DS", 41, "DS", "Darstellen und Gestalten", Arrays.asList("GE", "GM", "GY", "PS", "SK"), null, "DS", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly DV : ZulaessigesFach = new ZulaessigesFach("DV", 42, "DV", "Datenverarbeitung", Arrays.asList("BK", "SB"), null, "DV", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly E : ZulaessigesFach = new ZulaessigesFach("E", 43, "E", "Englisch", Arrays.asList("BK", "FW", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "E", 1, 3, null, true, false, false, false, false, false, true, null, null);

	public static readonly EB : ZulaessigesFach = new ZulaessigesFach("EB", 44, "EB", "Erweitertes Bildungsangebot", Arrays.asList("H", "SK", "V"), Arrays.asList("H"), "EB", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly EH : ZulaessigesFach = new ZulaessigesFach("EH", 45, "EH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Serbisch", Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays.asList("R"), "EH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly EK : ZulaessigesFach = new ZulaessigesFach("EK", 46, "EK", "Erdkunde/ Geographie", Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "EK", 2, 6, null, false, false, false, false, false, false, true, null, null);

	public static readonly EL : ZulaessigesFach = new ZulaessigesFach("EL", 47, "EL", "Ernährungslehre", Arrays.asList("BK", "GE", "GY", "PS", "SB", "SG", "SK"), Arrays.asList("GY"), "EL", null, 11, null, false, false, false, false, false, false, true, null, null);

	public static readonly EM : ZulaessigesFach = new ZulaessigesFach("EM", 48, "EM", "Unterricht in der Herkunftssprache - Serbisch", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "EM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly EN : ZulaessigesFach = new ZulaessigesFach("EN", 49, "EN", "Evangelische Religionslehre (konfessionell kooperativ)", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "ER", null, null, null, false, false, false, false, true, false, true, null, null);

	public static readonly ER : ZulaessigesFach = new ZulaessigesFach("ER", 50, "ER", "Evangelische Religionslehre", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "ER", null, 8, null, false, false, false, false, false, false, true, null, null);

	public static readonly F : ZulaessigesFach = new ZulaessigesFach("F", 51, "F", "Französisch", Arrays.asList("BK", "FW", "H", "S", "SB", "V", "WB"), Arrays.asList("H"), "F", 1, 3, null, true, false, false, false, false, false, true, null, null);

	public static readonly F0 : ZulaessigesFach = new ZulaessigesFach("F0", 52, "F0", "Französisch, regulärer Beginn in der Einführungsphase", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "F", 1, 3, "EF", true, false, false, false, false, true, true, null, null);

	public static readonly F1 : ZulaessigesFach = new ZulaessigesFach("F1", 53, "F1", "Französisch, regulärer Beginn in Jahrgang 11", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "F", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);

	public static readonly F5 : ZulaessigesFach = new ZulaessigesFach("F5", 54, "F5", "Französisch, regulärer Beginn in Jahrgang 5", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "F", 1, 3, "05", true, false, false, false, false, false, true, null, null);

	public static readonly F6 : ZulaessigesFach = new ZulaessigesFach("F6", 55, "F6", "Französisch, regulärer Beginn in Jahrgang 6", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "F", 1, 3, "06", true, false, false, false, false, false, true, null, null);

	public static readonly F7 : ZulaessigesFach = new ZulaessigesFach("F7", 56, "F7", "Französisch, regulärer Beginn in Jahrgang 7", Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "F", 1, 3, "07", true, false, false, false, false, false, true, null, null);

	public static readonly F8 : ZulaessigesFach = new ZulaessigesFach("F8", 57, "F8", "Französisch, regulärer Beginn in Jahrgang 8", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "F", 1, 3, "08", true, false, false, false, false, false, true, null, null);

	public static readonly F9 : ZulaessigesFach = new ZulaessigesFach("F9", 58, "F9", "Französisch, regulärer Beginn in Jahrgang 9", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "F", 1, 3, "09", true, false, false, false, false, false, true, null, null);

	public static readonly FB : ZulaessigesFach = new ZulaessigesFach("FB", 59, "FB", "Fächer des berufsbezogenen Bereichs", Arrays.asList("BK", "SB"), null, "FB", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly FK : ZulaessigesFach = new ZulaessigesFach("FK", 60, "FK", "Fremdsprachliche Kommunikation", Arrays.asList("BK", "SB"), null, "FK", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly FP : ZulaessigesFach = new ZulaessigesFach("FP", 61, "FP", "Fachpraxis", Arrays.asList("BK", "SB"), null, "FP", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly FQ : ZulaessigesFach = new ZulaessigesFach("FQ", 62, "FQ", "Französisch, außerhalb des regulären Fachunterrichts", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "FQ", null, null, null, true, false, true, false, false, false, true, null, null);

	public static readonly FU : ZulaessigesFach = new ZulaessigesFach("FU", 63, "FU", "Förderunterricht", Arrays.asList("BK", "G", "PS", "SB", "V"), null, "FU", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly G : ZulaessigesFach = new ZulaessigesFach("G", 64, "G", "Altgriechisch", Arrays.asList("FW", "S", "WB"), null, "G", null, 3, null, true, false, false, false, false, false, true, null, null);

	public static readonly G0 : ZulaessigesFach = new ZulaessigesFach("G0", 65, "G0", "Altgriechisch, regulärer Beginn in der Einführungsphase", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "G", null, 3, "EF", true, false, false, false, false, true, true, null, null);

	public static readonly G1 : ZulaessigesFach = new ZulaessigesFach("G1", 66, "G1", "Altgriechisch, regulärer Beginn in Jahrgang 11", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "G", null, 3, "11", true, false, false, false, false, true, true, null, 2012);

	public static readonly G5 : ZulaessigesFach = new ZulaessigesFach("G5", 67, "G5", "Altgriechisch, regulärer Beginn in Jahrgang 5", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "G", null, 3, "05", true, false, false, false, false, false, true, null, null);

	public static readonly G6 : ZulaessigesFach = new ZulaessigesFach("G6", 68, "G6", "Altgriechisch, regulärer Beginn in Jahrgang 6", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "G", null, 3, "06", true, false, false, false, false, false, true, null, null);

	public static readonly G7 : ZulaessigesFach = new ZulaessigesFach("G7", 69, "G7", "Altgriechisch, regulärer Beginn in Jahrgang 7", Arrays.asList("GE", "GM", "GY", "SG", "SK"), null, "G", null, 3, "07", true, false, false, false, false, false, true, null, null);

	public static readonly G8 : ZulaessigesFach = new ZulaessigesFach("G8", 70, "G8", "Altgriechisch, regulärer Beginn in Jahrgang 8", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "G", null, 3, "08", true, false, false, false, false, false, true, null, null);

	public static readonly G9 : ZulaessigesFach = new ZulaessigesFach("G9", 71, "G9", "Altgriechisch, regulärer Beginn in Jahrgang 9", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "G", null, 3, "09", true, false, false, false, false, false, true, null, null);

	public static readonly GA : ZulaessigesFach = new ZulaessigesFach("GA", 72, "GA", "Geräte- und Maschinenlehre", Arrays.asList("BK", "SB"), null, "GA", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly GB : ZulaessigesFach = new ZulaessigesFach("GB", 73, "GB", "Grundbildung", Arrays.asList("BK", "SB"), null, "GB", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly GE : ZulaessigesFach = new ZulaessigesFach("GE", 74, "GE", "Geschichte", Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "GE", 2, 6, null, false, false, false, false, false, false, true, null, null);

	public static readonly GH : ZulaessigesFach = new ZulaessigesFach("GH", 75, "GH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Neugriechisch", Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays.asList("R"), "GH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly GL : ZulaessigesFach = new ZulaessigesFach("GL", 76, "GL", "Gesellschaftslehre", Arrays.asList("BK", "GE", "GM", "PS", "SB", "SK"), null, "GL", null, 6, null, false, false, false, false, false, false, true, null, null);

	public static readonly GM : ZulaessigesFach = new ZulaessigesFach("GM", 77, "GM", "Unterricht in der Herkunftssprache - Neugriechisch", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "GM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly GO : ZulaessigesFach = new ZulaessigesFach("GO", 78, "GO", "Geologie (Oberstufenkolleg Bielefeld)", Arrays.asList("WB"), null, "GO", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly GP : ZulaessigesFach = new ZulaessigesFach("GP", 79, "GP", "Geschichte / Politik", Arrays.asList("S"), null, "GP", null, 6, null, false, false, false, false, false, false, true, null, null);

	public static readonly GQ : ZulaessigesFach = new ZulaessigesFach("GQ", 80, "GQ", "Altgriechisch, außerhalb des regulären Fachunterrichts", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "GQ", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly GS : ZulaessigesFach = new ZulaessigesFach("GS", 81, "GS", "Gestaltungslehre", Arrays.asList("BK", "SB"), null, "GS", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly GU : ZulaessigesFach = new ZulaessigesFach("GU", 82, "GU", "Gesamtunterricht (nur für Förderschulkindergarten)", Arrays.asList("S"), null, "GU", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly GW : ZulaessigesFach = new ZulaessigesFach("GW", 83, "GW", "Geschichte und Sozialwissenschaft", Arrays.asList("WB"), null, "GW", null, 6, null, false, false, false, false, false, false, true, null, null);

	public static readonly H : ZulaessigesFach = new ZulaessigesFach("H", 84, "H", "Hebräisch", Arrays.asList("S", "WB"), null, "H", null, 3, null, true, false, false, false, false, false, true, null, null);

	public static readonly H0 : ZulaessigesFach = new ZulaessigesFach("H0", 85, "H0", "Hebräisch, regulärer Beginn in der Einführungsphase", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "H", null, 3, "EF", true, false, false, false, false, true, true, null, null);

	public static readonly H1 : ZulaessigesFach = new ZulaessigesFach("H1", 86, "H1", "Hebräisch, regulärer Beginn in Jahrgang 11", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "H", null, 3, "11", true, false, false, false, false, true, true, null, 2012);

	public static readonly H5 : ZulaessigesFach = new ZulaessigesFach("H5", 87, "H5", "Hebräisch, regulärer Beginn in Jahrgang 5", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "H", null, 3, "05", true, false, false, false, false, false, true, null, null);

	public static readonly H6 : ZulaessigesFach = new ZulaessigesFach("H6", 88, "H6", "Hebräisch, regulärer Beginn in Jahrgang 6", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "H", null, 3, "06", true, false, false, false, false, false, true, null, null);

	public static readonly H7 : ZulaessigesFach = new ZulaessigesFach("H7", 89, "H7", "Hebräisch, regulärer Beginn in Jahrgang 7", Arrays.asList("GE", "GM", "GY", "SG", "SK"), null, "H", null, 3, "07", true, false, false, false, false, false, true, null, null);

	public static readonly H8 : ZulaessigesFach = new ZulaessigesFach("H8", 90, "H8", "Hebräisch, regulärer Beginn in Jahrgang 8", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "H", null, 3, "08", true, false, false, false, false, false, true, null, null);

	public static readonly H9 : ZulaessigesFach = new ZulaessigesFach("H9", 91, "H9", "Hebräisch, regulärer Beginn in Jahrgang 9", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "H", null, 3, "09", true, false, false, false, false, false, true, null, null);

	public static readonly HH : ZulaessigesFach = new ZulaessigesFach("HH", 92, "HH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Kroatisch", Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays.asList("R"), "HH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly HQ : ZulaessigesFach = new ZulaessigesFach("HQ", 93, "HQ", "Hebräisch, außerhalb des regulären Fachunterrichts", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "HQ", null, null, null, true, false, true, false, false, false, true, null, null);

	public static readonly HR : ZulaessigesFach = new ZulaessigesFach("HR", 94, "HR", "Jüdische Religionslehre", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "HR", null, 8, null, false, false, false, false, false, false, true, null, null);

	public static readonly HU : ZulaessigesFach = new ZulaessigesFach("HU", 95, "HU", "Hausunterricht", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "HU", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly HW : ZulaessigesFach = new ZulaessigesFach("HW", 96, "HW", "Hauswirtschaft", Arrays.asList("GE", "GM", "H", "PS", "R", "S", "SG", "SK", "SR", "WB"), null, "HW", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly HY : ZulaessigesFach = new ZulaessigesFach("HY", 97, "HY", "Hygiene", Arrays.asList("BK", "SB"), null, "HY", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly I : ZulaessigesFach = new ZulaessigesFach("I", 98, "I", "Italienisch", Arrays.asList("BK", "FW", "S", "SB", "WB"), Arrays.asList("R"), "I", 1, 3, null, true, false, false, false, false, false, true, null, null);

	public static readonly I0 : ZulaessigesFach = new ZulaessigesFach("I0", 99, "I0", "Italienisch, regulärer Beginn in der Einführungsphase", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "I", 1, 3, "EF", true, false, false, false, false, true, true, null, null);

	public static readonly I1 : ZulaessigesFach = new ZulaessigesFach("I1", 100, "I1", "Italienisch, regulärer Beginn in Jahrgang 11", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "I", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);

	public static readonly I5 : ZulaessigesFach = new ZulaessigesFach("I5", 101, "I5", "Italienisch, regulärer Beginn in Jahrgang 5", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "I", 1, 3, "05", true, false, false, false, false, false, true, null, null);

	public static readonly I6 : ZulaessigesFach = new ZulaessigesFach("I6", 102, "I6", "Italienisch, regulärer Beginn in Jahrgang 6", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "I", 1, 3, "06", true, false, false, false, false, false, true, null, null);

	public static readonly I7 : ZulaessigesFach = new ZulaessigesFach("I7", 103, "I7", "Italienisch, regulärer Beginn in Jahrgang 7", Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "I", 1, 3, "07", true, false, false, false, false, false, true, null, null);

	public static readonly I8 : ZulaessigesFach = new ZulaessigesFach("I8", 104, "I8", "Italienisch, regulärer Beginn in Jahrgang 8", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "I", 1, 3, "08", true, false, false, false, false, false, true, null, null);

	public static readonly I9 : ZulaessigesFach = new ZulaessigesFach("I9", 105, "I9", "Italienisch, regulärer Beginn in Jahrgang 9", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "I", 1, 3, "09", true, false, false, false, false, false, true, null, null);

	public static readonly IE : ZulaessigesFach = new ZulaessigesFach("IE", 106, "IE", "Individuelles Lernen (Ergänzungsstunden, Ganztag- und Betreuungsangebote)", Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "SG", "SK", "SR", "V"), null, "IE", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly IF : ZulaessigesFach = new ZulaessigesFach("IF", 107, "IF", "Informatik", Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "IF", 3, 11, null, false, false, false, false, false, false, true, null, null);

	public static readonly IH : ZulaessigesFach = new ZulaessigesFach("IH", 108, "IH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Italienisch", Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays.asList("R"), "IH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly IK : ZulaessigesFach = new ZulaessigesFach("IK", 109, "IK", "Individuelles Lernen (dem Kernstundenkontingent entnommen)", Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "SG", "SK", "SR", "V"), null, "IK", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly IL : ZulaessigesFach = new ZulaessigesFach("IL", 110, "IL", "Islamische Religionslehre", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "IL", null, 8, null, false, false, false, false, false, false, true, null, null);

	public static readonly IM : ZulaessigesFach = new ZulaessigesFach("IM", 111, "IM", "Unterricht in der Herkunftssprache - Italienisch", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "IM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly IN : ZulaessigesFach = new ZulaessigesFach("IN", 112, "IN", "Instrumentalpraktischer Grundkurs", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "IN", null, 5, null, false, false, false, false, false, true, true, null, null);

	public static readonly IQ : ZulaessigesFach = new ZulaessigesFach("IQ", 113, "IQ", "Italienisch, außerhalb des regulären Fachunterrichts", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "I", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly JH : ZulaessigesFach = new ZulaessigesFach("JH", 114, "JH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Niederländisch", Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR"), null, "N", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly K : ZulaessigesFach = new ZulaessigesFach("K", 115, "K", "Japanisch", Arrays.asList("BK", "SB", "WB"), null, "K", 1, 3, null, true, false, false, false, false, false, true, null, null);

	public static readonly K0 : ZulaessigesFach = new ZulaessigesFach("K0", 116, "K0", "Japanisch, regulärer Beginn in der Einführungsphase", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "K", 1, 3, "EF", true, false, false, false, false, true, true, null, null);

	public static readonly K1 : ZulaessigesFach = new ZulaessigesFach("K1", 117, "K1", "Japanisch, regulärer Beginn in Jahrgang 11", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "K", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);

	public static readonly K5 : ZulaessigesFach = new ZulaessigesFach("K5", 118, "K5", "Japanisch, regulärer Beginn in Jahrgang 5", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "K", 1, 3, "05", true, false, false, false, false, false, true, null, null);

	public static readonly K6 : ZulaessigesFach = new ZulaessigesFach("K6", 119, "K6", "Japanisch, regulärer Beginn in Jahrgang 6", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "K", 1, 3, "06", true, false, false, false, false, false, true, null, null);

	public static readonly K7 : ZulaessigesFach = new ZulaessigesFach("K7", 120, "K7", "Japanisch, regulärer Beginn in Jahrgang 7", Arrays.asList("GE", "GM", "GY", "SG", "SK"), null, "K", 1, 3, "07", true, false, false, false, false, false, true, null, null);

	public static readonly K8 : ZulaessigesFach = new ZulaessigesFach("K8", 121, "K8", "Japanisch, regulärer Beginn in Jahrgang 8", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "K", 1, 3, "08", true, false, false, false, false, false, true, null, null);

	public static readonly K9 : ZulaessigesFach = new ZulaessigesFach("K9", 122, "K9", "Japanisch, regulärer Beginn in Jahrgang 9", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "K", 1, 3, "09", true, false, false, false, false, false, true, null, null);

	public static readonly KN : ZulaessigesFach = new ZulaessigesFach("KN", 123, "KN", "Katholische Religionslehre (konfessionell kooperativ)", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "KR", null, null, null, false, false, false, false, true, false, true, null, null);

	public static readonly KO : ZulaessigesFach = new ZulaessigesFach("KO", 124, "KO", "Kommunikation", Arrays.asList("BK", "SB"), null, "KO", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly KQ : ZulaessigesFach = new ZulaessigesFach("KQ", 125, "KQ", "Japanisch, außerhalb des regulären Fachunterrichts", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK"), null, "KQ", null, null, null, true, false, true, false, false, false, true, null, null);

	public static readonly KR : ZulaessigesFach = new ZulaessigesFach("KR", 126, "KR", "Katholische Religionslehre", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "KR", null, 8, null, false, false, false, false, false, false, true, null, null);

	public static readonly KS : ZulaessigesFach = new ZulaessigesFach("KS", 127, "KS", "Kurzschrift", Arrays.asList("BK", "SB"), null, "KS", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly KU : ZulaessigesFach = new ZulaessigesFach("KU", 128, "KU", "Kunst", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "KU", 1, 4, null, false, false, false, false, false, false, true, null, null);

	public static readonly L : ZulaessigesFach = new ZulaessigesFach("L", 129, "L", "Lateinisch", Arrays.asList("BK", "FW", "H", "S", "SB", "WB"), null, "L", 1, 3, null, true, false, false, false, false, false, true, null, null);

	public static readonly L0 : ZulaessigesFach = new ZulaessigesFach("L0", 130, "L0", "Lateinisch, regulärer Beginn in der Einführungsphase", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "L", 1, 3, "EF", true, false, false, false, false, true, true, null, null);

	public static readonly L1 : ZulaessigesFach = new ZulaessigesFach("L1", 131, "L1", "Lateinisch, regulärer Beginn in Jahrgang 11", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "L", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);

	public static readonly L5 : ZulaessigesFach = new ZulaessigesFach("L5", 132, "L5", "Lateinisch, regulärer Beginn in Jahrgang 5", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "L", 1, 3, "05", true, false, false, false, false, false, true, null, null);

	public static readonly L6 : ZulaessigesFach = new ZulaessigesFach("L6", 133, "L6", "Lateinisch, regulärer Beginn in Jahrgang 6", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "L", 1, 3, "06", true, false, false, false, false, false, true, null, null);

	public static readonly L7 : ZulaessigesFach = new ZulaessigesFach("L7", 134, "L7", "Lateinisch, regulärer Beginn in Jahrgang 7", Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "L", 1, 3, "07", true, false, false, false, false, false, true, null, null);

	public static readonly L8 : ZulaessigesFach = new ZulaessigesFach("L8", 135, "L8", "Lateinisch, regulärer Beginn in Jahrgang 8", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "L", 1, 3, "08", true, false, false, false, false, false, true, null, null);

	public static readonly L9 : ZulaessigesFach = new ZulaessigesFach("L9", 136, "L9", "Lateinisch, regulärer Beginn in Jahrgang 9", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "L", 1, 3, "09", true, false, false, false, false, false, true, null, null);

	public static readonly LH : ZulaessigesFach = new ZulaessigesFach("LH", 137, "LH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Albanisch", Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays.asList("R"), "LH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly LI : ZulaessigesFach = new ZulaessigesFach("LI", 138, "LI", "Literatur", Arrays.asList("BK", "GE", "GM", "GY", "PS", "SB", "SG", "WB"), null, "LI", null, 5, null, false, false, false, false, false, false, true, null, null);

	public static readonly LM : ZulaessigesFach = new ZulaessigesFach("LM", 139, "LM", "Unterricht in der Herkunftssprache - Albanisch", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "LM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly LQ : ZulaessigesFach = new ZulaessigesFach("LQ", 140, "LQ", "Lateinisch, außerhalb des regulären Fachunterrichts", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "LQ", null, null, null, true, false, true, false, false, false, true, null, null);

	public static readonly M : ZulaessigesFach = new ZulaessigesFach("M", 141, "M", "Mathematik", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "M", 3, 9, null, false, false, false, false, false, false, true, null, null);

	public static readonly MB : ZulaessigesFach = new ZulaessigesFach("MB", 142, "MB", "Religionsunterricht der mennonitischen Brüdergemeinden in NRW als Schulversuch", Arrays.asList("G"), null, "MB", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly MD : ZulaessigesFach = new ZulaessigesFach("MD", 143, "MD", "Medienerziehung", Arrays.asList("BK", "SB"), null, "MD", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly ME : ZulaessigesFach = new ZulaessigesFach("ME", 144, "ME", "Mechanik", Arrays.asList("BK", "SB"), null, "ME", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly MH : ZulaessigesFach = new ZulaessigesFach("MH", 145, "MH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Mazedonisch", Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays.asList("R"), "MH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly MM : ZulaessigesFach = new ZulaessigesFach("MM", 146, "MM", "Unterricht in der Herkunftssprache - Mazedonisch", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "MM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly MP : ZulaessigesFach = new ZulaessigesFach("MP", 147, "MP", "Meß- und Prüftechnik", Arrays.asList("BK", "SB"), null, "MP", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly MU : ZulaessigesFach = new ZulaessigesFach("MU", 148, "MU", "Musik", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "MU", 1, 4, null, false, false, false, false, false, false, true, null, null);

	public static readonly MW : ZulaessigesFach = new ZulaessigesFach("MW", 149, "MW", "Methodik des wissenschaftl. orientierten Arbeitens", Arrays.asList("BK", "SB"), null, "MW", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly MX : ZulaessigesFach = new ZulaessigesFach("MX", 150, "MX", "Spezielle sonderpädagogische Maßnahme", Arrays.asList("S", "SG"), null, "MX", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly MY : ZulaessigesFach = new ZulaessigesFach("MY", 151, "MY", "Fächerübergreifender Unterricht in SI und SII (Berufspraxisstufe)", Arrays.asList("S"), null, "MY", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly N : ZulaessigesFach = new ZulaessigesFach("N", 152, "N", "Niederländisch", Arrays.asList("BK", "H", "SB", "V", "WB"), Arrays.asList("H"), "N", 1, 3, null, true, false, false, false, false, false, true, null, null);

	public static readonly N0 : ZulaessigesFach = new ZulaessigesFach("N0", 153, "N0", "Niederländisch, regulärer Beginn in der Einführungsphase", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "N", 1, 3, "EF", true, false, false, false, false, true, true, null, null);

	public static readonly N1 : ZulaessigesFach = new ZulaessigesFach("N1", 154, "N1", "Niederländisch, regulärer Beginn in Jahrgang 11", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "N", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);

	public static readonly N5 : ZulaessigesFach = new ZulaessigesFach("N5", 155, "N5", "Niederländisch, regulärer Beginn in Jahrgang 5", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "N", 1, 3, "05", true, false, false, false, false, false, true, null, null);

	public static readonly N6 : ZulaessigesFach = new ZulaessigesFach("N6", 156, "N6", "Niederländisch, regulärer Beginn in Jahrgang 6", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "N", 1, 3, "06", true, false, false, false, false, false, true, null, null);

	public static readonly N7 : ZulaessigesFach = new ZulaessigesFach("N7", 157, "N7", "Niederländisch, regulärer Beginn in Jahrgang 7", Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "N", 1, 3, "07", true, false, false, false, false, false, true, null, null);

	public static readonly N8 : ZulaessigesFach = new ZulaessigesFach("N8", 158, "N8", "Niederländisch, regulärer Beginn in Jahrgang 8", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "N", 1, 3, "08", true, false, false, false, false, false, true, null, null);

	public static readonly N9 : ZulaessigesFach = new ZulaessigesFach("N9", 159, "N9", "Niederländisch, regulärer Beginn in Jahrgang 9", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "N", 1, 3, "09", true, false, false, false, false, false, true, null, null);

	public static readonly NH : ZulaessigesFach = new ZulaessigesFach("NH", 160, "NH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Polnisch", Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays.asList("R"), "NH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly NM : ZulaessigesFach = new ZulaessigesFach("NM", 161, "NM", "Unterricht in der Herkunftssprache - Niederländisch", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "NM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly NQ : ZulaessigesFach = new ZulaessigesFach("NQ", 162, "NQ", "Niederländisch, außerhalb des regulären Fachunterrichts", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "NQ", null, null, null, true, false, true, false, false, false, true, null, null);

	public static readonly NW : ZulaessigesFach = new ZulaessigesFach("NW", 163, "NW", "Naturwissenschaften", Arrays.asList("BK", "GE", "GM", "PS", "S", "SB", "SG", "SK", "SR"), null, "NW", null, 10, null, false, false, false, false, false, false, true, null, null);

	public static readonly O : ZulaessigesFach = new ZulaessigesFach("O", 164, "O", "Portugiesisch", Arrays.asList("WB"), Arrays.asList("R"), "O", 1, 3, null, true, false, false, false, false, false, true, null, null);

	public static readonly O0 : ZulaessigesFach = new ZulaessigesFach("O0", 165, "O0", "Portugiesisch, regulärer Beginn in der Einführungsphase", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "O", 1, 3, "EF", true, false, false, false, false, true, true, null, null);

	public static readonly O1 : ZulaessigesFach = new ZulaessigesFach("O1", 166, "O1", "Portugiesisch, regulärer Beginn in Jahrgang 11", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "O", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);

	public static readonly O5 : ZulaessigesFach = new ZulaessigesFach("O5", 167, "O5", "Portugiesisch, regulärer Beginn in Jahrgang 5", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "O", 1, 3, "05", true, false, false, false, false, false, true, null, null);

	public static readonly O6 : ZulaessigesFach = new ZulaessigesFach("O6", 168, "O6", "Portugiesisch, regulärer Beginn in Jahrgang 6", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "O", 1, 3, "06", true, false, false, false, false, false, true, null, null);

	public static readonly O7 : ZulaessigesFach = new ZulaessigesFach("O7", 169, "O7", "Portugiesisch, regulärer Beginn in Jahrgang 7", Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "O", 1, 3, "07", true, false, false, false, false, false, true, null, null);

	public static readonly O8 : ZulaessigesFach = new ZulaessigesFach("O8", 170, "O8", "Portugiesisch, regulärer Beginn in Jahrgang 8", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "O", 1, 3, "08", true, false, false, false, false, false, true, null, null);

	public static readonly O9 : ZulaessigesFach = new ZulaessigesFach("O9", 171, "O9", "Portugiesisch, regulärer Beginn in Jahrgang 9", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "O", 1, 3, "09", true, false, false, false, false, false, true, null, null);

	public static readonly OH : ZulaessigesFach = new ZulaessigesFach("OH", 172, "OH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Portugiesisch", Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays.asList("R"), "OH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly OL : ZulaessigesFach = new ZulaessigesFach("OL", 173, "OL", "Organisationslehre/Büroorganisation", Arrays.asList("BK", "SB"), null, "OL", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly OM : ZulaessigesFach = new ZulaessigesFach("OM", 174, "OM", "Unterricht in der Herkunftssprache - Portugiesisch", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "OM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly OQ : ZulaessigesFach = new ZulaessigesFach("OQ", 175, "OQ", "Portugiesisch, außerhalb des regulären Fachunterrichts", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "OQ", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly OR : ZulaessigesFach = new ZulaessigesFach("OR", 176, "OR", "Orthodoxe Religionslehre", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "OR", null, 8, null, false, false, false, false, false, false, true, null, null);

	public static readonly PA : ZulaessigesFach = new ZulaessigesFach("PA", 177, "PA", "Pädagogik/ Erziehungswissenschaft", Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "WB"), null, "PA", 2, 6, null, false, false, false, false, false, false, true, null, null);

	public static readonly PH : ZulaessigesFach = new ZulaessigesFach("PH", 178, "PH", "Physik", Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "PH", 3, 10, null, false, false, false, false, false, false, true, null, null);

	public static readonly PK : ZulaessigesFach = new ZulaessigesFach("PK", 179, "PK", "Politik", Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "PK", null, 6, null, false, false, false, false, false, false, true, null, null);

	public static readonly PL : ZulaessigesFach = new ZulaessigesFach("PL", 180, "PL", "Philosophie", Arrays.asList("BK", "GE", "GM", "GY", "PS", "S", "SB", "SG", "SK", "WB"), null, "PL", 2, 7, null, false, false, false, false, false, false, true, null, null);

	public static readonly PM : ZulaessigesFach = new ZulaessigesFach("PM", 181, "PM", "Unterricht in der Herkunftssprache - Polnisch", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "PM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly PP : ZulaessigesFach = new ZulaessigesFach("PP", 182, "PP", "Praktische Philosophie", Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "PP", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly PS : ZulaessigesFach = new ZulaessigesFach("PS", 183, "PS", "Psychologie", Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "WB"), null, "PS", 2, 6, null, false, false, false, false, false, false, true, null, null);

	public static readonly PU : ZulaessigesFach = new ZulaessigesFach("PU", 184, "PU", "Fachübergreifender Unterricht", Arrays.asList("BK", "SB"), null, "PU", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly PW : ZulaessigesFach = new ZulaessigesFach("PW", 185, "PW", "Personalwirtschaft und Soziologie/Politik", Arrays.asList("BK", "SB"), null, "PW", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly PX : ZulaessigesFach = new ZulaessigesFach("PX", 186, "PX", "Projektkurs (mit einem oder zwei Leitfächern)", Arrays.asList("GE", "GY", "SG", "WB"), null, "PX", null, 14, null, false, false, false, false, false, false, true, null, null);

	public static readonly POE : ZulaessigesFach = new ZulaessigesFach("POE", 187, "PÖ", "Politik/Ökonomische Grundbildung", Arrays.asList("R", "SR"), Arrays.asList("R", "R", "R00", "R"), "PÖ", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly QH : ZulaessigesFach = new ZulaessigesFach("QH", 188, "QH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Farsi", Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR"), null, "QH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly QM : ZulaessigesFach = new ZulaessigesFach("QM", 189, "QM", "Unterricht in der Herkunftssprache - Farsi", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "QM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly R : ZulaessigesFach = new ZulaessigesFach("R", 190, "R", "Russisch", Arrays.asList("BK", "FW", "H", "S", "SB", "WB"), Arrays.asList("H"), "R", 1, 3, null, true, false, false, false, false, false, true, null, null);

	public static readonly R0 : ZulaessigesFach = new ZulaessigesFach("R0", 191, "R0", "Russisch, regulärer Beginn in der Einführungsphase", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "R", 1, 3, "EF", true, false, false, false, false, true, true, null, null);

	public static readonly R1 : ZulaessigesFach = new ZulaessigesFach("R1", 192, "R1", "Russisch, regulärer Beginn in Jahrgang 11", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "R", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);

	public static readonly R5 : ZulaessigesFach = new ZulaessigesFach("R5", 193, "R5", "Russisch, regulärer Beginn in Jahrgang 5", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "R", 1, 3, "05", true, false, false, false, false, false, true, null, null);

	public static readonly R6 : ZulaessigesFach = new ZulaessigesFach("R6", 194, "R6", "Russisch, regulärer Beginn in Jahrgang 6", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "R", 1, 3, "06", true, false, false, false, false, false, true, null, null);

	public static readonly R7 : ZulaessigesFach = new ZulaessigesFach("R7", 195, "R7", "Russisch, regulärer Beginn in Jahrgang 7", Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "R", 1, 3, "07", true, false, false, false, false, false, true, null, null);

	public static readonly R8 : ZulaessigesFach = new ZulaessigesFach("R8", 196, "R8", "Russisch, regulärer Beginn in Jahrgang 8", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "R", 1, 3, "08", true, false, false, false, false, false, true, null, null);

	public static readonly R9 : ZulaessigesFach = new ZulaessigesFach("R9", 197, "R9", "Russisch, regulärer Beginn in Jahrgang 9", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "R", 1, 3, "09", true, false, false, false, false, false, true, null, null);

	public static readonly RE : ZulaessigesFach = new ZulaessigesFach("RE", 198, "RE", "Rechnungswesen", Arrays.asList("BK", "SB"), null, "RE", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly RH : ZulaessigesFach = new ZulaessigesFach("RH", 199, "RH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Russisch", Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays.asList("R"), "RH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly RK : ZulaessigesFach = new ZulaessigesFach("RK", 200, "RK", "Rechtskunde", Arrays.asList("GE", "GY", "SG", "SK", "WB"), null, "RK", 2, 6, null, false, false, false, false, false, false, true, null, null);

	public static readonly RM : ZulaessigesFach = new ZulaessigesFach("RM", 201, "RM", "Unterricht in der Herkunftssprache - Russisch", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "RM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly RQ : ZulaessigesFach = new ZulaessigesFach("RQ", 202, "RQ", "Russisch, außerhalb des regulären Fachunterrichts", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "RQ", null, null, null, true, false, true, false, false, false, true, null, null);

	public static readonly RW : ZulaessigesFach = new ZulaessigesFach("RW", 203, "RW", "Recht und Verwaltung", Arrays.asList("BK", "SB"), null, "RW", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly S : ZulaessigesFach = new ZulaessigesFach("S", 204, "S", "Spanisch", Arrays.asList("BK", "S", "SB", "WB"), Arrays.asList("R"), "S", 1, 3, null, true, false, false, false, false, false, true, null, null);

	public static readonly S0 : ZulaessigesFach = new ZulaessigesFach("S0", 205, "S0", "Spanisch, regulärer Beginn in der Einführungsphase", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "S", 1, 3, "EF", true, false, false, false, false, true, true, null, null);

	public static readonly S1 : ZulaessigesFach = new ZulaessigesFach("S1", 206, "S1", "Spanisch, regulärer Beginn in Jahrgang 11", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "S", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);

	public static readonly S3 : ZulaessigesFach = new ZulaessigesFach("S3", 207, "S3", "Sport für Jungen", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "S3", null, 12, null, false, false, false, false, false, false, true, null, null);

	public static readonly S4 : ZulaessigesFach = new ZulaessigesFach("S4", 208, "S4", "Sport für Mädchen", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "S4", null, 12, null, false, false, false, false, false, false, true, null, null);

	public static readonly S5 : ZulaessigesFach = new ZulaessigesFach("S5", 209, "S5", "Spanisch, regulärer Beginn in Jahrgang 5", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "S", 1, 3, "05", true, false, false, false, false, false, true, null, null);

	public static readonly S6 : ZulaessigesFach = new ZulaessigesFach("S6", 210, "S6", "Spanisch, regulärer Beginn in Jahrgang 6", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "S", 1, 3, "06", true, false, false, false, false, false, true, null, null);

	public static readonly S7 : ZulaessigesFach = new ZulaessigesFach("S7", 211, "S7", "Spanisch, regulärer Beginn in Jahrgang 7", Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "S", 1, 3, "07", true, false, false, false, false, false, true, null, null);

	public static readonly S8 : ZulaessigesFach = new ZulaessigesFach("S8", 212, "S8", "Spanisch, regulärer Beginn in Jahrgang 8", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "S", 1, 3, "08", true, false, false, false, false, false, true, null, null);

	public static readonly S9 : ZulaessigesFach = new ZulaessigesFach("S9", 213, "S9", "Spanisch, regulärer Beginn in Jahrgang 9", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "S", 1, 3, "09", true, false, false, false, false, false, true, null, null);

	public static readonly SE : ZulaessigesFach = new ZulaessigesFach("SE", 214, "SE", "Softwareentwicklung und -engineering", Arrays.asList("BK", "SB"), null, "SE", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly SG : ZulaessigesFach = new ZulaessigesFach("SG", 215, "SG", "sonderpädag. Förderung für Schüler/-innen mit sonderpädag. Förderbedarf", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "SB", "SG", "SK", "SR", "V"), null, "SG", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly SH : ZulaessigesFach = new ZulaessigesFach("SH", 216, "SH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Spanisch", Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays.asList("R"), "SH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly SI : ZulaessigesFach = new ZulaessigesFach("SI", 217, "SI", "Spiel", Arrays.asList("BK", "S", "SB"), null, "SI", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly SL : ZulaessigesFach = new ZulaessigesFach("SL", 218, "SL", "Soziologie", Arrays.asList("BK", "SB", "WB"), null, "SL", null, 6, null, false, false, false, false, false, false, true, null, null);

	public static readonly SM : ZulaessigesFach = new ZulaessigesFach("SM", 219, "SM", "Unterricht in der Herkunftssprache - Spanisch", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "SM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly SP : ZulaessigesFach = new ZulaessigesFach("SP", 220, "SP", "Sport", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "SP", null, 12, null, false, false, false, false, false, false, true, null, null);

	public static readonly SQ : ZulaessigesFach = new ZulaessigesFach("SQ", 221, "SQ", "Spanisch, außerhalb des regulären Fachunterrichts", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "SQ", null, null, null, true, false, true, false, false, false, true, null, null);

	public static readonly SR : ZulaessigesFach = new ZulaessigesFach("SR", 222, "SR", "Sonstige Fremdsprachen", Arrays.asList("BK", "FW", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "SR", null, null, null, true, false, false, false, false, false, true, null, null);

	public static readonly SU : ZulaessigesFach = new ZulaessigesFach("SU", 223, "SU", "Sachunterricht", Arrays.asList("G", "PS", "S", "V"), null, "SU", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly SW : ZulaessigesFach = new ZulaessigesFach("SW", 224, "SW", "Sozialwissenschaften", Arrays.asList("BK", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "SW", 2, 6, null, false, false, false, false, false, false, true, null, null);

	public static readonly SZ : ZulaessigesFach = new ZulaessigesFach("SZ", 225, "SZ", "Sozialwissenschaften/Wirtschaft", Arrays.asList("GE", "GM", "GY", "PS", "SG", "SK", "WB"), null, "SZ", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly T : ZulaessigesFach = new ZulaessigesFach("T", 226, "T", "Türkisch", Arrays.asList("BK", "H", "SB", "WB"), Arrays.asList("H"), "T", 1, 3, null, true, false, false, false, false, false, true, null, null);

	public static readonly T0 : ZulaessigesFach = new ZulaessigesFach("T0", 227, "T0", "Türkisch, regulärer Beginn in der Einführungsphase", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "T", 1, 3, "EF", true, false, false, false, false, true, true, null, null);

	public static readonly T1 : ZulaessigesFach = new ZulaessigesFach("T1", 228, "T1", "Türkisch, regulärer Beginn in Jahrgang 11", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "T", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);

	public static readonly T5 : ZulaessigesFach = new ZulaessigesFach("T5", 229, "T5", "Türkisch, regulärer Beginn in Jahrgang 5", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "T", 1, 3, "05", true, false, false, false, false, false, true, null, null);

	public static readonly T6 : ZulaessigesFach = new ZulaessigesFach("T6", 230, "T6", "Türkisch, regulärer Beginn in Jahrgang 6", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "T", 1, 3, "06", true, false, false, false, false, false, true, null, null);

	public static readonly T7 : ZulaessigesFach = new ZulaessigesFach("T7", 231, "T7", "Türkisch, regulärer Beginn in Jahrgang 7", Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "T", 1, 3, "07", true, false, false, false, false, false, true, null, null);

	public static readonly T8 : ZulaessigesFach = new ZulaessigesFach("T8", 232, "T8", "Türkisch, regulärer Beginn in Jahrgang 8", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "T", 1, 3, "08", true, false, false, false, false, false, true, null, null);

	public static readonly T9 : ZulaessigesFach = new ZulaessigesFach("T9", 233, "T9", "Türkisch, regulärer Beginn in Jahrgang 9", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "T", 1, 3, "09", true, false, false, false, false, false, true, null, null);

	public static readonly TC : ZulaessigesFach = new ZulaessigesFach("TC", 234, "TC", "Technik", Arrays.asList("GE", "GY", "PS", "R", "S", "SG", "SK", "SR", "WB"), Arrays.asList("GY", "R", "R"), "TC", 3, 11, null, false, false, false, false, false, false, true, null, null);

	public static readonly TG : ZulaessigesFach = new ZulaessigesFach("TG", 235, "TG", "Technische Grundbildung", Arrays.asList("BK", "SB"), null, "TG", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly TH : ZulaessigesFach = new ZulaessigesFach("TH", 236, "TH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Türkisch", Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays.asList("R"), "TH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly TI : ZulaessigesFach = new ZulaessigesFach("TI", 237, "TI", "Technische Informatik", Arrays.asList("BK", "SB"), null, "TI", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly TM : ZulaessigesFach = new ZulaessigesFach("TM", 238, "TM", "Unterricht in der Herkunftssprache - Türkisch", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "TM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly TQ : ZulaessigesFach = new ZulaessigesFach("TQ", 239, "TQ", "Türkisch, außerhalb des regulären Fachunterrichts", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "T", null, null, null, true, false, false, false, false, false, true, null, null);

	public static readonly TV : ZulaessigesFach = new ZulaessigesFach("TV", 240, "TV", "Textverarbeitung", Arrays.asList("BK", "SB"), null, "TV", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly TX : ZulaessigesFach = new ZulaessigesFach("TX", 241, "TX", "Textilgestaltung", Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "TX", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly TZ : ZulaessigesFach = new ZulaessigesFach("TZ", 242, "TZ", "Technisches Zeichnen / Fachzeichnen", Arrays.asList("BK", "SB"), null, "TZ", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly UH : ZulaessigesFach = new ZulaessigesFach("UH", 243, "UH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Russisch", Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR"), Arrays.asList("R"), "UH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly UM : ZulaessigesFach = new ZulaessigesFach("UM", 244, "UM", "Unterricht in der Herkunftssprache - Rumänisch", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "UM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly UU : ZulaessigesFach = new ZulaessigesFach("UU", 245, "UU", "fächerübergreifender Unterricht (Sprache/Sachunt./Mathematik/Förderunt.)", Arrays.asList("G", "PS", "S", "V"), null, "UU", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly UW : ZulaessigesFach = new ZulaessigesFach("UW", 246, "UW", "Unterweisung", Arrays.asList("GE", "GM", "PS", "SK"), null, "UW", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly VE : ZulaessigesFach = new ZulaessigesFach("VE", 247, "VE", "Verwaltungskunde", Arrays.asList("BK", "SB"), null, "VE", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly VF : ZulaessigesFach = new ZulaessigesFach("VF", 248, "VF", "Fächer im genehmigten Schulversuch und sonstige Fächer", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V", "WB"), null, "VF", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly VH : ZulaessigesFach = new ZulaessigesFach("VH", 249, "VH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Bulgarisch", Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR"), null, "VH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly VK : ZulaessigesFach = new ZulaessigesFach("VK", 250, "VK", "Verkaufskunde", Arrays.asList("BK", "SB"), null, "VK", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly VM : ZulaessigesFach = new ZulaessigesFach("VM", 251, "VM", "Unterricht in der Herkunftssprache - Bulgarisch", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "VM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly VO : ZulaessigesFach = new ZulaessigesFach("VO", 252, "VO", "vokalpraktischer Grundkurs", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "VO", null, 5, null, false, false, false, false, false, false, true, null, null);

	public static readonly VP : ZulaessigesFach = new ZulaessigesFach("VP", 253, "VP", "Volkswirtschaftslehre/Politik", Arrays.asList("BK", "SB"), null, "VP", null, 6, null, false, false, false, false, false, false, true, null, null);

	public static readonly VT : ZulaessigesFach = new ZulaessigesFach("VT", 254, "VT", "Verfahrenstechnik", Arrays.asList("BK", "SB"), null, "VT", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly VW : ZulaessigesFach = new ZulaessigesFach("VW", 255, "VW", "Volkswirtschaftslehre", Arrays.asList("BK", "SB", "WB"), null, "VW", null, 6, null, false, false, false, false, false, false, true, null, null);

	public static readonly VX : ZulaessigesFach = new ZulaessigesFach("VX", 256, "VX", "Vertiefungsfach", Arrays.asList("GE", "GY", "SG", "WB"), null, "VX", null, 13, null, false, false, false, false, false, false, true, null, null);

	public static readonly W : ZulaessigesFach = new ZulaessigesFach("W", 257, "W", "Werken", Arrays.asList("S"), null, "W", null, 4, null, false, false, false, false, false, false, true, null, null);

	public static readonly WG : ZulaessigesFach = new ZulaessigesFach("WG", 258, "WG", "Wirtschaftsgeographie", Arrays.asList("BK", "SB"), null, "WG", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly WI : ZulaessigesFach = new ZulaessigesFach("WI", 259, "WI", "Wirtschaftsinformatik/Organisationslehre", Arrays.asList("BK", "SB"), null, "WI", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly WP : ZulaessigesFach = new ZulaessigesFach("WP", 260, "WP", "Wirtschaft-Politik", Arrays.asList("GE", "GM", "GY", "PS", "R", "S", "SG", "SK", "SR", "V"), Arrays.asList("R"), "WP", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly WW : ZulaessigesFach = new ZulaessigesFach("WW", 261, "WW", "Wirtschaftslehre", Arrays.asList("BK", "GE", "GM", "GY", "PS", "R", "S", "SB", "SG", "SK", "SR", "V"), Arrays.asList("R"), "WW", null, 6, null, false, false, false, false, false, false, true, null, null);

	public static readonly XH : ZulaessigesFach = new ZulaessigesFach("XH", 262, "XH", "Herkunftssprache anstelle einer Pflichtfremdsprache - sonstige Sprache", Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR"), null, "XH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly XM : ZulaessigesFach = new ZulaessigesFach("XM", 263, "XM", "Unterricht in der Herkunftssprache - sonstige Sprache", Arrays.asList("G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "XM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly XX : ZulaessigesFach = new ZulaessigesFach("XX", 264, "XX", "Sonstige Fächer ohne Fremdsprachen (kein Import nach ASDPC)", Arrays.asList("FW"), null, "XX", null, null, null, false, false, false, false, false, false, false, null, null);

	public static readonly YH : ZulaessigesFach = new ZulaessigesFach("YH", 265, "YH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Koreanisch", Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR"), null, "YH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly YM : ZulaessigesFach = new ZulaessigesFach("YM", 266, "YM", "Unterricht in der Herkunftssprache - Koreanisch", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "YM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly YR : ZulaessigesFach = new ZulaessigesFach("YR", 267, "YR", "orthodoxe Religionslehre (Syrisch)", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SB", "SG", "SK", "SR", "V", "WB"), null, "YR", null, 8, null, false, false, false, false, false, false, true, null, null);

	public static readonly Z : ZulaessigesFach = new ZulaessigesFach("Z", 268, "Z", "Neugriechisch", Arrays.asList("BK", "SB", "WB"), Arrays.asList("R"), "Z", 1, 3, null, true, false, false, false, false, false, true, null, null);

	public static readonly Z0 : ZulaessigesFach = new ZulaessigesFach("Z0", 269, "Z0", "Neugriechisch, regulärer Beginn in der Einführungsphase", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "Z", 1, 3, "EF", true, false, false, false, false, true, true, null, null);

	public static readonly Z1 : ZulaessigesFach = new ZulaessigesFach("Z1", 270, "Z1", "Neugriechisch, regulärer Beginn in Jahrgang 11", Arrays.asList("GE", "GM", "GY", "PS", "SG"), null, "Z", 1, 3, "11", true, false, false, false, false, true, true, null, 2012);

	public static readonly Z5 : ZulaessigesFach = new ZulaessigesFach("Z5", 271, "Z5", "Neugriechisch, regulärer Beginn in Jahrgang 5", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "Z", 1, 3, "05", true, false, false, false, false, false, true, null, null);

	public static readonly Z6 : ZulaessigesFach = new ZulaessigesFach("Z6", 272, "Z6", "Neugriechisch, regulärer Beginn in Jahrgang 6", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "Z", 1, 3, "06", true, false, false, false, false, false, true, null, null);

	public static readonly Z7 : ZulaessigesFach = new ZulaessigesFach("Z7", 273, "Z7", "Neugriechisch, regulärer Beginn in Jahrgang 7", Arrays.asList("GE", "GM", "GY", "R", "SG", "SK"), null, "Z", 1, 3, "07", true, false, false, false, false, false, true, null, null);

	public static readonly Z8 : ZulaessigesFach = new ZulaessigesFach("Z8", 274, "Z8", "Neugriechisch, regulärer Beginn in Jahrgang 8", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "Z", 1, 3, "08", true, false, false, false, false, false, true, null, null);

	public static readonly Z9 : ZulaessigesFach = new ZulaessigesFach("Z9", 275, "Z9", "Neugriechisch, regulärer Beginn in Jahrgang 9", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "Z", 1, 3, "09", true, false, false, false, false, false, true, null, null);

	public static readonly ZF : ZulaessigesFach = new ZulaessigesFach("ZF", 276, "ZF", "Zusätzliche Förderung", Arrays.asList("G", "PS", "S", "V"), null, "ZF", null, null, null, false, false, false, false, false, false, true, null, null);

	public static readonly ZH : ZulaessigesFach = new ZulaessigesFach("ZH", 277, "ZH", "Herkunftssprache anstelle einer Pflichtfremdsprache - Kurdische Sprachen", Arrays.asList("GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR"), null, "ZH", null, null, null, true, true, false, true, false, false, true, null, null);

	public static readonly ZM : ZulaessigesFach = new ZulaessigesFach("ZM", 278, "ZM", "Unterricht in der Herkunftssprache - Kurdische Sprachen (Sorani, Komanci, Zaza)", Arrays.asList("BK", "G", "GE", "GM", "GY", "H", "PS", "R", "S", "SG", "SK", "SR", "V"), null, "ZM", null, null, null, true, true, false, false, false, false, true, null, null);

	public static readonly ZQ : ZulaessigesFach = new ZulaessigesFach("ZQ", 279, "ZQ", "Neugriechisch, außerhalb des regulären Fachunterrichts", Arrays.asList("GE", "GM", "GY", "PS", "R", "SG", "SK", "SR"), null, "ZQ", null, null, null, true, false, true, false, false, false, true, null, null);

	public static readonly ZW : ZulaessigesFach = new ZulaessigesFach("ZW", 280, "ZW", "Zeichnen / Werken", Arrays.asList("BK", "SB"), null, "ZW", null, 4, null, false, false, false, false, false, false, true, null, null);

	private static readonly _faecher : HashMap<String, ZulaessigesFach> = new HashMap();

	public static readonly DEFAULT : ZulaessigesFach = ZulaessigesFach.VF;

	public readonly kuerzelASD : String;

	public readonly bezeichnung : String;

	public readonly kuerzel : String;

	public readonly aufgabenfeld : Number | null;

	public readonly fachgruppeID : Number | null;

	public readonly abJahrgang : String | null;

	public readonly istFremdsprache : boolean;

	public readonly istHKFS : boolean;

	public readonly istAusRegUFach : boolean;

	public readonly istErsatzPflichtFS : boolean;

	public readonly istKonfKoop : boolean;

	public readonly nurSII : boolean;

	public readonly exportASD : boolean;

	public readonly schulformenKuerzel : List<String> | null;

	private schulformen : Vector<Schulform> | null = null;

	public readonly gliederungenKuerzel : List<String> | null;

	private gliederungen : Vector<Schulgliederung> | null = null;

	public readonly gueltigVon : Number | null;

	public readonly gueltigBis : Number | null;

	/**
	 * Erzeugt ein zulässiges Fach in der Aufzählung.
	 * 
	 * @param kuerzelASD           das eindeutige Kürzel des Faches, welches im Rahmen der amtlichen Schulstatistik 
	 *                             verwendet wird
	 * @param bezeichnung          die texttuelle Beschreibung des Faches
	 * @param schulformenKuerzel   die Kürzel der Schulformen, für welche das Fach gültig ist, sofern es für die Schulform nicht 
	 *                             auf einzelne Gliederungen eingeschränkt ist
	 * @param gliederungenKuerzel  die Kürzel Schulgliederungen, bei den Schulformen, wo das Fach nur bei einzelnen 
	 *                             Schulgliederungen zulässig ist. 
	 * @param kuerzel              das atomare Kürzel des Faches (z.B. bei Fremdsprachen - für das Sprachenkürzel) 
	 *                             - Teil des Kürzels für die amtliche Schulstatistik
	 * @param aufgabenfeld         das Aufgabenfeld, welchem das Fach ggf. zugeordnet ist (1, 2 oder 3)
	 * @param fachgruppeID         die ID der zugeordneten Fachgruppe
	 * @param abJahrgang           der ASD-Jahrgang, ab dem das Fach zulässig ist (z.B. bei Fremdsprachen) 
	 *                             - Teil des Kürzels für die amtliche Schulstatistik
	 * @param istFremdsprache      gibt an, ob es sich um eine Fremdsprache handelt
	 * @param istHKFS              gibt an, ob es sich um ein Fach der Herkuntftsprache handelt (Unterrichts in der 
	 *                             Herkunftssprache oder Herkunftssprache anstelle einer Pflichtfremdsprache)
	 * @param istAusRegUFach       gibt an, ob das Fach außerhalb des regulären Fachunterichts unterrichtet wird
	 * @param istErsatzPflichtFS   gibt an, ob es sich bei dem Fach um einen Ersatz für eine Pflichtfremdsprache 
	 *                             handelt (siehe auch istHKFS)
	 * @param istKonfKoop          gibt an, ob das Religionsfach konfessionell kooperativ unterrichtet wird oder nicht 
	 *                             - Teil des Kürzels für die amtliche Schulstatistik
	 * @param nurSII               gibt an, ob das Fach nur in der Sekundarstufe II unterrichtet wird
	 * @param exportASD            gibt an, ob das Fach bei Export der amtlichen Schulstatistik berücksichtigt werden 
	 *                             soll oder nicht
	 * @param gueltigVon           gibt an, in welchem Schuljahr das Fach einführt wurde 
	 *                             - ist kein Schuljahr bekannt, so wird null gesetzt
	 * @param gueltigBis           gibt an, bis zu welchem Schuljahr das Fach gültig ist 
	 *                             - ist kein Schuljahr bekannt, so wird null gesetzt
	 */
	private constructor(name : string, ordinal : number, kuerzelASD : String, bezeichnung : String, schulformenKuerzel : List<String> | null, gliederungenKuerzel : List<String> | null, kuerzel : String, aufgabenfeld : Number | null, fachgruppeID : Number | null, abJahrgang : String | null, istFremdsprache : boolean, istHKFS : boolean, istAusRegUFach : boolean, istErsatzPflichtFS : boolean, istKonfKoop : boolean, nurSII : boolean, exportASD : boolean, gueltigVon : Number | null, gueltigBis : Number | null) {
		super();
		this.__name = name;
		this.__ordinal = ordinal;
		ZulaessigesFach.all_values_by_ordinal.push(this);
		ZulaessigesFach.all_values_by_name.set(name, this);
		this.kuerzelASD = kuerzelASD;
		this.bezeichnung = bezeichnung;
		this.schulformenKuerzel = schulformenKuerzel;
		this.gliederungenKuerzel = gliederungenKuerzel;
		this.kuerzel = kuerzel;
		this.aufgabenfeld = aufgabenfeld;
		this.fachgruppeID = fachgruppeID;
		this.abJahrgang = abJahrgang;
		this.istFremdsprache = istFremdsprache;
		this.istHKFS = istHKFS;
		this.istAusRegUFach = istAusRegUFach;
		this.istErsatzPflichtFS = istErsatzPflichtFS;
		this.istKonfKoop = istKonfKoop;
		this.nurSII = nurSII;
		this.exportASD = exportASD;
		this.gueltigVon = gueltigVon;
		this.gueltigBis = gueltigBis;
	}

	/**
	 * Gibt eine Map von den Kürzels der Fächer auf die zugehörigen Fächer
	 * zurück. Sollte diese noch nicht initialisiert sein, so wird sie initielisiert.
	 *    
	 * @return die Map von den Kürzels der Fächer auf die zugehörigen Fächer
	 */
	private static getMapFaecherByKuerzel() : HashMap<String, ZulaessigesFach> {
		if (ZulaessigesFach._faecher.size() === 0) 
			for (let s of ZulaessigesFach.values()) 
				ZulaessigesFach._faecher.put(s.kuerzelASD, s);
		return ZulaessigesFach._faecher;
	}

	/**
	 * Prüft, ob die Schulform bei diesem Fach in irgendeiner Gliederung der 
	 * angegebenen Schulform zulässig ist.
	 * 
	 * @param schulform    die Schulform
	 * 
	 * @return true, falls das Fach in der Schulform zulässig ist, ansonsten false.
	 */
	private hasSchulform(schulform : Schulform) : boolean {
		if (this.schulformenKuerzel !== null) {
			for (let sf of this.schulformenKuerzel) {
				if (JavaObject.equalsTranspiler(sf, (schulform.kuerzel))) 
					return true;
			}
		}
		if (this.gliederungenKuerzel !== null) {
			for (let glKuerzel of this.gliederungenKuerzel) {
				let gl : Schulgliederung | null = Schulgliederung.getByKuerzel(glKuerzel);
				if ((gl !== null) && (gl.hasSchulformByKuerzel(schulform.kuerzel))) 
					return true;
			}
		}
		return false;
	}

	/**
	 * Bestimmt alle Fächer, die in irgendeiner Gliederung der angegebenen Schulform
	 * zulässig sind. 
	 *  
	 * @param schulform    die Schulform
	 * 
	 * @return die zulässigen Fächer in der angegebenen Schulform
	 */
	public static get(schulform : Schulform | null) : List<ZulaessigesFach> {
		let faecher : Vector<ZulaessigesFach> = new Vector();
		if (schulform === null) 
			return faecher;
		for (let fach of ZulaessigesFach.values()) 
			if (fach.hasSchulform(schulform)) 
				faecher.add(fach);
		return faecher;
	}

	/**
	 * Gibt die Fachgruppe dieses Faches zurück. 
	 * 
	 * @return die Fachgruppe des Faches
	 */
	public getFachgruppe() : Fachgruppe | null {
		if (this.fachgruppeID === null) 
			return null;
		return Fachgruppe.getByID(this.fachgruppeID.valueOf());
	}

	/**
	 * Liefert alle Schulformen zurück, für welche das Fach gültig ist, sofern es für 
	 * die Schulform nicht auf einzelne Gliederungen eingeschränkt ist. 
	 * 
	 * @return eine Liste der Schulformen
	 */
	public getSchulformen() : List<Schulform> {
		if (this.schulformen === null) {
			this.schulformen = new Vector();
			if (this.schulformenKuerzel !== null) {
				for (let sfKuerzel of this.schulformenKuerzel) {
					let schulform : Schulform | null = Schulform.getByKuerzel(sfKuerzel);
					if (schulform !== null) 
						this.schulformen.add(schulform);
				}
			}
		}
		return this.schulformen;
	}

	/**
	 * Liefert die Schulgliederungen zurück, wo das Fach bei der zugehörigen Schulformen  
	 * nur bei einzelnen Schulgliederungen zulässig ist.
	 * 
	 * @return eine Liste der Schulgliederungen
	 */
	public getGliederungen() : List<Schulgliederung> {
		if (this.gliederungen === null) {
			this.gliederungen = new Vector();
			if (this.gliederungenKuerzel !== null) {
				for (let sgKuerzel of this.gliederungenKuerzel) {
					let gliederung : Schulgliederung | null = Schulgliederung.getByKuerzel(sgKuerzel);
					if (gliederung !== null) 
						this.gliederungen.add(gliederung);
				}
			}
		}
		return this.gliederungen;
	}

	/**
	 * Gibt das Fach zurück, welches dem übergebenen Kürzel zuzuordnet ist.
	 * Ist der übergebene Wert ungültig, so wird {@link ZulaessigesFach#DEFAULT}
	 * zurückgeben.
	 * 
	 * @param kuerzel   das Statistik-Kürzel des Faches
	 * 
	 * @return das zugehörige Fach oder {@link ZulaessigesFach#DEFAULT} 
	 */
	public static getByKuerzelASD(kuerzel : String | null) : ZulaessigesFach {
		let result : ZulaessigesFach | null = ZulaessigesFach.getMapFaecherByKuerzel().get(kuerzel);
		return (result === null) ? ZulaessigesFach.DEFAULT : result;
	}

	/**
	 * Returns the name of this enumeration value.
	 *
	 * @returns the name
	 */
	private name() : String {
		return this.__name;
	}

	/**
	 * Returns the ordinal value of this enumeration value.
	 *
	 * @returns the ordinal value
	 */
	private ordinal() : number {
		return this.__ordinal;
	}

	/**
	 * Returns the name of this enumeration value.
	 *
	 * @returns the name
	 */
	public toString() : String {
		return this.__name;
	}

	/**
	 * Returns true if this and the other enumeration values are equal.
	 *
	 * @param other   the other enumeration value
	 *
	 * @returns true if they are equal and false otherwise
	 */
	public equals(other : JavaObject) : boolean {
		if (!(other instanceof ZulaessigesFach))
			return false;
		return this === other;
	}

	/**
	 * Returns the ordinal value as hashcode, since the ordinal value is unique.
	 *
	 * @returns the ordinal value as hashcode
	 */
	public hashCode() : number {
		return this.__ordinal;
	}

	/**
	 * Compares this enumeration value with the other enumeration value by their ordinal value.
	 *
	 * @param other   the other enumeration value
	 *
	 * @returns a negative, zero or postive value as this enumeration value is less than, equal to
	 *          or greater than the other enumeration value
	 */
	public compareTo(other : ZulaessigesFach) : number {
		return this.__ordinal - other.__ordinal;
	}

	/**
	 * Returns an array with enumeration values.
	 *
	 * @returns the array with enumeration values
	 */
	public static values() : Array<ZulaessigesFach> {
		return [...this.all_values_by_ordinal];
	}

	/**
	 * Returns the enumeration value with the specified name.
	 *
	 * @param name   the name of the enumeration value
	 *
	 * @returns the enumeration values or null
	 */
	public static valueOf(name : String) : ZulaessigesFach | null {
		let tmp : ZulaessigesFach | undefined = this.all_values_by_name.get(name);
		return (!tmp) ? null : tmp;
	}

	isTranspiledInstanceOf(name : string): boolean {
		return ['de.nrw.schule.svws.core.types.statkue.ZulaessigesFach'].includes(name);
	}

}

export function cast_de_nrw_schule_svws_core_types_statkue_ZulaessigesFach(obj : unknown) : ZulaessigesFach {
	return obj as ZulaessigesFach;
}
