;DCC;0;DE;COM?;;AutoDet --board arduino:avr:nano:cpu=atmega328old --pref programmer=arduino:arduinoisp;R not Chk;;;COM?;AutoDet --board arduino:avr:nano:cpu=atmega328old --pref programmer=arduino:arduinoisp;28;5;6;0;;0;0;0;0;0;0;0;0;0
;Aktiv;Filter;Adresse oder Name;Typ;Start- wert;Beschreibung;Verteiler- Nummer;Stecker- Nummer;Icon;Name;Beleuchtung, Sound, oder andere Effekte;Start LedNr;LEDs;InCnt;Loc InCh;"LED/ 
Sound
Kanal";;;;;;;;;
;;B01;;;;Zeigt an, dass die LEDs angesteuert werden;;;;Heartbeat LED;RGB_Heartbeat(#LED);0;1;0;0;;;;;;;;;;
;;B02;;;;;;;;;;;;;;;;;;;;;;;
;;B02;;;;Animiertes Haus mit 7 Räumen. Es sind zufällig zwischen 2 und 5 Zimmer beleuchtet.;;;;Belebtes Haus;House(#LED, #InCh, 2, 5, ROOM_DARK, ROOM_BRIGHT, ROOM_WARM_W, ROOM_TV0, NEON_LIGHT, ROOM_D_RED, ROOM_COL2);;7;1;0;;;;;;;;;;
;;B04;;;;;;;;;;;;;;;;;;;;;;;
;;B04;;;;"6 (Gas) Straßenlaternen welche zufällig nacheinander angehen. Die Helligkeit der Lampen nimmt langsam zu. Manchmal flackert eine Lampe. Die 3. Lampe ist ""defekt"". Sie leuchtet schwächer. Diese Zeile verwendet RGB LEDs zu Testzwecken.";;;;Straßenbeleuchtung;GasLights(#LED, #InCh, GAS_LIGHT, GAS_LIGHT, GAS_LIGHTD, GAS_LIGHT, GAS_LIGHT, GAS_LIGHT);;6;1;0;;;;;;;;;;
;;B04;;;;"6 (Gas) Straßenlaternen welche zufällig nacheinander angehen. Die Helligkeit der Lampen nimmt langsam zu. Manchmal flackert eine Lampe. Die 3. Lampe ist ""defekt"". Sie leuchtet schwächer. Diese Zeile verwendet einzelne LEDs welche über WS2811 Module angesteuert werden.";;;;Straßenbeleuchtung;GasLights(#LED, #InCh, GAS_LIGHT1, GAS_LIGHT2, GAS_LIGHT3D, GAS_LIGHT1, GAS_LIGHT2, GAS_LIGHT3);;2;1;0;;;;;;;;;;
;;B05;;;;;;;;;;;;;;;;;;;;;;;
;;B05;;;;Andreaskreuz mit zwei abwechselnd blinkenden Lampen. Diese Zeile verwendet RGB LEDs zu Testzwecken.;;;;Andreaskreuz RGB;AndreaskrRGB(#LED, #InCh);;2;1;0;;;;;;;;;;
;;B05;;;;Andreaskreuz mit zwei abwechselnd blinkenden Lampen. Diese Zeile verwendet einzelne LEDs welche über ein WS2811 Modul angesteuert werden.;;;;Andreaskreuz;Andreaskreuz(#LED, C12, #InCh);;C1-2;1;0;;;;;;;;;;
;;B08;;;;;;;;;;;;;;;;;;;;;;;
;;B08;;;;Beispiel eines Baustellenlichts mit 6 Lampen. Diese Zeile verwendet RGB LEDs zu Testzwecken.;;;;Baustellenlicht 6x;ConstrWarnLightRGB6(#LED, #InCh, 5, 255, 100 ms, 0 ms, 500 ms);;6;1;0;;;;;;;;;;
;;B08;;;;Beispiel eines Baustellenlichts mit 6 Lampen. Diese Zeile verwendet einzelne LEDs welche über WS2811 Module angesteuert werden.;;;;;ConstrWarnLight6(#LED, #InCh, 5, 255, 100 ms, 500 ms);;C1-6;1;0;;;;;;;;;;
;;B09;;;;;;;;;;;;;;;;;;;;;;;
;;B09;;;;Beispiel einer Verkehrsampel an einer einfachen Kreuzung. Diese Zeile verwendet RGB LEDs zu Testzwecken.;;;;Ampel RGB Soft;RGB_AmpelXFade(#LED, #InCh);;6;1;0;;;;;;;;;;
;;B09;;;;Beispiel einer Verkehrsampel an einer einfachen Kreuzung. Diese Zeile verwendet einzelne LEDs welche über WS2811 Module angesteuert werden.;;;;Ampel;AmpelX(#LED, #InCh);;C1-6;1;0;;;;;;;;;;
;;B11;;;;;;;;;;;;;;;;;;;;;;;
;;B11;1 - 2;Rot;0;Einfahrtsignal mit drei Zuständen (Hp0, Hp1, Hp2). Diese Zeile verwendet RGB LEDs zu Testzwecken.;;;;Einfahrsignal RGB;EntrySignal3_RGB(#LED, #InCh);;3;3;0;0;;;;;;;;;
;;B11;1 - 2;Rot;0;Einfahrtsignal mit drei Zuständen (Hp0, Hp1, Hp2). Diese Zeile verwendet einzelne LEDs welche über ein WS2811 Modul angesteuert werden.;;;;Einfahrsignal;EntrySignal3(#LED, #InCh, 128);;C1-3;3;0;0;;;;;;;;;
;;B11;2 - 3;Rot;0;Ausfahrtsignal mit vier Zuständen (Hp0, Hp1, Hp2, HP0+SH1). Diese Zeile verwendet RGB LEDs zu Testzwecken.;;;;Ausfahrsignal RGB;DepSignal4_RGB(#LED, #InCh, 128);;6;4;0;0;;;;;;;;;
;;B11;2 - 3;Rot;0;Ausfahrtsignal mit vier Zuständen (Hp0, Hp1, Hp2, HP0+SH1). Diese Zeile verwendet einzelne LEDs welche über ein WS2811 Modul angesteuert werden.;;;;Ausfahrsignal;DepSignal4(#LED, #InCh, 128);;C1-6;4;0;0;;;;;;;;;
;;B12;;;;;;;;;;;;;;;;;;;;;;;
;;B12;;;;Beispiel mehrerer Häuser welche über die Zentrale Ein- und Ausgeschaltet werden können.;;;;;;;;;;;;;;;;;;;
;;B12;4;AnAus;;Animiertes Haus mit 7 Räumen. Es sind zufällig zwischen 2 und 5 Zimmer beleuchtet.;;;;Belebtes Haus;House(#LED, #InCh, 2, 5, ROOM_DARK, ROOM_BRIGHT, ROOM_WARM_W, ROOM_TV0, NEON_LIGHT, ROOM_D_RED, ROOM_COL2);;7;1;0;;;;;;;;;;
;;B12;5;AnAus;;Bürogebäude mit Neonlichtern. In zwei Räumen (NEON_LIGHTL) sind mehrere Lampen installiert welche nacheinander zünden. Der 4. Raum ist nicht so hell beleuchtet.;;;;Belebtes Haus;House(#LED, #InCh, 3, 3, NEON_LIGHT, NEON_LIGHTL, NEON_LIGHTL, NEON_LIGHTD);;4;1;0;;;;;;;;;;
;;B12;6;AnAus;;"Stadthaus mit Schaufenster. In dem Beispiel ist das Schaufenster an der Position 2 in der LED Kette angeschlossen. Darum wird es über die ""SKIP_ROOM"" Funktion übersprungen und mit der folgenden Zeile geschaltet.";;;;Belebtes Haus;House(#LED, #InCh, 2, 5, ROOM_TV0, SKIP_ROOM, ROOM_WARM_W, ROOM_COL1, ROOM_CHIMNEY);;5;1;0;;;;;;;;;;
;;B12;;;;Verändert die Start LedNr damit der folgende Befehl das Schaufenster welches elektrisch im Haus liegt ansprechen kann.;;;;LED Nummer manipulieren;// Next_LED(-4);;-4;0;0;;;;;;;;;;
;;B12;7;AnAus;;Die Schaufensterbeleuchtung wird auch spät nachts nicht ganz ausgeschaltet damit die Einbrecher nicht stolpern.;;;;LED einstellbar;Const(#LED, C_ALL, #InCh, 10, 255);;1;1;0;;;;;;;;;;
;;B12;;;;Korrigiert die Start LedNr wieder.;;;;LED Nummer manipulieren;// Next_LED(3);;3;0;0;;;;;;;;;;
;;B17;;;;;;;;;;;;;;;;;;;;;;;
;;B17;;;;Automatisches aktivieren der Lichter bei Dunkelheit;;;;;;;;;;;;;;;;;;;
;;B17;;;;Aktiviert das einlesen des Helligkeitssensors in der .ino Datei;;;;Fotowiderstand aktivieren;#define READ_LDR;;;;;;;;;;;;;;
;;B17;;;;"Aktiviert eine Debug Ausgabe mit der die gemessene und gefilterte ""Dunkelheit"" mit den seriellen Monitor angezeigt wird.";;;;Helligkeitswerte anzeigen;#define READ_LDR_DEBUG;;;;;;;;;;;;;;
;;B17;;;;Bestimmt wie lange der Übergang von Tag auf Nacht ist wenn ein Schalter anstelle eines LDRs verwendet wird.;;;;;#define SWITCH_DAMPING_FACT   1  // 1 = Slow, 100 Fast (Normal 1);1;0;0;0;;;;;;;;;;
;;B17;;;;;;;;;;;;;;;;;;;;;;;
;;B17;;;;Definition einer Ampel welche per Eingang in den Nachtmodus (Gelb Blinken) versetzt werden kann.;;;;Muster Pattern_Configurator;"// Macro: Fading Traffic light for tests with RGB LEDs 
#define RGB_AmpelX_Fade_IO(LED, #InCh)  \ 
           APatternT8(LED,0,#InCh,18,0,255,0,PF_NO_SWITCH_OFF|PF_INVERT_INP,200 ms,2 Sec,200 ms,1 Sec,200 ms,10 Sec,200 ms,3 Sec,1,2,4,8,144,33,64,134,0,128,2,0,10,128,33,0,134,0,1,2,4,8,16,32,67,128,12,1,0,5,0,20,0,67,0,12) \
           APatternT4(LED,0,#InCh,18,0,255,0,PF_NO_SWITCH_OFF,              100 ms,300 ms,100 ms,500 ms,24,48,96,192,0,0,0,0,0)
";1;0;0;0;;;;;;;;;;
;;B17;;;;;;;;;;;;;;;;;;;;;;;
;;B17;;;;Mehrere Zeilen welche bestimmen ab welchen;;;;Zeitplan;Schedule(INCH0, INCH2, SI_1, 60, 110);1;0;;0;;;;;;;;;;
;;B17;;;;"""Dunkelheitswerten"" die Eingänge der folgenden";;;;Zeitplan;Schedule(INCH3, INCH3, SI_1, 150, 150);1;0;;0;;;;;;;;;;
;;B17;;;;Zeilen aktiviert werden. Die letzten beiden Zahlen;;;;Zeitplan;Schedule(INCH4, INCH4, SI_1, 50, 50);1;0;;0;;;;;;;;;;
;;B17;;;;Bestimmen wann die INCH? Geschaltet werden.;;;;Zeitplan;Schedule(INCH5, INCH5, SI_1, 200, 200);1;0;;0;;;;;;;;;;
;;B17;;;;;;;;;;;;;;;;;;;;;;;
;;B17;;;;Haus mit mehreren Zimmern welches über INCH0 geschaltet wird.;;;;Belebtes Haus;House(#LED, INCH0, 2, 5, ROOM_DARK, ROOM_BRIGHT, ROOM_WARM_W, ROOM_TV0,  NEON_LIGHT, ROOM_D_RED, ROOM_COL2);1;7;1;0;;;;;;;;;;
;;B17;;;;Haus welches über INCH1 geschaltet wird.;;;;Belebtes Haus;House(#LED, INCH1, 3, 3, NEON_LIGHT, NEON_LIGHTL, NEON_LIGHTL, NEON_LIGHTD);8;4;1;0;;;;;;;;;;
;;B17;;;;Haus welches über INCH2 geschaltet wird.;;;;Belebtes Haus;House(#LED, INCH2, 2, 5, ROOM_TV0, SKIP_ROOM, ROOM_WARM_W, ROOM_COL1, ROOM_CHIMNEY);12;3;1;0;;;;;;;;;;
;;B17;;;;;;;;;;;;;;;;;;;;;;;
;;B17;;;;Beleuchtung des Ladens welche Tagsüber mit voller Helligkeit und spät nachts mit reduzierter Helligkeit leuchtet.;;;;LED einstellbar;Const(#LED, C_ALL, INCH3, 255, 10);15;1;1;0;;;;;;;;;;
;;B17;;;;;;;;;;;;;;;;;;;;;;;
;;B17;;;;"Die Straßenlaternen werden über INCH4 gesteuert. 
Sie werden recht früh angeschaltet (Siehe oben).";;;;Straßenbeleuchtung;GasLights(#LED, INCH4, GAS_LIGHT, GAS_LIGHT, GAS_LIGHTD, GAS_LIGHT, GAS_LIGHT, GAS_LIGHT);16;6;1;0;;;;;;;;;;
;;B17;;;;;;;;;;;;;;;;;;;;;;;
;;B17;;;;Verkehrsampel welche nachts über INCH5 abgeschaltet wird. ;;;;;RGB_AmpelX_Fade_IO(#LED,  INCH5);22;6;1;0;;;;;;;;;;
;;B24a;;;;;;;;;;;;;;;;;;;;;;;
;;B24a;;;;Beispiel der Soundausgabe mit einem Mp3-TF-16P Sound Modul über eine Zentrale;;;;;;;;;;;;;;;;;;;
;;B24a;8;Rot;;Wiedergabe der Sounddatei 1;;;;Titel 1 abspielen;Sound_Seq1(#LED, #InCh);;C1-2;1;0;;;;;;;;;;
;;B24a;8;Grün;;Wiedergabe der Sounddatei 2;;;;Titel 2 abspielen;Sound_Seq2(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;9;Rot;;Wiedergabe der Sounddatei 3;;;;Titel 3 abspielen;Sound_Seq3(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;9;Grün;;Wiedergabe der Sounddatei 4;;;;Titel 4 abspielen;Sound_Seq4(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;10;Rot;;Wiedergabe der Sounddatei 5;;;;Titel 5 abspielen;Sound_Seq5(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;10;Grün;;Wiedergabe der Sounddatei 6;;;;Titel 6 abspielen;Sound_Seq6(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;11;Rot;;Wiedergabe der Sounddatei 7;;;;Titel 7 abspielen;Sound_Seq7(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;11;Grün;;Wiedergabe der Sounddatei 8;;;;Titel 8 abspielen;Sound_Seq8(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;12;Rot;;Wiedergabe der Sounddatei 9;;;;Titel 9 abspielen;Sound_Seq9(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;12;Grün;;Wiedergabe der Sounddatei 10;;;;Titel 10 abspielen;Sound_Seq10(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;13;Rot;;Wiedergabe der Sounddatei 11;;;;Titel 11 abspielen;Sound_Seq11(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;13;Grün;;Wiedergabe der Sounddatei 12;;;;Titel 12 abspielen;Sound_Seq12(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;14;Rot;;Wiedergabe der Sounddatei 13;;;;Titel 13 abspielen;Sound_Seq13(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;14;Grün;;Wiedergabe der Sounddatei 14;;;;Titel 14 abspielen;Sound_Seq14(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;15;Rot;;Wiedergabe der vorangegangenen Sounddatei;;;;Vorheriger Titel;Sound_Prev(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;15;Grün;;Wiedergabe der nächsten Sounddatei;;;;Nächster Titel;Sound_Next(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;16;Rot;;Wiedergabe der nächsten Sounddatei im Bereich 1-5;;;;Titel n+1 abspielen, mit Reset;Sound_Next_of_N(#LED, #InCh, 5);;^ C1-2;1;0;;;;;;;;;;
;;B24a;16;Grün;;Wiedergabe einer Zufälligen Sounddatei im Bereich von 1 -14;;;;Zufallswiedergabe;Sound_PlayRandom(#LED, #InCh, 14);;^ C1-2;1;0;;;;;;;;;;
;;B24a;17;Rot;;Verringern der Lautstärke;;;;Leiser;Sound_DecVol(#LED, #InCh, 1);;^ C1-2;1;0;;;;;;;;;;
;;B24a;17;Grün;;Erhöhen der Lautstärke;;;;Lauter;Sound_IncVol(#LED, #InCh, 1);;^ C1-2;1;0;;;;;;;;;;
;;B24a;18;Rot;;Abspielpause;;;;Pause;Sound_PausePlay(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;18;Grün;;Endlosschleife;;;;Endloswiedergabe;Sound_Loop(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24a;19;Rot;;Auswahl des Play Modes (was auch immer das bedeutet);;;;Abspielmode Umschalten;Sound_PlayMode(#LED, #InCh);;^ C1-2;1;0;;;;;;;;;;
;;B24b;;;;;;;;;;;;;;;;;;;;;;;
;;B24b;;;;"Beispiel der Soundausgabe mit einem JQ6500 Sound Modul über eine Zentrale. Dieses Sound Modul kann nur 5 Sounds direkt ansprechen. Es speichert aber die zuletzt eingestellte Lautstärke. Das Modul wird vom Roten Kanal eines WS2811 Moduls angesteuert.
Achtung es gibt WS2811 Module mit vertauschten Anschlüssen. Hier müssen die verwendeten Makros angepasst werden (Makros mit ""_BG_"" verwenden.)";;;;;;;;;;;;;;;;;;;
;;B24b;8;Rot;;Wiedergabe der Sounddatei 1;;;;Titel 1 abspielen;Sound_JQ6500_Seq1(#LED, #InCh);;C1-1;1;0;;;;;;;;;;
;;B24b;8;Grün;;Wiedergabe der Sounddatei 2;;;;Titel 2 abspielen;Sound_JQ6500_Seq2(#LED, #InCh);;^ C1-1;1;0;;;;;;;;;;
;;B24b;9;Rot;;Wiedergabe der Sounddatei 3;;;;Titel 3 abspielen;Sound_JQ6500_Seq3(#LED, #InCh);;^ C1-1;1;0;;;;;;;;;;
;;B24b;9;Grün;;Wiedergabe der Sounddatei 4;;;;Titel 4 abspielen;Sound_JQ6500_Seq4(#LED, #InCh);;^ C1-1;1;0;;;;;;;;;;
;;B24b;10;Rot;;Wiedergabe der Sounddatei 5;;;;Titel 5 abspielen;Sound_JQ6500_Seq5(#LED, #InCh);;^ C1-1;1;0;;;;;;;;;;
;;B24b;15;Rot;;Wiedergabe der vorangegangenen Sounddatei;;;;Vorheriger Titel;Sound_JQ6500_Prev(#LED, #InCh);;^ C1-1;1;0;;;;;;;;;;
;;B24b;15;Grün;;Wiedergabe der nächsten Sounddatei;;;;Nächster Titel;Sound_JQ6500_Next(#LED, #InCh);;^ C1-1;1;0;;;;;;;;;;
;;B24b;16;Rot;;Wiedergabe der nächsten Sounddatei im Bereich 1-3;;;;Titel n+1 abspielen, mit Reset;Sound_JQ6500_Next_of_N(#LED, #InCh, 3);;^ C1-1;1;0;;;;;;;;;;
;;B24b;16;Grün;;Wiedergabe einer Zufälligen Sounddatei im Bereich von 1 - 5;;;;Zufallswiedergabe;Sound_JQ6500_PlayRandom(#LED, #InCh, 5);;^ C1-1;1;0;;;;;;;;;;
;;B24b;17;Rot;;Verringern der Lautstärke;;;;Leiser;Sound_JQ6500_DecVol(#LED, #InCh, 1);;^ C1-1;1;0;;;;;;;;;;
;;B24b;17;Grün;;Erhöhen der Lautstärke;;;;Lauter;Sound_JQ6500_IncVol(#LED, #InCh, 1);;^ C1-1;1;0;;;;;;;;;;
;;B25 Def Neon;;;;;;;;;;;;;;;;;;;;;;;
;;B25 Def Neon;21;AnAus;1;Verändertes Verhalten der defekten Röhre: Lange Pause zwischen den Startversuchen, Lampe bleibt längere Zeit an. Über DCC kann das Verhalten umgeschaltet werden.;;;;Neonöhre Defekt einstellen;Set_Def_Neon(#InCh, 1, 240, 3);;0;1;0;;;;;;;;;;
;;B25 Def Neon;22;AnAus;1;Haus mit einer defekten Neon Lampe;;;;Belebtes Haus;House(#LED, #InCh, 1, 1, NEON_DEF_D);;1;1;0;;;;;;;;;;
;;B26 BW TV;;;;;;;;;;;;;;;;;;;;;;;
;;B26 BW TV;21;AnAus;1;Aktiviert den Schwarz-Weis Modus. (Ist Standardmäßig aktiviert und kann per DCC abgeschaltet werden);;;;S/W-TV Kanal 1 einstellen;Set_TV_BW1(#InCh, 31, 156, 40, 100, 40, 40, 80);;0;1;0;;;;;;;;;;
;;B26 BW TV;22;AnAus;;"Farb TV mit Fußballspiel
(Hoher Grünanteil)
Es darf nur eine ""Set_TV…"" Zeile pro Kanal aktiviert sein. Wenn mehrere aktiv sind, dann wird die letzte Zeile verwendet.";;;;Farb-TV Kanal 1 einstellen;Set_TV_COL1(#InCh, 31, 255, 40, 65, 0, 50, 230, 255, 60, 70);;0;1;0;;;;;;;;;;
;;B26 BW TV;23;AnAus;1;Haus mit einem TV;;;;Belebtes Haus;House(#LED, #InCh, 1, 1, ROOM_TV0);;1;1;0;;;;;;;;;;
;;B26 BW TV;23;AnAus;1;Haus mit einem TV;;;;Belebtes Haus;House(#LED, #InCh, 1, 1, ROOM_TV0);;1;1;0;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;
