Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Blockly optimieren -Tabelle erstellen

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

Blockly optimieren -Tabelle erstellen

Geplant Angeheftet Gesperrt Verschoben Blockly
blocklytemplate
39 Beiträge 4 Kommentatoren 5.3k Aufrufe 10 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • WszeneW Wszene

    @liv-in-sky
    Kein Problem
    Du bist ja nicht nur für mich da

    Wenn ich "füge als" mit "setzte als" tusche dann nimmt er mir die Zeile Esstisch weg
    Bildschirmfoto 2021-01-24 um 20.16.45.png

    liv-in-skyL Offline
    liv-in-skyL Offline
    liv-in-sky
    schrieb am zuletzt editiert von
    #25

    @wszene

    hast du alles ausgetauscht die "i+1" sind wichtig

    nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

    WszeneW 1 Antwort Letzte Antwort
    0
    • liv-in-skyL liv-in-sky

      @wszene

      hast du alles ausgetauscht die "i+1" sind wichtig

      WszeneW Offline
      WszeneW Offline
      Wszene
      schrieb am zuletzt editiert von
      #26

      @liv-in-sky
      so habe ich das gemacht?
      Bildschirmfoto 2021-01-24 um 20.31.49.png

      Habe ich da etwas übersehen?

      Meine Hard- & Software:

      • MSI Cubi 5 10M-049DE mit Proxmox
      • CC2652P Zigbee Stick
      • Steckdosen mit Tasmota und Zigbee
      • Lichtschalter mit Tasmota
      • IKEA TRÅDFRI Glühbirnen
      • Aqara Sensoren
      liv-in-skyL 1 Antwort Letzte Antwort
      0
      • WszeneW Wszene

        @liv-in-sky
        so habe ich das gemacht?
        Bildschirmfoto 2021-01-24 um 20.31.49.png

        Habe ich da etwas übersehen?

        liv-in-skyL Offline
        liv-in-skyL Offline
        liv-in-sky
        schrieb am zuletzt editiert von
        #27

        @wszene

        ja - in der liste fehlt setze i+1

        Image 1.png

        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

        WszeneW 1 Antwort Letzte Antwort
        0
        • liv-in-skyL liv-in-sky

          @wszene

          ja - in der liste fehlt setze i+1

          Image 1.png

          WszeneW Offline
          WszeneW Offline
          Wszene
          schrieb am zuletzt editiert von
          #28

          @liv-in-sky

          Ahhhhhhh
          genau das war es
          Jetzt ist es richtig

          Ich sollte vielleicht doch erstmal vom Bildschirm weg damit die Konzentration wieder da ist

          Meine Hard- & Software:

          • MSI Cubi 5 10M-049DE mit Proxmox
          • CC2652P Zigbee Stick
          • Steckdosen mit Tasmota und Zigbee
          • Lichtschalter mit Tasmota
          • IKEA TRÅDFRI Glühbirnen
          • Aqara Sensoren
          liv-in-skyL 1 Antwort Letzte Antwort
          0
          • WszeneW Wszene

            @liv-in-sky

            Ahhhhhhh
            genau das war es
            Jetzt ist es richtig

            Ich sollte vielleicht doch erstmal vom Bildschirm weg damit die Konzentration wieder da ist

            liv-in-skyL Offline
            liv-in-skyL Offline
            liv-in-sky
            schrieb am zuletzt editiert von
            #29

            @wszene sehr gut - gute nachrichten bevor es in die träumewelt geht

            kannst du bitte deine lampen und steckdosen bilder hier posten - hätte ich gerne

            und wenn das ganze fertig ist, vielleicht ein bild von der vis mit den tabellen posten ?

            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

            WszeneW 1 Antwort Letzte Antwort
            0
            • liv-in-skyL liv-in-sky

              @wszene sehr gut - gute nachrichten bevor es in die träumewelt geht

              kannst du bitte deine lampen und steckdosen bilder hier posten - hätte ich gerne

              und wenn das ganze fertig ist, vielleicht ein bild von der vis mit den tabellen posten ?

              WszeneW Offline
              WszeneW Offline
              Wszene
              schrieb am zuletzt editiert von Wszene
              #30

              @liv-in-sky
              Aber sicher doch
              hier erstmal die Icons
              ws-icons.zip

              Die VIS wird leider noch etwas dauern
              Da ist noch viel zu tun
              Wenn die Startseite fertig ist (denke das könnte spätestens Dienstag sein) werde ich diese mal hier posten

              EDIT:
              Ich sehe gerade das mit Dienstag ist sehr sportlich
              Ich muss leider erstmal in deinem Script die hart reingeschriebenen Style-Werte rauspicken
              Problem ist das ich unterschiedliche VIS nutzen und diese unterschiedliche Größen und Farben haben daher muss ich CSS-Klassen einfügen um diese dann direkt im Projekt anzusprechen

              Meine Hard- & Software:

              • MSI Cubi 5 10M-049DE mit Proxmox
              • CC2652P Zigbee Stick
              • Steckdosen mit Tasmota und Zigbee
              • Lichtschalter mit Tasmota
              • IKEA TRÅDFRI Glühbirnen
              • Aqara Sensoren
              liv-in-skyL 1 Antwort Letzte Antwort
              1
              • WszeneW Wszene

                @liv-in-sky
                Aber sicher doch
                hier erstmal die Icons
                ws-icons.zip

                Die VIS wird leider noch etwas dauern
                Da ist noch viel zu tun
                Wenn die Startseite fertig ist (denke das könnte spätestens Dienstag sein) werde ich diese mal hier posten

                EDIT:
                Ich sehe gerade das mit Dienstag ist sehr sportlich
                Ich muss leider erstmal in deinem Script die hart reingeschriebenen Style-Werte rauspicken
                Problem ist das ich unterschiedliche VIS nutzen und diese unterschiedliche Größen und Farben haben daher muss ich CSS-Klassen einfügen um diese dann direkt im Projekt anzusprechen

                liv-in-skyL Offline
                liv-in-skyL Offline
                liv-in-sky
                schrieb am zuletzt editiert von
                #31

                @wszene

                moin - ein kleiner schönheitsfehler - die lampen sind nicht 100% untereinander angeordnet

                im script zeile 140 und 141 ganz am ende das leerzeichen löschen -. dann paßt es

                Image 2.png

                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                WszeneW 1 Antwort Letzte Antwort
                1
                • liv-in-skyL liv-in-sky

                  @wszene

                  moin - ein kleiner schönheitsfehler - die lampen sind nicht 100% untereinander angeordnet

                  im script zeile 140 und 141 ganz am ende das leerzeichen löschen -. dann paßt es

                  Image 2.png

                  WszeneW Offline
                  WszeneW Offline
                  Wszene
                  schrieb am zuletzt editiert von Wszene
                  #32

                  @liv-in-sky
                  Ich habe jetzt dein Script soweit verpfuscht das der Output so aussieht

                  <table class="ws_tabelle_lampen">
                    <tr bgcolor="#151515">
                      <td class="ws_tabelle_lampen_name" align=left>&ensp;Esstisch&ensp;</td>
                      <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Esstisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-on.png height="35"
                            width="35"></button>&ensp;</td>
                    </tr>
                    <tr bgcolor="#000000">
                      <td class="ws_tabelle_lampen_name" align=left>&ensp;Sofatisch&ensp;</td>
                      <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Sofatisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35"
                            width="35"></button>&ensp;</td>
                    </tr>
                    <tr bgcolor="#151515">
                      <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe klein&ensp;</td>
                      <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                    </tr>
                    <tr bgcolor="#000000">
                      <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe groß&ensp;</td>
                      <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                    </tr>
                    <tr bgcolor="#151515">
                      <td class="ws_tabelle_lampen_name" align=left>&ensp;Schlafzimmer-Lampe&ensp;</td>
                      <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.02_Schlafzimmer.01_Schalter.Schalter-Schlafzimmerlampe')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png
                            height="35" width="35"></button>&ensp;</td>
                    </tr>
                    <tr bgcolor="#000000">
                      <td class="ws_tabelle_lampen_name" align=left>&ensp;Abstellkammer-Lampe&ensp;</td>
                      <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                    </tr>
                  </table>
                  <script>
                    function setOnDblClickCustom(myvalue) {
                      var Self = this;
                      var objID = myvalue;
                      Self.servConn.getStates(objID, (error, states) => {
                        console.log(states);
                        Self.servConn.setState(objID, !states[objID].val);
                      });
                    }
                  </script>
                  

                  Was ich leider nicht finde (da fehlt mir sie Erfahrung) sind die "bgcolor" und die ganzen Lehrzeichen
                  Ich hätte es gern das der Output so aussieht

                  <table class="ws_tabelle_lampen">
                    <tr class="ws_zeile1_bgcolor">
                      <td class="ws_tabelle_lampen_name" align=left>&ensp;Esstisch&ensp;</td>
                      <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Esstisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-on.png height="35"
                            width="35"></button>&ensp;</td>
                    </tr>
                    <tr class="ws_zeile2_bgcolor">
                      <td class="ws_tabelle_lampen_name" align=left>&ensp;Sofatisch&ensp;</td>
                      <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Sofatisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35"
                            width="35"></button>&ensp;</td>
                    </tr>
                    <tr class="ws_zeile1_bgcolor">
                      <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe klein&ensp;</td>
                      <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                    </tr>
                    <tr class="ws_zeile2_bgcolor">
                      <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe groß&ensp;</td>
                      <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                    </tr>
                    <tr class="ws_zeile1_bgcolor">
                      <td class="ws_tabelle_lampen_name" align=left>&ensp;Schlafzimmer-Lampe&ensp;</td>
                      <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.02_Schlafzimmer.01_Schalter.Schalter-Schlafzimmerlampe')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png
                            height="35" width="35"></button>&ensp;</td>
                    </tr>
                    <tr class="ws_zeile2_bgcolor">
                      <td class="ws_tabelle_lampen_name" align=left>&ensp;Abstellkammer-Lampe&ensp;</td>
                      <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                    </tr>
                  </table>
                  <script>
                    function setOnDblClickCustom(myvalue) {
                      var Self = this;
                      var objID = myvalue;
                      Self.servConn.getStates(objID, (error, states) => {
                        console.log(states);
                        Self.servConn.setState(objID, !states[objID].val);
                      });
                    }
                  </script>
                  

                  Ideal wäre noch wenn die "img" eine Class bekommen könnten dann könnte ich deren Größe auch in jedem Projekt via CSS anpassen

                  Hier nochmal das Script wie es jetzt bei mir aussieht

                  //@liv-in-sky 2020  4.2.-18:42
                  
                  
                  //HIER WIRD PFAD UND FILENAME DEFINIERT
                  const path = "/htmlexamplesetting.html";                   //FIlenamen definieren
                  const home ='vis.0'                                 //wo soll das file im iobroker-file-system liegen ? (oder z.b auch iqontrol.meta)
                  let   braucheEinFile=false;                          // bei true wird ein file geschrieben
                  let   braucheEinVISWidget=true;                     // bei true wird ein html-tabelle in einen dp geschrieben - siehe nächste zeile
                  //let dpVIS="controll-own.0.AAATEST.TestHTML"         //WICHTIG wenn braucheEinVISWidget auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget
                  const farbeSchalterON="lightblue"               // farbe des schalters für ON
                  const farbeSchalterOFF="grey"               // farbe des schalters für OFF
                  
                  //let mySchedule=" */20 * * * * * ";                       //jede minute  
                  //---------------------------------------
                  
                  //HIER DIE SPALTEN ANZAHL DEFINIEREN - jede Spalte einen Wert - in diesem Beispiel sind es 2
                  var htmlFeld1='Standort';       var Feld1lAlign="left";                     // überschrift Tabellen Spalte1 und  Ausrichtung left,right or center
                  var htmlFeld2='Status';         var Feld2lAlign="center";                      // überschrift Tabellen Spalte2 und  Ausrichtung left,right or center
                  
                  //-----------------------------------
                  
                  
                  
                  //hier werden die styles für die tabelle definiert
                  //ÜBERSCHRIFT ÜBER TABELLE
                  let   htmlUberschrift=false;                           // mit Überschrift über der tabelle
                  let   htmlSignature=false;                              // anstatt der Überscghrift eine signature: - kleiner - anliegend
                  const htmlFeldUeber='Batterie Zustand Sensoren';              // Überschrift und Signature
                  const htmlFarbUber="black";                         // Farbe der Überschrift
                  const htmlSchriftWeite="normal";                       // bold, normal - Fettschrift für Überschrift
                  const htmlÜberFontGroesse="18px";                       // schriftgröße überschrift
                  //MEHRERE TABELLEN NEBENEINANDER
                  let   mehrfachTabelle=1;                              // bis zu 4 Tabellen werden nebeneinander geschrieben-  verkürzt das Ganze, dafür etwas breiter - MÖGLICH 1,2,3,oder 4 !!!
                  const trennungsLinie="2";                             //extra trennungslinie bei mehrfachtabellen - evtl auf 0 stellen, wnn htmlRahmenLinien auf none sind
                  const farbetrennungsLinie="white";
                  const htmlFarbZweiteTabelle="white";                // Farbe der Überschrift bei jeder 2.ten Tabelle
                  const htmlFarbTableColorUber="#000000";               // Überschrift in der tabelle - der einzelnen Spalten
                  //ÜBERSCHRIFT SPALTEN
                  const UeberSchriftHöhe="35";                          //Überschrift bekommt mehr Raum - darunter und darüber - Zellenhöhe
                  const LinieUnterUeberschrift="3";                   // Linie nur unter Spaltenüberschrift - 
                  const farbeLinieUnterUeberschrift="white";
                  const groesseUeberschrift=16;
                  const UeberschriftStyle="normal"                     // möglich "bold"
                  //GANZE TABELLE
                  let abstandZelle="1";
                  let farbeUngeradeZeilen="#000000";                     //Farbe für ungerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
                  let farbeGeradeZeilen="#151515";                        //Farbe für gerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
                  let weite="100%";                                     //Weite der Tabelle
                  let zentriert=true;                                   //ganze tabelle zentriert
                  const backgroundAll="#000000";                        //Hintergrund für die ganze Seite - für direkten aufruf oder iqontrol sichtber - keine auswirkung auf vis-widget
                  const htmlSchriftart="Play-Regular";
                  //const htmlSchriftgroesse="22px";
                  //FELDER UND RAHMEN
                  let   UeberschriftSpalten=false;                // ein- oder ausblenden der spatlen-überschriften
                  const htmlFarbFelderschrift="#BDBDBD";                  // SchriftFarbe der Felder
                  const htmlFarbFelderschrift2="#D8D8D8";                 // SchriftFarbe der Felder für jede 2te Tabelle
                  const htmlFarbTableColorGradient1="#CDD163";          //  Gradient - Hintergrund der Tabelle - Verlauffarbe
                  const htmlFarbTableColorGradient2="#CDD163";          //  Gradient - Hintergrund der Tabelle - ist dieser Wert gleich Gradient1 gibt es keinen verlauf
                  const htmlFarbTableBorderColor="acaa20";             // Farbe des Rahmen - is tdieser gleich den gradienten, sind die rahmen unsichtbar
                  let htmlRahmenLinien="all";                            // Format für Rahmen: MÖGLICH: "none" oder "all" oder "cols" oder "rows"
                  const htmlSpalte1Weite="auto";                   //  Weite der ersten beiden  Spalten oder z.b. 115px
                  
                  // HIER NICHTS  ÄNDERN
                  
                  let borderHelpBottum;
                  let borderHelpRight;
                  let htmlcenterHelp;
                  let htmlcenterHelp2;
                  
                  if(htmlRahmenLinien=="rows") {borderHelpBottum=1;borderHelpRight=0;}
                  if(htmlRahmenLinien=="cols") {borderHelpBottum=0;borderHelpRight=1;}
                  if(htmlRahmenLinien=="none") {borderHelpBottum=0;borderHelpRight=0;}
                  if(htmlRahmenLinien=="all")  {borderHelpBottum=1;borderHelpRight=1;}
                  zentriert ? htmlcenterHelp="auto" : htmlcenterHelp="left";
                  zentriert ? htmlcenterHelp2="center" : htmlcenterHelp2="left";
                  
                  
                  const htmlZentriert=''
                  const htmlStart=    "";
                  //const htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-weight: bold\">"+htmlFeldUeber+"</p>";                    
                  const htmlTabStyle= "<table class=\""+tabelleClass+"\">";
                  const htmlTabUeber1="<tr height=\""+UeberSchriftHöhe+"\" style=\"color:"+htmlFarbTableColorUber+"; font-size: "+groesseUeberschrift+"px; font-weight: "+UeberschriftStyle+" ;  border-bottom: "+LinieUnterUeberschrift+"px solid "+farbeLinieUnterUeberschrift+" \">";
                  const htmlTabUeber3="</tr>";
                  
                  const buttonScript =  '<script> function setOnDblClickCustom( myvalue ) {	var Self = this; var objID = myvalue;	Self.servConn.getStates(objID, (error, states) => {  console.log(states);  Self.servConn.setState(objID, !states[objID].val); }); } </script>'
                  
                  ////NICHTS ÄNDERN  - abhängig von den oben definierten _Spalten - in diesem Beispiel sind es 2
                  
                  var htmlTabUeber2="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+">&ensp;"+htmlFeld2+"&ensp;</td>";
                  var htmlTabUeber2_1="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld2+
                                    "&ensp;</td>";
                  //------------------------------------------------------
                  
                  
                  var htmlOut="";
                  var mix;
                  var counter;
                  var val1;  var val0;
                  var htmlTabUeber="";
                  
                  function writeHTML(){
                  
                  
                  
                  htmlOut="";
                  
                  counter=-1;
                  htmlTabUeber="";
                  switch (mehrfachTabelle) { 
                    case 1: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber3;  break;
                    case 2: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
                    case 3: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber2+htmlTabUeber3; break;
                    case 4: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
                  };    
                  if (!UeberschriftSpalten) {htmlTabUeber=""}
                  
                  //--------------------------------------------------------------------------------------------------------------------------------------------------
                  //---------hier kommt eure schleife rein counter++, tabelleBind() und tabelleFinish() müssen so integriert bleiben !!!------------------------------
                  //---------alle valx werte müssen von euch bestimmt werden - val0,val1 !!!---------------------------------------------------------------------
                  //--------------------------------------------------------------------------------------------------------------------------------------------------
                  
                  for (var x=0;x<myList.length;x++){
                      counter++;
                      if(myList[x][1]!=null){
                                            val0  = myList[x][0];
                                            val1  = myList[x][1]
                    // log(val0)
                                  let valButton=myList[x][2]
                                  
                                  if (myList[x][3]){
                                  val1 ? val1="<button style\=\"border:none\; background-color\:transparent\; value=\"toggle\" onclick=\"setOnDblClickCustom\(\'"+valButton+"\')\">"+"<img src="+symbolSwitchON +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">"+"</button>":
                                           val1="<button style\=\"border:none\; background-color\:transparent\; value=\"toggle\" onclick=\"setOnDblClickCustom\(\'"+valButton+"\')\">"+"<img src="+symbolSwitchOFF +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">"+"</button>";
                                  } else{
                                     val1 ? val1="<img src="+symbolSwitchON +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">"  : 
                                            val1="<img src="+symbolSwitchOFF +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">" 
                                      
                                  }
                               
                                         //   if (val1==false) {val1="❌"} else{val1="✅"}  
                                           tabelleBind()
                                             
                                            }; //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
                  
                  } tabelleFinish();
                  //------------------------------------------------------------
                  //------------------------------------------------------------
                  //------------------------------------------------------------   
                  
                      // AB HIER NICHTS ÄNDERN - tabelle fertigstellen
                      
                  } // function ende
                  
                  //MAIN:
                  
                  
                  writeHTML();
                  
                  function tabelleBind(){
                        switch (mehrfachTabelle) {  
                          case 1:  if(counter%2==0)         {   htmlOut=htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td class=\""+tabelleClassSpalte1+"\" align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>"; break;  } else
                                                            {   htmlOut=htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td class=\""+tabelleClassSpalte1+"\" align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>"; break;  }
                  //-------------------------------------
                          case 2:  if(counter%4==0){
                                   if(counter%2==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\" ><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+
                                                     ";\"align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                else {htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+
                                                      htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td></tr>";} break;
                          }else{
                                   if(counter%2==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+
                                                     "px solid "+farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                else {htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\" color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                   " style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td></tr>";} break;}
                  //-------------------------------------               
                          case 3: if(counter%2==0)   {
                          
                                  if(counter%3==0 )  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                     farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                          " style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                 else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>";}
                                                           } break; }else{
                                  if(counter%3==0 )  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                     farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                          " style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                 else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>";}
                                                           } break;  }                       
                  //------------------------------------- 
                          case 4: //counter=counter+8 
                          if(counter%8==0)   {
                          
                                   if(counter%4==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                     farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                    else {if(counter%4==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                             " style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                 else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+
                                                                                                            Feld2lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+
                                                                                                            "\">&ensp;"+val1+"&ensp;</td></tr>";} 
                                                                                   else    {htmlOut = htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "
                                                                                            +farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>";}}
                                                           } break;}else{
                                   if(counter%4==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                     farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                    else {if(counter%4==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                             " style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                 else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="
                                                                                                            +Feld2lAlign+" style=\" color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td></tr>";} 
                                                                                   else    {htmlOut = htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                                                            farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>";}}
                                                           }  break;   }                     
                  
                      } //switch ende
                  
                  }
                  
                  function tabelleFinish() {
                  
                        switch (mehrfachTabelle) {  
                          case 1:    break;
                          case 2:    if(counter%2==0)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td></tr>'); 
                                          
                                     break;
                          case 3:    if(counter%3==2)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                                     if(counter%3==1)  htmlOut = htmlOut.replace(/<\/td>$/,  '</td><td>test&ensp;</td><td>&ensp;</td></tr>');       
                                     if(counter%3==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");
                                      
                                     break;
                          case 4:    if(counter%4==3)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                                     if(counter%4==2)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td></tr>");
                                     if(counter%4==1)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");    
                                     if(counter%4==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");   
                                       
                                     break; }
                           var htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: "+htmlÜberFontGroesse+"; font-weight:"+htmlSchriftWeite+ "\">"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</p>"; 
                        var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 70%; text-align: right;\" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
                         
                         if (!htmlSignature) htmlUnter="";
                           //Ausgabe über VIS html widget - tabelle in datenpunkt schreiben - html tabelle ohne html header und body
                            var htmlOutVIS="";
                          //  htmlUberschrift ? htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>" : htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>";
                             if (htmlUberschrift) 
                                 { zentriert ? htmlOutVIS=htmlZentriert+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript : htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript ;
                  
                               } else {
                                zentriert ?  htmlOutVIS=htmlZentriert+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript :  htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript;
                  
                                  }
                  
                   // log("bin raus aus tabelleBind");
                            if (braucheEinVISWidget) setState(dpVIS, htmlOutVIS );
                  
                  var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 80%;  text-align: center; \" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
                  
                  if (!htmlSignature) htmlUnter="";
                  var htmlEnd="</table>"+htmlUnter+"</div></body>";
                  //mit oder ohne überschrift - zentriert oder links
                  htmlUberschrift ? htmlOut=htmlStart+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd + buttonScript: htmlOut=htmlStart+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd+ buttonScript;
                  //log(htmlOut);
                  
                  
                  }
                  
                  
                  

                  Ich wäre dir sehr Dankbar wenn du dir das nochmal ansehen könntest

                  PS:
                  Wie kann ich hier im Forum eigentlich den Spoiler-Tag nutzen

                  Meine Hard- & Software:

                  • MSI Cubi 5 10M-049DE mit Proxmox
                  • CC2652P Zigbee Stick
                  • Steckdosen mit Tasmota und Zigbee
                  • Lichtschalter mit Tasmota
                  • IKEA TRÅDFRI Glühbirnen
                  • Aqara Sensoren
                  GlasfaserG liv-in-skyL 3 Antworten Letzte Antwort
                  0
                  • WszeneW Wszene

                    @liv-in-sky
                    Ich habe jetzt dein Script soweit verpfuscht das der Output so aussieht

                    <table class="ws_tabelle_lampen">
                      <tr bgcolor="#151515">
                        <td class="ws_tabelle_lampen_name" align=left>&ensp;Esstisch&ensp;</td>
                        <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Esstisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-on.png height="35"
                              width="35"></button>&ensp;</td>
                      </tr>
                      <tr bgcolor="#000000">
                        <td class="ws_tabelle_lampen_name" align=left>&ensp;Sofatisch&ensp;</td>
                        <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Sofatisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35"
                              width="35"></button>&ensp;</td>
                      </tr>
                      <tr bgcolor="#151515">
                        <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe klein&ensp;</td>
                        <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                      </tr>
                      <tr bgcolor="#000000">
                        <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe groß&ensp;</td>
                        <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                      </tr>
                      <tr bgcolor="#151515">
                        <td class="ws_tabelle_lampen_name" align=left>&ensp;Schlafzimmer-Lampe&ensp;</td>
                        <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.02_Schlafzimmer.01_Schalter.Schalter-Schlafzimmerlampe')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png
                              height="35" width="35"></button>&ensp;</td>
                      </tr>
                      <tr bgcolor="#000000">
                        <td class="ws_tabelle_lampen_name" align=left>&ensp;Abstellkammer-Lampe&ensp;</td>
                        <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                      </tr>
                    </table>
                    <script>
                      function setOnDblClickCustom(myvalue) {
                        var Self = this;
                        var objID = myvalue;
                        Self.servConn.getStates(objID, (error, states) => {
                          console.log(states);
                          Self.servConn.setState(objID, !states[objID].val);
                        });
                      }
                    </script>
                    

                    Was ich leider nicht finde (da fehlt mir sie Erfahrung) sind die "bgcolor" und die ganzen Lehrzeichen
                    Ich hätte es gern das der Output so aussieht

                    <table class="ws_tabelle_lampen">
                      <tr class="ws_zeile1_bgcolor">
                        <td class="ws_tabelle_lampen_name" align=left>&ensp;Esstisch&ensp;</td>
                        <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Esstisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-on.png height="35"
                              width="35"></button>&ensp;</td>
                      </tr>
                      <tr class="ws_zeile2_bgcolor">
                        <td class="ws_tabelle_lampen_name" align=left>&ensp;Sofatisch&ensp;</td>
                        <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Sofatisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35"
                              width="35"></button>&ensp;</td>
                      </tr>
                      <tr class="ws_zeile1_bgcolor">
                        <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe klein&ensp;</td>
                        <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                      </tr>
                      <tr class="ws_zeile2_bgcolor">
                        <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe groß&ensp;</td>
                        <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                      </tr>
                      <tr class="ws_zeile1_bgcolor">
                        <td class="ws_tabelle_lampen_name" align=left>&ensp;Schlafzimmer-Lampe&ensp;</td>
                        <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.02_Schlafzimmer.01_Schalter.Schalter-Schlafzimmerlampe')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png
                              height="35" width="35"></button>&ensp;</td>
                      </tr>
                      <tr class="ws_zeile2_bgcolor">
                        <td class="ws_tabelle_lampen_name" align=left>&ensp;Abstellkammer-Lampe&ensp;</td>
                        <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                      </tr>
                    </table>
                    <script>
                      function setOnDblClickCustom(myvalue) {
                        var Self = this;
                        var objID = myvalue;
                        Self.servConn.getStates(objID, (error, states) => {
                          console.log(states);
                          Self.servConn.setState(objID, !states[objID].val);
                        });
                      }
                    </script>
                    

                    Ideal wäre noch wenn die "img" eine Class bekommen könnten dann könnte ich deren Größe auch in jedem Projekt via CSS anpassen

                    Hier nochmal das Script wie es jetzt bei mir aussieht

                    //@liv-in-sky 2020  4.2.-18:42
                    
                    
                    //HIER WIRD PFAD UND FILENAME DEFINIERT
                    const path = "/htmlexamplesetting.html";                   //FIlenamen definieren
                    const home ='vis.0'                                 //wo soll das file im iobroker-file-system liegen ? (oder z.b auch iqontrol.meta)
                    let   braucheEinFile=false;                          // bei true wird ein file geschrieben
                    let   braucheEinVISWidget=true;                     // bei true wird ein html-tabelle in einen dp geschrieben - siehe nächste zeile
                    //let dpVIS="controll-own.0.AAATEST.TestHTML"         //WICHTIG wenn braucheEinVISWidget auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget
                    const farbeSchalterON="lightblue"               // farbe des schalters für ON
                    const farbeSchalterOFF="grey"               // farbe des schalters für OFF
                    
                    //let mySchedule=" */20 * * * * * ";                       //jede minute  
                    //---------------------------------------
                    
                    //HIER DIE SPALTEN ANZAHL DEFINIEREN - jede Spalte einen Wert - in diesem Beispiel sind es 2
                    var htmlFeld1='Standort';       var Feld1lAlign="left";                     // überschrift Tabellen Spalte1 und  Ausrichtung left,right or center
                    var htmlFeld2='Status';         var Feld2lAlign="center";                      // überschrift Tabellen Spalte2 und  Ausrichtung left,right or center
                    
                    //-----------------------------------
                    
                    
                    
                    //hier werden die styles für die tabelle definiert
                    //ÜBERSCHRIFT ÜBER TABELLE
                    let   htmlUberschrift=false;                           // mit Überschrift über der tabelle
                    let   htmlSignature=false;                              // anstatt der Überscghrift eine signature: - kleiner - anliegend
                    const htmlFeldUeber='Batterie Zustand Sensoren';              // Überschrift und Signature
                    const htmlFarbUber="black";                         // Farbe der Überschrift
                    const htmlSchriftWeite="normal";                       // bold, normal - Fettschrift für Überschrift
                    const htmlÜberFontGroesse="18px";                       // schriftgröße überschrift
                    //MEHRERE TABELLEN NEBENEINANDER
                    let   mehrfachTabelle=1;                              // bis zu 4 Tabellen werden nebeneinander geschrieben-  verkürzt das Ganze, dafür etwas breiter - MÖGLICH 1,2,3,oder 4 !!!
                    const trennungsLinie="2";                             //extra trennungslinie bei mehrfachtabellen - evtl auf 0 stellen, wnn htmlRahmenLinien auf none sind
                    const farbetrennungsLinie="white";
                    const htmlFarbZweiteTabelle="white";                // Farbe der Überschrift bei jeder 2.ten Tabelle
                    const htmlFarbTableColorUber="#000000";               // Überschrift in der tabelle - der einzelnen Spalten
                    //ÜBERSCHRIFT SPALTEN
                    const UeberSchriftHöhe="35";                          //Überschrift bekommt mehr Raum - darunter und darüber - Zellenhöhe
                    const LinieUnterUeberschrift="3";                   // Linie nur unter Spaltenüberschrift - 
                    const farbeLinieUnterUeberschrift="white";
                    const groesseUeberschrift=16;
                    const UeberschriftStyle="normal"                     // möglich "bold"
                    //GANZE TABELLE
                    let abstandZelle="1";
                    let farbeUngeradeZeilen="#000000";                     //Farbe für ungerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
                    let farbeGeradeZeilen="#151515";                        //Farbe für gerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
                    let weite="100%";                                     //Weite der Tabelle
                    let zentriert=true;                                   //ganze tabelle zentriert
                    const backgroundAll="#000000";                        //Hintergrund für die ganze Seite - für direkten aufruf oder iqontrol sichtber - keine auswirkung auf vis-widget
                    const htmlSchriftart="Play-Regular";
                    //const htmlSchriftgroesse="22px";
                    //FELDER UND RAHMEN
                    let   UeberschriftSpalten=false;                // ein- oder ausblenden der spatlen-überschriften
                    const htmlFarbFelderschrift="#BDBDBD";                  // SchriftFarbe der Felder
                    const htmlFarbFelderschrift2="#D8D8D8";                 // SchriftFarbe der Felder für jede 2te Tabelle
                    const htmlFarbTableColorGradient1="#CDD163";          //  Gradient - Hintergrund der Tabelle - Verlauffarbe
                    const htmlFarbTableColorGradient2="#CDD163";          //  Gradient - Hintergrund der Tabelle - ist dieser Wert gleich Gradient1 gibt es keinen verlauf
                    const htmlFarbTableBorderColor="acaa20";             // Farbe des Rahmen - is tdieser gleich den gradienten, sind die rahmen unsichtbar
                    let htmlRahmenLinien="all";                            // Format für Rahmen: MÖGLICH: "none" oder "all" oder "cols" oder "rows"
                    const htmlSpalte1Weite="auto";                   //  Weite der ersten beiden  Spalten oder z.b. 115px
                    
                    // HIER NICHTS  ÄNDERN
                    
                    let borderHelpBottum;
                    let borderHelpRight;
                    let htmlcenterHelp;
                    let htmlcenterHelp2;
                    
                    if(htmlRahmenLinien=="rows") {borderHelpBottum=1;borderHelpRight=0;}
                    if(htmlRahmenLinien=="cols") {borderHelpBottum=0;borderHelpRight=1;}
                    if(htmlRahmenLinien=="none") {borderHelpBottum=0;borderHelpRight=0;}
                    if(htmlRahmenLinien=="all")  {borderHelpBottum=1;borderHelpRight=1;}
                    zentriert ? htmlcenterHelp="auto" : htmlcenterHelp="left";
                    zentriert ? htmlcenterHelp2="center" : htmlcenterHelp2="left";
                    
                    
                    const htmlZentriert=''
                    const htmlStart=    "";
                    //const htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-weight: bold\">"+htmlFeldUeber+"</p>";                    
                    const htmlTabStyle= "<table class=\""+tabelleClass+"\">";
                    const htmlTabUeber1="<tr height=\""+UeberSchriftHöhe+"\" style=\"color:"+htmlFarbTableColorUber+"; font-size: "+groesseUeberschrift+"px; font-weight: "+UeberschriftStyle+" ;  border-bottom: "+LinieUnterUeberschrift+"px solid "+farbeLinieUnterUeberschrift+" \">";
                    const htmlTabUeber3="</tr>";
                    
                    const buttonScript =  '<script> function setOnDblClickCustom( myvalue ) {	var Self = this; var objID = myvalue;	Self.servConn.getStates(objID, (error, states) => {  console.log(states);  Self.servConn.setState(objID, !states[objID].val); }); } </script>'
                    
                    ////NICHTS ÄNDERN  - abhängig von den oben definierten _Spalten - in diesem Beispiel sind es 2
                    
                    var htmlTabUeber2="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+">&ensp;"+htmlFeld2+"&ensp;</td>";
                    var htmlTabUeber2_1="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld2+
                                      "&ensp;</td>";
                    //------------------------------------------------------
                    
                    
                    var htmlOut="";
                    var mix;
                    var counter;
                    var val1;  var val0;
                    var htmlTabUeber="";
                    
                    function writeHTML(){
                    
                    
                    
                    htmlOut="";
                    
                    counter=-1;
                    htmlTabUeber="";
                    switch (mehrfachTabelle) { 
                      case 1: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber3;  break;
                      case 2: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
                      case 3: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber2+htmlTabUeber3; break;
                      case 4: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
                    };    
                    if (!UeberschriftSpalten) {htmlTabUeber=""}
                    
                    //--------------------------------------------------------------------------------------------------------------------------------------------------
                    //---------hier kommt eure schleife rein counter++, tabelleBind() und tabelleFinish() müssen so integriert bleiben !!!------------------------------
                    //---------alle valx werte müssen von euch bestimmt werden - val0,val1 !!!---------------------------------------------------------------------
                    //--------------------------------------------------------------------------------------------------------------------------------------------------
                    
                    for (var x=0;x<myList.length;x++){
                        counter++;
                        if(myList[x][1]!=null){
                                              val0  = myList[x][0];
                                              val1  = myList[x][1]
                      // log(val0)
                                    let valButton=myList[x][2]
                                    
                                    if (myList[x][3]){
                                    val1 ? val1="<button style\=\"border:none\; background-color\:transparent\; value=\"toggle\" onclick=\"setOnDblClickCustom\(\'"+valButton+"\')\">"+"<img src="+symbolSwitchON +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">"+"</button>":
                                             val1="<button style\=\"border:none\; background-color\:transparent\; value=\"toggle\" onclick=\"setOnDblClickCustom\(\'"+valButton+"\')\">"+"<img src="+symbolSwitchOFF +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">"+"</button>";
                                    } else{
                                       val1 ? val1="<img src="+symbolSwitchON +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">"  : 
                                              val1="<img src="+symbolSwitchOFF +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">" 
                                        
                                    }
                                 
                                           //   if (val1==false) {val1="❌"} else{val1="✅"}  
                                             tabelleBind()
                                               
                                              }; //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
                    
                    } tabelleFinish();
                    //------------------------------------------------------------
                    //------------------------------------------------------------
                    //------------------------------------------------------------   
                    
                        // AB HIER NICHTS ÄNDERN - tabelle fertigstellen
                        
                    } // function ende
                    
                    //MAIN:
                    
                    
                    writeHTML();
                    
                    function tabelleBind(){
                          switch (mehrfachTabelle) {  
                            case 1:  if(counter%2==0)         {   htmlOut=htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td class=\""+tabelleClassSpalte1+"\" align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>"; break;  } else
                                                              {   htmlOut=htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td class=\""+tabelleClassSpalte1+"\" align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>"; break;  }
                    //-------------------------------------
                            case 2:  if(counter%4==0){
                                     if(counter%2==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\" ><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+
                                                       ";\"align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                  else {htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+
                                                        htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td></tr>";} break;
                            }else{
                                     if(counter%2==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+
                                                       "px solid "+farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                  else {htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\" color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                     " style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td></tr>";} break;}
                    //-------------------------------------               
                            case 3: if(counter%2==0)   {
                            
                                    if(counter%3==0 )  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                       farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                  else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                            " style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                   else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>";}
                                                             } break; }else{
                                    if(counter%3==0 )  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                       farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                  else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                            " style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                   else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>";}
                                                             } break;  }                       
                    //------------------------------------- 
                            case 4: //counter=counter+8 
                            if(counter%8==0)   {
                            
                                     if(counter%4==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                       farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                      else {if(counter%4==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                               " style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                   else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+
                                                                                                              Feld2lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+
                                                                                                              "\">&ensp;"+val1+"&ensp;</td></tr>";} 
                                                                                     else    {htmlOut = htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "
                                                                                              +farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>";}}
                                                             } break;}else{
                                     if(counter%4==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                       farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                      else {if(counter%4==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                               " style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                   else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="
                                                                                                              +Feld2lAlign+" style=\" color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td></tr>";} 
                                                                                     else    {htmlOut = htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                                                              farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>";}}
                                                             }  break;   }                     
                    
                        } //switch ende
                    
                    }
                    
                    function tabelleFinish() {
                    
                          switch (mehrfachTabelle) {  
                            case 1:    break;
                            case 2:    if(counter%2==0)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td></tr>'); 
                                            
                                       break;
                            case 3:    if(counter%3==2)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                                       if(counter%3==1)  htmlOut = htmlOut.replace(/<\/td>$/,  '</td><td>test&ensp;</td><td>&ensp;</td></tr>');       
                                       if(counter%3==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");
                                        
                                       break;
                            case 4:    if(counter%4==3)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                                       if(counter%4==2)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td></tr>");
                                       if(counter%4==1)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");    
                                       if(counter%4==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");   
                                         
                                       break; }
                             var htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: "+htmlÜberFontGroesse+"; font-weight:"+htmlSchriftWeite+ "\">"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</p>"; 
                          var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 70%; text-align: right;\" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
                           
                           if (!htmlSignature) htmlUnter="";
                             //Ausgabe über VIS html widget - tabelle in datenpunkt schreiben - html tabelle ohne html header und body
                              var htmlOutVIS="";
                            //  htmlUberschrift ? htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>" : htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>";
                               if (htmlUberschrift) 
                                   { zentriert ? htmlOutVIS=htmlZentriert+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript : htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript ;
                    
                                 } else {
                                  zentriert ?  htmlOutVIS=htmlZentriert+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript :  htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript;
                    
                                    }
                    
                     // log("bin raus aus tabelleBind");
                              if (braucheEinVISWidget) setState(dpVIS, htmlOutVIS );
                    
                    var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 80%;  text-align: center; \" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
                    
                    if (!htmlSignature) htmlUnter="";
                    var htmlEnd="</table>"+htmlUnter+"</div></body>";
                    //mit oder ohne überschrift - zentriert oder links
                    htmlUberschrift ? htmlOut=htmlStart+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd + buttonScript: htmlOut=htmlStart+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd+ buttonScript;
                    //log(htmlOut);
                    
                    
                    }
                    
                    
                    

                    Ich wäre dir sehr Dankbar wenn du dir das nochmal ansehen könntest

                    PS:
                    Wie kann ich hier im Forum eigentlich den Spoiler-Tag nutzen

                    GlasfaserG Offline
                    GlasfaserG Offline
                    Glasfaser
                    schrieb am zuletzt editiert von
                    #33

                    @wszene sagte in Blockly optimieren -Tabelle erstellen:

                    PS:
                    Wie kann ich hier im Forum eigentlich den Spoiler-Tag nutzen

                    const UeberSchriftHöhe="35";                          //Überschrift bekommt mehr Raum - darunter und darüber - Zellenhöhe
                    

                    oder

                    const UeberSchriftHöhe="35";                          //Überschrift bekommt mehr Raum - darunter und darüber - Zellenhöhe
                    

                    1122222222222222222.gif

                    Synology 918+ 16GB - ioBroker in Docker v9 , VISO auf Trekstor Primebook C13 13,3" , Hikvision Domkameras mit Surveillance Station .. CCU RaspberryMatic in Synology VM .. Zigbee CC2538+CC2592 .. Sonoff .. KNX .. Modbus ..

                    1 Antwort Letzte Antwort
                    1
                    • WszeneW Wszene

                      @liv-in-sky
                      Ich habe jetzt dein Script soweit verpfuscht das der Output so aussieht

                      <table class="ws_tabelle_lampen">
                        <tr bgcolor="#151515">
                          <td class="ws_tabelle_lampen_name" align=left>&ensp;Esstisch&ensp;</td>
                          <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Esstisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-on.png height="35"
                                width="35"></button>&ensp;</td>
                        </tr>
                        <tr bgcolor="#000000">
                          <td class="ws_tabelle_lampen_name" align=left>&ensp;Sofatisch&ensp;</td>
                          <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Sofatisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35"
                                width="35"></button>&ensp;</td>
                        </tr>
                        <tr bgcolor="#151515">
                          <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe klein&ensp;</td>
                          <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                        </tr>
                        <tr bgcolor="#000000">
                          <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe groß&ensp;</td>
                          <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                        </tr>
                        <tr bgcolor="#151515">
                          <td class="ws_tabelle_lampen_name" align=left>&ensp;Schlafzimmer-Lampe&ensp;</td>
                          <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.02_Schlafzimmer.01_Schalter.Schalter-Schlafzimmerlampe')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png
                                height="35" width="35"></button>&ensp;</td>
                        </tr>
                        <tr bgcolor="#000000">
                          <td class="ws_tabelle_lampen_name" align=left>&ensp;Abstellkammer-Lampe&ensp;</td>
                          <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                        </tr>
                      </table>
                      <script>
                        function setOnDblClickCustom(myvalue) {
                          var Self = this;
                          var objID = myvalue;
                          Self.servConn.getStates(objID, (error, states) => {
                            console.log(states);
                            Self.servConn.setState(objID, !states[objID].val);
                          });
                        }
                      </script>
                      

                      Was ich leider nicht finde (da fehlt mir sie Erfahrung) sind die "bgcolor" und die ganzen Lehrzeichen
                      Ich hätte es gern das der Output so aussieht

                      <table class="ws_tabelle_lampen">
                        <tr class="ws_zeile1_bgcolor">
                          <td class="ws_tabelle_lampen_name" align=left>&ensp;Esstisch&ensp;</td>
                          <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Esstisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-on.png height="35"
                                width="35"></button>&ensp;</td>
                        </tr>
                        <tr class="ws_zeile2_bgcolor">
                          <td class="ws_tabelle_lampen_name" align=left>&ensp;Sofatisch&ensp;</td>
                          <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Sofatisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35"
                                width="35"></button>&ensp;</td>
                        </tr>
                        <tr class="ws_zeile1_bgcolor">
                          <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe klein&ensp;</td>
                          <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                        </tr>
                        <tr class="ws_zeile2_bgcolor">
                          <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe groß&ensp;</td>
                          <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                        </tr>
                        <tr class="ws_zeile1_bgcolor">
                          <td class="ws_tabelle_lampen_name" align=left>&ensp;Schlafzimmer-Lampe&ensp;</td>
                          <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.02_Schlafzimmer.01_Schalter.Schalter-Schlafzimmerlampe')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png
                                height="35" width="35"></button>&ensp;</td>
                        </tr>
                        <tr class="ws_zeile2_bgcolor">
                          <td class="ws_tabelle_lampen_name" align=left>&ensp;Abstellkammer-Lampe&ensp;</td>
                          <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                        </tr>
                      </table>
                      <script>
                        function setOnDblClickCustom(myvalue) {
                          var Self = this;
                          var objID = myvalue;
                          Self.servConn.getStates(objID, (error, states) => {
                            console.log(states);
                            Self.servConn.setState(objID, !states[objID].val);
                          });
                        }
                      </script>
                      

                      Ideal wäre noch wenn die "img" eine Class bekommen könnten dann könnte ich deren Größe auch in jedem Projekt via CSS anpassen

                      Hier nochmal das Script wie es jetzt bei mir aussieht

                      //@liv-in-sky 2020  4.2.-18:42
                      
                      
                      //HIER WIRD PFAD UND FILENAME DEFINIERT
                      const path = "/htmlexamplesetting.html";                   //FIlenamen definieren
                      const home ='vis.0'                                 //wo soll das file im iobroker-file-system liegen ? (oder z.b auch iqontrol.meta)
                      let   braucheEinFile=false;                          // bei true wird ein file geschrieben
                      let   braucheEinVISWidget=true;                     // bei true wird ein html-tabelle in einen dp geschrieben - siehe nächste zeile
                      //let dpVIS="controll-own.0.AAATEST.TestHTML"         //WICHTIG wenn braucheEinVISWidget auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget
                      const farbeSchalterON="lightblue"               // farbe des schalters für ON
                      const farbeSchalterOFF="grey"               // farbe des schalters für OFF
                      
                      //let mySchedule=" */20 * * * * * ";                       //jede minute  
                      //---------------------------------------
                      
                      //HIER DIE SPALTEN ANZAHL DEFINIEREN - jede Spalte einen Wert - in diesem Beispiel sind es 2
                      var htmlFeld1='Standort';       var Feld1lAlign="left";                     // überschrift Tabellen Spalte1 und  Ausrichtung left,right or center
                      var htmlFeld2='Status';         var Feld2lAlign="center";                      // überschrift Tabellen Spalte2 und  Ausrichtung left,right or center
                      
                      //-----------------------------------
                      
                      
                      
                      //hier werden die styles für die tabelle definiert
                      //ÜBERSCHRIFT ÜBER TABELLE
                      let   htmlUberschrift=false;                           // mit Überschrift über der tabelle
                      let   htmlSignature=false;                              // anstatt der Überscghrift eine signature: - kleiner - anliegend
                      const htmlFeldUeber='Batterie Zustand Sensoren';              // Überschrift und Signature
                      const htmlFarbUber="black";                         // Farbe der Überschrift
                      const htmlSchriftWeite="normal";                       // bold, normal - Fettschrift für Überschrift
                      const htmlÜberFontGroesse="18px";                       // schriftgröße überschrift
                      //MEHRERE TABELLEN NEBENEINANDER
                      let   mehrfachTabelle=1;                              // bis zu 4 Tabellen werden nebeneinander geschrieben-  verkürzt das Ganze, dafür etwas breiter - MÖGLICH 1,2,3,oder 4 !!!
                      const trennungsLinie="2";                             //extra trennungslinie bei mehrfachtabellen - evtl auf 0 stellen, wnn htmlRahmenLinien auf none sind
                      const farbetrennungsLinie="white";
                      const htmlFarbZweiteTabelle="white";                // Farbe der Überschrift bei jeder 2.ten Tabelle
                      const htmlFarbTableColorUber="#000000";               // Überschrift in der tabelle - der einzelnen Spalten
                      //ÜBERSCHRIFT SPALTEN
                      const UeberSchriftHöhe="35";                          //Überschrift bekommt mehr Raum - darunter und darüber - Zellenhöhe
                      const LinieUnterUeberschrift="3";                   // Linie nur unter Spaltenüberschrift - 
                      const farbeLinieUnterUeberschrift="white";
                      const groesseUeberschrift=16;
                      const UeberschriftStyle="normal"                     // möglich "bold"
                      //GANZE TABELLE
                      let abstandZelle="1";
                      let farbeUngeradeZeilen="#000000";                     //Farbe für ungerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
                      let farbeGeradeZeilen="#151515";                        //Farbe für gerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
                      let weite="100%";                                     //Weite der Tabelle
                      let zentriert=true;                                   //ganze tabelle zentriert
                      const backgroundAll="#000000";                        //Hintergrund für die ganze Seite - für direkten aufruf oder iqontrol sichtber - keine auswirkung auf vis-widget
                      const htmlSchriftart="Play-Regular";
                      //const htmlSchriftgroesse="22px";
                      //FELDER UND RAHMEN
                      let   UeberschriftSpalten=false;                // ein- oder ausblenden der spatlen-überschriften
                      const htmlFarbFelderschrift="#BDBDBD";                  // SchriftFarbe der Felder
                      const htmlFarbFelderschrift2="#D8D8D8";                 // SchriftFarbe der Felder für jede 2te Tabelle
                      const htmlFarbTableColorGradient1="#CDD163";          //  Gradient - Hintergrund der Tabelle - Verlauffarbe
                      const htmlFarbTableColorGradient2="#CDD163";          //  Gradient - Hintergrund der Tabelle - ist dieser Wert gleich Gradient1 gibt es keinen verlauf
                      const htmlFarbTableBorderColor="acaa20";             // Farbe des Rahmen - is tdieser gleich den gradienten, sind die rahmen unsichtbar
                      let htmlRahmenLinien="all";                            // Format für Rahmen: MÖGLICH: "none" oder "all" oder "cols" oder "rows"
                      const htmlSpalte1Weite="auto";                   //  Weite der ersten beiden  Spalten oder z.b. 115px
                      
                      // HIER NICHTS  ÄNDERN
                      
                      let borderHelpBottum;
                      let borderHelpRight;
                      let htmlcenterHelp;
                      let htmlcenterHelp2;
                      
                      if(htmlRahmenLinien=="rows") {borderHelpBottum=1;borderHelpRight=0;}
                      if(htmlRahmenLinien=="cols") {borderHelpBottum=0;borderHelpRight=1;}
                      if(htmlRahmenLinien=="none") {borderHelpBottum=0;borderHelpRight=0;}
                      if(htmlRahmenLinien=="all")  {borderHelpBottum=1;borderHelpRight=1;}
                      zentriert ? htmlcenterHelp="auto" : htmlcenterHelp="left";
                      zentriert ? htmlcenterHelp2="center" : htmlcenterHelp2="left";
                      
                      
                      const htmlZentriert=''
                      const htmlStart=    "";
                      //const htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-weight: bold\">"+htmlFeldUeber+"</p>";                    
                      const htmlTabStyle= "<table class=\""+tabelleClass+"\">";
                      const htmlTabUeber1="<tr height=\""+UeberSchriftHöhe+"\" style=\"color:"+htmlFarbTableColorUber+"; font-size: "+groesseUeberschrift+"px; font-weight: "+UeberschriftStyle+" ;  border-bottom: "+LinieUnterUeberschrift+"px solid "+farbeLinieUnterUeberschrift+" \">";
                      const htmlTabUeber3="</tr>";
                      
                      const buttonScript =  '<script> function setOnDblClickCustom( myvalue ) {	var Self = this; var objID = myvalue;	Self.servConn.getStates(objID, (error, states) => {  console.log(states);  Self.servConn.setState(objID, !states[objID].val); }); } </script>'
                      
                      ////NICHTS ÄNDERN  - abhängig von den oben definierten _Spalten - in diesem Beispiel sind es 2
                      
                      var htmlTabUeber2="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+">&ensp;"+htmlFeld2+"&ensp;</td>";
                      var htmlTabUeber2_1="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld2+
                                        "&ensp;</td>";
                      //------------------------------------------------------
                      
                      
                      var htmlOut="";
                      var mix;
                      var counter;
                      var val1;  var val0;
                      var htmlTabUeber="";
                      
                      function writeHTML(){
                      
                      
                      
                      htmlOut="";
                      
                      counter=-1;
                      htmlTabUeber="";
                      switch (mehrfachTabelle) { 
                        case 1: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber3;  break;
                        case 2: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
                        case 3: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber2+htmlTabUeber3; break;
                        case 4: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
                      };    
                      if (!UeberschriftSpalten) {htmlTabUeber=""}
                      
                      //--------------------------------------------------------------------------------------------------------------------------------------------------
                      //---------hier kommt eure schleife rein counter++, tabelleBind() und tabelleFinish() müssen so integriert bleiben !!!------------------------------
                      //---------alle valx werte müssen von euch bestimmt werden - val0,val1 !!!---------------------------------------------------------------------
                      //--------------------------------------------------------------------------------------------------------------------------------------------------
                      
                      for (var x=0;x<myList.length;x++){
                          counter++;
                          if(myList[x][1]!=null){
                                                val0  = myList[x][0];
                                                val1  = myList[x][1]
                        // log(val0)
                                      let valButton=myList[x][2]
                                      
                                      if (myList[x][3]){
                                      val1 ? val1="<button style\=\"border:none\; background-color\:transparent\; value=\"toggle\" onclick=\"setOnDblClickCustom\(\'"+valButton+"\')\">"+"<img src="+symbolSwitchON +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">"+"</button>":
                                               val1="<button style\=\"border:none\; background-color\:transparent\; value=\"toggle\" onclick=\"setOnDblClickCustom\(\'"+valButton+"\')\">"+"<img src="+symbolSwitchOFF +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">"+"</button>";
                                      } else{
                                         val1 ? val1="<img src="+symbolSwitchON +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">"  : 
                                                val1="<img src="+symbolSwitchOFF +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">" 
                                          
                                      }
                                   
                                             //   if (val1==false) {val1="❌"} else{val1="✅"}  
                                               tabelleBind()
                                                 
                                                }; //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
                      
                      } tabelleFinish();
                      //------------------------------------------------------------
                      //------------------------------------------------------------
                      //------------------------------------------------------------   
                      
                          // AB HIER NICHTS ÄNDERN - tabelle fertigstellen
                          
                      } // function ende
                      
                      //MAIN:
                      
                      
                      writeHTML();
                      
                      function tabelleBind(){
                            switch (mehrfachTabelle) {  
                              case 1:  if(counter%2==0)         {   htmlOut=htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td class=\""+tabelleClassSpalte1+"\" align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>"; break;  } else
                                                                {   htmlOut=htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td class=\""+tabelleClassSpalte1+"\" align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>"; break;  }
                      //-------------------------------------
                              case 2:  if(counter%4==0){
                                       if(counter%2==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\" ><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+
                                                         ";\"align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                    else {htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+
                                                          htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td></tr>";} break;
                              }else{
                                       if(counter%2==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+
                                                         "px solid "+farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                    else {htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\" color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                       " style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td></tr>";} break;}
                      //-------------------------------------               
                              case 3: if(counter%2==0)   {
                              
                                      if(counter%3==0 )  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                         farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                    else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                              " style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                     else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>";}
                                                               } break; }else{
                                      if(counter%3==0 )  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                         farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                    else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                              " style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                     else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>";}
                                                               } break;  }                       
                      //------------------------------------- 
                              case 4: //counter=counter+8 
                              if(counter%8==0)   {
                              
                                       if(counter%4==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                         farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                        else {if(counter%4==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                                 " style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                     else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+
                                                                                                                Feld2lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+
                                                                                                                "\">&ensp;"+val1+"&ensp;</td></tr>";} 
                                                                                       else    {htmlOut = htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "
                                                                                                +farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>";}}
                                                               } break;}else{
                                       if(counter%4==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                         farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                        else {if(counter%4==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                                 " style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                     else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="
                                                                                                                +Feld2lAlign+" style=\" color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td></tr>";} 
                                                                                       else    {htmlOut = htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                                                                farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>";}}
                                                               }  break;   }                     
                      
                          } //switch ende
                      
                      }
                      
                      function tabelleFinish() {
                      
                            switch (mehrfachTabelle) {  
                              case 1:    break;
                              case 2:    if(counter%2==0)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td></tr>'); 
                                              
                                         break;
                              case 3:    if(counter%3==2)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                                         if(counter%3==1)  htmlOut = htmlOut.replace(/<\/td>$/,  '</td><td>test&ensp;</td><td>&ensp;</td></tr>');       
                                         if(counter%3==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");
                                          
                                         break;
                              case 4:    if(counter%4==3)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                                         if(counter%4==2)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td></tr>");
                                         if(counter%4==1)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");    
                                         if(counter%4==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");   
                                           
                                         break; }
                               var htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: "+htmlÜberFontGroesse+"; font-weight:"+htmlSchriftWeite+ "\">"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</p>"; 
                            var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 70%; text-align: right;\" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
                             
                             if (!htmlSignature) htmlUnter="";
                               //Ausgabe über VIS html widget - tabelle in datenpunkt schreiben - html tabelle ohne html header und body
                                var htmlOutVIS="";
                              //  htmlUberschrift ? htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>" : htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>";
                                 if (htmlUberschrift) 
                                     { zentriert ? htmlOutVIS=htmlZentriert+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript : htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript ;
                      
                                   } else {
                                    zentriert ?  htmlOutVIS=htmlZentriert+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript :  htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript;
                      
                                      }
                      
                       // log("bin raus aus tabelleBind");
                                if (braucheEinVISWidget) setState(dpVIS, htmlOutVIS );
                      
                      var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 80%;  text-align: center; \" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
                      
                      if (!htmlSignature) htmlUnter="";
                      var htmlEnd="</table>"+htmlUnter+"</div></body>";
                      //mit oder ohne überschrift - zentriert oder links
                      htmlUberschrift ? htmlOut=htmlStart+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd + buttonScript: htmlOut=htmlStart+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd+ buttonScript;
                      //log(htmlOut);
                      
                      
                      }
                      
                      
                      

                      Ich wäre dir sehr Dankbar wenn du dir das nochmal ansehen könntest

                      PS:
                      Wie kann ich hier im Forum eigentlich den Spoiler-Tag nutzen

                      liv-in-skyL Offline
                      liv-in-skyL Offline
                      liv-in-sky
                      schrieb am zuletzt editiert von
                      #34

                      @wszene

                      eine css klasse für image wäre möglich - aber reicht dir weite und höhe nicht aus? was brauchst du noch ?

                      die tableclass hast du als variable eingefügt - diese aber nie deklariert - aber eigentlich braucht man bei diesen tabellen keine klassen definieren , sondern man stellt ein, was man braucht

                      lass und nochmal anydesken - im moment ist mir völlig unklar, was du eigentlich einstellen möchtest - werden wir schon hinbekommen

                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                      1 Antwort Letzte Antwort
                      0
                      • WszeneW Wszene

                        @liv-in-sky
                        Ich habe jetzt dein Script soweit verpfuscht das der Output so aussieht

                        <table class="ws_tabelle_lampen">
                          <tr bgcolor="#151515">
                            <td class="ws_tabelle_lampen_name" align=left>&ensp;Esstisch&ensp;</td>
                            <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Esstisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-on.png height="35"
                                  width="35"></button>&ensp;</td>
                          </tr>
                          <tr bgcolor="#000000">
                            <td class="ws_tabelle_lampen_name" align=left>&ensp;Sofatisch&ensp;</td>
                            <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Sofatisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35"
                                  width="35"></button>&ensp;</td>
                          </tr>
                          <tr bgcolor="#151515">
                            <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe klein&ensp;</td>
                            <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                          </tr>
                          <tr bgcolor="#000000">
                            <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe groß&ensp;</td>
                            <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                          </tr>
                          <tr bgcolor="#151515">
                            <td class="ws_tabelle_lampen_name" align=left>&ensp;Schlafzimmer-Lampe&ensp;</td>
                            <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.02_Schlafzimmer.01_Schalter.Schalter-Schlafzimmerlampe')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png
                                  height="35" width="35"></button>&ensp;</td>
                          </tr>
                          <tr bgcolor="#000000">
                            <td class="ws_tabelle_lampen_name" align=left>&ensp;Abstellkammer-Lampe&ensp;</td>
                            <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                          </tr>
                        </table>
                        <script>
                          function setOnDblClickCustom(myvalue) {
                            var Self = this;
                            var objID = myvalue;
                            Self.servConn.getStates(objID, (error, states) => {
                              console.log(states);
                              Self.servConn.setState(objID, !states[objID].val);
                            });
                          }
                        </script>
                        

                        Was ich leider nicht finde (da fehlt mir sie Erfahrung) sind die "bgcolor" und die ganzen Lehrzeichen
                        Ich hätte es gern das der Output so aussieht

                        <table class="ws_tabelle_lampen">
                          <tr class="ws_zeile1_bgcolor">
                            <td class="ws_tabelle_lampen_name" align=left>&ensp;Esstisch&ensp;</td>
                            <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Esstisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-on.png height="35"
                                  width="35"></button>&ensp;</td>
                          </tr>
                          <tr class="ws_zeile2_bgcolor">
                            <td class="ws_tabelle_lampen_name" align=left>&ensp;Sofatisch&ensp;</td>
                            <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.01_Stube.01_Schalter.Schalter-Sofatisch')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35"
                                  width="35"></button>&ensp;</td>
                          </tr>
                          <tr class="ws_zeile1_bgcolor">
                            <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe klein&ensp;</td>
                            <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                          </tr>
                          <tr class="ws_zeile2_bgcolor">
                            <td class="ws_tabelle_lampen_name" align=left>&ensp;Stehlampe groß&ensp;</td>
                            <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                          </tr>
                          <tr class="ws_zeile1_bgcolor">
                            <td class="ws_tabelle_lampen_name" align=left>&ensp;Schlafzimmer-Lampe&ensp;</td>
                            <td align=center>&ensp;<button style="border:none; background-color:transparent; value=" toggle" onclick="setOnDblClickCustom('alias.0.02_Schlafzimmer.01_Schalter.Schalter-Schlafzimmerlampe')"><img src=/vis.0/WS-Icons/Lampen/bulb-off.png
                                  height="35" width="35"></button>&ensp;</td>
                          </tr>
                          <tr class="ws_zeile2_bgcolor">
                            <td class="ws_tabelle_lampen_name" align=left>&ensp;Abstellkammer-Lampe&ensp;</td>
                            <td align=center>&ensp;<img src=/vis.0/WS-Icons/Lampen/bulb-off.png height="35" width="35">&ensp;</td>
                          </tr>
                        </table>
                        <script>
                          function setOnDblClickCustom(myvalue) {
                            var Self = this;
                            var objID = myvalue;
                            Self.servConn.getStates(objID, (error, states) => {
                              console.log(states);
                              Self.servConn.setState(objID, !states[objID].val);
                            });
                          }
                        </script>
                        

                        Ideal wäre noch wenn die "img" eine Class bekommen könnten dann könnte ich deren Größe auch in jedem Projekt via CSS anpassen

                        Hier nochmal das Script wie es jetzt bei mir aussieht

                        //@liv-in-sky 2020  4.2.-18:42
                        
                        
                        //HIER WIRD PFAD UND FILENAME DEFINIERT
                        const path = "/htmlexamplesetting.html";                   //FIlenamen definieren
                        const home ='vis.0'                                 //wo soll das file im iobroker-file-system liegen ? (oder z.b auch iqontrol.meta)
                        let   braucheEinFile=false;                          // bei true wird ein file geschrieben
                        let   braucheEinVISWidget=true;                     // bei true wird ein html-tabelle in einen dp geschrieben - siehe nächste zeile
                        //let dpVIS="controll-own.0.AAATEST.TestHTML"         //WICHTIG wenn braucheEinVISWidget auf true gesetzt !!  dp zusätzlich für VIS-HTML-Basic-Widget
                        const farbeSchalterON="lightblue"               // farbe des schalters für ON
                        const farbeSchalterOFF="grey"               // farbe des schalters für OFF
                        
                        //let mySchedule=" */20 * * * * * ";                       //jede minute  
                        //---------------------------------------
                        
                        //HIER DIE SPALTEN ANZAHL DEFINIEREN - jede Spalte einen Wert - in diesem Beispiel sind es 2
                        var htmlFeld1='Standort';       var Feld1lAlign="left";                     // überschrift Tabellen Spalte1 und  Ausrichtung left,right or center
                        var htmlFeld2='Status';         var Feld2lAlign="center";                      // überschrift Tabellen Spalte2 und  Ausrichtung left,right or center
                        
                        //-----------------------------------
                        
                        
                        
                        //hier werden die styles für die tabelle definiert
                        //ÜBERSCHRIFT ÜBER TABELLE
                        let   htmlUberschrift=false;                           // mit Überschrift über der tabelle
                        let   htmlSignature=false;                              // anstatt der Überscghrift eine signature: - kleiner - anliegend
                        const htmlFeldUeber='Batterie Zustand Sensoren';              // Überschrift und Signature
                        const htmlFarbUber="black";                         // Farbe der Überschrift
                        const htmlSchriftWeite="normal";                       // bold, normal - Fettschrift für Überschrift
                        const htmlÜberFontGroesse="18px";                       // schriftgröße überschrift
                        //MEHRERE TABELLEN NEBENEINANDER
                        let   mehrfachTabelle=1;                              // bis zu 4 Tabellen werden nebeneinander geschrieben-  verkürzt das Ganze, dafür etwas breiter - MÖGLICH 1,2,3,oder 4 !!!
                        const trennungsLinie="2";                             //extra trennungslinie bei mehrfachtabellen - evtl auf 0 stellen, wnn htmlRahmenLinien auf none sind
                        const farbetrennungsLinie="white";
                        const htmlFarbZweiteTabelle="white";                // Farbe der Überschrift bei jeder 2.ten Tabelle
                        const htmlFarbTableColorUber="#000000";               // Überschrift in der tabelle - der einzelnen Spalten
                        //ÜBERSCHRIFT SPALTEN
                        const UeberSchriftHöhe="35";                          //Überschrift bekommt mehr Raum - darunter und darüber - Zellenhöhe
                        const LinieUnterUeberschrift="3";                   // Linie nur unter Spaltenüberschrift - 
                        const farbeLinieUnterUeberschrift="white";
                        const groesseUeberschrift=16;
                        const UeberschriftStyle="normal"                     // möglich "bold"
                        //GANZE TABELLE
                        let abstandZelle="1";
                        let farbeUngeradeZeilen="#000000";                     //Farbe für ungerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
                        let farbeGeradeZeilen="#151515";                        //Farbe für gerade Zeilenanzahl - Hintergrund der Spaltenüberschrift bleibt bei htmlFarbTableColorGradient1/2
                        let weite="100%";                                     //Weite der Tabelle
                        let zentriert=true;                                   //ganze tabelle zentriert
                        const backgroundAll="#000000";                        //Hintergrund für die ganze Seite - für direkten aufruf oder iqontrol sichtber - keine auswirkung auf vis-widget
                        const htmlSchriftart="Play-Regular";
                        //const htmlSchriftgroesse="22px";
                        //FELDER UND RAHMEN
                        let   UeberschriftSpalten=false;                // ein- oder ausblenden der spatlen-überschriften
                        const htmlFarbFelderschrift="#BDBDBD";                  // SchriftFarbe der Felder
                        const htmlFarbFelderschrift2="#D8D8D8";                 // SchriftFarbe der Felder für jede 2te Tabelle
                        const htmlFarbTableColorGradient1="#CDD163";          //  Gradient - Hintergrund der Tabelle - Verlauffarbe
                        const htmlFarbTableColorGradient2="#CDD163";          //  Gradient - Hintergrund der Tabelle - ist dieser Wert gleich Gradient1 gibt es keinen verlauf
                        const htmlFarbTableBorderColor="acaa20";             // Farbe des Rahmen - is tdieser gleich den gradienten, sind die rahmen unsichtbar
                        let htmlRahmenLinien="all";                            // Format für Rahmen: MÖGLICH: "none" oder "all" oder "cols" oder "rows"
                        const htmlSpalte1Weite="auto";                   //  Weite der ersten beiden  Spalten oder z.b. 115px
                        
                        // HIER NICHTS  ÄNDERN
                        
                        let borderHelpBottum;
                        let borderHelpRight;
                        let htmlcenterHelp;
                        let htmlcenterHelp2;
                        
                        if(htmlRahmenLinien=="rows") {borderHelpBottum=1;borderHelpRight=0;}
                        if(htmlRahmenLinien=="cols") {borderHelpBottum=0;borderHelpRight=1;}
                        if(htmlRahmenLinien=="none") {borderHelpBottum=0;borderHelpRight=0;}
                        if(htmlRahmenLinien=="all")  {borderHelpBottum=1;borderHelpRight=1;}
                        zentriert ? htmlcenterHelp="auto" : htmlcenterHelp="left";
                        zentriert ? htmlcenterHelp2="center" : htmlcenterHelp2="left";
                        
                        
                        const htmlZentriert=''
                        const htmlStart=    "";
                        //const htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-weight: bold\">"+htmlFeldUeber+"</p>";                    
                        const htmlTabStyle= "<table class=\""+tabelleClass+"\">";
                        const htmlTabUeber1="<tr height=\""+UeberSchriftHöhe+"\" style=\"color:"+htmlFarbTableColorUber+"; font-size: "+groesseUeberschrift+"px; font-weight: "+UeberschriftStyle+" ;  border-bottom: "+LinieUnterUeberschrift+"px solid "+farbeLinieUnterUeberschrift+" \">";
                        const htmlTabUeber3="</tr>";
                        
                        const buttonScript =  '<script> function setOnDblClickCustom( myvalue ) {	var Self = this; var objID = myvalue;	Self.servConn.getStates(objID, (error, states) => {  console.log(states);  Self.servConn.setState(objID, !states[objID].val); }); } </script>'
                        
                        ////NICHTS ÄNDERN  - abhängig von den oben definierten _Spalten - in diesem Beispiel sind es 2
                        
                        var htmlTabUeber2="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+">&ensp;"+htmlFeld2+"&ensp;</td>";
                        var htmlTabUeber2_1="<td width="+htmlSpalte1Weite+" align="+Feld1lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld1+"&ensp;</td><td width="+htmlSpalte1Weite+" align="+Feld2lAlign+" style=\"color:"+htmlFarbZweiteTabelle+"\">&ensp;"+htmlFeld2+
                                          "&ensp;</td>";
                        //------------------------------------------------------
                        
                        
                        var htmlOut="";
                        var mix;
                        var counter;
                        var val1;  var val0;
                        var htmlTabUeber="";
                        
                        function writeHTML(){
                        
                        
                        
                        htmlOut="";
                        
                        counter=-1;
                        htmlTabUeber="";
                        switch (mehrfachTabelle) { 
                          case 1: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber3;  break;
                          case 2: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
                          case 3: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber2+htmlTabUeber3; break;
                          case 4: htmlTabUeber=htmlTabUeber1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber2+htmlTabUeber2_1+htmlTabUeber3; break;
                        };    
                        if (!UeberschriftSpalten) {htmlTabUeber=""}
                        
                        //--------------------------------------------------------------------------------------------------------------------------------------------------
                        //---------hier kommt eure schleife rein counter++, tabelleBind() und tabelleFinish() müssen so integriert bleiben !!!------------------------------
                        //---------alle valx werte müssen von euch bestimmt werden - val0,val1 !!!---------------------------------------------------------------------
                        //--------------------------------------------------------------------------------------------------------------------------------------------------
                        
                        for (var x=0;x<myList.length;x++){
                            counter++;
                            if(myList[x][1]!=null){
                                                  val0  = myList[x][0];
                                                  val1  = myList[x][1]
                          // log(val0)
                                        let valButton=myList[x][2]
                                        
                                        if (myList[x][3]){
                                        val1 ? val1="<button style\=\"border:none\; background-color\:transparent\; value=\"toggle\" onclick=\"setOnDblClickCustom\(\'"+valButton+"\')\">"+"<img src="+symbolSwitchON +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">"+"</button>":
                                                 val1="<button style\=\"border:none\; background-color\:transparent\; value=\"toggle\" onclick=\"setOnDblClickCustom\(\'"+valButton+"\')\">"+"<img src="+symbolSwitchOFF +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">"+"</button>";
                                        } else{
                                           val1 ? val1="<img src="+symbolSwitchON +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">"  : 
                                                  val1="<img src="+symbolSwitchOFF +" height=\""+symbolHoehe+"\" width=\""+symbolBreite+"\">" 
                                            
                                        }
                                     
                                               //   if (val1==false) {val1="❌"} else{val1="✅"}  
                                                 tabelleBind()
                                                   
                                                  }; //Schleifen Ende - je nach schleifenart muss hier etwas geändert werden !!!!!!!!!
                        
                        } tabelleFinish();
                        //------------------------------------------------------------
                        //------------------------------------------------------------
                        //------------------------------------------------------------   
                        
                            // AB HIER NICHTS ÄNDERN - tabelle fertigstellen
                            
                        } // function ende
                        
                        //MAIN:
                        
                        
                        writeHTML();
                        
                        function tabelleBind(){
                              switch (mehrfachTabelle) {  
                                case 1:  if(counter%2==0)         {   htmlOut=htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td class=\""+tabelleClassSpalte1+"\" align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>"; break;  } else
                                                                  {   htmlOut=htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td class=\""+tabelleClassSpalte1+"\" align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>"; break;  }
                        //-------------------------------------
                                case 2:  if(counter%4==0){
                                         if(counter%2==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\" ><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+
                                                           ";\"align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                      else {htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+" style=\"color:"+
                                                            htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td></tr>";} break;
                                }else{
                                         if(counter%2==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+
                                                           "px solid "+farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                      else {htmlOut = htmlOut+"<td  align="+Feld1lAlign+" style=\" color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                         " style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td></tr>";} break;}
                        //-------------------------------------               
                                case 3: if(counter%2==0)   {
                                
                                        if(counter%3==0 )  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                           farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                      else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                                " style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                       else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>";}
                                                                 } break; }else{
                                        if(counter%3==0 )  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                           farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                      else { if(counter%3==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                                " style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                       else    {htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td></tr>";}
                                                                 } break;  }                       
                        //------------------------------------- 
                                case 4: //counter=counter+8 
                                if(counter%8==0)   {
                                
                                         if(counter%4==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeGeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                           farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                          else {if(counter%4==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                                   " style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                       else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+
                                                                                                                  Feld2lAlign+" style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"; color:"+htmlFarbFelderschrift2+
                                                                                                                  "\">&ensp;"+val1+"&ensp;</td></tr>";} 
                                                                                         else    {htmlOut = htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "
                                                                                                  +farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>";}}
                                                                 } break;}else{
                                         if(counter%4==0)  {htmlOut = htmlOut+"<tr bgcolor=\""+farbeUngeradeZeilen+"\"><td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                           farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>"; } 
                                                          else {if(counter%4==1 )  { htmlOut = htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="+Feld2lAlign+
                                                                                   " style=\"border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+";color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td>";} 
                                                                       else    {if(counter%4==3)  { htmlOut= htmlOut+"<td align="+Feld1lAlign+" style=\"color:"+htmlFarbFelderschrift2+"\">&ensp;"+val0+"&ensp;</td><td  align="
                                                                                                                  +Feld2lAlign+" style=\" color:"+htmlFarbFelderschrift2+"\">&ensp;"+val1+"&ensp;</td></tr>";} 
                                                                                         else    {htmlOut = htmlOut = htmlOut+"<td align="+Feld1lAlign+">&ensp;"+val0+"&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+
                                                                                                  farbetrennungsLinie+";\" align="+Feld2lAlign+">&ensp;"+val1+"&ensp;</td>";}}
                                                                 }  break;   }                     
                        
                            } //switch ende
                        
                        }
                        
                        function tabelleFinish() {
                        
                              switch (mehrfachTabelle) {  
                                case 1:    break;
                                case 2:    if(counter%2==0)  htmlOut = htmlOut.replace(/<\/td>$/, '</td><td>&ensp;</td><td>&ensp;</td></tr>'); 
                                                
                                           break;
                                case 3:    if(counter%3==2)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                                           if(counter%3==1)  htmlOut = htmlOut.replace(/<\/td>$/,  '</td><td>test&ensp;</td><td>&ensp;</td></tr>');       
                                           if(counter%3==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");
                                            
                                           break;
                                case 4:    if(counter%4==3)  htmlOut = htmlOut.replace(/<\/td>$/, "</td></tr>");
                                           if(counter%4==2)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td>&ensp;</td></tr>");
                                           if(counter%4==1)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");    
                                           if(counter%4==0)  htmlOut = htmlOut.replace(/<\/td>$/, "</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td style=\" border-right: "+trennungsLinie+"px solid "+farbetrennungsLinie+"\">&ensp;</td><td>&ensp;</td><td>&ensp;</td></tr>");   
                                             
                                           break; }
                                 var htmlUeber=    "<p style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: "+htmlÜberFontGroesse+"; font-weight:"+htmlSchriftWeite+ "\">"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</p>"; 
                              var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 70%; text-align: right;\" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
                               
                               if (!htmlSignature) htmlUnter="";
                                 //Ausgabe über VIS html widget - tabelle in datenpunkt schreiben - html tabelle ohne html header und body
                                  var htmlOutVIS="";
                                //  htmlUberschrift ? htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>" : htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>";
                                   if (htmlUberschrift) 
                                       { zentriert ? htmlOutVIS=htmlZentriert+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript : htmlOutVIS=htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript ;
                        
                                     } else {
                                      zentriert ?  htmlOutVIS=htmlZentriert+htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript :  htmlOutVIS=htmlTabStyle+htmlTabUeber+htmlOut+"</table>"+htmlUnter+ buttonScript;
                        
                                        }
                        
                         // log("bin raus aus tabelleBind");
                                  if (braucheEinVISWidget) setState(dpVIS, htmlOutVIS );
                        
                        var htmlUnter= "<div  style=\"color:"+htmlFarbUber+"; font-family:"+htmlSchriftart+"; font-size: 80%;  text-align: center; \" >"+htmlFeldUeber+"&ensp;&ensp;Last Update: "+formatDate(getDateObject((parseFloat((new Date().getTime())))), "SS:mm:ss");+"</div>"
                        
                        if (!htmlSignature) htmlUnter="";
                        var htmlEnd="</table>"+htmlUnter+"</div></body>";
                        //mit oder ohne überschrift - zentriert oder links
                        htmlUberschrift ? htmlOut=htmlStart+htmlUeber+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd + buttonScript: htmlOut=htmlStart+htmlTabStyle+htmlTabUeber+htmlOut+htmlEnd+ buttonScript;
                        //log(htmlOut);
                        
                        
                        }
                        
                        
                        

                        Ich wäre dir sehr Dankbar wenn du dir das nochmal ansehen könntest

                        PS:
                        Wie kann ich hier im Forum eigentlich den Spoiler-Tag nutzen

                        liv-in-skyL Offline
                        liv-in-skyL Offline
                        liv-in-sky
                        schrieb am zuletzt editiert von
                        #35

                        @wszene

                        oh - ich glaube, ich habe etwas vergessen zu posten - daher kannst du nicht wissen, dass du die bilder verändern kannst

                        mein blockly sieht so aus:

                        Image 2.png

                        ganzes blockly als import zum rauskopieren:

                        <xml xmlns="https://developers.google.com/blockly/xml">
                         <variables>
                           <variable id="U3ge^B{?p,jfAdCjS^R`">myList</variable>
                           <variable id="%bp]2~EOjnEkDJX$NYKl">symbolSwitchOFF</variable>
                           <variable id="UrdtKDQ=Ky.^B@eAuwIJ">i</variable>
                           <variable id="8a-KbCQJUo$]XfcjLaz,">symbolSwitchON</variable>
                           <variable id="sJ5]JS8[cNqh9%*Ncrso">bildgroesseBreit</variable>
                           <variable id="I@+oLMb^;SY|ctFo/=gF">datenpunkte</variable>
                           <variable id="y)eN7.8HDTNy:0QIRpvu">namen</variable>
                           <variable id="_lOTy#(65qHkTUC-#qv-">bildgroesseHoch</variable>
                           <variable id="j!r]d|0)OZ`?7?E5+uc,">dpVIS</variable>
                           <variable id="zg5`*,uA4%`Fg5L@=CAI">schaltbar</variable>
                           <variable id="}K$K4dup~Vnv!`[}vnQy">Liste</variable>
                           <variable id="Z=?7wCQ1-49/,bxoE1#|">counter</variable>
                         </variables>
                         <block type="comment" id="[j=,#tJ/I,.*8^Z3Wzs{" x="-237" y="-662">
                           <field name="COMMENT">images - speicherort in vis</field>
                           <next>
                             <block type="variables_set" id="~?/2.OORH76[^b$|2(5R">
                               <field name="VAR" id="%bp]2~EOjnEkDJX$NYKl">symbolSwitchOFF</field>
                               <value name="VALUE">
                                 <block type="text" id="3bPoXd(8*3scn9U;eE@/">
                                   <field name="TEXT">/vis.0/armin/img/bulb-off.png</field>
                                 </block>
                               </value>
                               <next>
                                 <block type="variables_set" id="uXbCEVuXS=h+,,EVEHwY">
                                   <field name="VAR" id="8a-KbCQJUo$]XfcjLaz,">symbolSwitchON</field>
                                   <value name="VALUE">
                                     <block type="text" id="%srfTYVdD%f}KeATVB(a">
                                       <field name="TEXT">/vis.0/armin/img/bulb-on.png</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="variables_set" id="5Jd+nCw{/0S8ZXm^lw[c">
                                       <field name="VAR" id="sJ5]JS8[cNqh9%*Ncrso">bildgroesseBreit</field>
                                       <value name="VALUE">
                                         <block type="math_number" id="Q=0a1hd-^LWLgqgiNaGD">
                                           <field name="NUM">40</field>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="variables_set" id=":=cNBc1~N::48F5P5Q7Z">
                                           <field name="VAR" id="_lOTy#(65qHkTUC-#qv-">bildgroesseHoch</field>
                                           <value name="VALUE">
                                             <block type="math_number" id="Je;:%9eTu14ub:1{hve*">
                                               <field name="NUM">45</field>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="comment" id="xcpOj.{NS!eYll{PHKR*">
                                               <field name="COMMENT">tabelle - speicherort</field>
                                               <next>
                                                 <block type="variables_set" id=":esye3=24O%w1CSt1}0H">
                                                   <field name="VAR" id="j!r]d|0)OZ`?7?E5+uc,">dpVIS</field>
                                                   <value name="VALUE">
                                                     <block type="text" id="n{gM;m:9Bopp9FhtB2$Q">
                                                       <field name="TEXT">controll-own.0.AAATEST.TestHTML</field>
                                                     </block>
                                                   </value>
                                                   <next>
                                                     <block type="comment" id=".$=_}0|2u$~bQ?mpEmWQ">
                                                       <field name="COMMENT">namen rechte spalte</field>
                                                       <next>
                                                         <block type="comment" id="XdqJd0}0:IV.@B%SPJ,l">
                                                           <field name="COMMENT">anzahl namen und datenpunkte müssn GLEICH sein!!!!</field>
                                                           <next>
                                                             <block type="variables_set" id="%,}7!+#]4L;%k~3~$U`j">
                                                               <field name="VAR" id="y)eN7.8HDTNy:0QIRpvu">namen</field>
                                                               <value name="VALUE">
                                                                 <block type="lists_create_with" id="3v;AGsHBw|Ity4%0%LBm">
                                                                   <mutation items="3"></mutation>
                                                                   <value name="ADD0">
                                                                     <block type="text" id="bquXlWOyq%x)l~Kd)#!$">
                                                                       <field name="TEXT">Sonoff 1</field>
                                                                     </block>
                                                                   </value>
                                                                   <value name="ADD1">
                                                                     <block type="text" id="kM.VWCCP(2KFbJzRuLZ}">
                                                                       <field name="TEXT">Sonoff 17</field>
                                                                     </block>
                                                                   </value>
                                                                   <value name="ADD2">
                                                                     <block type="text" id="AI[54NK3pOd_V.qP8;*#">
                                                                       <field name="TEXT">Sonoff 16 - nur Bild</field>
                                                                     </block>
                                                                   </value>
                                                                 </block>
                                                               </value>
                                                               <next>
                                                                 <block type="comment" id="y*eI7Z{I[{FGyQ@.T0W:">
                                                                   <field name="COMMENT">zu prüfende datenpunkte</field>
                                                                   <next>
                                                                     <block type="variables_set" id="T?^D@#slt^U_c38k?Qf$">
                                                                       <field name="VAR" id="I@+oLMb^;SY|ctFo/=gF">datenpunkte</field>
                                                                       <value name="VALUE">
                                                                         <block type="lists_create_with" id="~vT)*f@e74d7nmI~aku}">
                                                                           <mutation items="3"></mutation>
                                                                           <value name="ADD0">
                                                                             <block type="field_oid" id=":5hC4z,DJzE{mD!gGfxv">
                                                                               <field name="oid">sonoff.1.Sonoff1.POWER1</field>
                                                                             </block>
                                                                           </value>
                                                                           <value name="ADD1">
                                                                             <block type="field_oid" id="J%gkw).sCndBA`url,w2">
                                                                               <field name="oid">sonoff.0.Sonoff17.POWER</field>
                                                                             </block>
                                                                           </value>
                                                                           <value name="ADD2">
                                                                             <block type="field_oid" id="em_^Z$R~84*%,Q:upd*g">
                                                                               <field name="oid">sonoff.0.Sonoff16.POWER</field>
                                                                             </block>
                                                                           </value>
                                                                         </block>
                                                                       </value>
                                                                       <next>
                                                                         <block type="comment" id="y7bQkqCW4$J4.)r@8m0;">
                                                                           <field name="COMMENT">schaltbar ja oder nein</field>
                                                                           <next>
                                                                             <block type="variables_set" id="`t^uKi@b)1@^b/dZ+7JU">
                                                                               <field name="VAR" id="zg5`*,uA4%`Fg5L@=CAI">schaltbar</field>
                                                                               <value name="VALUE">
                                                                                 <block type="lists_create_with" id="A:wP[,~5zpo$qCxtYka(">
                                                                                   <mutation items="3"></mutation>
                                                                                   <value name="ADD0">
                                                                                     <block type="logic_boolean" id="1-FJmRW,V{X:!MvV[MY^">
                                                                                       <field name="BOOL">TRUE</field>
                                                                                     </block>
                                                                                   </value>
                                                                                   <value name="ADD1">
                                                                                     <block type="logic_boolean" id="g68n+RpF=_:+Tmr)U9ng">
                                                                                       <field name="BOOL">FALSE</field>
                                                                                     </block>
                                                                                   </value>
                                                                                   <value name="ADD2">
                                                                                     <block type="logic_boolean" id="Ychmk6yl=No2OTW}]NDK">
                                                                                       <field name="BOOL">TRUE</field>
                                                                                     </block>
                                                                                   </value>
                                                                                 </block>
                                                                               </value>
                                                                               <next>
                                                                                 <block type="on_ext" id="6rVl-%ae1[BpvH+7]z0b">
                                                                                   <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                                                                   <field name="CONDITION">ne</field>
                                                                                   <field name="ACK_CONDITION"></field>
                                                                                   <value name="OID0">
                                                                                     <shadow type="field_oid" id="E1e;zY}}83B2UCtTz8hx">
                                                                                       <field name="oid">default</field>
                                                                                     </shadow>
                                                                                     <block type="variables_get" id="Zf!Yc?uOmKG#K{Uu9S8b">
                                                                                       <field name="VAR" id="I@+oLMb^;SY|ctFo/=gF">datenpunkte</field>
                                                                                     </block>
                                                                                   </value>
                                                                                   <statement name="STATEMENT">
                                                                                     <block type="variables_set" id="sWqJxa.MyY?*y-S}mHPz">
                                                                                       <field name="VAR" id="}K$K4dup~Vnv!`[}vnQy">Liste</field>
                                                                                       <value name="VALUE">
                                                                                         <block type="lists_create_with" id="s1KG8o;:gtQ6DjJt@w9I">
                                                                                           <mutation items="0"></mutation>
                                                                                         </block>
                                                                                       </value>
                                                                                       <next>
                                                                                         <block type="variables_set" id="R6exgi+-F7xoKVW/[NE.">
                                                                                           <field name="VAR" id="Z=?7wCQ1-49/,bxoE1#|">counter</field>
                                                                                           <value name="VALUE">
                                                                                             <block type="math_number" id="AHHG~c/mltPLQ?]Ik;5M">
                                                                                               <field name="NUM">-1</field>
                                                                                             </block>
                                                                                           </value>
                                                                                           <next>
                                                                                             <block type="controls_for" id="JNNaZlB+?Z04HOx2Gu(?">
                                                                                               <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                                                                               <value name="FROM">
                                                                                                 <shadow type="math_number" id="WrG3EpK=zNPCy+mYu[+@">
                                                                                                   <field name="NUM">0</field>
                                                                                                 </shadow>
                                                                                                 <block type="math_number" id="G9ch35ui-=)nUvTqVCOT">
                                                                                                   <field name="NUM">0</field>
                                                                                                 </block>
                                                                                               </value>
                                                                                               <value name="TO">
                                                                                                 <shadow type="math_number" id="_/06^]%/`/nYCqXnIr%]">
                                                                                                   <field name="NUM">10</field>
                                                                                                 </shadow>
                                                                                                 <block type="math_arithmetic" id="3_Kfs9BtIWPdu;w[c{KZ">
                                                                                                   <field name="OP">MINUS</field>
                                                                                                   <value name="A">
                                                                                                     <shadow type="math_number" id="NQ%A+vSNxHXGUM,]d78|">
                                                                                                       <field name="NUM">1</field>
                                                                                                     </shadow>
                                                                                                     <block type="lists_length" id="h+EEOFLY?/C$y6;7liOQ">
                                                                                                       <value name="VALUE">
                                                                                                         <block type="variables_get" id="{QW1kH)96}J?c@l:ZX@N">
                                                                                                           <field name="VAR" id="y)eN7.8HDTNy:0QIRpvu">namen</field>
                                                                                                         </block>
                                                                                                       </value>
                                                                                                     </block>
                                                                                                   </value>
                                                                                                   <value name="B">
                                                                                                     <shadow type="math_number" id="_2$*hu8I]a*4FLcXDq6P">
                                                                                                       <field name="NUM">1</field>
                                                                                                     </shadow>
                                                                                                     <block type="math_number" id="PQG~7f)%K=+n8FY@nTNg">
                                                                                                       <field name="NUM">1</field>
                                                                                                     </block>
                                                                                                   </value>
                                                                                                 </block>
                                                                                               </value>
                                                                                               <value name="BY">
                                                                                                 <shadow type="math_number" id="7;%P*{n!b.1Xz)aAfk#m">
                                                                                                   <field name="NUM">1</field>
                                                                                                 </shadow>
                                                                                                 <block type="math_number" id="3ZVDn%UWJCgghp=ke5_$">
                                                                                                   <field name="NUM">1</field>
                                                                                                 </block>
                                                                                               </value>
                                                                                               <statement name="DO">
                                                                                                 <block type="lists_setIndex" id="-zUiNM(}BsoQ].Hu.|mx">
                                                                                                   <mutation at="true"></mutation>
                                                                                                   <field name="MODE">SET</field>
                                                                                                   <field name="WHERE">FROM_START</field>
                                                                                                   <value name="LIST">
                                                                                                     <block type="variables_get" id="Q0Hct8=ken4m!!W]js)U">
                                                                                                       <field name="VAR" id="}K$K4dup~Vnv!`[}vnQy">Liste</field>
                                                                                                     </block>
                                                                                                   </value>
                                                                                                   <value name="AT">
                                                                                                     <block type="math_arithmetic" id="XfsC3YCPWv`.2L,?[}DO">
                                                                                                       <field name="OP">ADD</field>
                                                                                                       <value name="A">
                                                                                                         <shadow type="math_number">
                                                                                                           <field name="NUM">1</field>
                                                                                                         </shadow>
                                                                                                         <block type="variables_get" id="yff.r|]h@7J[7mVX9qps">
                                                                                                           <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                                                                                         </block>
                                                                                                       </value>
                                                                                                       <value name="B">
                                                                                                         <shadow type="math_number">
                                                                                                           <field name="NUM">1</field>
                                                                                                         </shadow>
                                                                                                         <block type="math_number" id="};+tby,HZtiP=yo4B?T$">
                                                                                                           <field name="NUM">1</field>
                                                                                                         </block>
                                                                                                       </value>
                                                                                                     </block>
                                                                                                   </value>
                                                                                                   <value name="TO">
                                                                                                     <block type="lists_create_with" id="6a@[p]s)BEL%k0#L3dY#">
                                                                                                       <mutation items="4"></mutation>
                                                                                                       <value name="ADD0">
                                                                                                         <block type="lists_getIndex" id="WP?9V`Ax1s6W9F7SQ4w,">
                                                                                                           <mutation statement="false" at="true"></mutation>
                                                                                                           <field name="MODE">GET</field>
                                                                                                           <field name="WHERE">FROM_START</field>
                                                                                                           <value name="VALUE">
                                                                                                             <block type="variables_get" id="+qq.av],CDOw9trIdImN">
                                                                                                               <field name="VAR" id="y)eN7.8HDTNy:0QIRpvu">namen</field>
                                                                                                             </block>
                                                                                                           </value>
                                                                                                           <value name="AT">
                                                                                                             <block type="math_arithmetic" id="(omAgkYl:o0+@,=9lJ4J">
                                                                                                               <field name="OP">ADD</field>
                                                                                                               <value name="A">
                                                                                                                 <shadow type="math_number">
                                                                                                                   <field name="NUM">1</field>
                                                                                                                 </shadow>
                                                                                                                 <block type="variables_get" id="VB.*bdT*60.t/HnVu[Ki">
                                                                                                                   <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                                                                                                 </block>
                                                                                                               </value>
                                                                                                               <value name="B">
                                                                                                                 <shadow type="math_number">
                                                                                                                   <field name="NUM">1</field>
                                                                                                                 </shadow>
                                                                                                                 <block type="math_number" id="olC0vHqztBHOI{|z,)If">
                                                                                                                   <field name="NUM">1</field>
                                                                                                                 </block>
                                                                                                               </value>
                                                                                                             </block>
                                                                                                           </value>
                                                                                                         </block>
                                                                                                       </value>
                                                                                                       <value name="ADD1">
                                                                                                         <block type="get_value_var" id="HveQcZt3Hj-Jpk=([FCZ">
                                                                                                           <field name="ATTR">val</field>
                                                                                                           <value name="OID">
                                                                                                             <shadow type="text" id="etr=A:avqF6}d)}k(k~a">
                                                                                                               <field name="TEXT"></field>
                                                                                                             </shadow>
                                                                                                             <block type="lists_getIndex" id="mI2YYTmqK(F9_f9=AWYC">
                                                                                                               <mutation statement="false" at="true"></mutation>
                                                                                                               <field name="MODE">GET</field>
                                                                                                               <field name="WHERE">FROM_START</field>
                                                                                                               <value name="VALUE">
                                                                                                                 <block type="variables_get" id="|TY^+rk;})ed^N$#p_pd">
                                                                                                                   <field name="VAR" id="I@+oLMb^;SY|ctFo/=gF">datenpunkte</field>
                                                                                                                 </block>
                                                                                                               </value>
                                                                                                               <value name="AT">
                                                                                                                 <block type="math_arithmetic" id="E9y(38IsNTv%(r0::LIY">
                                                                                                                   <field name="OP">ADD</field>
                                                                                                                   <value name="A">
                                                                                                                     <shadow type="math_number">
                                                                                                                       <field name="NUM">1</field>
                                                                                                                     </shadow>
                                                                                                                     <block type="variables_get" id="-gW3MQMvL%r`!D=x=qFw">
                                                                                                                       <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                                                                                                     </block>
                                                                                                                   </value>
                                                                                                                   <value name="B">
                                                                                                                     <shadow type="math_number">
                                                                                                                       <field name="NUM">1</field>
                                                                                                                     </shadow>
                                                                                                                     <block type="math_number" id="`.v0F+9G9phaAEwHws,:">
                                                                                                                       <field name="NUM">1</field>
                                                                                                                     </block>
                                                                                                                   </value>
                                                                                                                 </block>
                                                                                                               </value>
                                                                                                             </block>
                                                                                                           </value>
                                                                                                         </block>
                                                                                                       </value>
                                                                                                       <value name="ADD2">
                                                                                                         <block type="lists_getIndex" id="H^@q`G[tG:Y3:ZT$X8xz">
                                                                                                           <mutation statement="false" at="true"></mutation>
                                                                                                           <field name="MODE">GET</field>
                                                                                                           <field name="WHERE">FROM_START</field>
                                                                                                           <value name="VALUE">
                                                                                                             <block type="variables_get" id="X(Z@($Xrq#KDw~M_5$9e">
                                                                                                               <field name="VAR" id="I@+oLMb^;SY|ctFo/=gF">datenpunkte</field>
                                                                                                             </block>
                                                                                                           </value>
                                                                                                           <value name="AT">
                                                                                                             <block type="math_arithmetic" id="F[tF)M{Gh)R62FpWSzDY">
                                                                                                               <field name="OP">ADD</field>
                                                                                                               <value name="A">
                                                                                                                 <shadow type="math_number">
                                                                                                                   <field name="NUM">1</field>
                                                                                                                 </shadow>
                                                                                                                 <block type="variables_get" id="Y(6lEzjTe7qwF`wT7m=V">
                                                                                                                   <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                                                                                                 </block>
                                                                                                               </value>
                                                                                                               <value name="B">
                                                                                                                 <shadow type="math_number">
                                                                                                                   <field name="NUM">1</field>
                                                                                                                 </shadow>
                                                                                                                 <block type="math_number" id="z1r`}S%8e6G$KZjz)SXi">
                                                                                                                   <field name="NUM">1</field>
                                                                                                                 </block>
                                                                                                               </value>
                                                                                                             </block>
                                                                                                           </value>
                                                                                                         </block>
                                                                                                       </value>
                                                                                                       <value name="ADD3">
                                                                                                         <block type="lists_getIndex" id="-6`3u0]GG+3z}}OFm2s@">
                                                                                                           <mutation statement="false" at="true"></mutation>
                                                                                                           <field name="MODE">GET</field>
                                                                                                           <field name="WHERE">FROM_START</field>
                                                                                                           <value name="VALUE">
                                                                                                             <block type="variables_get" id="Q4av1{lCW1;0F:eUJvP#">
                                                                                                               <field name="VAR" id="zg5`*,uA4%`Fg5L@=CAI">schaltbar</field>
                                                                                                             </block>
                                                                                                           </value>
                                                                                                           <value name="AT">
                                                                                                             <block type="math_arithmetic" id="Z73k;}AOC;8+G/qSIat}">
                                                                                                               <field name="OP">ADD</field>
                                                                                                               <value name="A">
                                                                                                                 <shadow type="math_number">
                                                                                                                   <field name="NUM">1</field>
                                                                                                                 </shadow>
                                                                                                                 <block type="variables_get" id="{.#7[BqG#yjpydkt1F^{">
                                                                                                                   <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                                                                                                 </block>
                                                                                                               </value>
                                                                                                               <value name="B">
                                                                                                                 <shadow type="math_number">
                                                                                                                   <field name="NUM">1</field>
                                                                                                                 </shadow>
                                                                                                                 <block type="math_number" id="w~6-dt0bLnsDygL*/Teb">
                                                                                                                   <field name="NUM">1</field>
                                                                                                                 </block>
                                                                                                               </value>
                                                                                                             </block>
                                                                                                           </value>
                                                                                                         </block>
                                                                                                       </value>
                                                                                                     </block>
                                                                                                   </value>
                                                                                                 </block>
                                                                                               </statement>
                                                                                               <next>
                                                                                                 <block type="debug" id="bx6Y8-8%U,x}ZR}zDMCw" disabled="true">
                                                                                                   <field name="Severity">log</field>
                                                                                                   <value name="TEXT">
                                                                                                     <shadow type="text" id="!yx$lDKS!DgZlryJ)%{j">
                                                                                                       <field name="TEXT">test</field>
                                                                                                     </shadow>
                                                                                                     <block type="variables_get" id="IL]^hG54Ej,lhuXqBi2=">
                                                                                                       <field name="VAR" id="}K$K4dup~Vnv!`[}vnQy">Liste</field>
                                                                                                     </block>
                                                                                                   </value>
                                                                                                   <next>
                                                                                                     <block type="procedures_callcustomnoreturn" id="1tTT@y+3fd)eq*EKO%`c">
                                                                                                       <mutation name="tabelleMit3Werten">
                                                                                                         <arg name="myList"></arg>
                                                                                                       </mutation>
                                                                                                       <value name="ARG0">
                                                                                                         <block type="variables_get" id="T3wm-=*hL+H$*f^H0[J9">
                                                                                                           <field name="VAR" id="}K$K4dup~Vnv!`[}vnQy">Liste</field>
                                                                                                         </block>
                                                                                                       </value>
                                                                                                     </block>
                                                                                                   </next>
                                                                                                 </block>
                                                                                               </next>
                                                                                             </block>
                                                                                           </next>
                                                                                         </block>
                                                                                       </next>
                                                                                     </block>
                                                                                   </statement>
                                                                                 </block>
                                                                               </next>
                                                                             </block>
                                                                           </next>
                                                                         </block>
                                                                       </next>
                                                                     </block>
                                                                   </next>
                                                                 </block>
                                                               </next>
                                                             </block>
                                                           </next>
                                                         </block>
                                                       </next>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </next>
                                             </block>
                                           </next>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                               </next>
                             </block>
                           </next>
                         </block>
                         <block type="procedures_defcustomnoreturn" id="d+PXd6N1nBTxz}gaM@Co" x="463" y="-263">
                           <mutation statements="false">
                             <arg name="myList" varid="U3ge^B{?p,jfAdCjS^R`"></arg>
                           </mutation>
                           <field name="NAME">tabelleMit3Werten</field>
                           <field name="SCRIPT">ICAvL0BsaXYtaW4tc2t5IDIwMjAgIDQuMi4tMTg6NDINCg0KDQogLy9ISUVSIFdJUkQgUEZBRCBVTkQgRklMRU5BTUUgREVGSU5JRVJUDQogY29uc3QgcGF0aCA9ICIvaHRtbGV4YW1wbGVzZXR0aW5nLmh0bWwiOyAgICAgICAgICAgICAgICAgICAvL0ZJbGVuYW1lbiBkZWZpbmllcmVuDQogY29uc3QgaG9tZSA9J3Zpcy4wJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vd28gc29sbCBkYXMgZmlsZSBpbSBpb2Jyb2tlci1maWxlLXN5c3RlbSBsaWVnZW4gPyAob2RlciB6LmIgYXVjaCBpcW9udHJvbC5tZXRhKQ0KIGxldCAgIGJyYXVjaGVFaW5GaWxlPWZhbHNlOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmVpIHRydWUgd2lyZCBlaW4gZmlsZSBnZXNjaHJpZWJlbg0KIGxldCAgIGJyYXVjaGVFaW5WSVNXaWRnZXQ9dHJ1ZTsgICAgICAgICAgICAgICAgICAgICAvLyBiZWkgdHJ1ZSB3aXJkIGVpbiBodG1sLXRhYmVsbGUgaW4gZWluZW4gZHAgZ2VzY2hyaWViZW4gLSBzaWVoZSBuw6RjaHN0ZSB6ZWlsZQ0KIC8vbGV0IGRwVklTPSJjb250cm9sbC1vd24uMC5BQUFURVNULlRlc3RIVE1MIiAgICAgICAgIC8vV0lDSFRJRyB3ZW5uIGJyYXVjaGVFaW5WSVNXaWRnZXQgYXVmIHRydWUgZ2VzZXR6dCAhISAgZHAgenVzw6R0emxpY2ggZsO8ciBWSVMtSFRNTC1CYXNpYy1XaWRnZXQNCiBjb25zdCBmYXJiZVNjaGFsdGVyT049ImxpZ2h0Ymx1ZSIgICAgICAgICAgICAgICAvLyBmYXJiZSBkZXMgc2NoYWx0ZXJzIGbDvHIgT04NCmNvbnN0IGZhcmJlU2NoYWx0ZXJPRkY9ImdyZXkiICAgICAgICAgICAgICAgLy8gZmFyYmUgZGVzIHNjaGFsdGVycyBmw7xyIE9GRg0KDQogLy9sZXQgbXlTY2hlZHVsZT0iICovMjAgKiAqICogKiAqICI7ICAgICAgICAgICAgICAgICAgICAgICAvL2plZGUgbWludXRlICANCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovL0hJRVIgRElFIFNQQUxURU4gQU5aQUhMIERFRklOSUVSRU4gLSBqZWRlIFNwYWx0ZSBlaW5lbiBXZXJ0IC0gaW4gZGllc2VtIEJlaXNwaWVsIHNpbmQgZXMgMg0KdmFyIGh0bWxGZWxkMT0nU3RhbmRvcnQnOyAgICAgICB2YXIgRmVsZDFsQWxpZ249ImxlZnQiOyAgICAgICAgICAgICAgICAgICAgIC8vIMO8YmVyc2NocmlmdCBUYWJlbGxlbiBTcGFsdGUxIHVuZCAgQXVzcmljaHR1bmcgbGVmdCxyaWdodCBvciBjZW50ZXINCnZhciBodG1sRmVsZDI9J1N0YXR1cyc7ICAgICAgICAgdmFyIEZlbGQybEFsaWduPSJjZW50ZXIiOyAgICAgICAgICAgICAgICAgICAgICAvLyDDvGJlcnNjaHJpZnQgVGFiZWxsZW4gU3BhbHRlMiB1bmQgIEF1c3JpY2h0dW5nIGxlZnQscmlnaHQgb3IgY2VudGVyDQoNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KDQoNCi8vaGllciB3ZXJkZW4gZGllIHN0eWxlcyBmw7xyIGRpZSB0YWJlbGxlIGRlZmluaWVydA0KLy/DnEJFUlNDSFJJRlQgw5xCRVIgVEFCRUxMRQ0KbGV0ICAgaHRtbFViZXJzY2hyaWZ0PWZhbHNlOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1pdCDDnGJlcnNjaHJpZnQgw7xiZXIgZGVyIHRhYmVsbGUNCmxldCAgIGh0bWxTaWduYXR1cmU9ZmFsc2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5zdGF0dCBkZXIgw5xiZXJzY2docmlmdCBlaW5lIHNpZ25hdHVyZTogLSBrbGVpbmVyIC0gYW5saWVnZW5kDQpjb25zdCBodG1sRmVsZFVlYmVyPSdCYXR0ZXJpZSBadXN0YW5kIFNlbnNvcmVuJzsgICAgICAgICAgICAgIC8vIMOcYmVyc2NocmlmdCB1bmQgU2lnbmF0dXJlDQpjb25zdCBodG1sRmFyYlViZXI9ImJsYWNrIjsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFyYmUgZGVyIMOcYmVyc2NocmlmdA0KY29uc3QgaHRtbFNjaHJpZnRXZWl0ZT0ibm9ybWFsIjsgICAgICAgICAgICAgICAgICAgICAgIC8vIGJvbGQsIG5vcm1hbCAtIEZldHRzY2hyaWZ0IGbDvHIgw5xiZXJzY2hyaWZ0DQpjb25zdCBodG1sw5xiZXJGb250R3JvZXNzZT0iMThweCI7ICAgICAgICAgICAgICAgICAgICAgICAvLyBzY2hyaWZ0Z3LDtsOfZSDDvGJlcnNjaHJpZnQNCi8vTUVIUkVSRSBUQUJFTExFTiBORUJFTkVJTkFOREVSDQpsZXQgICBtZWhyZmFjaFRhYmVsbGU9MTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiaXMgenUgNCBUYWJlbGxlbiB3ZXJkZW4gbmViZW5laW5hbmRlciBnZXNjaHJpZWJlbi0gIHZlcmvDvHJ6dCBkYXMgR2FuemUsIGRhZsO8ciBldHdhcyBicmVpdGVyIC0gTcOWR0xJQ0ggMSwyLDMsb2RlciA0ICEhIQ0KY29uc3QgdHJlbm51bmdzTGluaWU9IjIiOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9leHRyYSB0cmVubnVuZ3NsaW5pZSBiZWkgbWVocmZhY2h0YWJlbGxlbiAtIGV2dGwgYXVmIDAgc3RlbGxlbiwgd25uIGh0bWxSYWhtZW5MaW5pZW4gYXVmIG5vbmUgc2luZA0KY29uc3QgZmFyYmV0cmVubnVuZ3NMaW5pZT0id2hpdGUiOw0KY29uc3QgaHRtbEZhcmJad2VpdGVUYWJlbGxlPSJ3aGl0ZSI7ICAgICAgICAgICAgICAgIC8vIEZhcmJlIGRlciDDnGJlcnNjaHJpZnQgYmVpIGplZGVyIDIudGVuIFRhYmVsbGUNCmNvbnN0IGh0bWxGYXJiVGFibGVDb2xvclViZXI9IiMwMDAwMDAiOyAgICAgICAgICAgICAgIC8vIMOcYmVyc2NocmlmdCBpbiBkZXIgdGFiZWxsZSAtIGRlciBlaW56ZWxuZW4gU3BhbHRlbg0KLy/DnEJFUlNDSFJJRlQgU1BBTFRFTg0KY29uc3QgVWViZXJTY2hyaWZ0SMO2aGU9IjM1IjsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vw5xiZXJzY2hyaWZ0IGJla29tbXQgbWVociBSYXVtIC0gZGFydW50ZXIgdW5kIGRhcsO8YmVyIC0gWmVsbGVuaMO2aGUNCmNvbnN0IExpbmllVW50ZXJVZWJlcnNjaHJpZnQ9IjMiOyAgICAgICAgICAgICAgICAgICAvLyBMaW5pZSBudXIgdW50ZXIgU3BhbHRlbsO8YmVyc2NocmlmdCAtIA0KY29uc3QgZmFyYmVMaW5pZVVudGVyVWViZXJzY2hyaWZ0PSJ3aGl0ZSI7DQpjb25zdCBncm9lc3NlVWViZXJzY2hyaWZ0PTE2Ow0KY29uc3QgVWViZXJzY2hyaWZ0U3R5bGU9Im5vcm1hbCIgICAgICAgICAgICAgICAgICAgICAvLyBtw7ZnbGljaCAiYm9sZCINCi8vR0FOWkUgVEFCRUxMRQ0KbGV0IGFic3RhbmRaZWxsZT0iMSI7DQpsZXQgZmFyYmVVbmdlcmFkZVplaWxlbj0iIzAwMDAwMCI7ICAgICAgICAgICAgICAgICAgICAgLy9GYXJiZSBmw7xyIHVuZ2VyYWRlIFplaWxlbmFuemFobCAtIEhpbnRlcmdydW5kIGRlciBTcGFsdGVuw7xiZXJzY2hyaWZ0IGJsZWlidCBiZWkgaHRtbEZhcmJUYWJsZUNvbG9yR3JhZGllbnQxLzINCmxldCBmYXJiZUdlcmFkZVplaWxlbj0iIzE1MTUxNSI7ICAgICAgICAgICAgICAgICAgICAgICAgLy9GYXJiZSBmw7xyIGdlcmFkZSBaZWlsZW5hbnphaGwgLSBIaW50ZXJncnVuZCBkZXIgU3BhbHRlbsO8YmVyc2NocmlmdCBibGVpYnQgYmVpIGh0bWxGYXJiVGFibGVDb2xvckdyYWRpZW50MS8yDQpsZXQgd2VpdGU9IjQwMHB4IjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9XZWl0ZSBkZXIgVGFiZWxsZQ0KbGV0IHplbnRyaWVydD10cnVlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9nYW56ZSB0YWJlbGxlIHplbnRyaWVydA0KY29uc3QgYmFja2dyb3VuZEFsbD0iIzAwMDAwMCI7ICAgICAgICAgICAgICAgICAgICAgICAgLy9IaW50ZXJncnVuZCBmw7xyIGRpZSBnYW56ZSBTZWl0ZSAtIGbDvHIgZGlyZWt0ZW4gYXVmcnVmIG9kZXIgaXFvbnRyb2wgc2ljaHRiZXIgLSBrZWluZSBhdXN3aXJrdW5nIGF1ZiB2aXMtd2lkZ2V0DQpjb25zdCBodG1sU2NocmlmdGFydD0iSGVsdmV0aWNhIjsNCmNvbnN0IGh0bWxTY2hyaWZ0Z3JvZXNzZT0iMThweCI7DQovL0ZFTERFUiBVTkQgUkFITUVODQpsZXQgICBVZWJlcnNjaHJpZnRTcGFsdGVuPXRydWU7ICAgICAgICAgICAgICAgIC8vIGVpbi0gb2RlciBhdXNibGVuZGVuIGRlciBzcGF0bGVuLcO8YmVyc2NocmlmdGVuDQpjb25zdCBodG1sRmFyYkZlbGRlcnNjaHJpZnQ9IiNCREJEQkQiOyAgICAgICAgICAgICAgICAgIC8vIFNjaHJpZnRGYXJiZSBkZXIgRmVsZGVyDQpjb25zdCBodG1sRmFyYkZlbGRlcnNjaHJpZnQyPSIjRDhEOEQ4IjsgICAgICAgICAgICAgICAgIC8vIFNjaHJpZnRGYXJiZSBkZXIgRmVsZGVyIGbDvHIgamVkZSAydGUgVGFiZWxsZQ0KY29uc3QgaHRtbEZhcmJUYWJsZUNvbG9yR3JhZGllbnQxPSIjQ0REMTYzIjsgICAgICAgICAgLy8gIEdyYWRpZW50IC0gSGludGVyZ3J1bmQgZGVyIFRhYmVsbGUgLSBWZXJsYXVmZmFyYmUNCmNvbnN0IGh0bWxGYXJiVGFibGVDb2xvckdyYWRpZW50Mj0iI0NERDE2MyI7ICAgICAgICAgIC8vICBHcmFkaWVudCAtIEhpbnRlcmdydW5kIGRlciBUYWJlbGxlIC0gaXN0IGRpZXNlciBXZXJ0IGdsZWljaCBHcmFkaWVudDEgZ2lidCBlcyBrZWluZW4gdmVybGF1Zg0KY29uc3QgaHRtbEZhcmJUYWJsZUJvcmRlckNvbG9yPSJncmV5IjsgICAgICAgICAgICAgLy8gRmFyYmUgZGVzIFJhaG1lbiAtIGlzIHRkaWVzZXIgZ2xlaWNoIGRlbiBncmFkaWVudGVuLCBzaW5kIGRpZSByYWhtZW4gdW5zaWNodGJhcg0KbGV0IGh0bWxSYWhtZW5MaW5pZW49ImNvbHMiOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3JtYXQgZsO8ciBSYWhtZW46IE3DlkdMSUNIOiAibm9uZSIgb2RlciAiYWxsIiBvZGVyICJjb2xzIiBvZGVyICJyb3dzIg0KY29uc3QgaHRtbFNwYWx0ZTFXZWl0ZT0iYXV0byI7ICAgICAgICAgICAgICAgICAgIC8vICBXZWl0ZSBkZXIgZXJzdGVuIGJlaWRlbiAgU3BhbHRlbiBvZGVyIHouYi4gMTE1cHgNCg0KLy8gSElFUiBOSUNIVFMgIMOETkRFUk4NCg0KbGV0IGJvcmRlckhlbHBCb3R0dW07DQpsZXQgYm9yZGVySGVscFJpZ2h0Ow0KbGV0IGh0bWxjZW50ZXJIZWxwOw0KbGV0IGh0bWxjZW50ZXJIZWxwMjsNCg0KaWYoaHRtbFJhaG1lbkxpbmllbj09InJvd3MiKSB7Ym9yZGVySGVscEJvdHR1bT0xO2JvcmRlckhlbHBSaWdodD0wO30NCmlmKGh0bWxSYWhtZW5MaW5pZW49PSJjb2xzIikge2JvcmRlckhlbHBCb3R0dW09MDtib3JkZXJIZWxwUmlnaHQ9MTt9DQppZihodG1sUmFobWVuTGluaWVuPT0ibm9uZSIpIHtib3JkZXJIZWxwQm90dHVtPTA7Ym9yZGVySGVscFJpZ2h0PTA7fQ0KaWYoaHRtbFJhaG1lbkxpbmllbj09ImFsbCIpICB7Ym9yZGVySGVscEJvdHR1bT0xO2JvcmRlckhlbHBSaWdodD0xO30NCnplbnRyaWVydCA/IGh0bWxjZW50ZXJIZWxwPSJhdXRvIiA6IGh0bWxjZW50ZXJIZWxwPSJsZWZ0IjsNCnplbnRyaWVydCA/IGh0bWxjZW50ZXJIZWxwMj0iY2VudGVyIiA6IGh0bWxjZW50ZXJIZWxwMj0ibGVmdCI7DQoNCg0KY29uc3QgaHRtbFplbnRyaWVydD0nPGNlbnRlcj4nDQpjb25zdCBodG1sU3RhcnQ9ICAgICI8IURPQ1RZUEUgaHRtbD48aHRtbCBsYW5nPVwiZGVcIj48aGVhZD48dGl0bGU+Vm9ybGFnZTwvdGl0bGU+PG1ldGEgaHR0cC1lcXVpdj1cImNvbnRlbnQtdHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLThcIj4iKw0KICAgICAgICAgICAgICAgICAgIjxzdHlsZT4gKiB7ICBtYXJnaW46IDA7fSBib2R5IHtiYWNrZ3JvdW5kLWNvbG9yOiAiK2JhY2tncm91bmRBbGwrIjsgbWFyZ2luOiAwIGF1dG87ICB9IisNCiAgICAgICAgICAgICAgICAgICIgcCB7cGFkZGluZy10b3A6IDEwcHg7IHBhZGRpbmctYm90dG9tOiAxMHB4OyB0ZXh0LWFsaWduOiAiK2h0bWxjZW50ZXJIZWxwMisifSIrDQogICAgICAgICAgICAgICAgIC8vICIgZGl2IHsgbWFyZ2luOiAwIGF1dG87ICBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvO30iKw0KICAgICAgICAgICAgICAgICAgIiB0ZCB7IHBhZGRpbmc6IithYnN0YW5kWmVsbGUrInB4OyBib3JkZXI6MHB4IHNvbGlkICIraHRtbEZhcmJUYWJsZUJvcmRlckNvbG9yKyI7ICBib3JkZXItcmlnaHQ6Iitib3JkZXJIZWxwUmlnaHQrInB4IHNvbGlkICIraHRtbEZhcmJUYWJsZUJvcmRlckNvbG9yKyI7Ym9yZGVyLWJvdHRvbToiK2JvcmRlckhlbHBCb3R0dW0rInB4IHNvbGlkICIraHRtbEZhcmJUYWJsZUJvcmRlckNvbG9yKyI7fSIrIA0KICAgICAgICAgICAgICAgICAgIiB0YWJsZSB7IHdpZHRoOiAiK3dlaXRlKyI7ICBtYXJnaW46IDAgIitodG1sY2VudGVySGVscCsiOyBib3JkZXI6MXB4IHNvbGlkICIraHRtbEZhcmJUYWJsZUJvcmRlckNvbG9yKyI7IGJvcmRlci1zcGFjaW5nPVwiIithYnN0YW5kWmVsbGUrIjBweFwiIDsgfSIrICAgLy8gbWFyZ2luIG1hY2h0IGNlbnRlcg0KICAgICAgICAgICAgICAgICAgInRkOm50aC1jaGlsZCgxKSB7d2lkdGg6ICIraHRtbFNwYWx0ZTFXZWl0ZSsifSIrInRkOm50aC1jaGlsZCgyKSB7d2lkdGg6IitodG1sU3BhbHRlMVdlaXRlKyJ9IisNCiAgICAgICAgICAgICAgICAgICIgPC9zdHlsZT48L2hlYWQ+PGJvZHk+IDxkaXY+IjsNCi8vY29uc3QgaHRtbFVlYmVyPSAgICAiPHAgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiVWJlcisiOyBmb250LWZhbWlseToiK2h0bWxTY2hyaWZ0YXJ0KyI7IGZvbnQtd2VpZ2h0OiBib2xkXCI+IitodG1sRmVsZFVlYmVyKyI8L3A+IjsgICAgICAgICAgICAgICAgICAgIA0KY29uc3QgaHRtbFRhYlN0eWxlPSAiPHRhYmxlIGJvcmRlcmNvbG9yPVwiIitodG1sRmFyYlRhYmxlQm9yZGVyQ29sb3IrIlwiIGJvcmRlcj1cIjJweFwiIGNlbGxzcGFjaW5nPVwiIithYnN0YW5kWmVsbGUrIlwiIGNlbGxwYWRkaW5nPVwiIithYnN0YW5kWmVsbGUrIlwiIHdpZHRoPVwiIit3ZWl0ZSsiXCIgcnVsZXM9XCIiK2h0bWxSYWhtZW5MaW5pZW4rIlwiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQrIjsgIGZvbnQtc2l6ZToiK2h0bWxTY2hyaWZ0Z3JvZXNzZSsNCiAgICAgICAgICAgICAgICAgICAgICI7IGZvbnQtZmFtaWx5OiIraHRtbFNjaHJpZnRhcnQrIjtiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDJkZWcsIitodG1sRmFyYlRhYmxlQ29sb3JHcmFkaWVudDIrIiwiK2h0bWxGYXJiVGFibGVDb2xvckdyYWRpZW50MSsiKTtcIj4iOw0KY29uc3QgaHRtbFRhYlVlYmVyMT0iPHRyIGhlaWdodD1cIiIrVWViZXJTY2hyaWZ0SMO2aGUrIlwiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYlRhYmxlQ29sb3JVYmVyKyI7IGZvbnQtc2l6ZTogIitncm9lc3NlVWViZXJzY2hyaWZ0KyJweDsgZm9udC13ZWlnaHQ6ICIrVWViZXJzY2hyaWZ0U3R5bGUrIiA7ICBib3JkZXItYm90dG9tOiAiK0xpbmllVW50ZXJVZWJlcnNjaHJpZnQrInB4IHNvbGlkICIrZmFyYmVMaW5pZVVudGVyVWViZXJzY2hyaWZ0KyIgXCI+IjsNCmNvbnN0IGh0bWxUYWJVZWJlcjM9IjwvdHI+IjsNCg0KY29uc3QgYnV0dG9uU2NyaXB0ID0gICc8c2NyaXB0PiBmdW5jdGlvbiBzZXRPbkRibENsaWNrQ3VzdG9tKCBteXZhbHVlICkgewl2YXIgU2VsZiA9IHRoaXM7IHZhciBvYmpJRCA9IG15dmFsdWU7CVNlbGYuc2VydkNvbm4uZ2V0U3RhdGVzKG9iaklELCAoZXJyb3IsIHN0YXRlcykgPT4geyAgY29uc29sZS5sb2coc3RhdGVzKTsgIFNlbGYuc2VydkNvbm4uc2V0U3RhdGUob2JqSUQsICFzdGF0ZXNbb2JqSURdLnZhbCk7IH0pOyB9IDwvc2NyaXB0PicNCg0KLy8vL05JQ0hUUyDDhE5ERVJOICAtIGFiaMOkbmdpZyB2b24gZGVuIG9iZW4gZGVmaW5pZXJ0ZW4gX1NwYWx0ZW4gLSBpbiBkaWVzZW0gQmVpc3BpZWwgc2luZCBlcyAyDQoNCnZhciBodG1sVGFiVWViZXIyPSI8dGQgd2lkdGg9IitodG1sU3BhbHRlMVdlaXRlKyIgYWxpZ249IitGZWxkMWxBbGlnbisiPiZlbnNwOyIraHRtbEZlbGQxKyImZW5zcDs8L3RkPjx0ZCB3aWR0aD0iK2h0bWxTcGFsdGUxV2VpdGUrIiBhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7IitodG1sRmVsZDIrIiZlbnNwOzwvdGQ+IjsNCnZhciBodG1sVGFiVWViZXIyXzE9Ijx0ZCB3aWR0aD0iK2h0bWxTcGFsdGUxV2VpdGUrIiBhbGlnbj0iK0ZlbGQxbEFsaWduKyIgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiWndlaXRlVGFiZWxsZSsiXCI+JmVuc3A7IitodG1sRmVsZDErIiZlbnNwOzwvdGQ+PHRkIHdpZHRoPSIraHRtbFNwYWx0ZTFXZWl0ZSsiIGFsaWduPSIrRmVsZDJsQWxpZ24rIiBzdHlsZT1cImNvbG9yOiIraHRtbEZhcmJad2VpdGVUYWJlbGxlKyJcIj4mZW5zcDsiK2h0bWxGZWxkMisNCiAgICAgICAgICAgICAgICAgICAgIiZlbnNwOzwvdGQ+IjsNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogDQoNCnZhciBodG1sT3V0PSIiOw0KdmFyIG1peDsNCnZhciBjb3VudGVyOw0KdmFyIHZhbDE7ICB2YXIgdmFsMDsNCnZhciBodG1sVGFiVWViZXI9IiI7DQoNCmZ1bmN0aW9uIHdyaXRlSFRNTCgpew0KDQoNCg0KaHRtbE91dD0iIjsNCg0KY291bnRlcj0tMTsNCmh0bWxUYWJVZWJlcj0iIjsNCnN3aXRjaCAobWVocmZhY2hUYWJlbGxlKSB7IA0KICAgIGNhc2UgMTogaHRtbFRhYlVlYmVyPWh0bWxUYWJVZWJlcjEraHRtbFRhYlVlYmVyMitodG1sVGFiVWViZXIzOyAgYnJlYWs7DQogICAgY2FzZSAyOiBodG1sVGFiVWViZXI9aHRtbFRhYlVlYmVyMStodG1sVGFiVWViZXIyK2h0bWxUYWJVZWJlcjJfMStodG1sVGFiVWViZXIzOyBicmVhazsNCiAgICBjYXNlIDM6IGh0bWxUYWJVZWJlcj1odG1sVGFiVWViZXIxK2h0bWxUYWJVZWJlcjIraHRtbFRhYlVlYmVyMl8xK2h0bWxUYWJVZWJlcjIraHRtbFRhYlVlYmVyMzsgYnJlYWs7DQogICAgY2FzZSA0OiBodG1sVGFiVWViZXI9aHRtbFRhYlVlYmVyMStodG1sVGFiVWViZXIyK2h0bWxUYWJVZWJlcjJfMStodG1sVGFiVWViZXIyK2h0bWxUYWJVZWJlcjJfMStodG1sVGFiVWViZXIzOyBicmVhazsNCn07ICAgIA0KaWYgKCFVZWJlcnNjaHJpZnRTcGFsdGVuKSB7aHRtbFRhYlVlYmVyPSIifQ0KDQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vLS0tLS0tLS0taGllciBrb21tdCBldXJlIHNjaGxlaWZlIHJlaW4gY291bnRlcisrLCB0YWJlbGxlQmluZCgpIHVuZCB0YWJlbGxlRmluaXNoKCkgbcO8c3NlbiBzbyBpbnRlZ3JpZXJ0IGJsZWliZW4gISEhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8tLS0tLS0tLS1hbGxlIHZhbHggd2VydGUgbcO8c3NlbiB2b24gZXVjaCBiZXN0aW1tdCB3ZXJkZW4gLSB2YWwwLHZhbDEgISEhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogIGZvciAobGV0IHg9MDt4PG15TGlzdC5sZW5ndGg7eCsrKXsNCiAgICAgIGNvdW50ZXIrKzsNCiAgICAgLy8gbG9nKCItLS0iICtteUxpc3RbeF1bMF0gKQ0KICAgICAgaWYobXlMaXN0W3hdWzBdIT1udWxsKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwwICA9IG15TGlzdFt4XVswXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwxICA9IG15TGlzdFt4XVsxXQ0KICAgIC8vIGxvZyh2YWwwKQ0KICAgICAgICAgICAgICAgICAgbGV0IHZhbEJ1dHRvbj1teUxpc3RbeF1bMl0NCiAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgaWYgKG15TGlzdFt4XVszXSl7DQogICAgICAgICAgICAgICAgICB2YWwxID8gdmFsMT0iPGJ1dHRvbiBzdHlsZVw9XCJib3JkZXI6bm9uZVw7IGJhY2tncm91bmQtY29sb3JcOnRyYW5zcGFyZW50XDsgY29sb3JcOndoaXRlXDsgZm9udFwtc2l6ZVw6MWVtXDsgdGV4dFwtYWxpZ246bGVmdFwiIHZhbHVlPVwidG9nZ2xlXCIgb25jbGljaz1cInNldE9uRGJsQ2xpY2tDdXN0b21cKFwnIit2YWxCdXR0b24rIlwnKVwiPiIrIjxpbWcgc3JjPSIrc3ltYm9sU3dpdGNoT04gKyIgaGVpZ2h0PVwiIitiaWxkZ3JvZXNzZUhvY2grIlwiIHdpZHRoPVwiIitiaWxkZ3JvZXNzZUJyZWl0KyJcIj4iKyAiPC9idXR0b24+IiA6DQogICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwxPSI8YnV0dG9uIHN0eWxlXD1cImJvcmRlcjpub25lXDsgYmFja2dyb3VuZC1jb2xvclw6dHJhbnNwYXJlbnRcOyBjb2xvclw6d2hpdGVcOyBmb250XC1zaXplXDoxZW1cOyB0ZXh0XC1hbGlnbjpsZWZ0XCIgdmFsdWU9XCJ0b2dnbGVcIiBvbmNsaWNrPVwic2V0T25EYmxDbGlja0N1c3RvbVwoXCciK3ZhbEJ1dHRvbisiXCcpXCI+IisiPGltZyBzcmM9IitzeW1ib2xTd2l0Y2hPRkYgKyIgaGVpZ2h0PVwiIitiaWxkZ3JvZXNzZUhvY2grIlwiIHdpZHRoPVwiIitiaWxkZ3JvZXNzZUJyZWl0KyJcIj4iKyI8L2J1dHRvbj4iOw0KICAgICAgICAgICAgICAgICAgfSBlbHNlew0KICAgICAgICAgICAgICAgICAgICAgdmFsMSA/IHZhbDE9IjxpbWcgc3JjPSIrc3ltYm9sU3dpdGNoT04gKyIgaGVpZ2h0PVwiIitiaWxkZ3JvZXNzZUhvY2grIlwiIHdpZHRoPVwiIitiaWxkZ3JvZXNzZUJyZWl0KyJcIj4iICA6IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbDE9IjxpbWcgc3JjPSIrc3ltYm9sU3dpdGNoT0ZGICsiIGhlaWdodD1cIiIrYmlsZGdyb2Vzc2VIb2NoKyJcIiB3aWR0aD1cIiIrYmlsZGdyb2Vzc2VCcmVpdCsiXCI+IiANCiAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgaWYgKHZhbDE9PWZhbHNlKSB7dmFsMT0i4p2MIn0gZWxzZXt2YWwxPSLinIUifSAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJlbGxlQmluZCgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07IC8vU2NobGVpZmVuIEVuZGUgLSBqZSBuYWNoIHNjaGxlaWZlbmFydCBtdXNzIGhpZXIgZXR3YXMgZ2XDpG5kZXJ0IHdlcmRlbiAhISEhISEhISENCg0KfSB0YWJlbGxlRmluaXNoKCk7DQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgDQoNCiAgICAgIC8vIEFCIEhJRVIgTklDSFRTIMOETkRFUk4gLSB0YWJlbGxlIGZlcnRpZ3N0ZWxsZW4NCiAgICAgIA0KfSAvLyBmdW5jdGlvbiBlbmRlDQogDQogLy9NQUlOOg0KICANCg0KIHdyaXRlSFRNTCgpOw0KDQogZnVuY3Rpb24gdGFiZWxsZUJpbmQoKXsNCiAgICAgICAgc3dpdGNoIChtZWhyZmFjaFRhYmVsbGUpIHsgIA0KICAgICAgICAgIGNhc2UgMTogIGlmKGNvdW50ZXIlMj09MCkgICAgICAgICB7ICAgaHRtbE91dD1odG1sT3V0KyI8dHIgYmdjb2xvcj1cIiIrZmFyYmVHZXJhZGVaZWlsZW4rIlwiPjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyI+JmVuc3A7Iit2YWwwKyImZW5zcDs8L3RkPjx0ZCBhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPjwvdHI+IjsgYnJlYWs7ICB9IGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIGh0bWxPdXQ9aHRtbE91dCsiPHRyIGJnY29sb3I9XCIiK2ZhcmJlVW5nZXJhZGVaZWlsZW4rIlwiPjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyI+JmVuc3A7Iit2YWwwKyImZW5zcDs8L3RkPjx0ZCBhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPjwvdHI+IjsgYnJlYWs7ICB9DQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgICAgICBjYXNlIDI6ICBpZihjb3VudGVyJTQ9PTApew0KICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ZXIlMj09MCkgIHtodG1sT3V0ID0gaHRtbE91dCsiPHRyIGJnY29sb3I9XCIiK2ZhcmJlR2VyYWRlWmVpbGVuKyJcIiA+PHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIj4mZW5zcDsiK3ZhbDArIiZlbnNwOzwvdGQ+PHRkIHN0eWxlPVwiIGJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsicHggc29saWQgIitmYXJiZXRyZW5udW5nc0xpbmllKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7XCJhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPiI7IH0gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge2h0bWxPdXQgPSBodG1sT3V0KyI8dGQgYWxpZ249IitGZWxkMWxBbGlnbisiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4mZW5zcDsiK3ZhbDArIiZlbnNwOzwvdGQ+PHRkICBhbGlnbj0iK0ZlbGQybEFsaWduKyIgc3R5bGU9XCJjb2xvcjoiKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4mZW5zcDsiK3ZhbDErIiZlbnNwOzwvdGQ+PC90cj4iO30gYnJlYWs7DQogICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgICAgaWYoY291bnRlciUyPT0wKSAge2h0bWxPdXQgPSBodG1sT3V0KyI8dHIgYmdjb2xvcj1cIiIrZmFyYmVVbmdlcmFkZVplaWxlbisiXCI+PHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIj4mZW5zcDsiK3ZhbDArIiZlbnNwOzwvdGQ+PHRkIHN0eWxlPVwiIGJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHggc29saWQgIitmYXJiZXRyZW5udW5nc0xpbmllKyI7XCIgYWxpZ249IitGZWxkMmxBbGlnbisiPiZlbnNwOyIrdmFsMSsiJmVuc3A7PC90ZD4iOyB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtodG1sT3V0ID0gaHRtbE91dCsiPHRkICBhbGlnbj0iK0ZlbGQxbEFsaWduKyIgc3R5bGU9XCIgY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4mZW5zcDsiK3ZhbDArIiZlbnNwOzwvdGQ+PHRkICBhbGlnbj0iK0ZlbGQybEFsaWduKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4mZW5zcDsiK3ZhbDErIiZlbnNwOzwvdGQ+PC90cj4iO30gYnJlYWs7fQ0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICAgICAgICAgICAgDQogICAgICAgICAgY2FzZSAzOiBpZihjb3VudGVyJTI9PTApICAgew0KICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgaWYoY291bnRlciUzPT0wICkgIHtodG1sT3V0ID0gaHRtbE91dCsiPHRyIGJnY29sb3I9XCIiK2ZhcmJlR2VyYWRlWmVpbGVuKyJcIj48dGQgYWxpZ249IitGZWxkMWxBbGlnbisiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgc3R5bGU9XCIgYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhcmJldHJlbm51bmdzTGluaWUrIjtcIiBhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPiI7IH0gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyBpZihjb3VudGVyJTM9PTEgKSAgeyBodG1sT3V0ID0gaHRtbE91dCsiPHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIiBzdHlsZT1cImNvbG9yOiIraHRtbEZhcmJGZWxkZXJzY2hyaWZ0MisiXCI+JmVuc3A7Iit2YWwwKyImZW5zcDs8L3RkPjx0ZCAgYWxpZ249IitGZWxkMmxBbGlnbisNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHN0eWxlPVwiYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiK2ZhcmJldHJlbm51bmdzTGluaWUrIjtjb2xvcjoiK2h0bWxGYXJiRmVsZGVyc2NocmlmdDIrIlwiPiZlbnNwOyIrdmFsMSsiJmVuc3A7PC90ZD4iO30gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAgICB7aHRtbE91dCA9IGh0bWxPdXQrIjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyI+JmVuc3A7Iit2YWwwKyImZW5zcDs8L3RkPjx0ZCBhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPjwvdHI+Ijt9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBicmVhazsgfWVsc2V7DQogICAgICAgICAgICAgICAgICBpZihjb3VudGVyJTM9PTAgKSAge2h0bWxPdXQgPSBodG1sT3V0KyI8dHIgYmdjb2xvcj1cIiIrZmFyYmVVbmdlcmFkZVplaWxlbisiXCI+PHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIj4mZW5zcDsiK3ZhbDArIiZlbnNwOzwvdGQ+PHRkIHN0eWxlPVwiIGJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsicHggc29saWQgIisNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXJiZXRyZW5udW5nc0xpbmllKyI7XCIgYWxpZ249IitGZWxkMmxBbGlnbisiPiZlbnNwOyIrdmFsMSsiJmVuc3A7PC90ZD4iOyB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsgaWYoY291bnRlciUzPT0xICkgIHsgaHRtbE91dCA9IGh0bWxPdXQrIjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyIgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiRmVsZGVyc2NocmlmdDIrIlwiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgIGFsaWduPSIrRmVsZDJsQWxpZ24rDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBzdHlsZT1cImJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsicHggc29saWQgIitmYXJiZXRyZW5udW5nc0xpbmllKyI7Y29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4mZW5zcDsiK3ZhbDErIiZlbnNwOzwvdGQ+Ijt9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgICAge2h0bWxPdXQgPSBodG1sT3V0KyI8dGQgYWxpZ249IitGZWxkMWxBbGlnbisiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgYWxpZ249IitGZWxkMmxBbGlnbisiPiZlbnNwOyIrdmFsMSsiJmVuc3A7PC90ZD48L3RyPiI7fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gYnJlYWs7ICB9ICAgICAgICAgICAgICAgICAgICAgICANCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCiAgICAgICAgICBjYXNlIDQ6IC8vY291bnRlcj1jb3VudGVyKzggDQogICAgICAgICAgaWYoY291bnRlciU4PT0wKSAgIHsNCiAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICBpZihjb3VudGVyJTQ9PTApICB7aHRtbE91dCA9IGh0bWxPdXQrIjx0ciBiZ2NvbG9yPVwiIitmYXJiZUdlcmFkZVplaWxlbisiXCI+PHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIj4mZW5zcDsiK3ZhbDArIiZlbnNwOzwvdGQ+PHRkIHN0eWxlPVwiIGJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsicHggc29saWQgIisNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXJiZXRyZW5udW5nc0xpbmllKyI7XCIgYWxpZ249IitGZWxkMmxBbGlnbisiPiZlbnNwOyIrdmFsMSsiJmVuc3A7PC90ZD4iOyB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7aWYoY291bnRlciU0PT0xICkgIHsgaHRtbE91dCA9IGh0bWxPdXQrIjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyIgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiRmVsZGVyc2NocmlmdDIrIlwiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgIGFsaWduPSIrRmVsZDJsQWxpZ24rDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBzdHlsZT1cImNvbG9yOiIraHRtbEZhcmJGZWxkZXJzY2hyaWZ0MisiXCI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPiI7fSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlICAgIHtpZihjb3VudGVyJTQ9PTMpICB7IGh0bWxPdXQ9IGh0bWxPdXQrIjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyIgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiRmVsZGVyc2NocmlmdDIrIlwiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgIGFsaWduPSIrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZlbGQybEFsaWduKyIgc3R5bGU9XCJib3JkZXItcmlnaHQ6ICIrdHJlbm51bmdzTGluaWUrInB4IHNvbGlkICIrZmFyYmV0cmVubnVuZ3NMaW5pZSsiOyBjb2xvcjoiK2h0bWxGYXJiRmVsZGVyc2NocmlmdDIrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIj4mZW5zcDsiK3ZhbDErIiZlbnNwOzwvdGQ+PC90cj4iO30gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAgICB7aHRtbE91dCA9IGh0bWxPdXQgPSBodG1sT3V0KyI8dGQgYWxpZ249IitGZWxkMWxBbGlnbisiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgc3R5bGU9XCIgYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK2ZhcmJldHJlbm51bmdzTGluaWUrIjtcIiBhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPiI7fX0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGJyZWFrO31lbHNlew0KICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ZXIlND09MCkgIHtodG1sT3V0ID0gaHRtbE91dCsiPHRyIGJnY29sb3I9XCIiK2ZhcmJlVW5nZXJhZGVaZWlsZW4rIlwiPjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyI+JmVuc3A7Iit2YWwwKyImZW5zcDs8L3RkPjx0ZCBzdHlsZT1cIiBib3JkZXItcmlnaHQ6ICIrdHJlbm51bmdzTGluaWUrInB4IHNvbGlkICIrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFyYmV0cmVubnVuZ3NMaW5pZSsiO1wiIGFsaWduPSIrRmVsZDJsQWxpZ24rIj4mZW5zcDsiK3ZhbDErIiZlbnNwOzwvdGQ+IjsgfSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge2lmKGNvdW50ZXIlND09MSApICB7IGh0bWxPdXQgPSBodG1sT3V0KyI8dGQgYWxpZ249IitGZWxkMWxBbGlnbisiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4mZW5zcDsiK3ZhbDArIiZlbnNwOzwvdGQ+PHRkICBhbGlnbj0iK0ZlbGQybEFsaWduKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgc3R5bGU9XCJib3JkZXItcmlnaHQ6ICIrdHJlbm51bmdzTGluaWUrInB4IHNvbGlkICIrZmFyYmV0cmVubnVuZ3NMaW5pZSsiO2NvbG9yOiIraHRtbEZhcmJGZWxkZXJzY2hyaWZ0MisiXCI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPiI7fSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlICAgIHtpZihjb3VudGVyJTQ9PTMpICB7IGh0bWxPdXQ9IGh0bWxPdXQrIjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyIgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiRmVsZGVyc2NocmlmdDIrIlwiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgIGFsaWduPSINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK0ZlbGQybEFsaWduKyIgc3R5bGU9XCIgY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4mZW5zcDsiK3ZhbDErIiZlbnNwOzwvdGQ+PC90cj4iO30gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAgICB7aHRtbE91dCA9IGh0bWxPdXQgPSBodG1sT3V0KyI8dGQgYWxpZ249IitGZWxkMWxBbGlnbisiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgc3R5bGU9XCIgYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhcmJldHJlbm51bmdzTGluaWUrIjtcIiBhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPiI7fX0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICBicmVhazsgICB9ICAgICAgICAgICAgICAgICAgICAgDQoNCiAgICAgIH0gLy9zd2l0Y2ggZW5kZQ0KDQogfQ0KDQogZnVuY3Rpb24gdGFiZWxsZUZpbmlzaCgpIHsNCg0KICAgICAgICBzd2l0Y2ggKG1laHJmYWNoVGFiZWxsZSkgeyAgDQogICAgICAgICAgY2FzZSAxOiAgICBicmVhazsNCiAgICAgICAgICBjYXNlIDI6ICAgIGlmKGNvdW50ZXIlMj09MCkgIGh0bWxPdXQgPSBodG1sT3V0LnJlcGxhY2UoLzxcL3RkPiQvLCAnPC90ZD48dGQ+JmVuc3A7PC90ZD48dGQ+JmVuc3A7PC90ZD48L3RyPicpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICBjYXNlIDM6ICAgIGlmKGNvdW50ZXIlMz09MikgIGh0bWxPdXQgPSBodG1sT3V0LnJlcGxhY2UoLzxcL3RkPiQvLCAiPC90ZD48L3RyPiIpOw0KICAgICAgICAgICAgICAgICAgICAgaWYoY291bnRlciUzPT0xKSAgaHRtbE91dCA9IGh0bWxPdXQucmVwbGFjZSgvPFwvdGQ+JC8sICAnPC90ZD48dGQ+JmVuc3A7PC90ZD48dGQ+JmVuc3A7PC90ZD48L3RyPicpOyAgICAgICANCiAgICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ZXIlMz09MCkgIGh0bWxPdXQgPSBodG1sT3V0LnJlcGxhY2UoLzxcL3RkPiQvLCAiPC90ZD48dGQ+JmVuc3A7PC90ZD48dGQgc3R5bGU9XCIgYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiK2ZhcmJldHJlbm51bmdzTGluaWUrIlwiPiZlbnNwOzwvdGQ+PHRkPiZlbnNwOzwvdGQ+PHRkPiZlbnNwOzwvdGQ+PC90cj4iKTsNCiAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgIGNhc2UgNDogICAgaWYoY291bnRlciU0PT0zKSAgaHRtbE91dCA9IGh0bWxPdXQucmVwbGFjZSgvPFwvdGQ+JC8sICI8L3RkPjwvdHI+Iik7DQogICAgICAgICAgICAgICAgICAgICBpZihjb3VudGVyJTQ9PTIpICBodG1sT3V0ID0gaHRtbE91dC5yZXBsYWNlKC88XC90ZD4kLywgIjwvdGQ+PHRkPiZlbnNwOzwvdGQ+PHRkPiZlbnNwOzwvdGQ+PC90cj4iKTsNCiAgICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ZXIlND09MSkgIGh0bWxPdXQgPSBodG1sT3V0LnJlcGxhY2UoLzxcL3RkPiQvLCAiPC90ZD48dGQ+JmVuc3A7PC90ZD48dGQgc3R5bGU9XCIgYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiK2ZhcmJldHJlbm51bmdzTGluaWUrIlwiPiZlbnNwOzwvdGQ+PHRkPiZlbnNwOzwvdGQ+PHRkPiZlbnNwOzwvdGQ+PC90cj4iKTsgICAgDQogICAgICAgICAgICAgICAgICAgICBpZihjb3VudGVyJTQ9PTApICBodG1sT3V0ID0gaHRtbE91dC5yZXBsYWNlKC88XC90ZD4kLywgIjwvdGQ+PHRkPiZlbnNwOzwvdGQ+PHRkIHN0eWxlPVwiIGJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsicHggc29saWQgIitmYXJiZXRyZW5udW5nc0xpbmllKyJcIj4mZW5zcDs8L3RkPjx0ZD4mZW5zcDs8L3RkPjx0ZCBzdHlsZT1cIiBib3JkZXItcmlnaHQ6ICIrdHJlbm51bmdzTGluaWUrInB4IHNvbGlkICIrZmFyYmV0cmVubnVuZ3NMaW5pZSsiXCI+JmVuc3A7PC90ZD48dGQ+JmVuc3A7PC90ZD48dGQ+JmVuc3A7PC90ZD48L3RyPiIpOyAgIA0KICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyB9DQogICAgICAgICAgIHZhciBodG1sVWViZXI9ICAgICI8cCBzdHlsZT1cImNvbG9yOiIraHRtbEZhcmJVYmVyKyI7IGZvbnQtZmFtaWx5OiIraHRtbFNjaHJpZnRhcnQrIjsgZm9udC1zaXplOiAiK2h0bWzDnGJlckZvbnRHcm9lc3NlKyI7IGZvbnQtd2VpZ2h0OiIraHRtbFNjaHJpZnRXZWl0ZSsgIlwiPiIraHRtbEZlbGRVZWJlcisiJmVuc3A7JmVuc3A7TGFzdCBVcGRhdGU6ICIrZm9ybWF0RGF0ZShnZXREYXRlT2JqZWN0KChwYXJzZUZsb2F0KChuZXcgRGF0ZSgpLmdldFRpbWUoKSkpKSksICJTUzptbTpzcyIpOysiPC9wPiI7IA0KICAgICAgICB2YXIgaHRtbFVudGVyPSAiPGRpdiAgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiVWJlcisiOyBmb250LWZhbWlseToiK2h0bWxTY2hyaWZ0YXJ0KyI7IGZvbnQtc2l6ZTogNzAlOyB0ZXh0LWFsaWduOiByaWdodDtcIiA+IitodG1sRmVsZFVlYmVyKyImZW5zcDsmZW5zcDtMYXN0IFVwZGF0ZTogIitmb3JtYXREYXRlKGdldERhdGVPYmplY3QoKHBhcnNlRmxvYXQoKG5ldyBEYXRlKCkuZ2V0VGltZSgpKSkpKSwgIlNTOm1tOnNzIik7KyI8L2Rpdj4iDQogICAgICAgICANCiAgICAgICAgIGlmICghaHRtbFNpZ25hdHVyZSkgaHRtbFVudGVyPSIiOw0KICAgICAgICAgICAvL0F1c2dhYmUgw7xiZXIgVklTIGh0bWwgd2lkZ2V0IC0gdGFiZWxsZSBpbiBkYXRlbnB1bmt0IHNjaHJlaWJlbiAtIGh0bWwgdGFiZWxsZSBvaG5lIGh0bWwgaGVhZGVyIHVuZCBib2R5DQogICAgICAgICAgICB2YXIgaHRtbE91dFZJUz0iIjsNCiAgICAgICAgICAvLyAgaHRtbFViZXJzY2hyaWZ0ID8gaHRtbE91dFZJUz1odG1sVWViZXIraHRtbFRhYlN0eWxlK2h0bWxUYWJVZWJlcitodG1sT3V0KyI8L3RhYmxlPiIgOiBodG1sT3V0VklTPWh0bWxUYWJTdHlsZStodG1sVGFiVWViZXIraHRtbE91dCsiPC90YWJsZT4iOw0KICAgICAgICAgICAgIGlmIChodG1sVWJlcnNjaHJpZnQpIA0KICAgICAgICAgICAgICAgICB7IHplbnRyaWVydCA/IGh0bWxPdXRWSVM9aHRtbFplbnRyaWVydCtodG1sVWViZXIraHRtbFRhYlN0eWxlK2h0bWxUYWJVZWJlcitodG1sT3V0KyI8L3RhYmxlPiIraHRtbFVudGVyKyBidXR0b25TY3JpcHQgOiBodG1sT3V0VklTPWh0bWxVZWJlcitodG1sVGFiU3R5bGUraHRtbFRhYlVlYmVyK2h0bWxPdXQrIjwvdGFibGU+IitodG1sVW50ZXIrIGJ1dHRvblNjcmlwdCA7DQoNCiAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgemVudHJpZXJ0ID8gIGh0bWxPdXRWSVM9aHRtbFplbnRyaWVydCtodG1sVGFiU3R5bGUraHRtbFRhYlVlYmVyK2h0bWxPdXQrIjwvdGFibGU+IitodG1sVW50ZXIrIGJ1dHRvblNjcmlwdCA6ICBodG1sT3V0VklTPWh0bWxUYWJTdHlsZStodG1sVGFiVWViZXIraHRtbE91dCsiPC90YWJsZT4iK2h0bWxVbnRlcisgYnV0dG9uU2NyaXB0Ow0KDQogICAgICAgICAgICAgICAgICB9DQoNCiAgIC8vIGxvZygiYmluIHJhdXMgYXVzIHRhYmVsbGVCaW5kIik7DQogICAgICAgICAgICBpZiAoYnJhdWNoZUVpblZJU1dpZGdldCkgc2V0U3RhdGUoZHBWSVMsIGh0bWxPdXRWSVMgKTsNCg0KICB2YXIgaHRtbFVudGVyPSAiPGRpdiAgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiVWJlcisiOyBmb250LWZhbWlseToiK2h0bWxTY2hyaWZ0YXJ0KyI7IGZvbnQtc2l6ZTogODAlOyAgdGV4dC1hbGlnbjogY2VudGVyOyBcIiA+IitodG1sRmVsZFVlYmVyKyImZW5zcDsmZW5zcDtMYXN0IFVwZGF0ZTogIitmb3JtYXREYXRlKGdldERhdGVPYmplY3QoKHBhcnNlRmxvYXQoKG5ldyBEYXRlKCkuZ2V0VGltZSgpKSkpKSwgIlNTOm1tOnNzIik7KyI8L2Rpdj4iDQogDQogIGlmICghaHRtbFNpZ25hdHVyZSkgaHRtbFVudGVyPSIiOw0KICB2YXIgaHRtbEVuZD0iPC90YWJsZT4iK2h0bWxVbnRlcisiPC9kaXY+PC9ib2R5PiI7DQogIC8vbWl0IG9kZXIgb2huZSDDvGJlcnNjaHJpZnQgLSB6ZW50cmllcnQgb2RlciBsaW5rcw0KIGh0bWxVYmVyc2NocmlmdCA/IGh0bWxPdXQ9aHRtbFN0YXJ0K2h0bWxVZWJlcitodG1sVGFiU3R5bGUraHRtbFRhYlVlYmVyK2h0bWxPdXQraHRtbEVuZCArIGJ1dHRvblNjcmlwdDogaHRtbE91dD1odG1sU3RhcnQraHRtbFRhYlN0eWxlK2h0bWxUYWJVZWJlcitodG1sT3V0K2h0bWxFbmQrIGJ1dHRvblNjcmlwdDsNCiAgLy9sb2coaHRtbE91dCk7DQoNCg0KIH0NCg0K</field>
                           <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                         </block>
                         <block type="math_arithmetic" id=";();%c,XdRtp2qG0fnLn" disabled="true" x="938" y="212">
                           <field name="OP">ADD</field>
                           <value name="A">
                             <shadow type="math_number">
                               <field name="NUM">1</field>
                             </shadow>
                             <block type="variables_get" id="c7_hG$]VNtu*W)j{rgV8">
                               <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                             </block>
                           </value>
                           <value name="B">
                             <shadow type="math_number" id="{kQj+Wg[(_hvMjNH41/3">
                               <field name="NUM">1</field>
                             </shadow>
                           </value>
                         </block>
                         <block type="debug" id="hd*A({[CriUUg1PfZ.0:" disabled="true" x="662" y="662">
                           <field name="Severity">log</field>
                           <value name="TEXT">
                             <shadow type="text">
                               <field name="TEXT">test</field>
                             </shadow>
                             <block type="text_join" id="6qbWj3lR`EWRgS!bsU)9">
                               <mutation items="7"></mutation>
                               <value name="ADD0">
                                 <block type="lists_getIndex" id="q:v0yB%TMb@@O,|TFsEf">
                                   <mutation statement="false" at="true"></mutation>
                                   <field name="MODE">GET</field>
                                   <field name="WHERE">FROM_START</field>
                                   <value name="VALUE">
                                     <block type="variables_get" id="B:q#r-vO?e(nH(1,fUYi">
                                       <field name="VAR" id="I@+oLMb^;SY|ctFo/=gF">datenpunkte</field>
                                     </block>
                                   </value>
                                   <value name="AT">
                                     <block type="math_arithmetic" id=".7}^relhMv#+5EB5NUyG">
                                       <field name="OP">ADD</field>
                                       <value name="A">
                                         <shadow type="math_number">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="variables_get" id="-@Q*,CArwb`sh]coX8-Y">
                                           <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <shadow type="math_number">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="math_number" id="z%fF-%P{6I8[cGa52tbl">
                                           <field name="NUM">1</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <value name="ADD1">
                                 <block type="text" id="RrGQLg*bYNx$Cf?)q3?J">
                                   <field name="TEXT"> ----- </field>
                                 </block>
                               </value>
                               <value name="ADD2">
                                 <block type="get_value_var" id="M9T/ynSkYF@HaETT`Eyb">
                                   <field name="ATTR">val</field>
                                   <value name="OID">
                                     <shadow type="text">
                                       <field name="TEXT"></field>
                                     </shadow>
                                     <block type="lists_getIndex" id="F5;,(y46L0.8pYYWe*c-">
                                       <mutation statement="false" at="true"></mutation>
                                       <field name="MODE">GET</field>
                                       <field name="WHERE">FROM_START</field>
                                       <value name="VALUE">
                                         <block type="variables_get" id="I}*T6VQ~YZnMNd(_M.uH">
                                           <field name="VAR" id="I@+oLMb^;SY|ctFo/=gF">datenpunkte</field>
                                         </block>
                                       </value>
                                       <value name="AT">
                                         <block type="math_arithmetic" id="L)rbTRmd$K%0,`Y;4DLo">
                                           <field name="OP">ADD</field>
                                           <value name="A">
                                             <shadow type="math_number">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="variables_get" id="uPj?[ad+{7oD0{t`Lxv-">
                                               <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                             </block>
                                           </value>
                                           <value name="B">
                                             <shadow type="math_number">
                                               <field name="NUM">1</field>
                                             </shadow>
                                             <block type="math_number" id="f:{KISSaq]Ms1F=DX-B6">
                                               <field name="NUM">1</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <value name="ADD3">
                                 <block type="text" id="n:4!e7wTM!$HN0hpCp/n">
                                   <field name="TEXT"> ----- </field>
                                 </block>
                               </value>
                               <value name="ADD4">
                                 <block type="math_arithmetic" id="c9YOyDRjFHhj+$zn|K^!">
                                   <field name="OP">ADD</field>
                                   <value name="A">
                                     <shadow type="math_number">
                                       <field name="NUM">1</field>
                                     </shadow>
                                     <block type="variables_get" id="{NJKRZr|GLmf6/D?m+@C">
                                       <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                     </block>
                                   </value>
                                   <value name="B">
                                     <shadow type="math_number">
                                       <field name="NUM">1</field>
                                     </shadow>
                                     <block type="math_number" id="H}tXNgxHiGvJHfU_]M$q">
                                       <field name="NUM">1</field>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                               <value name="ADD5">
                                 <block type="text" id="sW#4hSQ|E4.~+C55epV8">
                                   <field name="TEXT"> ----- </field>
                                 </block>
                               </value>
                               <value name="ADD6">
                                 <block type="lists_getIndex" id="d=Eh$X`d=;k+k*D%Get%">
                                   <mutation statement="false" at="true"></mutation>
                                   <field name="MODE">GET</field>
                                   <field name="WHERE">FROM_START</field>
                                   <value name="VALUE">
                                     <block type="variables_get" id="34.ai58K,*d7%VYw~?$6">
                                       <field name="VAR" id="y)eN7.8HDTNy:0QIRpvu">namen</field>
                                     </block>
                                   </value>
                                   <value name="AT">
                                     <block type="math_arithmetic" id="+{$m3XaTRK$WCae==Z]3">
                                       <field name="OP">ADD</field>
                                       <value name="A">
                                         <shadow type="math_number">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="variables_get" id="$%nO:HvF@,@vV[G2E@p8">
                                           <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                         </block>
                                       </value>
                                       <value name="B">
                                         <shadow type="math_number">
                                           <field name="NUM">1</field>
                                         </shadow>
                                         <block type="math_number" id="YsoKj[uAxE8XG~7P)Y_]">
                                           <field name="NUM">1</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                 </block>
                               </value>
                             </block>
                           </value>
                         </block>
                        </xml>
                        

                        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                        WszeneW 1 Antwort Letzte Antwort
                        1
                        • liv-in-skyL liv-in-sky

                          @wszene

                          oh - ich glaube, ich habe etwas vergessen zu posten - daher kannst du nicht wissen, dass du die bilder verändern kannst

                          mein blockly sieht so aus:

                          Image 2.png

                          ganzes blockly als import zum rauskopieren:

                          <xml xmlns="https://developers.google.com/blockly/xml">
                           <variables>
                             <variable id="U3ge^B{?p,jfAdCjS^R`">myList</variable>
                             <variable id="%bp]2~EOjnEkDJX$NYKl">symbolSwitchOFF</variable>
                             <variable id="UrdtKDQ=Ky.^B@eAuwIJ">i</variable>
                             <variable id="8a-KbCQJUo$]XfcjLaz,">symbolSwitchON</variable>
                             <variable id="sJ5]JS8[cNqh9%*Ncrso">bildgroesseBreit</variable>
                             <variable id="I@+oLMb^;SY|ctFo/=gF">datenpunkte</variable>
                             <variable id="y)eN7.8HDTNy:0QIRpvu">namen</variable>
                             <variable id="_lOTy#(65qHkTUC-#qv-">bildgroesseHoch</variable>
                             <variable id="j!r]d|0)OZ`?7?E5+uc,">dpVIS</variable>
                             <variable id="zg5`*,uA4%`Fg5L@=CAI">schaltbar</variable>
                             <variable id="}K$K4dup~Vnv!`[}vnQy">Liste</variable>
                             <variable id="Z=?7wCQ1-49/,bxoE1#|">counter</variable>
                           </variables>
                           <block type="comment" id="[j=,#tJ/I,.*8^Z3Wzs{" x="-237" y="-662">
                             <field name="COMMENT">images - speicherort in vis</field>
                             <next>
                               <block type="variables_set" id="~?/2.OORH76[^b$|2(5R">
                                 <field name="VAR" id="%bp]2~EOjnEkDJX$NYKl">symbolSwitchOFF</field>
                                 <value name="VALUE">
                                   <block type="text" id="3bPoXd(8*3scn9U;eE@/">
                                     <field name="TEXT">/vis.0/armin/img/bulb-off.png</field>
                                   </block>
                                 </value>
                                 <next>
                                   <block type="variables_set" id="uXbCEVuXS=h+,,EVEHwY">
                                     <field name="VAR" id="8a-KbCQJUo$]XfcjLaz,">symbolSwitchON</field>
                                     <value name="VALUE">
                                       <block type="text" id="%srfTYVdD%f}KeATVB(a">
                                         <field name="TEXT">/vis.0/armin/img/bulb-on.png</field>
                                       </block>
                                     </value>
                                     <next>
                                       <block type="variables_set" id="5Jd+nCw{/0S8ZXm^lw[c">
                                         <field name="VAR" id="sJ5]JS8[cNqh9%*Ncrso">bildgroesseBreit</field>
                                         <value name="VALUE">
                                           <block type="math_number" id="Q=0a1hd-^LWLgqgiNaGD">
                                             <field name="NUM">40</field>
                                           </block>
                                         </value>
                                         <next>
                                           <block type="variables_set" id=":=cNBc1~N::48F5P5Q7Z">
                                             <field name="VAR" id="_lOTy#(65qHkTUC-#qv-">bildgroesseHoch</field>
                                             <value name="VALUE">
                                               <block type="math_number" id="Je;:%9eTu14ub:1{hve*">
                                                 <field name="NUM">45</field>
                                               </block>
                                             </value>
                                             <next>
                                               <block type="comment" id="xcpOj.{NS!eYll{PHKR*">
                                                 <field name="COMMENT">tabelle - speicherort</field>
                                                 <next>
                                                   <block type="variables_set" id=":esye3=24O%w1CSt1}0H">
                                                     <field name="VAR" id="j!r]d|0)OZ`?7?E5+uc,">dpVIS</field>
                                                     <value name="VALUE">
                                                       <block type="text" id="n{gM;m:9Bopp9FhtB2$Q">
                                                         <field name="TEXT">controll-own.0.AAATEST.TestHTML</field>
                                                       </block>
                                                     </value>
                                                     <next>
                                                       <block type="comment" id=".$=_}0|2u$~bQ?mpEmWQ">
                                                         <field name="COMMENT">namen rechte spalte</field>
                                                         <next>
                                                           <block type="comment" id="XdqJd0}0:IV.@B%SPJ,l">
                                                             <field name="COMMENT">anzahl namen und datenpunkte müssn GLEICH sein!!!!</field>
                                                             <next>
                                                               <block type="variables_set" id="%,}7!+#]4L;%k~3~$U`j">
                                                                 <field name="VAR" id="y)eN7.8HDTNy:0QIRpvu">namen</field>
                                                                 <value name="VALUE">
                                                                   <block type="lists_create_with" id="3v;AGsHBw|Ity4%0%LBm">
                                                                     <mutation items="3"></mutation>
                                                                     <value name="ADD0">
                                                                       <block type="text" id="bquXlWOyq%x)l~Kd)#!$">
                                                                         <field name="TEXT">Sonoff 1</field>
                                                                       </block>
                                                                     </value>
                                                                     <value name="ADD1">
                                                                       <block type="text" id="kM.VWCCP(2KFbJzRuLZ}">
                                                                         <field name="TEXT">Sonoff 17</field>
                                                                       </block>
                                                                     </value>
                                                                     <value name="ADD2">
                                                                       <block type="text" id="AI[54NK3pOd_V.qP8;*#">
                                                                         <field name="TEXT">Sonoff 16 - nur Bild</field>
                                                                       </block>
                                                                     </value>
                                                                   </block>
                                                                 </value>
                                                                 <next>
                                                                   <block type="comment" id="y*eI7Z{I[{FGyQ@.T0W:">
                                                                     <field name="COMMENT">zu prüfende datenpunkte</field>
                                                                     <next>
                                                                       <block type="variables_set" id="T?^D@#slt^U_c38k?Qf$">
                                                                         <field name="VAR" id="I@+oLMb^;SY|ctFo/=gF">datenpunkte</field>
                                                                         <value name="VALUE">
                                                                           <block type="lists_create_with" id="~vT)*f@e74d7nmI~aku}">
                                                                             <mutation items="3"></mutation>
                                                                             <value name="ADD0">
                                                                               <block type="field_oid" id=":5hC4z,DJzE{mD!gGfxv">
                                                                                 <field name="oid">sonoff.1.Sonoff1.POWER1</field>
                                                                               </block>
                                                                             </value>
                                                                             <value name="ADD1">
                                                                               <block type="field_oid" id="J%gkw).sCndBA`url,w2">
                                                                                 <field name="oid">sonoff.0.Sonoff17.POWER</field>
                                                                               </block>
                                                                             </value>
                                                                             <value name="ADD2">
                                                                               <block type="field_oid" id="em_^Z$R~84*%,Q:upd*g">
                                                                                 <field name="oid">sonoff.0.Sonoff16.POWER</field>
                                                                               </block>
                                                                             </value>
                                                                           </block>
                                                                         </value>
                                                                         <next>
                                                                           <block type="comment" id="y7bQkqCW4$J4.)r@8m0;">
                                                                             <field name="COMMENT">schaltbar ja oder nein</field>
                                                                             <next>
                                                                               <block type="variables_set" id="`t^uKi@b)1@^b/dZ+7JU">
                                                                                 <field name="VAR" id="zg5`*,uA4%`Fg5L@=CAI">schaltbar</field>
                                                                                 <value name="VALUE">
                                                                                   <block type="lists_create_with" id="A:wP[,~5zpo$qCxtYka(">
                                                                                     <mutation items="3"></mutation>
                                                                                     <value name="ADD0">
                                                                                       <block type="logic_boolean" id="1-FJmRW,V{X:!MvV[MY^">
                                                                                         <field name="BOOL">TRUE</field>
                                                                                       </block>
                                                                                     </value>
                                                                                     <value name="ADD1">
                                                                                       <block type="logic_boolean" id="g68n+RpF=_:+Tmr)U9ng">
                                                                                         <field name="BOOL">FALSE</field>
                                                                                       </block>
                                                                                     </value>
                                                                                     <value name="ADD2">
                                                                                       <block type="logic_boolean" id="Ychmk6yl=No2OTW}]NDK">
                                                                                         <field name="BOOL">TRUE</field>
                                                                                       </block>
                                                                                     </value>
                                                                                   </block>
                                                                                 </value>
                                                                                 <next>
                                                                                   <block type="on_ext" id="6rVl-%ae1[BpvH+7]z0b">
                                                                                     <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                                                                     <field name="CONDITION">ne</field>
                                                                                     <field name="ACK_CONDITION"></field>
                                                                                     <value name="OID0">
                                                                                       <shadow type="field_oid" id="E1e;zY}}83B2UCtTz8hx">
                                                                                         <field name="oid">default</field>
                                                                                       </shadow>
                                                                                       <block type="variables_get" id="Zf!Yc?uOmKG#K{Uu9S8b">
                                                                                         <field name="VAR" id="I@+oLMb^;SY|ctFo/=gF">datenpunkte</field>
                                                                                       </block>
                                                                                     </value>
                                                                                     <statement name="STATEMENT">
                                                                                       <block type="variables_set" id="sWqJxa.MyY?*y-S}mHPz">
                                                                                         <field name="VAR" id="}K$K4dup~Vnv!`[}vnQy">Liste</field>
                                                                                         <value name="VALUE">
                                                                                           <block type="lists_create_with" id="s1KG8o;:gtQ6DjJt@w9I">
                                                                                             <mutation items="0"></mutation>
                                                                                           </block>
                                                                                         </value>
                                                                                         <next>
                                                                                           <block type="variables_set" id="R6exgi+-F7xoKVW/[NE.">
                                                                                             <field name="VAR" id="Z=?7wCQ1-49/,bxoE1#|">counter</field>
                                                                                             <value name="VALUE">
                                                                                               <block type="math_number" id="AHHG~c/mltPLQ?]Ik;5M">
                                                                                                 <field name="NUM">-1</field>
                                                                                               </block>
                                                                                             </value>
                                                                                             <next>
                                                                                               <block type="controls_for" id="JNNaZlB+?Z04HOx2Gu(?">
                                                                                                 <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                                                                                 <value name="FROM">
                                                                                                   <shadow type="math_number" id="WrG3EpK=zNPCy+mYu[+@">
                                                                                                     <field name="NUM">0</field>
                                                                                                   </shadow>
                                                                                                   <block type="math_number" id="G9ch35ui-=)nUvTqVCOT">
                                                                                                     <field name="NUM">0</field>
                                                                                                   </block>
                                                                                                 </value>
                                                                                                 <value name="TO">
                                                                                                   <shadow type="math_number" id="_/06^]%/`/nYCqXnIr%]">
                                                                                                     <field name="NUM">10</field>
                                                                                                   </shadow>
                                                                                                   <block type="math_arithmetic" id="3_Kfs9BtIWPdu;w[c{KZ">
                                                                                                     <field name="OP">MINUS</field>
                                                                                                     <value name="A">
                                                                                                       <shadow type="math_number" id="NQ%A+vSNxHXGUM,]d78|">
                                                                                                         <field name="NUM">1</field>
                                                                                                       </shadow>
                                                                                                       <block type="lists_length" id="h+EEOFLY?/C$y6;7liOQ">
                                                                                                         <value name="VALUE">
                                                                                                           <block type="variables_get" id="{QW1kH)96}J?c@l:ZX@N">
                                                                                                             <field name="VAR" id="y)eN7.8HDTNy:0QIRpvu">namen</field>
                                                                                                           </block>
                                                                                                         </value>
                                                                                                       </block>
                                                                                                     </value>
                                                                                                     <value name="B">
                                                                                                       <shadow type="math_number" id="_2$*hu8I]a*4FLcXDq6P">
                                                                                                         <field name="NUM">1</field>
                                                                                                       </shadow>
                                                                                                       <block type="math_number" id="PQG~7f)%K=+n8FY@nTNg">
                                                                                                         <field name="NUM">1</field>
                                                                                                       </block>
                                                                                                     </value>
                                                                                                   </block>
                                                                                                 </value>
                                                                                                 <value name="BY">
                                                                                                   <shadow type="math_number" id="7;%P*{n!b.1Xz)aAfk#m">
                                                                                                     <field name="NUM">1</field>
                                                                                                   </shadow>
                                                                                                   <block type="math_number" id="3ZVDn%UWJCgghp=ke5_$">
                                                                                                     <field name="NUM">1</field>
                                                                                                   </block>
                                                                                                 </value>
                                                                                                 <statement name="DO">
                                                                                                   <block type="lists_setIndex" id="-zUiNM(}BsoQ].Hu.|mx">
                                                                                                     <mutation at="true"></mutation>
                                                                                                     <field name="MODE">SET</field>
                                                                                                     <field name="WHERE">FROM_START</field>
                                                                                                     <value name="LIST">
                                                                                                       <block type="variables_get" id="Q0Hct8=ken4m!!W]js)U">
                                                                                                         <field name="VAR" id="}K$K4dup~Vnv!`[}vnQy">Liste</field>
                                                                                                       </block>
                                                                                                     </value>
                                                                                                     <value name="AT">
                                                                                                       <block type="math_arithmetic" id="XfsC3YCPWv`.2L,?[}DO">
                                                                                                         <field name="OP">ADD</field>
                                                                                                         <value name="A">
                                                                                                           <shadow type="math_number">
                                                                                                             <field name="NUM">1</field>
                                                                                                           </shadow>
                                                                                                           <block type="variables_get" id="yff.r|]h@7J[7mVX9qps">
                                                                                                             <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                                                                                           </block>
                                                                                                         </value>
                                                                                                         <value name="B">
                                                                                                           <shadow type="math_number">
                                                                                                             <field name="NUM">1</field>
                                                                                                           </shadow>
                                                                                                           <block type="math_number" id="};+tby,HZtiP=yo4B?T$">
                                                                                                             <field name="NUM">1</field>
                                                                                                           </block>
                                                                                                         </value>
                                                                                                       </block>
                                                                                                     </value>
                                                                                                     <value name="TO">
                                                                                                       <block type="lists_create_with" id="6a@[p]s)BEL%k0#L3dY#">
                                                                                                         <mutation items="4"></mutation>
                                                                                                         <value name="ADD0">
                                                                                                           <block type="lists_getIndex" id="WP?9V`Ax1s6W9F7SQ4w,">
                                                                                                             <mutation statement="false" at="true"></mutation>
                                                                                                             <field name="MODE">GET</field>
                                                                                                             <field name="WHERE">FROM_START</field>
                                                                                                             <value name="VALUE">
                                                                                                               <block type="variables_get" id="+qq.av],CDOw9trIdImN">
                                                                                                                 <field name="VAR" id="y)eN7.8HDTNy:0QIRpvu">namen</field>
                                                                                                               </block>
                                                                                                             </value>
                                                                                                             <value name="AT">
                                                                                                               <block type="math_arithmetic" id="(omAgkYl:o0+@,=9lJ4J">
                                                                                                                 <field name="OP">ADD</field>
                                                                                                                 <value name="A">
                                                                                                                   <shadow type="math_number">
                                                                                                                     <field name="NUM">1</field>
                                                                                                                   </shadow>
                                                                                                                   <block type="variables_get" id="VB.*bdT*60.t/HnVu[Ki">
                                                                                                                     <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                                                                                                   </block>
                                                                                                                 </value>
                                                                                                                 <value name="B">
                                                                                                                   <shadow type="math_number">
                                                                                                                     <field name="NUM">1</field>
                                                                                                                   </shadow>
                                                                                                                   <block type="math_number" id="olC0vHqztBHOI{|z,)If">
                                                                                                                     <field name="NUM">1</field>
                                                                                                                   </block>
                                                                                                                 </value>
                                                                                                               </block>
                                                                                                             </value>
                                                                                                           </block>
                                                                                                         </value>
                                                                                                         <value name="ADD1">
                                                                                                           <block type="get_value_var" id="HveQcZt3Hj-Jpk=([FCZ">
                                                                                                             <field name="ATTR">val</field>
                                                                                                             <value name="OID">
                                                                                                               <shadow type="text" id="etr=A:avqF6}d)}k(k~a">
                                                                                                                 <field name="TEXT"></field>
                                                                                                               </shadow>
                                                                                                               <block type="lists_getIndex" id="mI2YYTmqK(F9_f9=AWYC">
                                                                                                                 <mutation statement="false" at="true"></mutation>
                                                                                                                 <field name="MODE">GET</field>
                                                                                                                 <field name="WHERE">FROM_START</field>
                                                                                                                 <value name="VALUE">
                                                                                                                   <block type="variables_get" id="|TY^+rk;})ed^N$#p_pd">
                                                                                                                     <field name="VAR" id="I@+oLMb^;SY|ctFo/=gF">datenpunkte</field>
                                                                                                                   </block>
                                                                                                                 </value>
                                                                                                                 <value name="AT">
                                                                                                                   <block type="math_arithmetic" id="E9y(38IsNTv%(r0::LIY">
                                                                                                                     <field name="OP">ADD</field>
                                                                                                                     <value name="A">
                                                                                                                       <shadow type="math_number">
                                                                                                                         <field name="NUM">1</field>
                                                                                                                       </shadow>
                                                                                                                       <block type="variables_get" id="-gW3MQMvL%r`!D=x=qFw">
                                                                                                                         <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                                                                                                       </block>
                                                                                                                     </value>
                                                                                                                     <value name="B">
                                                                                                                       <shadow type="math_number">
                                                                                                                         <field name="NUM">1</field>
                                                                                                                       </shadow>
                                                                                                                       <block type="math_number" id="`.v0F+9G9phaAEwHws,:">
                                                                                                                         <field name="NUM">1</field>
                                                                                                                       </block>
                                                                                                                     </value>
                                                                                                                   </block>
                                                                                                                 </value>
                                                                                                               </block>
                                                                                                             </value>
                                                                                                           </block>
                                                                                                         </value>
                                                                                                         <value name="ADD2">
                                                                                                           <block type="lists_getIndex" id="H^@q`G[tG:Y3:ZT$X8xz">
                                                                                                             <mutation statement="false" at="true"></mutation>
                                                                                                             <field name="MODE">GET</field>
                                                                                                             <field name="WHERE">FROM_START</field>
                                                                                                             <value name="VALUE">
                                                                                                               <block type="variables_get" id="X(Z@($Xrq#KDw~M_5$9e">
                                                                                                                 <field name="VAR" id="I@+oLMb^;SY|ctFo/=gF">datenpunkte</field>
                                                                                                               </block>
                                                                                                             </value>
                                                                                                             <value name="AT">
                                                                                                               <block type="math_arithmetic" id="F[tF)M{Gh)R62FpWSzDY">
                                                                                                                 <field name="OP">ADD</field>
                                                                                                                 <value name="A">
                                                                                                                   <shadow type="math_number">
                                                                                                                     <field name="NUM">1</field>
                                                                                                                   </shadow>
                                                                                                                   <block type="variables_get" id="Y(6lEzjTe7qwF`wT7m=V">
                                                                                                                     <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                                                                                                   </block>
                                                                                                                 </value>
                                                                                                                 <value name="B">
                                                                                                                   <shadow type="math_number">
                                                                                                                     <field name="NUM">1</field>
                                                                                                                   </shadow>
                                                                                                                   <block type="math_number" id="z1r`}S%8e6G$KZjz)SXi">
                                                                                                                     <field name="NUM">1</field>
                                                                                                                   </block>
                                                                                                                 </value>
                                                                                                               </block>
                                                                                                             </value>
                                                                                                           </block>
                                                                                                         </value>
                                                                                                         <value name="ADD3">
                                                                                                           <block type="lists_getIndex" id="-6`3u0]GG+3z}}OFm2s@">
                                                                                                             <mutation statement="false" at="true"></mutation>
                                                                                                             <field name="MODE">GET</field>
                                                                                                             <field name="WHERE">FROM_START</field>
                                                                                                             <value name="VALUE">
                                                                                                               <block type="variables_get" id="Q4av1{lCW1;0F:eUJvP#">
                                                                                                                 <field name="VAR" id="zg5`*,uA4%`Fg5L@=CAI">schaltbar</field>
                                                                                                               </block>
                                                                                                             </value>
                                                                                                             <value name="AT">
                                                                                                               <block type="math_arithmetic" id="Z73k;}AOC;8+G/qSIat}">
                                                                                                                 <field name="OP">ADD</field>
                                                                                                                 <value name="A">
                                                                                                                   <shadow type="math_number">
                                                                                                                     <field name="NUM">1</field>
                                                                                                                   </shadow>
                                                                                                                   <block type="variables_get" id="{.#7[BqG#yjpydkt1F^{">
                                                                                                                     <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                                                                                                   </block>
                                                                                                                 </value>
                                                                                                                 <value name="B">
                                                                                                                   <shadow type="math_number">
                                                                                                                     <field name="NUM">1</field>
                                                                                                                   </shadow>
                                                                                                                   <block type="math_number" id="w~6-dt0bLnsDygL*/Teb">
                                                                                                                     <field name="NUM">1</field>
                                                                                                                   </block>
                                                                                                                 </value>
                                                                                                               </block>
                                                                                                             </value>
                                                                                                           </block>
                                                                                                         </value>
                                                                                                       </block>
                                                                                                     </value>
                                                                                                   </block>
                                                                                                 </statement>
                                                                                                 <next>
                                                                                                   <block type="debug" id="bx6Y8-8%U,x}ZR}zDMCw" disabled="true">
                                                                                                     <field name="Severity">log</field>
                                                                                                     <value name="TEXT">
                                                                                                       <shadow type="text" id="!yx$lDKS!DgZlryJ)%{j">
                                                                                                         <field name="TEXT">test</field>
                                                                                                       </shadow>
                                                                                                       <block type="variables_get" id="IL]^hG54Ej,lhuXqBi2=">
                                                                                                         <field name="VAR" id="}K$K4dup~Vnv!`[}vnQy">Liste</field>
                                                                                                       </block>
                                                                                                     </value>
                                                                                                     <next>
                                                                                                       <block type="procedures_callcustomnoreturn" id="1tTT@y+3fd)eq*EKO%`c">
                                                                                                         <mutation name="tabelleMit3Werten">
                                                                                                           <arg name="myList"></arg>
                                                                                                         </mutation>
                                                                                                         <value name="ARG0">
                                                                                                           <block type="variables_get" id="T3wm-=*hL+H$*f^H0[J9">
                                                                                                             <field name="VAR" id="}K$K4dup~Vnv!`[}vnQy">Liste</field>
                                                                                                           </block>
                                                                                                         </value>
                                                                                                       </block>
                                                                                                     </next>
                                                                                                   </block>
                                                                                                 </next>
                                                                                               </block>
                                                                                             </next>
                                                                                           </block>
                                                                                         </next>
                                                                                       </block>
                                                                                     </statement>
                                                                                   </block>
                                                                                 </next>
                                                                               </block>
                                                                             </next>
                                                                           </block>
                                                                         </next>
                                                                       </block>
                                                                     </next>
                                                                   </block>
                                                                 </next>
                                                               </block>
                                                             </next>
                                                           </block>
                                                         </next>
                                                       </block>
                                                     </next>
                                                   </block>
                                                 </next>
                                               </block>
                                             </next>
                                           </block>
                                         </next>
                                       </block>
                                     </next>
                                   </block>
                                 </next>
                               </block>
                             </next>
                           </block>
                           <block type="procedures_defcustomnoreturn" id="d+PXd6N1nBTxz}gaM@Co" x="463" y="-263">
                             <mutation statements="false">
                               <arg name="myList" varid="U3ge^B{?p,jfAdCjS^R`"></arg>
                             </mutation>
                             <field name="NAME">tabelleMit3Werten</field>
                             <field name="SCRIPT">ICAvL0BsaXYtaW4tc2t5IDIwMjAgIDQuMi4tMTg6NDINCg0KDQogLy9ISUVSIFdJUkQgUEZBRCBVTkQgRklMRU5BTUUgREVGSU5JRVJUDQogY29uc3QgcGF0aCA9ICIvaHRtbGV4YW1wbGVzZXR0aW5nLmh0bWwiOyAgICAgICAgICAgICAgICAgICAvL0ZJbGVuYW1lbiBkZWZpbmllcmVuDQogY29uc3QgaG9tZSA9J3Zpcy4wJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vd28gc29sbCBkYXMgZmlsZSBpbSBpb2Jyb2tlci1maWxlLXN5c3RlbSBsaWVnZW4gPyAob2RlciB6LmIgYXVjaCBpcW9udHJvbC5tZXRhKQ0KIGxldCAgIGJyYXVjaGVFaW5GaWxlPWZhbHNlOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmVpIHRydWUgd2lyZCBlaW4gZmlsZSBnZXNjaHJpZWJlbg0KIGxldCAgIGJyYXVjaGVFaW5WSVNXaWRnZXQ9dHJ1ZTsgICAgICAgICAgICAgICAgICAgICAvLyBiZWkgdHJ1ZSB3aXJkIGVpbiBodG1sLXRhYmVsbGUgaW4gZWluZW4gZHAgZ2VzY2hyaWViZW4gLSBzaWVoZSBuw6RjaHN0ZSB6ZWlsZQ0KIC8vbGV0IGRwVklTPSJjb250cm9sbC1vd24uMC5BQUFURVNULlRlc3RIVE1MIiAgICAgICAgIC8vV0lDSFRJRyB3ZW5uIGJyYXVjaGVFaW5WSVNXaWRnZXQgYXVmIHRydWUgZ2VzZXR6dCAhISAgZHAgenVzw6R0emxpY2ggZsO8ciBWSVMtSFRNTC1CYXNpYy1XaWRnZXQNCiBjb25zdCBmYXJiZVNjaGFsdGVyT049ImxpZ2h0Ymx1ZSIgICAgICAgICAgICAgICAvLyBmYXJiZSBkZXMgc2NoYWx0ZXJzIGbDvHIgT04NCmNvbnN0IGZhcmJlU2NoYWx0ZXJPRkY9ImdyZXkiICAgICAgICAgICAgICAgLy8gZmFyYmUgZGVzIHNjaGFsdGVycyBmw7xyIE9GRg0KDQogLy9sZXQgbXlTY2hlZHVsZT0iICovMjAgKiAqICogKiAqICI7ICAgICAgICAgICAgICAgICAgICAgICAvL2plZGUgbWludXRlICANCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQovL0hJRVIgRElFIFNQQUxURU4gQU5aQUhMIERFRklOSUVSRU4gLSBqZWRlIFNwYWx0ZSBlaW5lbiBXZXJ0IC0gaW4gZGllc2VtIEJlaXNwaWVsIHNpbmQgZXMgMg0KdmFyIGh0bWxGZWxkMT0nU3RhbmRvcnQnOyAgICAgICB2YXIgRmVsZDFsQWxpZ249ImxlZnQiOyAgICAgICAgICAgICAgICAgICAgIC8vIMO8YmVyc2NocmlmdCBUYWJlbGxlbiBTcGFsdGUxIHVuZCAgQXVzcmljaHR1bmcgbGVmdCxyaWdodCBvciBjZW50ZXINCnZhciBodG1sRmVsZDI9J1N0YXR1cyc7ICAgICAgICAgdmFyIEZlbGQybEFsaWduPSJjZW50ZXIiOyAgICAgICAgICAgICAgICAgICAgICAvLyDDvGJlcnNjaHJpZnQgVGFiZWxsZW4gU3BhbHRlMiB1bmQgIEF1c3JpY2h0dW5nIGxlZnQscmlnaHQgb3IgY2VudGVyDQoNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCg0KDQoNCi8vaGllciB3ZXJkZW4gZGllIHN0eWxlcyBmw7xyIGRpZSB0YWJlbGxlIGRlZmluaWVydA0KLy/DnEJFUlNDSFJJRlQgw5xCRVIgVEFCRUxMRQ0KbGV0ICAgaHRtbFViZXJzY2hyaWZ0PWZhbHNlOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1pdCDDnGJlcnNjaHJpZnQgw7xiZXIgZGVyIHRhYmVsbGUNCmxldCAgIGh0bWxTaWduYXR1cmU9ZmFsc2U7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYW5zdGF0dCBkZXIgw5xiZXJzY2docmlmdCBlaW5lIHNpZ25hdHVyZTogLSBrbGVpbmVyIC0gYW5saWVnZW5kDQpjb25zdCBodG1sRmVsZFVlYmVyPSdCYXR0ZXJpZSBadXN0YW5kIFNlbnNvcmVuJzsgICAgICAgICAgICAgIC8vIMOcYmVyc2NocmlmdCB1bmQgU2lnbmF0dXJlDQpjb25zdCBodG1sRmFyYlViZXI9ImJsYWNrIjsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFyYmUgZGVyIMOcYmVyc2NocmlmdA0KY29uc3QgaHRtbFNjaHJpZnRXZWl0ZT0ibm9ybWFsIjsgICAgICAgICAgICAgICAgICAgICAgIC8vIGJvbGQsIG5vcm1hbCAtIEZldHRzY2hyaWZ0IGbDvHIgw5xiZXJzY2hyaWZ0DQpjb25zdCBodG1sw5xiZXJGb250R3JvZXNzZT0iMThweCI7ICAgICAgICAgICAgICAgICAgICAgICAvLyBzY2hyaWZ0Z3LDtsOfZSDDvGJlcnNjaHJpZnQNCi8vTUVIUkVSRSBUQUJFTExFTiBORUJFTkVJTkFOREVSDQpsZXQgICBtZWhyZmFjaFRhYmVsbGU9MTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBiaXMgenUgNCBUYWJlbGxlbiB3ZXJkZW4gbmViZW5laW5hbmRlciBnZXNjaHJpZWJlbi0gIHZlcmvDvHJ6dCBkYXMgR2FuemUsIGRhZsO8ciBldHdhcyBicmVpdGVyIC0gTcOWR0xJQ0ggMSwyLDMsb2RlciA0ICEhIQ0KY29uc3QgdHJlbm51bmdzTGluaWU9IjIiOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9leHRyYSB0cmVubnVuZ3NsaW5pZSBiZWkgbWVocmZhY2h0YWJlbGxlbiAtIGV2dGwgYXVmIDAgc3RlbGxlbiwgd25uIGh0bWxSYWhtZW5MaW5pZW4gYXVmIG5vbmUgc2luZA0KY29uc3QgZmFyYmV0cmVubnVuZ3NMaW5pZT0id2hpdGUiOw0KY29uc3QgaHRtbEZhcmJad2VpdGVUYWJlbGxlPSJ3aGl0ZSI7ICAgICAgICAgICAgICAgIC8vIEZhcmJlIGRlciDDnGJlcnNjaHJpZnQgYmVpIGplZGVyIDIudGVuIFRhYmVsbGUNCmNvbnN0IGh0bWxGYXJiVGFibGVDb2xvclViZXI9IiMwMDAwMDAiOyAgICAgICAgICAgICAgIC8vIMOcYmVyc2NocmlmdCBpbiBkZXIgdGFiZWxsZSAtIGRlciBlaW56ZWxuZW4gU3BhbHRlbg0KLy/DnEJFUlNDSFJJRlQgU1BBTFRFTg0KY29uc3QgVWViZXJTY2hyaWZ0SMO2aGU9IjM1IjsgICAgICAgICAgICAgICAgICAgICAgICAgIC8vw5xiZXJzY2hyaWZ0IGJla29tbXQgbWVociBSYXVtIC0gZGFydW50ZXIgdW5kIGRhcsO8YmVyIC0gWmVsbGVuaMO2aGUNCmNvbnN0IExpbmllVW50ZXJVZWJlcnNjaHJpZnQ9IjMiOyAgICAgICAgICAgICAgICAgICAvLyBMaW5pZSBudXIgdW50ZXIgU3BhbHRlbsO8YmVyc2NocmlmdCAtIA0KY29uc3QgZmFyYmVMaW5pZVVudGVyVWViZXJzY2hyaWZ0PSJ3aGl0ZSI7DQpjb25zdCBncm9lc3NlVWViZXJzY2hyaWZ0PTE2Ow0KY29uc3QgVWViZXJzY2hyaWZ0U3R5bGU9Im5vcm1hbCIgICAgICAgICAgICAgICAgICAgICAvLyBtw7ZnbGljaCAiYm9sZCINCi8vR0FOWkUgVEFCRUxMRQ0KbGV0IGFic3RhbmRaZWxsZT0iMSI7DQpsZXQgZmFyYmVVbmdlcmFkZVplaWxlbj0iIzAwMDAwMCI7ICAgICAgICAgICAgICAgICAgICAgLy9GYXJiZSBmw7xyIHVuZ2VyYWRlIFplaWxlbmFuemFobCAtIEhpbnRlcmdydW5kIGRlciBTcGFsdGVuw7xiZXJzY2hyaWZ0IGJsZWlidCBiZWkgaHRtbEZhcmJUYWJsZUNvbG9yR3JhZGllbnQxLzINCmxldCBmYXJiZUdlcmFkZVplaWxlbj0iIzE1MTUxNSI7ICAgICAgICAgICAgICAgICAgICAgICAgLy9GYXJiZSBmw7xyIGdlcmFkZSBaZWlsZW5hbnphaGwgLSBIaW50ZXJncnVuZCBkZXIgU3BhbHRlbsO8YmVyc2NocmlmdCBibGVpYnQgYmVpIGh0bWxGYXJiVGFibGVDb2xvckdyYWRpZW50MS8yDQpsZXQgd2VpdGU9IjQwMHB4IjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9XZWl0ZSBkZXIgVGFiZWxsZQ0KbGV0IHplbnRyaWVydD10cnVlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9nYW56ZSB0YWJlbGxlIHplbnRyaWVydA0KY29uc3QgYmFja2dyb3VuZEFsbD0iIzAwMDAwMCI7ICAgICAgICAgICAgICAgICAgICAgICAgLy9IaW50ZXJncnVuZCBmw7xyIGRpZSBnYW56ZSBTZWl0ZSAtIGbDvHIgZGlyZWt0ZW4gYXVmcnVmIG9kZXIgaXFvbnRyb2wgc2ljaHRiZXIgLSBrZWluZSBhdXN3aXJrdW5nIGF1ZiB2aXMtd2lkZ2V0DQpjb25zdCBodG1sU2NocmlmdGFydD0iSGVsdmV0aWNhIjsNCmNvbnN0IGh0bWxTY2hyaWZ0Z3JvZXNzZT0iMThweCI7DQovL0ZFTERFUiBVTkQgUkFITUVODQpsZXQgICBVZWJlcnNjaHJpZnRTcGFsdGVuPXRydWU7ICAgICAgICAgICAgICAgIC8vIGVpbi0gb2RlciBhdXNibGVuZGVuIGRlciBzcGF0bGVuLcO8YmVyc2NocmlmdGVuDQpjb25zdCBodG1sRmFyYkZlbGRlcnNjaHJpZnQ9IiNCREJEQkQiOyAgICAgICAgICAgICAgICAgIC8vIFNjaHJpZnRGYXJiZSBkZXIgRmVsZGVyDQpjb25zdCBodG1sRmFyYkZlbGRlcnNjaHJpZnQyPSIjRDhEOEQ4IjsgICAgICAgICAgICAgICAgIC8vIFNjaHJpZnRGYXJiZSBkZXIgRmVsZGVyIGbDvHIgamVkZSAydGUgVGFiZWxsZQ0KY29uc3QgaHRtbEZhcmJUYWJsZUNvbG9yR3JhZGllbnQxPSIjQ0REMTYzIjsgICAgICAgICAgLy8gIEdyYWRpZW50IC0gSGludGVyZ3J1bmQgZGVyIFRhYmVsbGUgLSBWZXJsYXVmZmFyYmUNCmNvbnN0IGh0bWxGYXJiVGFibGVDb2xvckdyYWRpZW50Mj0iI0NERDE2MyI7ICAgICAgICAgIC8vICBHcmFkaWVudCAtIEhpbnRlcmdydW5kIGRlciBUYWJlbGxlIC0gaXN0IGRpZXNlciBXZXJ0IGdsZWljaCBHcmFkaWVudDEgZ2lidCBlcyBrZWluZW4gdmVybGF1Zg0KY29uc3QgaHRtbEZhcmJUYWJsZUJvcmRlckNvbG9yPSJncmV5IjsgICAgICAgICAgICAgLy8gRmFyYmUgZGVzIFJhaG1lbiAtIGlzIHRkaWVzZXIgZ2xlaWNoIGRlbiBncmFkaWVudGVuLCBzaW5kIGRpZSByYWhtZW4gdW5zaWNodGJhcg0KbGV0IGh0bWxSYWhtZW5MaW5pZW49ImNvbHMiOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBGb3JtYXQgZsO8ciBSYWhtZW46IE3DlkdMSUNIOiAibm9uZSIgb2RlciAiYWxsIiBvZGVyICJjb2xzIiBvZGVyICJyb3dzIg0KY29uc3QgaHRtbFNwYWx0ZTFXZWl0ZT0iYXV0byI7ICAgICAgICAgICAgICAgICAgIC8vICBXZWl0ZSBkZXIgZXJzdGVuIGJlaWRlbiAgU3BhbHRlbiBvZGVyIHouYi4gMTE1cHgNCg0KLy8gSElFUiBOSUNIVFMgIMOETkRFUk4NCg0KbGV0IGJvcmRlckhlbHBCb3R0dW07DQpsZXQgYm9yZGVySGVscFJpZ2h0Ow0KbGV0IGh0bWxjZW50ZXJIZWxwOw0KbGV0IGh0bWxjZW50ZXJIZWxwMjsNCg0KaWYoaHRtbFJhaG1lbkxpbmllbj09InJvd3MiKSB7Ym9yZGVySGVscEJvdHR1bT0xO2JvcmRlckhlbHBSaWdodD0wO30NCmlmKGh0bWxSYWhtZW5MaW5pZW49PSJjb2xzIikge2JvcmRlckhlbHBCb3R0dW09MDtib3JkZXJIZWxwUmlnaHQ9MTt9DQppZihodG1sUmFobWVuTGluaWVuPT0ibm9uZSIpIHtib3JkZXJIZWxwQm90dHVtPTA7Ym9yZGVySGVscFJpZ2h0PTA7fQ0KaWYoaHRtbFJhaG1lbkxpbmllbj09ImFsbCIpICB7Ym9yZGVySGVscEJvdHR1bT0xO2JvcmRlckhlbHBSaWdodD0xO30NCnplbnRyaWVydCA/IGh0bWxjZW50ZXJIZWxwPSJhdXRvIiA6IGh0bWxjZW50ZXJIZWxwPSJsZWZ0IjsNCnplbnRyaWVydCA/IGh0bWxjZW50ZXJIZWxwMj0iY2VudGVyIiA6IGh0bWxjZW50ZXJIZWxwMj0ibGVmdCI7DQoNCg0KY29uc3QgaHRtbFplbnRyaWVydD0nPGNlbnRlcj4nDQpjb25zdCBodG1sU3RhcnQ9ICAgICI8IURPQ1RZUEUgaHRtbD48aHRtbCBsYW5nPVwiZGVcIj48aGVhZD48dGl0bGU+Vm9ybGFnZTwvdGl0bGU+PG1ldGEgaHR0cC1lcXVpdj1cImNvbnRlbnQtdHlwZVwiIGNvbnRlbnQ9XCJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLThcIj4iKw0KICAgICAgICAgICAgICAgICAgIjxzdHlsZT4gKiB7ICBtYXJnaW46IDA7fSBib2R5IHtiYWNrZ3JvdW5kLWNvbG9yOiAiK2JhY2tncm91bmRBbGwrIjsgbWFyZ2luOiAwIGF1dG87ICB9IisNCiAgICAgICAgICAgICAgICAgICIgcCB7cGFkZGluZy10b3A6IDEwcHg7IHBhZGRpbmctYm90dG9tOiAxMHB4OyB0ZXh0LWFsaWduOiAiK2h0bWxjZW50ZXJIZWxwMisifSIrDQogICAgICAgICAgICAgICAgIC8vICIgZGl2IHsgbWFyZ2luOiAwIGF1dG87ICBtYXJnaW4tbGVmdDogYXV0bzsgbWFyZ2luLXJpZ2h0OiBhdXRvO30iKw0KICAgICAgICAgICAgICAgICAgIiB0ZCB7IHBhZGRpbmc6IithYnN0YW5kWmVsbGUrInB4OyBib3JkZXI6MHB4IHNvbGlkICIraHRtbEZhcmJUYWJsZUJvcmRlckNvbG9yKyI7ICBib3JkZXItcmlnaHQ6Iitib3JkZXJIZWxwUmlnaHQrInB4IHNvbGlkICIraHRtbEZhcmJUYWJsZUJvcmRlckNvbG9yKyI7Ym9yZGVyLWJvdHRvbToiK2JvcmRlckhlbHBCb3R0dW0rInB4IHNvbGlkICIraHRtbEZhcmJUYWJsZUJvcmRlckNvbG9yKyI7fSIrIA0KICAgICAgICAgICAgICAgICAgIiB0YWJsZSB7IHdpZHRoOiAiK3dlaXRlKyI7ICBtYXJnaW46IDAgIitodG1sY2VudGVySGVscCsiOyBib3JkZXI6MXB4IHNvbGlkICIraHRtbEZhcmJUYWJsZUJvcmRlckNvbG9yKyI7IGJvcmRlci1zcGFjaW5nPVwiIithYnN0YW5kWmVsbGUrIjBweFwiIDsgfSIrICAgLy8gbWFyZ2luIG1hY2h0IGNlbnRlcg0KICAgICAgICAgICAgICAgICAgInRkOm50aC1jaGlsZCgxKSB7d2lkdGg6ICIraHRtbFNwYWx0ZTFXZWl0ZSsifSIrInRkOm50aC1jaGlsZCgyKSB7d2lkdGg6IitodG1sU3BhbHRlMVdlaXRlKyJ9IisNCiAgICAgICAgICAgICAgICAgICIgPC9zdHlsZT48L2hlYWQ+PGJvZHk+IDxkaXY+IjsNCi8vY29uc3QgaHRtbFVlYmVyPSAgICAiPHAgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiVWJlcisiOyBmb250LWZhbWlseToiK2h0bWxTY2hyaWZ0YXJ0KyI7IGZvbnQtd2VpZ2h0OiBib2xkXCI+IitodG1sRmVsZFVlYmVyKyI8L3A+IjsgICAgICAgICAgICAgICAgICAgIA0KY29uc3QgaHRtbFRhYlN0eWxlPSAiPHRhYmxlIGJvcmRlcmNvbG9yPVwiIitodG1sRmFyYlRhYmxlQm9yZGVyQ29sb3IrIlwiIGJvcmRlcj1cIjJweFwiIGNlbGxzcGFjaW5nPVwiIithYnN0YW5kWmVsbGUrIlwiIGNlbGxwYWRkaW5nPVwiIithYnN0YW5kWmVsbGUrIlwiIHdpZHRoPVwiIit3ZWl0ZSsiXCIgcnVsZXM9XCIiK2h0bWxSYWhtZW5MaW5pZW4rIlwiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQrIjsgIGZvbnQtc2l6ZToiK2h0bWxTY2hyaWZ0Z3JvZXNzZSsNCiAgICAgICAgICAgICAgICAgICAgICI7IGZvbnQtZmFtaWx5OiIraHRtbFNjaHJpZnRhcnQrIjtiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoNDJkZWcsIitodG1sRmFyYlRhYmxlQ29sb3JHcmFkaWVudDIrIiwiK2h0bWxGYXJiVGFibGVDb2xvckdyYWRpZW50MSsiKTtcIj4iOw0KY29uc3QgaHRtbFRhYlVlYmVyMT0iPHRyIGhlaWdodD1cIiIrVWViZXJTY2hyaWZ0SMO2aGUrIlwiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYlRhYmxlQ29sb3JVYmVyKyI7IGZvbnQtc2l6ZTogIitncm9lc3NlVWViZXJzY2hyaWZ0KyJweDsgZm9udC13ZWlnaHQ6ICIrVWViZXJzY2hyaWZ0U3R5bGUrIiA7ICBib3JkZXItYm90dG9tOiAiK0xpbmllVW50ZXJVZWJlcnNjaHJpZnQrInB4IHNvbGlkICIrZmFyYmVMaW5pZVVudGVyVWViZXJzY2hyaWZ0KyIgXCI+IjsNCmNvbnN0IGh0bWxUYWJVZWJlcjM9IjwvdHI+IjsNCg0KY29uc3QgYnV0dG9uU2NyaXB0ID0gICc8c2NyaXB0PiBmdW5jdGlvbiBzZXRPbkRibENsaWNrQ3VzdG9tKCBteXZhbHVlICkgewl2YXIgU2VsZiA9IHRoaXM7IHZhciBvYmpJRCA9IG15dmFsdWU7CVNlbGYuc2VydkNvbm4uZ2V0U3RhdGVzKG9iaklELCAoZXJyb3IsIHN0YXRlcykgPT4geyAgY29uc29sZS5sb2coc3RhdGVzKTsgIFNlbGYuc2VydkNvbm4uc2V0U3RhdGUob2JqSUQsICFzdGF0ZXNbb2JqSURdLnZhbCk7IH0pOyB9IDwvc2NyaXB0PicNCg0KLy8vL05JQ0hUUyDDhE5ERVJOICAtIGFiaMOkbmdpZyB2b24gZGVuIG9iZW4gZGVmaW5pZXJ0ZW4gX1NwYWx0ZW4gLSBpbiBkaWVzZW0gQmVpc3BpZWwgc2luZCBlcyAyDQoNCnZhciBodG1sVGFiVWViZXIyPSI8dGQgd2lkdGg9IitodG1sU3BhbHRlMVdlaXRlKyIgYWxpZ249IitGZWxkMWxBbGlnbisiPiZlbnNwOyIraHRtbEZlbGQxKyImZW5zcDs8L3RkPjx0ZCB3aWR0aD0iK2h0bWxTcGFsdGUxV2VpdGUrIiBhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7IitodG1sRmVsZDIrIiZlbnNwOzwvdGQ+IjsNCnZhciBodG1sVGFiVWViZXIyXzE9Ijx0ZCB3aWR0aD0iK2h0bWxTcGFsdGUxV2VpdGUrIiBhbGlnbj0iK0ZlbGQxbEFsaWduKyIgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiWndlaXRlVGFiZWxsZSsiXCI+JmVuc3A7IitodG1sRmVsZDErIiZlbnNwOzwvdGQ+PHRkIHdpZHRoPSIraHRtbFNwYWx0ZTFXZWl0ZSsiIGFsaWduPSIrRmVsZDJsQWxpZ24rIiBzdHlsZT1cImNvbG9yOiIraHRtbEZhcmJad2VpdGVUYWJlbGxlKyJcIj4mZW5zcDsiK2h0bWxGZWxkMisNCiAgICAgICAgICAgICAgICAgICAgIiZlbnNwOzwvdGQ+IjsNCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogDQoNCnZhciBodG1sT3V0PSIiOw0KdmFyIG1peDsNCnZhciBjb3VudGVyOw0KdmFyIHZhbDE7ICB2YXIgdmFsMDsNCnZhciBodG1sVGFiVWViZXI9IiI7DQoNCmZ1bmN0aW9uIHdyaXRlSFRNTCgpew0KDQoNCg0KaHRtbE91dD0iIjsNCg0KY291bnRlcj0tMTsNCmh0bWxUYWJVZWJlcj0iIjsNCnN3aXRjaCAobWVocmZhY2hUYWJlbGxlKSB7IA0KICAgIGNhc2UgMTogaHRtbFRhYlVlYmVyPWh0bWxUYWJVZWJlcjEraHRtbFRhYlVlYmVyMitodG1sVGFiVWViZXIzOyAgYnJlYWs7DQogICAgY2FzZSAyOiBodG1sVGFiVWViZXI9aHRtbFRhYlVlYmVyMStodG1sVGFiVWViZXIyK2h0bWxUYWJVZWJlcjJfMStodG1sVGFiVWViZXIzOyBicmVhazsNCiAgICBjYXNlIDM6IGh0bWxUYWJVZWJlcj1odG1sVGFiVWViZXIxK2h0bWxUYWJVZWJlcjIraHRtbFRhYlVlYmVyMl8xK2h0bWxUYWJVZWJlcjIraHRtbFRhYlVlYmVyMzsgYnJlYWs7DQogICAgY2FzZSA0OiBodG1sVGFiVWViZXI9aHRtbFRhYlVlYmVyMStodG1sVGFiVWViZXIyK2h0bWxUYWJVZWJlcjJfMStodG1sVGFiVWViZXIyK2h0bWxUYWJVZWJlcjJfMStodG1sVGFiVWViZXIzOyBicmVhazsNCn07ICAgIA0KaWYgKCFVZWJlcnNjaHJpZnRTcGFsdGVuKSB7aHRtbFRhYlVlYmVyPSIifQ0KDQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vLS0tLS0tLS0taGllciBrb21tdCBldXJlIHNjaGxlaWZlIHJlaW4gY291bnRlcisrLCB0YWJlbGxlQmluZCgpIHVuZCB0YWJlbGxlRmluaXNoKCkgbcO8c3NlbiBzbyBpbnRlZ3JpZXJ0IGJsZWliZW4gISEhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8tLS0tLS0tLS1hbGxlIHZhbHggd2VydGUgbcO8c3NlbiB2b24gZXVjaCBiZXN0aW1tdCB3ZXJkZW4gLSB2YWwwLHZhbDEgISEhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogIGZvciAobGV0IHg9MDt4PG15TGlzdC5sZW5ndGg7eCsrKXsNCiAgICAgIGNvdW50ZXIrKzsNCiAgICAgLy8gbG9nKCItLS0iICtteUxpc3RbeF1bMF0gKQ0KICAgICAgaWYobXlMaXN0W3hdWzBdIT1udWxsKXsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwwICA9IG15TGlzdFt4XVswXTsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwxICA9IG15TGlzdFt4XVsxXQ0KICAgIC8vIGxvZyh2YWwwKQ0KICAgICAgICAgICAgICAgICAgbGV0IHZhbEJ1dHRvbj1teUxpc3RbeF1bMl0NCiAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgaWYgKG15TGlzdFt4XVszXSl7DQogICAgICAgICAgICAgICAgICB2YWwxID8gdmFsMT0iPGJ1dHRvbiBzdHlsZVw9XCJib3JkZXI6bm9uZVw7IGJhY2tncm91bmQtY29sb3JcOnRyYW5zcGFyZW50XDsgY29sb3JcOndoaXRlXDsgZm9udFwtc2l6ZVw6MWVtXDsgdGV4dFwtYWxpZ246bGVmdFwiIHZhbHVlPVwidG9nZ2xlXCIgb25jbGljaz1cInNldE9uRGJsQ2xpY2tDdXN0b21cKFwnIit2YWxCdXR0b24rIlwnKVwiPiIrIjxpbWcgc3JjPSIrc3ltYm9sU3dpdGNoT04gKyIgaGVpZ2h0PVwiIitiaWxkZ3JvZXNzZUhvY2grIlwiIHdpZHRoPVwiIitiaWxkZ3JvZXNzZUJyZWl0KyJcIj4iKyAiPC9idXR0b24+IiA6DQogICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwxPSI8YnV0dG9uIHN0eWxlXD1cImJvcmRlcjpub25lXDsgYmFja2dyb3VuZC1jb2xvclw6dHJhbnNwYXJlbnRcOyBjb2xvclw6d2hpdGVcOyBmb250XC1zaXplXDoxZW1cOyB0ZXh0XC1hbGlnbjpsZWZ0XCIgdmFsdWU9XCJ0b2dnbGVcIiBvbmNsaWNrPVwic2V0T25EYmxDbGlja0N1c3RvbVwoXCciK3ZhbEJ1dHRvbisiXCcpXCI+IisiPGltZyBzcmM9IitzeW1ib2xTd2l0Y2hPRkYgKyIgaGVpZ2h0PVwiIitiaWxkZ3JvZXNzZUhvY2grIlwiIHdpZHRoPVwiIitiaWxkZ3JvZXNzZUJyZWl0KyJcIj4iKyI8L2J1dHRvbj4iOw0KICAgICAgICAgICAgICAgICAgfSBlbHNlew0KICAgICAgICAgICAgICAgICAgICAgdmFsMSA/IHZhbDE9IjxpbWcgc3JjPSIrc3ltYm9sU3dpdGNoT04gKyIgaGVpZ2h0PVwiIitiaWxkZ3JvZXNzZUhvY2grIlwiIHdpZHRoPVwiIitiaWxkZ3JvZXNzZUJyZWl0KyJcIj4iICA6IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbDE9IjxpbWcgc3JjPSIrc3ltYm9sU3dpdGNoT0ZGICsiIGhlaWdodD1cIiIrYmlsZGdyb2Vzc2VIb2NoKyJcIiB3aWR0aD1cIiIrYmlsZGdyb2Vzc2VCcmVpdCsiXCI+IiANCiAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgaWYgKHZhbDE9PWZhbHNlKSB7dmFsMT0i4p2MIn0gZWxzZXt2YWwxPSLinIUifSAgDQogICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJlbGxlQmluZCgpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07IC8vU2NobGVpZmVuIEVuZGUgLSBqZSBuYWNoIHNjaGxlaWZlbmFydCBtdXNzIGhpZXIgZXR3YXMgZ2XDpG5kZXJ0IHdlcmRlbiAhISEhISEhISENCg0KfSB0YWJlbGxlRmluaXNoKCk7DQogLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIC8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgDQoNCiAgICAgIC8vIEFCIEhJRVIgTklDSFRTIMOETkRFUk4gLSB0YWJlbGxlIGZlcnRpZ3N0ZWxsZW4NCiAgICAgIA0KfSAvLyBmdW5jdGlvbiBlbmRlDQogDQogLy9NQUlOOg0KICANCg0KIHdyaXRlSFRNTCgpOw0KDQogZnVuY3Rpb24gdGFiZWxsZUJpbmQoKXsNCiAgICAgICAgc3dpdGNoIChtZWhyZmFjaFRhYmVsbGUpIHsgIA0KICAgICAgICAgIGNhc2UgMTogIGlmKGNvdW50ZXIlMj09MCkgICAgICAgICB7ICAgaHRtbE91dD1odG1sT3V0KyI8dHIgYmdjb2xvcj1cIiIrZmFyYmVHZXJhZGVaZWlsZW4rIlwiPjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyI+JmVuc3A7Iit2YWwwKyImZW5zcDs8L3RkPjx0ZCBhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPjwvdHI+IjsgYnJlYWs7ICB9IGVsc2UNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIGh0bWxPdXQ9aHRtbE91dCsiPHRyIGJnY29sb3I9XCIiK2ZhcmJlVW5nZXJhZGVaZWlsZW4rIlwiPjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyI+JmVuc3A7Iit2YWwwKyImZW5zcDs8L3RkPjx0ZCBhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPjwvdHI+IjsgYnJlYWs7ICB9DQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiAgICAgICAgICBjYXNlIDI6ICBpZihjb3VudGVyJTQ9PTApew0KICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ZXIlMj09MCkgIHtodG1sT3V0ID0gaHRtbE91dCsiPHRyIGJnY29sb3I9XCIiK2ZhcmJlR2VyYWRlWmVpbGVuKyJcIiA+PHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIj4mZW5zcDsiK3ZhbDArIiZlbnNwOzwvdGQ+PHRkIHN0eWxlPVwiIGJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsicHggc29saWQgIitmYXJiZXRyZW5udW5nc0xpbmllKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7XCJhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPiI7IH0gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge2h0bWxPdXQgPSBodG1sT3V0KyI8dGQgYWxpZ249IitGZWxkMWxBbGlnbisiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4mZW5zcDsiK3ZhbDArIiZlbnNwOzwvdGQ+PHRkICBhbGlnbj0iK0ZlbGQybEFsaWduKyIgc3R5bGU9XCJjb2xvcjoiKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4mZW5zcDsiK3ZhbDErIiZlbnNwOzwvdGQ+PC90cj4iO30gYnJlYWs7DQogICAgICAgICAgfWVsc2V7DQogICAgICAgICAgICAgICAgICAgaWYoY291bnRlciUyPT0wKSAge2h0bWxPdXQgPSBodG1sT3V0KyI8dHIgYmdjb2xvcj1cIiIrZmFyYmVVbmdlcmFkZVplaWxlbisiXCI+PHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIj4mZW5zcDsiK3ZhbDArIiZlbnNwOzwvdGQ+PHRkIHN0eWxlPVwiIGJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHggc29saWQgIitmYXJiZXRyZW5udW5nc0xpbmllKyI7XCIgYWxpZ249IitGZWxkMmxBbGlnbisiPiZlbnNwOyIrdmFsMSsiJmVuc3A7PC90ZD4iOyB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtodG1sT3V0ID0gaHRtbE91dCsiPHRkICBhbGlnbj0iK0ZlbGQxbEFsaWduKyIgc3R5bGU9XCIgY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4mZW5zcDsiK3ZhbDArIiZlbnNwOzwvdGQ+PHRkICBhbGlnbj0iK0ZlbGQybEFsaWduKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4mZW5zcDsiK3ZhbDErIiZlbnNwOzwvdGQ+PC90cj4iO30gYnJlYWs7fQ0KLy8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgICAgICAgICAgICAgDQogICAgICAgICAgY2FzZSAzOiBpZihjb3VudGVyJTI9PTApICAgew0KICAgICAgICAgIA0KICAgICAgICAgICAgICAgICAgaWYoY291bnRlciUzPT0wICkgIHtodG1sT3V0ID0gaHRtbE91dCsiPHRyIGJnY29sb3I9XCIiK2ZhcmJlR2VyYWRlWmVpbGVuKyJcIj48dGQgYWxpZ249IitGZWxkMWxBbGlnbisiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgc3R5bGU9XCIgYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhcmJldHJlbm51bmdzTGluaWUrIjtcIiBhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPiI7IH0gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyBpZihjb3VudGVyJTM9PTEgKSAgeyBodG1sT3V0ID0gaHRtbE91dCsiPHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIiBzdHlsZT1cImNvbG9yOiIraHRtbEZhcmJGZWxkZXJzY2hyaWZ0MisiXCI+JmVuc3A7Iit2YWwwKyImZW5zcDs8L3RkPjx0ZCAgYWxpZ249IitGZWxkMmxBbGlnbisNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHN0eWxlPVwiYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiK2ZhcmJldHJlbm51bmdzTGluaWUrIjtjb2xvcjoiK2h0bWxGYXJiRmVsZGVyc2NocmlmdDIrIlwiPiZlbnNwOyIrdmFsMSsiJmVuc3A7PC90ZD4iO30gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAgICB7aHRtbE91dCA9IGh0bWxPdXQrIjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyI+JmVuc3A7Iit2YWwwKyImZW5zcDs8L3RkPjx0ZCBhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPjwvdHI+Ijt9DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBicmVhazsgfWVsc2V7DQogICAgICAgICAgICAgICAgICBpZihjb3VudGVyJTM9PTAgKSAge2h0bWxPdXQgPSBodG1sT3V0KyI8dHIgYmdjb2xvcj1cIiIrZmFyYmVVbmdlcmFkZVplaWxlbisiXCI+PHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIj4mZW5zcDsiK3ZhbDArIiZlbnNwOzwvdGQ+PHRkIHN0eWxlPVwiIGJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsicHggc29saWQgIisNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXJiZXRyZW5udW5nc0xpbmllKyI7XCIgYWxpZ249IitGZWxkMmxBbGlnbisiPiZlbnNwOyIrdmFsMSsiJmVuc3A7PC90ZD4iOyB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHsgaWYoY291bnRlciUzPT0xICkgIHsgaHRtbE91dCA9IGh0bWxPdXQrIjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyIgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiRmVsZGVyc2NocmlmdDIrIlwiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgIGFsaWduPSIrRmVsZDJsQWxpZ24rDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBzdHlsZT1cImJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsicHggc29saWQgIitmYXJiZXRyZW5udW5nc0xpbmllKyI7Y29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4mZW5zcDsiK3ZhbDErIiZlbnNwOzwvdGQ+Ijt9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgICAge2h0bWxPdXQgPSBodG1sT3V0KyI8dGQgYWxpZ249IitGZWxkMWxBbGlnbisiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgYWxpZ249IitGZWxkMmxBbGlnbisiPiZlbnNwOyIrdmFsMSsiJmVuc3A7PC90ZD48L3RyPiI7fQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gYnJlYWs7ICB9ICAgICAgICAgICAgICAgICAgICAgICANCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSANCiAgICAgICAgICBjYXNlIDQ6IC8vY291bnRlcj1jb3VudGVyKzggDQogICAgICAgICAgaWYoY291bnRlciU4PT0wKSAgIHsNCiAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICBpZihjb3VudGVyJTQ9PTApICB7aHRtbE91dCA9IGh0bWxPdXQrIjx0ciBiZ2NvbG9yPVwiIitmYXJiZUdlcmFkZVplaWxlbisiXCI+PHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIj4mZW5zcDsiK3ZhbDArIiZlbnNwOzwvdGQ+PHRkIHN0eWxlPVwiIGJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsicHggc29saWQgIisNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXJiZXRyZW5udW5nc0xpbmllKyI7XCIgYWxpZ249IitGZWxkMmxBbGlnbisiPiZlbnNwOyIrdmFsMSsiJmVuc3A7PC90ZD4iOyB9IA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7aWYoY291bnRlciU0PT0xICkgIHsgaHRtbE91dCA9IGh0bWxPdXQrIjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyIgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiRmVsZGVyc2NocmlmdDIrIlwiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgIGFsaWduPSIrRmVsZDJsQWxpZ24rDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBzdHlsZT1cImNvbG9yOiIraHRtbEZhcmJGZWxkZXJzY2hyaWZ0MisiXCI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPiI7fSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlICAgIHtpZihjb3VudGVyJTQ9PTMpICB7IGh0bWxPdXQ9IGh0bWxPdXQrIjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyIgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiRmVsZGVyc2NocmlmdDIrIlwiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgIGFsaWduPSIrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZlbGQybEFsaWduKyIgc3R5bGU9XCJib3JkZXItcmlnaHQ6ICIrdHJlbm51bmdzTGluaWUrInB4IHNvbGlkICIrZmFyYmV0cmVubnVuZ3NMaW5pZSsiOyBjb2xvcjoiK2h0bWxGYXJiRmVsZGVyc2NocmlmdDIrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcIj4mZW5zcDsiK3ZhbDErIiZlbnNwOzwvdGQ+PC90cj4iO30gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAgICB7aHRtbE91dCA9IGh0bWxPdXQgPSBodG1sT3V0KyI8dGQgYWxpZ249IitGZWxkMWxBbGlnbisiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgc3R5bGU9XCIgYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK2ZhcmJldHJlbm51bmdzTGluaWUrIjtcIiBhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPiI7fX0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGJyZWFrO31lbHNlew0KICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ZXIlND09MCkgIHtodG1sT3V0ID0gaHRtbE91dCsiPHRyIGJnY29sb3I9XCIiK2ZhcmJlVW5nZXJhZGVaZWlsZW4rIlwiPjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyI+JmVuc3A7Iit2YWwwKyImZW5zcDs8L3RkPjx0ZCBzdHlsZT1cIiBib3JkZXItcmlnaHQ6ICIrdHJlbm51bmdzTGluaWUrInB4IHNvbGlkICIrDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFyYmV0cmVubnVuZ3NMaW5pZSsiO1wiIGFsaWduPSIrRmVsZDJsQWxpZ24rIj4mZW5zcDsiK3ZhbDErIiZlbnNwOzwvdGQ+IjsgfSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge2lmKGNvdW50ZXIlND09MSApICB7IGh0bWxPdXQgPSBodG1sT3V0KyI8dGQgYWxpZ249IitGZWxkMWxBbGlnbisiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4mZW5zcDsiK3ZhbDArIiZlbnNwOzwvdGQ+PHRkICBhbGlnbj0iK0ZlbGQybEFsaWduKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgc3R5bGU9XCJib3JkZXItcmlnaHQ6ICIrdHJlbm51bmdzTGluaWUrInB4IHNvbGlkICIrZmFyYmV0cmVubnVuZ3NMaW5pZSsiO2NvbG9yOiIraHRtbEZhcmJGZWxkZXJzY2hyaWZ0MisiXCI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPiI7fSANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlICAgIHtpZihjb3VudGVyJTQ9PTMpICB7IGh0bWxPdXQ9IGh0bWxPdXQrIjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyIgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiRmVsZGVyc2NocmlmdDIrIlwiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgIGFsaWduPSINCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgK0ZlbGQybEFsaWduKyIgc3R5bGU9XCIgY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4mZW5zcDsiK3ZhbDErIiZlbnNwOzwvdGQ+PC90cj4iO30gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAgICB7aHRtbE91dCA9IGh0bWxPdXQgPSBodG1sT3V0KyI8dGQgYWxpZ249IitGZWxkMWxBbGlnbisiPiZlbnNwOyIrdmFsMCsiJmVuc3A7PC90ZD48dGQgc3R5bGU9XCIgYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhcmJldHJlbm51bmdzTGluaWUrIjtcIiBhbGlnbj0iK0ZlbGQybEFsaWduKyI+JmVuc3A7Iit2YWwxKyImZW5zcDs8L3RkPiI7fX0NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICBicmVhazsgICB9ICAgICAgICAgICAgICAgICAgICAgDQoNCiAgICAgIH0gLy9zd2l0Y2ggZW5kZQ0KDQogfQ0KDQogZnVuY3Rpb24gdGFiZWxsZUZpbmlzaCgpIHsNCg0KICAgICAgICBzd2l0Y2ggKG1laHJmYWNoVGFiZWxsZSkgeyAgDQogICAgICAgICAgY2FzZSAxOiAgICBicmVhazsNCiAgICAgICAgICBjYXNlIDI6ICAgIGlmKGNvdW50ZXIlMj09MCkgIGh0bWxPdXQgPSBodG1sT3V0LnJlcGxhY2UoLzxcL3RkPiQvLCAnPC90ZD48dGQ+JmVuc3A7PC90ZD48dGQ+JmVuc3A7PC90ZD48L3RyPicpOyANCiAgICAgICAgICAgICAgICAgICAgICAgICAgDQogICAgICAgICAgICAgICAgICAgICBicmVhazsNCiAgICAgICAgICBjYXNlIDM6ICAgIGlmKGNvdW50ZXIlMz09MikgIGh0bWxPdXQgPSBodG1sT3V0LnJlcGxhY2UoLzxcL3RkPiQvLCAiPC90ZD48L3RyPiIpOw0KICAgICAgICAgICAgICAgICAgICAgaWYoY291bnRlciUzPT0xKSAgaHRtbE91dCA9IGh0bWxPdXQucmVwbGFjZSgvPFwvdGQ+JC8sICAnPC90ZD48dGQ+JmVuc3A7PC90ZD48dGQ+JmVuc3A7PC90ZD48L3RyPicpOyAgICAgICANCiAgICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ZXIlMz09MCkgIGh0bWxPdXQgPSBodG1sT3V0LnJlcGxhY2UoLzxcL3RkPiQvLCAiPC90ZD48dGQ+JmVuc3A7PC90ZD48dGQgc3R5bGU9XCIgYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiK2ZhcmJldHJlbm51bmdzTGluaWUrIlwiPiZlbnNwOzwvdGQ+PHRkPiZlbnNwOzwvdGQ+PHRkPiZlbnNwOzwvdGQ+PC90cj4iKTsNCiAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgIGNhc2UgNDogICAgaWYoY291bnRlciU0PT0zKSAgaHRtbE91dCA9IGh0bWxPdXQucmVwbGFjZSgvPFwvdGQ+JC8sICI8L3RkPjwvdHI+Iik7DQogICAgICAgICAgICAgICAgICAgICBpZihjb3VudGVyJTQ9PTIpICBodG1sT3V0ID0gaHRtbE91dC5yZXBsYWNlKC88XC90ZD4kLywgIjwvdGQ+PHRkPiZlbnNwOzwvdGQ+PHRkPiZlbnNwOzwvdGQ+PC90cj4iKTsNCiAgICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ZXIlND09MSkgIGh0bWxPdXQgPSBodG1sT3V0LnJlcGxhY2UoLzxcL3RkPiQvLCAiPC90ZD48dGQ+JmVuc3A7PC90ZD48dGQgc3R5bGU9XCIgYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiK2ZhcmJldHJlbm51bmdzTGluaWUrIlwiPiZlbnNwOzwvdGQ+PHRkPiZlbnNwOzwvdGQ+PHRkPiZlbnNwOzwvdGQ+PC90cj4iKTsgICAgDQogICAgICAgICAgICAgICAgICAgICBpZihjb3VudGVyJTQ9PTApICBodG1sT3V0ID0gaHRtbE91dC5yZXBsYWNlKC88XC90ZD4kLywgIjwvdGQ+PHRkPiZlbnNwOzwvdGQ+PHRkIHN0eWxlPVwiIGJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsicHggc29saWQgIitmYXJiZXRyZW5udW5nc0xpbmllKyJcIj4mZW5zcDs8L3RkPjx0ZD4mZW5zcDs8L3RkPjx0ZCBzdHlsZT1cIiBib3JkZXItcmlnaHQ6ICIrdHJlbm51bmdzTGluaWUrInB4IHNvbGlkICIrZmFyYmV0cmVubnVuZ3NMaW5pZSsiXCI+JmVuc3A7PC90ZD48dGQ+JmVuc3A7PC90ZD48dGQ+JmVuc3A7PC90ZD48L3RyPiIpOyAgIA0KICAgICAgICAgICAgICAgICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOyB9DQogICAgICAgICAgIHZhciBodG1sVWViZXI9ICAgICI8cCBzdHlsZT1cImNvbG9yOiIraHRtbEZhcmJVYmVyKyI7IGZvbnQtZmFtaWx5OiIraHRtbFNjaHJpZnRhcnQrIjsgZm9udC1zaXplOiAiK2h0bWzDnGJlckZvbnRHcm9lc3NlKyI7IGZvbnQtd2VpZ2h0OiIraHRtbFNjaHJpZnRXZWl0ZSsgIlwiPiIraHRtbEZlbGRVZWJlcisiJmVuc3A7JmVuc3A7TGFzdCBVcGRhdGU6ICIrZm9ybWF0RGF0ZShnZXREYXRlT2JqZWN0KChwYXJzZUZsb2F0KChuZXcgRGF0ZSgpLmdldFRpbWUoKSkpKSksICJTUzptbTpzcyIpOysiPC9wPiI7IA0KICAgICAgICB2YXIgaHRtbFVudGVyPSAiPGRpdiAgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiVWJlcisiOyBmb250LWZhbWlseToiK2h0bWxTY2hyaWZ0YXJ0KyI7IGZvbnQtc2l6ZTogNzAlOyB0ZXh0LWFsaWduOiByaWdodDtcIiA+IitodG1sRmVsZFVlYmVyKyImZW5zcDsmZW5zcDtMYXN0IFVwZGF0ZTogIitmb3JtYXREYXRlKGdldERhdGVPYmplY3QoKHBhcnNlRmxvYXQoKG5ldyBEYXRlKCkuZ2V0VGltZSgpKSkpKSwgIlNTOm1tOnNzIik7KyI8L2Rpdj4iDQogICAgICAgICANCiAgICAgICAgIGlmICghaHRtbFNpZ25hdHVyZSkgaHRtbFVudGVyPSIiOw0KICAgICAgICAgICAvL0F1c2dhYmUgw7xiZXIgVklTIGh0bWwgd2lkZ2V0IC0gdGFiZWxsZSBpbiBkYXRlbnB1bmt0IHNjaHJlaWJlbiAtIGh0bWwgdGFiZWxsZSBvaG5lIGh0bWwgaGVhZGVyIHVuZCBib2R5DQogICAgICAgICAgICB2YXIgaHRtbE91dFZJUz0iIjsNCiAgICAgICAgICAvLyAgaHRtbFViZXJzY2hyaWZ0ID8gaHRtbE91dFZJUz1odG1sVWViZXIraHRtbFRhYlN0eWxlK2h0bWxUYWJVZWJlcitodG1sT3V0KyI8L3RhYmxlPiIgOiBodG1sT3V0VklTPWh0bWxUYWJTdHlsZStodG1sVGFiVWViZXIraHRtbE91dCsiPC90YWJsZT4iOw0KICAgICAgICAgICAgIGlmIChodG1sVWJlcnNjaHJpZnQpIA0KICAgICAgICAgICAgICAgICB7IHplbnRyaWVydCA/IGh0bWxPdXRWSVM9aHRtbFplbnRyaWVydCtodG1sVWViZXIraHRtbFRhYlN0eWxlK2h0bWxUYWJVZWJlcitodG1sT3V0KyI8L3RhYmxlPiIraHRtbFVudGVyKyBidXR0b25TY3JpcHQgOiBodG1sT3V0VklTPWh0bWxVZWJlcitodG1sVGFiU3R5bGUraHRtbFRhYlVlYmVyK2h0bWxPdXQrIjwvdGFibGU+IitodG1sVW50ZXIrIGJ1dHRvblNjcmlwdCA7DQoNCiAgICAgICAgICAgICAgIH0gZWxzZSB7DQogICAgICAgICAgICAgICAgemVudHJpZXJ0ID8gIGh0bWxPdXRWSVM9aHRtbFplbnRyaWVydCtodG1sVGFiU3R5bGUraHRtbFRhYlVlYmVyK2h0bWxPdXQrIjwvdGFibGU+IitodG1sVW50ZXIrIGJ1dHRvblNjcmlwdCA6ICBodG1sT3V0VklTPWh0bWxUYWJTdHlsZStodG1sVGFiVWViZXIraHRtbE91dCsiPC90YWJsZT4iK2h0bWxVbnRlcisgYnV0dG9uU2NyaXB0Ow0KDQogICAgICAgICAgICAgICAgICB9DQoNCiAgIC8vIGxvZygiYmluIHJhdXMgYXVzIHRhYmVsbGVCaW5kIik7DQogICAgICAgICAgICBpZiAoYnJhdWNoZUVpblZJU1dpZGdldCkgc2V0U3RhdGUoZHBWSVMsIGh0bWxPdXRWSVMgKTsNCg0KICB2YXIgaHRtbFVudGVyPSAiPGRpdiAgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiVWJlcisiOyBmb250LWZhbWlseToiK2h0bWxTY2hyaWZ0YXJ0KyI7IGZvbnQtc2l6ZTogODAlOyAgdGV4dC1hbGlnbjogY2VudGVyOyBcIiA+IitodG1sRmVsZFVlYmVyKyImZW5zcDsmZW5zcDtMYXN0IFVwZGF0ZTogIitmb3JtYXREYXRlKGdldERhdGVPYmplY3QoKHBhcnNlRmxvYXQoKG5ldyBEYXRlKCkuZ2V0VGltZSgpKSkpKSwgIlNTOm1tOnNzIik7KyI8L2Rpdj4iDQogDQogIGlmICghaHRtbFNpZ25hdHVyZSkgaHRtbFVudGVyPSIiOw0KICB2YXIgaHRtbEVuZD0iPC90YWJsZT4iK2h0bWxVbnRlcisiPC9kaXY+PC9ib2R5PiI7DQogIC8vbWl0IG9kZXIgb2huZSDDvGJlcnNjaHJpZnQgLSB6ZW50cmllcnQgb2RlciBsaW5rcw0KIGh0bWxVYmVyc2NocmlmdCA/IGh0bWxPdXQ9aHRtbFN0YXJ0K2h0bWxVZWJlcitodG1sVGFiU3R5bGUraHRtbFRhYlVlYmVyK2h0bWxPdXQraHRtbEVuZCArIGJ1dHRvblNjcmlwdDogaHRtbE91dD1odG1sU3RhcnQraHRtbFRhYlN0eWxlK2h0bWxUYWJVZWJlcitodG1sT3V0K2h0bWxFbmQrIGJ1dHRvblNjcmlwdDsNCiAgLy9sb2coaHRtbE91dCk7DQoNCg0KIH0NCg0K</field>
                             <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                           </block>
                           <block type="math_arithmetic" id=";();%c,XdRtp2qG0fnLn" disabled="true" x="938" y="212">
                             <field name="OP">ADD</field>
                             <value name="A">
                               <shadow type="math_number">
                                 <field name="NUM">1</field>
                               </shadow>
                               <block type="variables_get" id="c7_hG$]VNtu*W)j{rgV8">
                                 <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                               </block>
                             </value>
                             <value name="B">
                               <shadow type="math_number" id="{kQj+Wg[(_hvMjNH41/3">
                                 <field name="NUM">1</field>
                               </shadow>
                             </value>
                           </block>
                           <block type="debug" id="hd*A({[CriUUg1PfZ.0:" disabled="true" x="662" y="662">
                             <field name="Severity">log</field>
                             <value name="TEXT">
                               <shadow type="text">
                                 <field name="TEXT">test</field>
                               </shadow>
                               <block type="text_join" id="6qbWj3lR`EWRgS!bsU)9">
                                 <mutation items="7"></mutation>
                                 <value name="ADD0">
                                   <block type="lists_getIndex" id="q:v0yB%TMb@@O,|TFsEf">
                                     <mutation statement="false" at="true"></mutation>
                                     <field name="MODE">GET</field>
                                     <field name="WHERE">FROM_START</field>
                                     <value name="VALUE">
                                       <block type="variables_get" id="B:q#r-vO?e(nH(1,fUYi">
                                         <field name="VAR" id="I@+oLMb^;SY|ctFo/=gF">datenpunkte</field>
                                       </block>
                                     </value>
                                     <value name="AT">
                                       <block type="math_arithmetic" id=".7}^relhMv#+5EB5NUyG">
                                         <field name="OP">ADD</field>
                                         <value name="A">
                                           <shadow type="math_number">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="variables_get" id="-@Q*,CArwb`sh]coX8-Y">
                                             <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <shadow type="math_number">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="math_number" id="z%fF-%P{6I8[cGa52tbl">
                                             <field name="NUM">1</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <value name="ADD1">
                                   <block type="text" id="RrGQLg*bYNx$Cf?)q3?J">
                                     <field name="TEXT"> ----- </field>
                                   </block>
                                 </value>
                                 <value name="ADD2">
                                   <block type="get_value_var" id="M9T/ynSkYF@HaETT`Eyb">
                                     <field name="ATTR">val</field>
                                     <value name="OID">
                                       <shadow type="text">
                                         <field name="TEXT"></field>
                                       </shadow>
                                       <block type="lists_getIndex" id="F5;,(y46L0.8pYYWe*c-">
                                         <mutation statement="false" at="true"></mutation>
                                         <field name="MODE">GET</field>
                                         <field name="WHERE">FROM_START</field>
                                         <value name="VALUE">
                                           <block type="variables_get" id="I}*T6VQ~YZnMNd(_M.uH">
                                             <field name="VAR" id="I@+oLMb^;SY|ctFo/=gF">datenpunkte</field>
                                           </block>
                                         </value>
                                         <value name="AT">
                                           <block type="math_arithmetic" id="L)rbTRmd$K%0,`Y;4DLo">
                                             <field name="OP">ADD</field>
                                             <value name="A">
                                               <shadow type="math_number">
                                                 <field name="NUM">1</field>
                                               </shadow>
                                               <block type="variables_get" id="uPj?[ad+{7oD0{t`Lxv-">
                                                 <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                               </block>
                                             </value>
                                             <value name="B">
                                               <shadow type="math_number">
                                                 <field name="NUM">1</field>
                                               </shadow>
                                               <block type="math_number" id="f:{KISSaq]Ms1F=DX-B6">
                                                 <field name="NUM">1</field>
                                               </block>
                                             </value>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <value name="ADD3">
                                   <block type="text" id="n:4!e7wTM!$HN0hpCp/n">
                                     <field name="TEXT"> ----- </field>
                                   </block>
                                 </value>
                                 <value name="ADD4">
                                   <block type="math_arithmetic" id="c9YOyDRjFHhj+$zn|K^!">
                                     <field name="OP">ADD</field>
                                     <value name="A">
                                       <shadow type="math_number">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="variables_get" id="{NJKRZr|GLmf6/D?m+@C">
                                         <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                       </block>
                                     </value>
                                     <value name="B">
                                       <shadow type="math_number">
                                         <field name="NUM">1</field>
                                       </shadow>
                                       <block type="math_number" id="H}tXNgxHiGvJHfU_]M$q">
                                         <field name="NUM">1</field>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                                 <value name="ADD5">
                                   <block type="text" id="sW#4hSQ|E4.~+C55epV8">
                                     <field name="TEXT"> ----- </field>
                                   </block>
                                 </value>
                                 <value name="ADD6">
                                   <block type="lists_getIndex" id="d=Eh$X`d=;k+k*D%Get%">
                                     <mutation statement="false" at="true"></mutation>
                                     <field name="MODE">GET</field>
                                     <field name="WHERE">FROM_START</field>
                                     <value name="VALUE">
                                       <block type="variables_get" id="34.ai58K,*d7%VYw~?$6">
                                         <field name="VAR" id="y)eN7.8HDTNy:0QIRpvu">namen</field>
                                       </block>
                                     </value>
                                     <value name="AT">
                                       <block type="math_arithmetic" id="+{$m3XaTRK$WCae==Z]3">
                                         <field name="OP">ADD</field>
                                         <value name="A">
                                           <shadow type="math_number">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="variables_get" id="$%nO:HvF@,@vV[G2E@p8">
                                             <field name="VAR" id="UrdtKDQ=Ky.^B@eAuwIJ">i</field>
                                           </block>
                                         </value>
                                         <value name="B">
                                           <shadow type="math_number">
                                             <field name="NUM">1</field>
                                           </shadow>
                                           <block type="math_number" id="YsoKj[uAxE8XG~7P)Y_]">
                                             <field name="NUM">1</field>
                                           </block>
                                         </value>
                                       </block>
                                     </value>
                                   </block>
                                 </value>
                               </block>
                             </value>
                           </block>
                          </xml>
                          

                          WszeneW Offline
                          WszeneW Offline
                          Wszene
                          schrieb am zuletzt editiert von
                          #36

                          @liv-in-sky
                          Doch das hast du bei mir schon mit eingebaut

                          Das problem ist das ich da die Größe fix eingebe
                          Das heist überall wo ich die Tabelle dann einfüge habe ich den gleichen Wert

                          Da ich aber unterschiedliche Projekte für unterschiedliche Geräte habe ist das nicht so gut

                          z.B. auf dem iPad habe ich eine Icongröße von 45x45
                          und auf dem Smartphone nur 30x30

                          Daher die Frage mit den Klassen

                          Meine Hard- & Software:

                          • MSI Cubi 5 10M-049DE mit Proxmox
                          • CC2652P Zigbee Stick
                          • Steckdosen mit Tasmota und Zigbee
                          • Lichtschalter mit Tasmota
                          • IKEA TRÅDFRI Glühbirnen
                          • Aqara Sensoren
                          liv-in-skyL 1 Antwort Letzte Antwort
                          0
                          • WszeneW Wszene

                            @liv-in-sky
                            Doch das hast du bei mir schon mit eingebaut

                            Das problem ist das ich da die Größe fix eingebe
                            Das heist überall wo ich die Tabelle dann einfüge habe ich den gleichen Wert

                            Da ich aber unterschiedliche Projekte für unterschiedliche Geräte habe ist das nicht so gut

                            z.B. auf dem iPad habe ich eine Icongröße von 45x45
                            und auf dem Smartphone nur 30x30

                            Daher die Frage mit den Klassen

                            liv-in-skyL Offline
                            liv-in-skyL Offline
                            liv-in-sky
                            schrieb am zuletzt editiert von
                            #37

                            @wszene wie siehts aus mit einer session - ist schneller und einfacher

                            nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                            WszeneW 2 Antworten Letzte Antwort
                            1
                            • liv-in-skyL liv-in-sky

                              @wszene wie siehts aus mit einer session - ist schneller und einfacher

                              WszeneW Offline
                              WszeneW Offline
                              Wszene
                              schrieb am zuletzt editiert von
                              #38

                              @liv-in-sky

                              Können wir machen gebe mir mal bitte noch 15min

                              Meine Hard- & Software:

                              • MSI Cubi 5 10M-049DE mit Proxmox
                              • CC2652P Zigbee Stick
                              • Steckdosen mit Tasmota und Zigbee
                              • Lichtschalter mit Tasmota
                              • IKEA TRÅDFRI Glühbirnen
                              • Aqara Sensoren
                              1 Antwort Letzte Antwort
                              1
                              • liv-in-skyL liv-in-sky

                                @wszene wie siehts aus mit einer session - ist schneller und einfacher

                                WszeneW Offline
                                WszeneW Offline
                                Wszene
                                schrieb am zuletzt editiert von
                                #39

                                @liv-in-sky
                                Danke nochmal für deine Hilfe
                                Hier wie besprochen der Export und die CSS-Klassen

                                <xml xmlns="https://developers.google.com/blockly/xml">
                                 <variables>
                                   <variable id="X{YCwT6)UO~XY`Vc}2I4">anlegen_in</variable>
                                   <variable id="Sj=PG`7sdz;!7%*c;rMl">Tabelle - Name</variable>
                                   <variable id="0q#2a)[a+^d21Zhdi^sp">myList</variable>
                                   <variable id="2GY!!q}efSWeJut|}*g?">tabelleClass</variable>
                                   <variable id="$RIK(0f);.l=!pQfVAU#">Tabelle - Lampen</variable>
                                   <variable type="timeout" id="start">start</variable>
                                   <variable id="vFTZ1]BURtyw_?,7vv7]">Tabelle - Wert</variable>
                                   <variable id="zc}]z)HcoRF!Stu%L,1O">tabelleClassSpalte1</variable>
                                   <variable id="QZuXR_Vj:|w~;Y^wh/80">dpVIS</variable>
                                   <variable id="uY@Vk|3N|Db%n1]s5r65">schaltbar</variable>
                                   <variable id="$SQ+1P}hh0i}dM)i!l8Y">tabelleClassZeile1</variable>
                                   <variable id="0$3)d1XO~32nM)5=R_{E">tabelleClassZeile2</variable>
                                   <variable id="@XCmXlbJ|}uQfG*Yj}BT">tabelleClassIcon</variable>
                                   <variable id=";]3e-T$pq}QNAxDl__@;">Liste</variable>
                                   <variable id="[+@foafRz`m~/)FhPq0`">symbolSwitchOFF</variable>
                                   <variable id="xEf:=c;06LZR_EPM?]P@">counter</variable>
                                   <variable id="f`-]]z,}lIr/=i8^XP#h">symbolSwitchON</variable>
                                   <variable id="N8]TG{K`UGkh#8BWL|E)">symbolBreite</variable>
                                   <variable id="wan~:25GYo--e@M0rsmr">i</variable>
                                   <variable id="u,X-cS9u7+2)_f!kviiD">symbolHoehe</variable>
                                 </variables>
                                 <block type="procedures_defcustomnoreturn" id="D:0E=~0D8*EFnn8f|sd." x="37" y="-487">
                                   <mutation statements="false"></mutation>
                                   <field name="NAME">Datenpunkte_erstellen</field>
                                   <field name="SCRIPT">LyoqCiAqIENyZWF0ZSBzdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wIG9yIGphdmFzY3JpcHQueAogKiBDdXJyZW50IFZlcnNpb246ICAgICBodHRwczovL2dpdGh1Yi5jb20vTWljLU0vaW9icm9rZXIuY3JlYXRlVXNlclN0YXRlcwogKiBTdXBwb3J0OiAgICAgICAgICAgICBodHRwczovL2ZvcnVtLmlvYnJva2VyLm5ldC90b3BpYy8yNjgzOS8KICogQXV0b3I6ICAgICAgICAgICAgICAgTWljIChpb0Jyb2tlcikgfCBNaWMtTSAoZ2l0aHViKQogKiBWZXJzaW9uOiAgICAgICAgICAgICAxLjIgKDIwIE9jdG9iZXIgMjAyMCkKICogRXhhbXBsZTogICAgICAgICAgICAgc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9NaWMtTS9pb2Jyb2tlci5jcmVhdGVVc2VyU3RhdGVzI2JlaXNwaWVsCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIFBMRUFTRSBOT1RFOiBQZXIgaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCwgdGhlIHVzZWQgZnVuY3Rpb24gc2V0T2JqZWN0KCkgCiAqICAgICAgICAgICAgICBleGVjdXRlcyB0aGUgY2FsbGJhY2sgUFJJT1IgdG8gY29tcGxldGluZyB0aGUgc3RhdGUgY3JlYXRpb24uIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlci4gCiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAqIEBwYXJhbSB7c3RyaW5nfSB3aGVyZSAgICAgICAgICBXaGVyZSB0byBjcmVhdGUgdGhlIHN0YXRlOiAnMF91c2VyZGF0YS4wJyBvciAnamF2YXNjcmlwdC54Jy4KICogQHBhcmFtIHtib29sZWFufSBmb3JjZSAgICAgICAgIEZvcmNlIHN0YXRlIGNyZWF0aW9uIChvdmVyd3JpdGUpLCBpZiBzdGF0ZSBpcyBleGlzdGluZy4KICogQHBhcmFtIHthcnJheX0gc3RhdGVzVG9DcmVhdGUgIFN0YXRlKHMpIHRvIGNyZWF0ZS4gc2luZ2xlIGFycmF5IG9yIGFycmF5IG9mIGFycmF5cwogKiBAcGFyYW0ge29iamVjdH0gW2NhbGxiYWNrXSAgICAgT3B0aW9uYWw6IGEgY2FsbGJhY2sgZnVuY3Rpb24gLS0gVGhpcyBwcm92aWRlZCBmdW5jdGlvbiB3aWxsIGJlIGV4ZWN1dGVkIGFmdGVyIGFsbCBzdGF0ZXMgYXJlIGNyZWF0ZWQuCiAqLwpmdW5jdGlvbiBjcmVhdGVVc2VyU3RhdGVzKHdoZXJlLCBmb3JjZSwgc3RhdGVzVG9DcmVhdGUsIGNhbGxiYWNrID0gdW5kZWZpbmVkKSB7CiAKICAgIGNvbnN0IFdBUk4gPSBmYWxzZTsgLy8gT25seSBmb3IgMF91c2VyZGF0YS4wOiBUaHJvd3Mgd2FybmluZyBpbiBsb2csIGlmIHN0YXRlIGlzIGFscmVhZHkgZXhpc3RpbmcgYW5kIGZvcmNlPWZhbHNlLiBEZWZhdWx0IGlzIGZhbHNlLCBzbyBubyB3YXJuaW5nIGluIGxvZywgaWYgc3RhdGUgZXhpc3RzLgogICAgY29uc3QgTE9HX0RFQlVHID0gZmFsc2U7IC8vIFRvIGRlYnVnIHRoaXMgZnVuY3Rpb24sIHNldCB0byB0cnVlCiAgICAvLyBQZXIgaXNzdWUgIzQ3NCAoaHR0cHM6Ly9naXRodWIuY29tL2lvQnJva2VyL2lvQnJva2VyLmphdmFzY3JpcHQvaXNzdWVzLzQ3NCksIHRoZSB1c2VkIGZ1bmN0aW9uIHNldE9iamVjdCgpIGV4ZWN1dGVzIHRoZSBjYWxsYmFjayAKICAgIC8vIGJlZm9yZSB0aGUgc3RhdGUgaXMgYWN0dWFsIGNyZWF0ZWQuIFRoZXJlZm9yZSwgd2UgdXNlIGEgc2V0VGltZW91dCBhbmQgY291bnRlciBhcyBhIHdvcmthcm91bmQuCiAgICBjb25zdCBERUxBWSA9IDUwOyAvLyBEZWxheSBpbiBtaWxsaXNlY29uZHMgKG1zKS4gSW5jcmVhc2UgdGhpcyB0byAxMDAsIGlmIGl0IGlzIG5vdCB3b3JraW5nLgoKICAgIC8vIFZhbGlkYXRlICJ3aGVyZSIKICAgIGlmICh3aGVyZS5lbmRzV2l0aCgnLicpKSB3aGVyZSA9IHdoZXJlLnNsaWNlKDAsIC0xKTsgLy8gUmVtb3ZlIHRyYWlsaW5nIGRvdAogICAgaWYgKCAod2hlcmUubWF0Y2goL14oKGphdmFzY3JpcHRcLihbMS05XVswLTldfFswLTldKSkkfDBfdXNlcmRhdGFcLjAkKS8pID09IG51bGwpICkgewogICAgICAgIGxvZygnVGhpcyBzY3JpcHQgZG9lcyBub3Qgc3VwcG9ydCB0byBjcmVhdGUgc3RhdGVzIHVuZGVyIFsnICsgd2hlcmUgKyAnXScsICdlcnJvcicpOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAvLyBQcmVwYXJlICJzdGF0ZXNUb0NyZWF0ZSIgc2luY2Ugd2UgYWxzbyBhbGxvdyBhIHNpbmdsZSBzdGF0ZSB0byBjcmVhdGUKICAgIGlmKCFBcnJheS5pc0FycmF5KHN0YXRlc1RvQ3JlYXRlWzBdKSkgc3RhdGVzVG9DcmVhdGUgPSBbc3RhdGVzVG9DcmVhdGVdOyAvLyB3cmFwIGludG8gYXJyYXksIGlmIGp1c3Qgb25lIGFycmF5IGFuZCBub3QgaW5zaWRlIGFuIGFycmF5CgogICAgLy8gQWRkICJ3aGVyZSIgdG8gU1RBVEVTX1RPX0NSRUFURQogICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdGF0ZXNUb0NyZWF0ZS5sZW5ndGg7IGkrKykgewogICAgICAgIGxldCBscFBhdGggPSBzdGF0ZXNUb0NyZWF0ZVtpXVswXS5yZXBsYWNlKC9cLipcLi9nLCAnLicpOyAvLyByZXBsYWNlIGFsbCBtdWx0aXBsZSBkb3RzIGxpa2UgJy4uJywgJy4uLicgd2l0aCBhIHNpbmdsZSAnLicKICAgICAgICBscFBhdGggPSBscFBhdGgucmVwbGFjZSgvXigoamF2YXNjcmlwdFwuKFsxLTldWzAtOV18WzAtOV0pXC4pfDBfdXNlcmRhdGFcLjBcLikvLCcnKSAvLyByZW1vdmUgYW55IGphdmFzY3JpcHQueC4gLyAwX3VzZXJkYXRhLjAuIGZyb20gYmVnaW5uaW5nCiAgICAgICAgbHBQYXRoID0gd2hlcmUgKyAnLicgKyBscFBhdGg7IC8vIGFkZCB3aGVyZSB0byBiZWdpbm5pbmcgb2Ygc3RyaW5nCiAgICAgICAgc3RhdGVzVG9DcmVhdGVbaV1bMF0gPSBscFBhdGg7CiAgICB9CgogICAgaWYgKHdoZXJlICE9ICcwX3VzZXJkYXRhLjAnKSB7CiAgICAgICAgLy8gQ3JlYXRlIFN0YXRlcyB1bmRlciBqYXZhc2NyaXB0LngKICAgICAgICBsZXQgbnVtU3RhdGVzID0gc3RhdGVzVG9DcmVhdGUubGVuZ3RoOwogICAgICAgIHN0YXRlc1RvQ3JlYXRlLmZvckVhY2goZnVuY3Rpb24obG9vcFBhcmFtKSB7CiAgICAgICAgICAgIGlmIChMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBOb3cgd2UgYXJlIGNyZWF0aW5nIG5ldyBzdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddJyk7CiAgICAgICAgICAgIGxldCBsb29wSW5pdCA9IChsb29wUGFyYW1bMV1bJ2RlZiddID09IHVuZGVmaW5lZCkgPyBudWxsIDogbG9vcFBhcmFtWzFdWydkZWYnXTsgLy8gbWltaWMgc2FtZSBiZWhhdmlvciBhcyBjcmVhdGVTdGF0ZSBpZiBubyBpbml0IHZhbHVlIGlzIHByb3ZpZGVkCiAgICAgICAgICAgIGNyZWF0ZVN0YXRlKGxvb3BQYXJhbVswXSwgbG9vcEluaXQsIGZvcmNlLCBsb29wUGFyYW1bMV0sIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICBpZiAobnVtU3RhdGVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgcHJvY2Vzc2VkLicpOwogICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHsgLy8gZXhlY3V0ZSBpZiBhIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCB0byBwYXJhbWV0ZXIgY2FsbGJhY2sKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEZ1bmN0aW9uIHRvIGNhbGxiYWNrIHBhcmFtZXRlciB3YXMgcHJvdmlkZWQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfSk7CiAgICB9IGVsc2UgewogICAgICAgIC8vIENyZWF0ZSBTdGF0ZXMgdW5kZXIgMF91c2VyZGF0YS4wCiAgICAgICAgbGV0IG51bVN0YXRlcyA9IHN0YXRlc1RvQ3JlYXRlLmxlbmd0aDsKICAgICAgICBsZXQgY291bnRlciA9IC0xOwogICAgICAgIHN0YXRlc1RvQ3JlYXRlLmZvckVhY2goZnVuY3Rpb24obG9vcFBhcmFtKSB7CiAgICAgICAgICAgIGNvdW50ZXIgKz0gMTsKICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nICgnW0RlYnVnXSBDdXJyZW50bHkgcHJvY2Vzc2luZyBmb2xsb3dpbmcgc3RhdGU6IFsnICsgbG9vcFBhcmFtWzBdICsgJ10nKTsKICAgICAgICAgICAgaWYoICgkKGxvb3BQYXJhbVswXSkubGVuZ3RoID4gMCkgJiYgKGV4aXN0c1N0YXRlKGxvb3BQYXJhbVswXSkpICkgeyAvLyBXb3JrYXJvdW5kIGR1ZSB0byBodHRwczovL2dpdGh1Yi5jb20vaW9Ccm9rZXIvaW9Ccm9rZXIuamF2YXNjcmlwdC9pc3N1ZXMvNDc4CiAgICAgICAgICAgICAgICAvLyBTdGF0ZSBpcyBleGlzdGluZy4KICAgICAgICAgICAgICAgIGlmIChXQVJOICYmICFmb3JjZSkgbG9nKCdTdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddIGlzIGFscmVhZHkgZXhpc3RpbmcgYW5kIHdpbGwgbm8gbG9uZ2VyIGJlIGNyZWF0ZWQuJywgJ3dhcm4nKTsKICAgICAgICAgICAgICAgIGlmICghV0FSTiAmJiBMT0dfREVCVUcpIGxvZygnW0RlYnVnXSBTdGF0ZSBbJyArIGxvb3BQYXJhbVswXSArICddIGlzIGFscmVhZHkgZXhpc3RpbmcuIE9wdGlvbiBmb3JjZSAoPW92ZXJ3cml0ZSkgaXMgc2V0IHRvIFsnICsgZm9yY2UgKyAnXS4nKTsKICAgICAgICAgICAgICAgIGlmKCFmb3JjZSkgewogICAgICAgICAgICAgICAgICAgIC8vIFN0YXRlIGV4aXN0cyBhbmQgc2hhbGwgbm90IGJlIG92ZXJ3cml0dGVuIHNpbmNlIGZvcmNlPWZhbHNlCiAgICAgICAgICAgICAgICAgICAgLy8gU28sIHdlIGRvIG5vdCBwcm9jZWVkLgogICAgICAgICAgICAgICAgICAgIG51bVN0YXRlcy0tOwogICAgICAgICAgICAgICAgICAgIGlmIChudW1TdGF0ZXMgPT09IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgc3VjY2Vzc2Z1bGx5IHByb2Nlc3NlZCEnKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PT0gJ2Z1bmN0aW9uJykgeyAvLyBleGVjdXRlIGlmIGEgZnVuY3Rpb24gd2FzIHByb3ZpZGVkIHRvIHBhcmFtZXRlciBjYWxsYmFjawogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFuIG9wdGlvbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCwgd2hpY2ggd2UgYXJlIGdvaW5nIHRvIGV4ZWN1dGUgbm93LicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7ICAvLyBubyBjYWxsYmFjaywgcmV0dXJuIGFueXdheQogICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgbmVlZCB0byBnbyBvdXQgYW5kIGNvbnRpbnVlIHdpdGggbmV4dCBlbGVtZW50IGluIGxvb3AuCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTg0NTI5MjAvY29udGludWUtaW4tY3Vyc29yLWZvcmVhY2gKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IC8vIGlmKCFmb3JjZSkKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU3RhdGUgaXMgbm90IGV4aXN0aW5nIG9yIGZvcmNlID0gdHJ1ZSwgc28gd2UgYXJlIGNvbnRpbnVpbmcgdG8gY3JlYXRlIHRoZSBzdGF0ZSB0aHJvdWdoIHNldE9iamVjdCgpLgogICAgICAgICAgICBsZXQgb2JqID0ge307CiAgICAgICAgICAgIG9iai50eXBlID0gJ3N0YXRlJzsKICAgICAgICAgICAgb2JqLm5hdGl2ZSA9IHt9OwogICAgICAgICAgICBvYmouY29tbW9uID0gbG9vcFBhcmFtWzFdOwogICAgICAgICAgICBzZXRPYmplY3QobG9vcFBhcmFtWzBdLCBvYmosIGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgICAgICAgIGlmIChlcnIpIHsKICAgICAgICAgICAgICAgICAgICBsb2coJ0Nhbm5vdCB3cml0ZSBvYmplY3QgZm9yIHN0YXRlIFsnICsgbG9vcFBhcmFtWzBdICsgJ106ICcgKyBlcnIpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZiAoTE9HX0RFQlVHKSBsb2coJ1tEZWJ1Z10gTm93IHdlIGFyZSBjcmVhdGluZyBuZXcgc3RhdGUgWycgKyBsb29wUGFyYW1bMF0gKyAnXScpCiAgICAgICAgICAgICAgICAgICAgbGV0IGluaXQgPSBudWxsOwogICAgICAgICAgICAgICAgICAgIGlmKGxvb3BQYXJhbVsxXS5kZWYgPT09IHVuZGVmaW5lZCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0udHlwZSA9PT0gJ251bWJlcicpIGluaXQgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICBpZihsb29wUGFyYW1bMV0udHlwZSA9PT0gJ2Jvb2xlYW4nKSBpbml0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGxvb3BQYXJhbVsxXS50eXBlID09PSAnc3RyaW5nJykgaW5pdCA9ICcnOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGluaXQgPSBsb29wUGFyYW1bMV0uZGVmOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICBzZXRTdGF0ZShsb29wUGFyYW1bMF0sIGluaXQsIHRydWUsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIHNldFN0YXRlIGR1cmNoZ2Vmw7xocnQ6ICcgKyBsb29wUGFyYW1bMF0pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVtU3RhdGVzLS07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobnVtU3RhdGVzID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEFsbCBzdGF0ZXMgcHJvY2Vzc2VkLicpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdmdW5jdGlvbicpIHsgLy8gZXhlY3V0ZSBpZiBhIGZ1bmN0aW9uIHdhcyBwcm92aWRlZCB0byBwYXJhbWV0ZXIgY2FsbGJhY2sKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKExPR19ERUJVRykgbG9nKCdbRGVidWddIEZ1bmN0aW9uIHRvIGNhbGxiYWNrIHBhcmFtZXRlciB3YXMgcHJvdmlkZWQnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9LCBERUxBWSArICgyMCAqIGNvdW50ZXIpICk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgfQp9CgovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKLy9EYXRlbnB1bmt0ZSBmw7xyIFNlbmRlciBlcnN0ZWxsZW4gbWl0IFNtYXJ0TmFtZW4gZsO8ciBpb3QKbGV0IHN0YXRlc1RvQ3JlYXRlID0gWwogICAgWycwX3VzZXJkYXRhLjAuMDAyX251clZJUy4wM19UYWJlbGxlbi5UYWJlbGxlLUxhbXBlbicsIHsnbmFtZSc6J1RhYmVsbGUgLSBMYW1wZW4nLCAndHlwZSc6J3N0cmluZycsICdyZWFkJzp0cnVlLCAnd3JpdGUnOnRydWUsICdyb2xlJzonJywgJ2RlZic6JycsICJzbWFydE5hbWUiOiBmYWxzZSB9XSwKCl07CmNyZWF0ZVVzZXJTdGF0ZXMoYW5sZWdlbl9pbix0cnVlLCBzdGF0ZXNUb0NyZWF0ZSk7CgovLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoKLy9GdW5rdGlvbiBtYWluIG1pdCBWZXJ6w7ZnZXJ1bmcgYXVmcnVmZW4KdGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgewptYWluKCk7Cn0sIDUwMDApOwoKCg==</field>
                                   <comment pinned="false" h="80" w="160">Datenpunkte erstellen</comment>
                                 </block>
                                 <block type="procedures_defnoreturn" id="|r?w}:z)r=!T3O=4ydx]" collapsed="true" x="762" y="-487">
                                   <field name="NAME">main</field>
                                   <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                   <statement name="STACK">
                                     <block type="variables_set" id=".gQp2+8;_3/q8_Uwr:F/">
                                       <field name="VAR" id="$RIK(0f);.l=!pQfVAU#">Tabelle - Lampen</field>
                                       <value name="VALUE">
                                         <block type="text_join" id="]$B5QV^ydMJ7Ox*Vk,L(">
                                           <mutation items="2"></mutation>
                                           <value name="ADD0">
                                             <block type="variables_get" id="z$A`(VFvUcL{CgqQKX]4">
                                               <field name="VAR" id="X{YCwT6)UO~XY`Vc}2I4">anlegen_in</field>
                                             </block>
                                           </value>
                                           <value name="ADD1">
                                             <block type="text" id="An4U,bq[qbV=TJY^y+9l">
                                               <field name="TEXT">0_userdata.0.002_nurVIS.03_Tabellen.Tabelle-Lampen</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="variables_set" id="C5HWo|yi`(1D-VroN~CI">
                                           <field name="VAR" id="QZuXR_Vj:|w~;Y^wh/80">dpVIS</field>
                                           <value name="VALUE">
                                             <block type="text" id="jE]@{6x/=YXCcP(*}MB_">
                                               <field name="TEXT">0_userdata.0.002_nurVIS.03_Tabellen.Tabelle-Lampen</field>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="on_ext" id="j5{Mnb?|Oo@L~6(UbSAv">
                                               <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation>
                                               <field name="CONDITION">ne</field>
                                               <field name="ACK_CONDITION"></field>
                                               <value name="OID0">
                                                 <shadow type="field_oid" id="FL;tv}CJCem$Z^9KD@Op">
                                                   <field name="oid">default</field>
                                                 </shadow>
                                                 <block type="variables_get" id="Ni|HL}{c56c/QzL#ge42">
                                                   <field name="VAR" id="vFTZ1]BURtyw_?,7vv7]">Tabelle - Wert</field>
                                                 </block>
                                               </value>
                                               <statement name="STATEMENT">
                                                 <block type="debug" id="X0vTv0:.XY]1I6tzL9q@">
                                                   <field name="Severity">log</field>
                                                   <value name="TEXT">
                                                     <shadow type="text" id="RJ?8[!3;Q~FS8lAtLdeR">
                                                       <field name="TEXT">geschaltet</field>
                                                     </shadow>
                                                   </value>
                                                   <next>
                                                     <block type="variables_set" id="83N;r#%qTAdY9GgSNs^F">
                                                       <field name="VAR" id=";]3e-T$pq}QNAxDl__@;">Liste</field>
                                                       <value name="VALUE">
                                                         <block type="lists_create_with" id="4U^kzE{Hs(]pnBMC??q|">
                                                           <mutation items="0"></mutation>
                                                         </block>
                                                       </value>
                                                       <next>
                                                         <block type="variables_set" id="*~@+.cU.1SMX$3YFQEMy">
                                                           <field name="VAR" id="xEf:=c;06LZR_EPM?]P@">counter</field>
                                                           <value name="VALUE">
                                                             <block type="math_number" id="GaEH[gm^fOE=a@gYSg@t">
                                                               <field name="NUM">-1</field>
                                                             </block>
                                                           </value>
                                                           <next>
                                                             <block type="debug" id="0q`R4fr%LknOMj$3V$u@">
                                                               <field name="Severity">log</field>
                                                               <value name="TEXT">
                                                                 <shadow type="text" id="TaX2W/t-$WBf@8b04TWs">
                                                                   <field name="TEXT">geschaltet</field>
                                                                 </shadow>
                                                                 <block type="lists_length" id="m,n=M/w=A+o?=9%4uy~@">
                                                                   <value name="VALUE">
                                                                     <block type="variables_get" id="pA5HL%Bq}t=XiPi,$TkX">
                                                                       <field name="VAR" id="Sj=PG`7sdz;!7%*c;rMl">Tabelle - Name</field>
                                                                     </block>
                                                                   </value>
                                                                 </block>
                                                               </value>
                                                               <next>
                                                                 <block type="controls_for" id="y*t(t$H=O/`gkA]e{f]N">
                                                                   <field name="VAR" id="wan~:25GYo--e@M0rsmr">i</field>
                                                                   <value name="FROM">
                                                                     <shadow type="math_number" id="OSgU2MY;^D/[!kGW:d|L">
                                                                       <field name="NUM">1</field>
                                                                     </shadow>
                                                                     <block type="math_number" id="{.jK(G4;-B#Wp-{i_~;8">
                                                                       <field name="NUM">0</field>
                                                                     </block>
                                                                   </value>
                                                                   <value name="TO">
                                                                     <shadow type="math_number" id="yP97$mYMiincLzghyD]w">
                                                                       <field name="NUM">10</field>
                                                                     </shadow>
                                                                     <block type="math_arithmetic" id="(xxz~IVSoXGHB,isG3S~">
                                                                       <field name="OP">MINUS</field>
                                                                       <value name="A">
                                                                         <shadow type="math_number" id="`d,k5Qn$m.Uf_;4i+y]:">
                                                                           <field name="NUM">1</field>
                                                                         </shadow>
                                                                         <block type="lists_length" id="#|sN^hF5G+sr]seg.U^:">
                                                                           <value name="VALUE">
                                                                             <block type="variables_get" id="?C(i`!-9hz%|ghSq;5m6">
                                                                               <field name="VAR" id="Sj=PG`7sdz;!7%*c;rMl">Tabelle - Name</field>
                                                                             </block>
                                                                           </value>
                                                                         </block>
                                                                       </value>
                                                                       <value name="B">
                                                                         <shadow type="math_number" id="_/.VYy0t$[G=yegaPe]4">
                                                                           <field name="NUM">1</field>
                                                                         </shadow>
                                                                         <block type="math_number" id="!_6P=,aB)p+dU5}d!x2,">
                                                                           <field name="NUM">1</field>
                                                                         </block>
                                                                       </value>
                                                                     </block>
                                                                   </value>
                                                                   <value name="BY">
                                                                     <shadow type="math_number" id="OySf9m]U]b[ImluOB#gC">
                                                                       <field name="NUM">1</field>
                                                                     </shadow>
                                                                     <block type="math_number" id="7ytVjDF?/?6OeV}x24mQ">
                                                                       <field name="NUM">1</field>
                                                                     </block>
                                                                   </value>
                                                                   <statement name="DO">
                                                                     <block type="debug" id=":8ICawg@-2]p/l}oHZph">
                                                                       <field name="Severity">log</field>
                                                                       <value name="TEXT">
                                                                         <shadow type="text" id="8?~*3=^0D^hO{s,pGCXE">
                                                                           <field name="TEXT">geschaltet</field>
                                                                         </shadow>
                                                                         <block type="get_value_var" id="SfY)vB]wkc]`bQu;UBzD">
                                                                           <field name="ATTR">val</field>
                                                                           <value name="OID">
                                                                             <shadow type="text">
                                                                               <field name="TEXT"></field>
                                                                             </shadow>
                                                                             <block type="lists_getIndex" id="F{|T^UXS*aC?kou33~VB">
                                                                               <mutation statement="false" at="true"></mutation>
                                                                               <field name="MODE">GET</field>
                                                                               <field name="WHERE">FROM_START</field>
                                                                               <value name="VALUE">
                                                                                 <block type="variables_get" id="tn?iJ?HNP[KJG}{]9?v2">
                                                                                   <field name="VAR" id="vFTZ1]BURtyw_?,7vv7]">Tabelle - Wert</field>
                                                                                 </block>
                                                                               </value>
                                                                               <value name="AT">
                                                                                 <block type="math_arithmetic" id="#KU;iM?RVn,D|)Av$ze/">
                                                                                   <field name="OP">ADD</field>
                                                                                   <value name="A">
                                                                                     <shadow type="math_number">
                                                                                       <field name="NUM">1</field>
                                                                                     </shadow>
                                                                                     <block type="variables_get" id="Um9ElR!rBcQ2})$(,f!S">
                                                                                       <field name="VAR" id="wan~:25GYo--e@M0rsmr">i</field>
                                                                                     </block>
                                                                                   </value>
                                                                                   <value name="B">
                                                                                     <shadow type="math_number">
                                                                                       <field name="NUM">1</field>
                                                                                     </shadow>
                                                                                     <block type="math_number" id="s0vbhz);SdvuUd:a#[4x">
                                                                                       <field name="NUM">1</field>
                                                                                     </block>
                                                                                   </value>
                                                                                 </block>
                                                                               </value>
                                                                             </block>
                                                                           </value>
                                                                         </block>
                                                                       </value>
                                                                       <next>
                                                                         <block type="lists_setIndex" id="7cHhu-{x}5HAucBz}OME">
                                                                           <mutation at="true"></mutation>
                                                                           <field name="MODE">SET</field>
                                                                           <field name="WHERE">FROM_START</field>
                                                                           <value name="LIST">
                                                                             <block type="variables_get" id="$jGQP+47^7]ZUgfroqAH">
                                                                               <field name="VAR" id=";]3e-T$pq}QNAxDl__@;">Liste</field>
                                                                             </block>
                                                                           </value>
                                                                           <value name="AT">
                                                                             <block type="math_arithmetic" id="[b-)#Lj:KzVU.g^vH)nX">
                                                                               <field name="OP">ADD</field>
                                                                               <value name="A">
                                                                                 <shadow type="math_number">
                                                                                   <field name="NUM">1</field>
                                                                                 </shadow>
                                                                                 <block type="variables_get" id="sbR4`Q$D:.e06oMl4!0K">
                                                                                   <field name="VAR" id="wan~:25GYo--e@M0rsmr">i</field>
                                                                                 </block>
                                                                               </value>
                                                                               <value name="B">
                                                                                 <shadow type="math_number">
                                                                                   <field name="NUM">1</field>
                                                                                 </shadow>
                                                                                 <block type="math_number" id="8Xn*B:/R/T]Qhr:m~??$">
                                                                                   <field name="NUM">1</field>
                                                                                 </block>
                                                                               </value>
                                                                             </block>
                                                                           </value>
                                                                           <value name="TO">
                                                                             <block type="lists_create_with" id="{@ebK;o3Gklz{FqwS:$4">
                                                                               <mutation items="4"></mutation>
                                                                               <value name="ADD0">
                                                                                 <block type="lists_getIndex" id="Yv1b/Rs0|MHe~KT=@g6K">
                                                                                   <mutation statement="false" at="true"></mutation>
                                                                                   <field name="MODE">GET</field>
                                                                                   <field name="WHERE">FROM_START</field>
                                                                                   <value name="VALUE">
                                                                                     <block type="variables_get" id="WC6k:N-L(kLDBK=VzUp^">
                                                                                       <field name="VAR" id="Sj=PG`7sdz;!7%*c;rMl">Tabelle - Name</field>
                                                                                     </block>
                                                                                   </value>
                                                                                   <value name="AT">
                                                                                     <block type="math_arithmetic" id="cFkZochi|Z(~gj`U!Z$1">
                                                                                       <field name="OP">ADD</field>
                                                                                       <value name="A">
                                                                                         <shadow type="math_number" id="xx9p?#FxT!_uDOTe7mNk">
                                                                                           <field name="NUM">1</field>
                                                                                         </shadow>
                                                                                         <block type="variables_get" id="~ww5Z8a+vfPD69Fjq)8s">
                                                                                           <field name="VAR" id="wan~:25GYo--e@M0rsmr">i</field>
                                                                                         </block>
                                                                                       </value>
                                                                                       <value name="B">
                                                                                         <shadow type="math_number" id="c1,#}X|F46YsFcC_Tk!;">
                                                                                           <field name="NUM">1</field>
                                                                                         </shadow>
                                                                                         <block type="math_number" id="Q?tk_~D~a*]S,lI#TiZx">
                                                                                           <field name="NUM">1</field>
                                                                                         </block>
                                                                                       </value>
                                                                                     </block>
                                                                                   </value>
                                                                                 </block>
                                                                               </value>
                                                                               <value name="ADD1">
                                                                                 <block type="get_value_var" id="[%)g^C8XgS{pO{#tb!X{">
                                                                                   <field name="ATTR">val</field>
                                                                                   <value name="OID">
                                                                                     <shadow type="text" id="@I^i5M4[MKS7D,YqmG`{">
                                                                                       <field name="TEXT"></field>
                                                                                     </shadow>
                                                                                     <block type="lists_getIndex" id="{`NI)0^^8n{Z7^@AA~qN">
                                                                                       <mutation statement="false" at="true"></mutation>
                                                                                       <field name="MODE">GET</field>
                                                                                       <field name="WHERE">FROM_START</field>
                                                                                       <value name="VALUE">
                                                                                         <block type="variables_get" id="*oemeJw6LT8Nh!2CkT?#">
                                                                                           <field name="VAR" id="vFTZ1]BURtyw_?,7vv7]">Tabelle - Wert</field>
                                                                                         </block>
                                                                                       </value>
                                                                                       <value name="AT">
                                                                                         <block type="math_arithmetic" id="DepAp4o{CEN`rP42Eyk9">
                                                                                           <field name="OP">ADD</field>
                                                                                           <value name="A">
                                                                                             <shadow type="math_number">
                                                                                               <field name="NUM">1</field>
                                                                                             </shadow>
                                                                                             <block type="variables_get" id="Tj/=~@4drS6mm~an?;V{">
                                                                                               <field name="VAR" id="wan~:25GYo--e@M0rsmr">i</field>
                                                                                             </block>
                                                                                           </value>
                                                                                           <value name="B">
                                                                                             <shadow type="math_number">
                                                                                               <field name="NUM">1</field>
                                                                                             </shadow>
                                                                                             <block type="math_number" id="kU(m?T`BSR,4Iv`Q!w#;">
                                                                                               <field name="NUM">1</field>
                                                                                             </block>
                                                                                           </value>
                                                                                         </block>
                                                                                       </value>
                                                                                     </block>
                                                                                   </value>
                                                                                 </block>
                                                                               </value>
                                                                               <value name="ADD2">
                                                                                 <block type="lists_getIndex" id="X.iFvPi}P2*EIsnO^{u%">
                                                                                   <mutation statement="false" at="true"></mutation>
                                                                                   <field name="MODE">GET</field>
                                                                                   <field name="WHERE">FROM_START</field>
                                                                                   <value name="VALUE">
                                                                                     <block type="variables_get" id="ScyNh|x,2=1a~=6NT4=Z">
                                                                                       <field name="VAR" id="vFTZ1]BURtyw_?,7vv7]">Tabelle - Wert</field>
                                                                                     </block>
                                                                                   </value>
                                                                                   <value name="AT">
                                                                                     <block type="math_arithmetic" id="mqSsuKI+G%J,+W7CKvIZ">
                                                                                       <field name="OP">ADD</field>
                                                                                       <value name="A">
                                                                                         <shadow type="math_number">
                                                                                           <field name="NUM">1</field>
                                                                                         </shadow>
                                                                                         <block type="variables_get" id="[kugO)TQm=/,n8{zd,Cb">
                                                                                           <field name="VAR" id="wan~:25GYo--e@M0rsmr">i</field>
                                                                                         </block>
                                                                                       </value>
                                                                                       <value name="B">
                                                                                         <shadow type="math_number">
                                                                                           <field name="NUM">1</field>
                                                                                         </shadow>
                                                                                         <block type="math_number" id="DOQ!`A,Rrd+b_b?0JDPR">
                                                                                           <field name="NUM">1</field>
                                                                                         </block>
                                                                                       </value>
                                                                                     </block>
                                                                                   </value>
                                                                                 </block>
                                                                               </value>
                                                                               <value name="ADD3">
                                                                                 <block type="lists_getIndex" id=",;1K;!QM5c#eZ`ajEegW">
                                                                                   <mutation statement="false" at="true"></mutation>
                                                                                   <field name="MODE">GET</field>
                                                                                   <field name="WHERE">FROM_START</field>
                                                                                   <value name="VALUE">
                                                                                     <block type="variables_get" id="ge0oPgG/7df}^#-X2CMH">
                                                                                       <field name="VAR" id="uY@Vk|3N|Db%n1]s5r65">schaltbar</field>
                                                                                     </block>
                                                                                   </value>
                                                                                   <value name="AT">
                                                                                     <block type="math_arithmetic" id="v(3{5ly@?+FidzF_#wet">
                                                                                       <field name="OP">ADD</field>
                                                                                       <value name="A">
                                                                                         <shadow type="math_number">
                                                                                           <field name="NUM">1</field>
                                                                                         </shadow>
                                                                                         <block type="variables_get" id="mcqO0S9cj)`r#7k2DjFr">
                                                                                           <field name="VAR" id="wan~:25GYo--e@M0rsmr">i</field>
                                                                                         </block>
                                                                                       </value>
                                                                                       <value name="B">
                                                                                         <shadow type="math_number">
                                                                                           <field name="NUM">1</field>
                                                                                         </shadow>
                                                                                         <block type="math_number" id="yc^b5/3L*,P+0k-n^vQz">
                                                                                           <field name="NUM">1</field>
                                                                                         </block>
                                                                                       </value>
                                                                                     </block>
                                                                                   </value>
                                                                                 </block>
                                                                               </value>
                                                                             </block>
                                                                           </value>
                                                                         </block>
                                                                       </next>
                                                                     </block>
                                                                   </statement>
                                                                   <next>
                                                                     <block type="debug" id="fgbQNnE,HDdl5m{Og$~L">
                                                                       <field name="Severity">log</field>
                                                                       <value name="TEXT">
                                                                         <shadow type="text">
                                                                           <field name="TEXT">geschaltet</field>
                                                                         </shadow>
                                                                         <block type="variables_get" id="fAG([Lz!V$1PS5fDxtU]">
                                                                           <field name="VAR" id=";]3e-T$pq}QNAxDl__@;">Liste</field>
                                                                         </block>
                                                                       </value>
                                                                       <next>
                                                                         <block type="procedures_callcustomnoreturn" id="nOV9gWJMT2K)YWW~F$5f">
                                                                           <mutation name="tabelleMit3Werten">
                                                                             <arg name="myList"></arg>
                                                                           </mutation>
                                                                           <value name="ARG0">
                                                                             <block type="variables_get" id="H,0ylQ7zL6lG%zxB]}_*">
                                                                               <field name="VAR" id=";]3e-T$pq}QNAxDl__@;">Liste</field>
                                                                             </block>
                                                                           </value>
                                                                         </block>
                                                                       </next>
                                                                     </block>
                                                                   </next>
                                                                 </block>
                                                               </next>
                                                             </block>
                                                           </next>
                                                         </block>
                                                       </next>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </statement>
                                             </block>
                                           </next>
                                         </block>
                                       </next>
                                     </block>
                                   </statement>
                                 </block>
                                 <block type="variables_set" id=";?fMsQ~nMP,W:*R,z,hL" x="37" y="-437">
                                   <field name="VAR" id="X{YCwT6)UO~XY`Vc}2I4">anlegen_in</field>
                                   <value name="VALUE">
                                     <block type="text" id="TZDVFCHb+7p4,v#~lC!*">
                                       <field name="TEXT">0_userdata.0</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="timeouts_settimeout" id="8FQd(trxfKDt`(FG0(?=">
                                       <field name="NAME">start</field>
                                       <field name="DELAY">1000</field>
                                       <field name="UNIT">ms</field>
                                       <statement name="STATEMENT">
                                         <block type="procedures_callcustomnoreturn" id="}{A#y;jy-Pl_)n6[of`b">
                                           <mutation name="Datenpunkte_erstellen"></mutation>
                                         </block>
                                       </statement>
                                     </block>
                                   </next>
                                 </block>
                                 <block type="variables_set" id="}WiBpiZ0_%C:a^gG0Q#n" x="663" y="-437">
                                   <field name="VAR" id="Sj=PG`7sdz;!7%*c;rMl">Tabelle - Name</field>
                                   <value name="VALUE">
                                     <block type="lists_create_with" id="|/LJ3+{[jEYU,^h}Z:pg">
                                       <mutation items="6"></mutation>
                                       <value name="ADD0">
                                         <block type="text" id="A=3U~Wx+!2j@I21Dk?!^">
                                           <field name="TEXT">Esstisch</field>
                                         </block>
                                       </value>
                                       <value name="ADD1">
                                         <block type="text" id="*Km]#h%{YG3Z65mghZ+9">
                                           <field name="TEXT">Sofatisch</field>
                                         </block>
                                       </value>
                                       <value name="ADD2">
                                         <block type="text" id="y7Jgr#UXpq@uQXn5Hosq">
                                           <field name="TEXT">Stehlampe klein</field>
                                         </block>
                                       </value>
                                       <value name="ADD3">
                                         <block type="text" id="pm)@d}6J`zZy+bXNH@H$">
                                           <field name="TEXT">Stehlampe groß</field>
                                         </block>
                                       </value>
                                       <value name="ADD4">
                                         <block type="text" id=".;1X=-;h$![-QQg$Ws}.">
                                           <field name="TEXT">Schlafzimmer-Lampe</field>
                                         </block>
                                       </value>
                                       <value name="ADD5">
                                         <block type="text" id="zR]5Osz[~k`X0`Ysg7at">
                                           <field name="TEXT">Abstellkammer-Lampe</field>
                                         </block>
                                       </value>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="variables_set" id="y2?]c9}3]*k*C),|U;{F">
                                       <field name="VAR" id="vFTZ1]BURtyw_?,7vv7]">Tabelle - Wert</field>
                                       <value name="VALUE">
                                         <block type="lists_create_with" id="1e{,vWUl,1O@][+qJ:L6">
                                           <mutation items="6"></mutation>
                                           <value name="ADD0">
                                             <block type="field_oid" id="bX4qya?A8Y_3Om5J.bxY">
                                               <field name="oid">alias.0.01_Stube.01_Schalter.Schalter-Esstisch</field>
                                             </block>
                                           </value>
                                           <value name="ADD1">
                                             <block type="field_oid" id="4mkxL8p:7o[j8ZsC-2ah">
                                               <field name="oid">alias.0.01_Stube.01_Schalter.Schalter-Sofatisch</field>
                                             </block>
                                           </value>
                                           <value name="ADD2">
                                             <block type="field_oid" id="i:o,,cQ(d(#M`)2@gzF]">
                                               <field name="oid">alias.0.03_Flur-Kammer.03_Lampen.Lampe_Kammer_Wert</field>
                                             </block>
                                           </value>
                                           <value name="ADD3">
                                             <block type="field_oid" id="rJWml9-eq;)/t##LN*y]">
                                               <field name="oid">alias.0.03_Flur-Kammer.03_Lampen.Lampe_Kammer_Wert</field>
                                             </block>
                                           </value>
                                           <value name="ADD4">
                                             <block type="field_oid" id="8F6}0M/F!k6S+)kBf9:p">
                                               <field name="oid">alias.0.02_Schlafzimmer.01_Schalter.Schalter-Schlafzimmerlampe</field>
                                             </block>
                                           </value>
                                           <value name="ADD5">
                                             <block type="field_oid" id="$._9Le1ae@9*gS%i.Lx]">
                                               <field name="oid">alias.0.03_Flur-Kammer.03_Lampen.Lampe_Kammer_Wert</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="variables_set" id=".U=[Cr|/iP:B^mnE}#A#">
                                           <field name="VAR" id="uY@Vk|3N|Db%n1]s5r65">schaltbar</field>
                                           <value name="VALUE">
                                             <block type="lists_create_with" id="wD-C;G9y2Ug`PWKUH(ky">
                                               <mutation items="6"></mutation>
                                               <value name="ADD0">
                                                 <block type="logic_boolean" id="04IQde8Vg/|TT?Gw9;p;">
                                                   <field name="BOOL">TRUE</field>
                                                 </block>
                                               </value>
                                               <value name="ADD1">
                                                 <block type="logic_boolean" id="RmD:CGK^B}e8P@^nv`8g">
                                                   <field name="BOOL">TRUE</field>
                                                 </block>
                                               </value>
                                               <value name="ADD2">
                                                 <block type="logic_boolean" id="/;Dc[y*A#EE}0CAEOLjV">
                                                   <field name="BOOL">FALSE</field>
                                                 </block>
                                               </value>
                                               <value name="ADD3">
                                                 <block type="logic_boolean" id="*[GG,|,[dY%ek({;LnsX">
                                                   <field name="BOOL">FALSE</field>
                                                 </block>
                                               </value>
                                               <value name="ADD4">
                                                 <block type="logic_boolean" id="dwwh`.gmm@lC~_Su,doE">
                                                   <field name="BOOL">TRUE</field>
                                                 </block>
                                               </value>
                                               <value name="ADD5">
                                                 <block type="logic_boolean" id="0?i/$;+{3=f.8n29T+G^">
                                                   <field name="BOOL">FALSE</field>
                                                 </block>
                                               </value>
                                             </block>
                                           </value>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                                 <block type="procedures_defcustomnoreturn" id="d+PXd6N1nBTxz}gaM@Co" x="37" y="-312">
                                   <mutation statements="false">
                                     <arg name="myList" varid="0q#2a)[a+^d21Zhdi^sp"></arg>
                                   </mutation>
                                   <field name="NAME">tabelleMit3Werten</field>
                                   <field name="SCRIPT">Ly9AbGl2LWluLXNreSAyMDIwICA0LjIuLTE4OjQyCgoKLy9ISUVSIFdJUkQgUEZBRCBVTkQgRklMRU5BTUUgREVGSU5JRVJUCmNvbnN0IHBhdGggPSAiL2h0bWxleGFtcGxlc2V0dGluZy5odG1sIjsgICAgICAgICAgICAgICAgICAgLy9GSWxlbmFtZW4gZGVmaW5pZXJlbgpjb25zdCBob21lID0ndmlzLjAnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy93byBzb2xsIGRhcyBmaWxlIGltIGlvYnJva2VyLWZpbGUtc3lzdGVtIGxpZWdlbiA/IChvZGVyIHouYiBhdWNoIGlxb250cm9sLm1ldGEpCmxldCAgIGJyYXVjaGVFaW5GaWxlPWZhbHNlOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYmVpIHRydWUgd2lyZCBlaW4gZmlsZSBnZXNjaHJpZWJlbgpsZXQgICBicmF1Y2hlRWluVklTV2lkZ2V0PXRydWU7ICAgICAgICAgICAgICAgICAgICAgLy8gYmVpIHRydWUgd2lyZCBlaW4gaHRtbC10YWJlbGxlIGluIGVpbmVuIGRwIGdlc2NocmllYmVuIC0gc2llaGUgbsOkY2hzdGUgemVpbGUKLy9sZXQgZHBWSVM9ImNvbnRyb2xsLW93bi4wLkFBQVRFU1QuVGVzdEhUTUwiICAgICAgICAgLy9XSUNIVElHIHdlbm4gYnJhdWNoZUVpblZJU1dpZGdldCBhdWYgdHJ1ZSBnZXNldHp0ICEhICBkcCB6dXPDpHR6bGljaCBmw7xyIFZJUy1IVE1MLUJhc2ljLVdpZGdldApjb25zdCBmYXJiZVNjaGFsdGVyT049ImxpZ2h0Ymx1ZSIgICAgICAgICAgICAgICAvLyBmYXJiZSBkZXMgc2NoYWx0ZXJzIGbDvHIgT04KY29uc3QgZmFyYmVTY2hhbHRlck9GRj0iZ3JleSIgICAgICAgICAgICAgICAvLyBmYXJiZSBkZXMgc2NoYWx0ZXJzIGbDvHIgT0ZGCgovL2xldCBteVNjaGVkdWxlPSIgKi8yMCAqICogKiAqICogIjsgICAgICAgICAgICAgICAgICAgICAgIC8vamVkZSBtaW51dGUgIAovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKLy9ISUVSIERJRSBTUEFMVEVOIEFOWkFITCBERUZJTklFUkVOIC0gamVkZSBTcGFsdGUgZWluZW4gV2VydCAtIGluIGRpZXNlbSBCZWlzcGllbCBzaW5kIGVzIDIKdmFyIGh0bWxGZWxkMT0nU3RhbmRvcnQnOyAgICAgICB2YXIgRmVsZDFsQWxpZ249ImxlZnQiOyAgICAgICAgICAgICAgICAgICAgIC8vIMO8YmVyc2NocmlmdCBUYWJlbGxlbiBTcGFsdGUxIHVuZCAgQXVzcmljaHR1bmcgbGVmdCxyaWdodCBvciBjZW50ZXIKdmFyIGh0bWxGZWxkMj0nU3RhdHVzJzsgICAgICAgICB2YXIgRmVsZDJsQWxpZ249ImNlbnRlciI7ICAgICAgICAgICAgICAgICAgICAgIC8vIMO8YmVyc2NocmlmdCBUYWJlbGxlbiBTcGFsdGUyIHVuZCAgQXVzcmljaHR1bmcgbGVmdCxyaWdodCBvciBjZW50ZXIKCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKLy9oaWVyIHdlcmRlbiBkaWUgc3R5bGVzIGbDvHIgZGllIHRhYmVsbGUgZGVmaW5pZXJ0Ci8vw5xCRVJTQ0hSSUZUIMOcQkVSIFRBQkVMTEUKbGV0ICAgaHRtbFViZXJzY2hyaWZ0PWZhbHNlOyAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1pdCDDnGJlcnNjaHJpZnQgw7xiZXIgZGVyIHRhYmVsbGUKbGV0ICAgaHRtbFNpZ25hdHVyZT1mYWxzZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBhbnN0YXR0IGRlciDDnGJlcnNjZ2hyaWZ0IGVpbmUgc2lnbmF0dXJlOiAtIGtsZWluZXIgLSBhbmxpZWdlbmQKY29uc3QgaHRtbEZlbGRVZWJlcj0nQmF0dGVyaWUgWnVzdGFuZCBTZW5zb3Jlbic7ICAgICAgICAgICAgICAvLyDDnGJlcnNjaHJpZnQgdW5kIFNpZ25hdHVyZQpjb25zdCBodG1sRmFyYlViZXI9ImJsYWNrIjsgICAgICAgICAgICAgICAgICAgICAgICAgLy8gRmFyYmUgZGVyIMOcYmVyc2NocmlmdApjb25zdCBodG1sU2NocmlmdFdlaXRlPSJub3JtYWwiOyAgICAgICAgICAgICAgICAgICAgICAgLy8gYm9sZCwgbm9ybWFsIC0gRmV0dHNjaHJpZnQgZsO8ciDDnGJlcnNjaHJpZnQKY29uc3QgaHRtbMOcYmVyRm9udEdyb2Vzc2U9IjE4cHgiOyAgICAgICAgICAgICAgICAgICAgICAgLy8gc2NocmlmdGdyw7bDn2Ugw7xiZXJzY2hyaWZ0Ci8vTUVIUkVSRSBUQUJFTExFTiBORUJFTkVJTkFOREVSCmxldCAgIG1laHJmYWNoVGFiZWxsZT0xOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJpcyB6dSA0IFRhYmVsbGVuIHdlcmRlbiBuZWJlbmVpbmFuZGVyIGdlc2NocmllYmVuLSAgdmVya8O8cnp0IGRhcyBHYW56ZSwgZGFmw7xyIGV0d2FzIGJyZWl0ZXIgLSBNw5ZHTElDSCAxLDIsMyxvZGVyIDQgISEhCmNvbnN0IHRyZW5udW5nc0xpbmllPSIyIjsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vZXh0cmEgdHJlbm51bmdzbGluaWUgYmVpIG1laHJmYWNodGFiZWxsZW4gLSBldnRsIGF1ZiAwIHN0ZWxsZW4sIHdubiBodG1sUmFobWVuTGluaWVuIGF1ZiBub25lIHNpbmQKY29uc3QgZmFyYmV0cmVubnVuZ3NMaW5pZT0id2hpdGUiOwpjb25zdCBodG1sRmFyYlp3ZWl0ZVRhYmVsbGU9IndoaXRlIjsgICAgICAgICAgICAgICAgLy8gRmFyYmUgZGVyIMOcYmVyc2NocmlmdCBiZWkgamVkZXIgMi50ZW4gVGFiZWxsZQpjb25zdCBodG1sRmFyYlRhYmxlQ29sb3JVYmVyPSIjMDAwMDAwIjsgICAgICAgICAgICAgICAvLyDDnGJlcnNjaHJpZnQgaW4gZGVyIHRhYmVsbGUgLSBkZXIgZWluemVsbmVuIFNwYWx0ZW4KLy/DnEJFUlNDSFJJRlQgU1BBTFRFTgpjb25zdCBVZWJlclNjaHJpZnRIw7ZoZT0iMzUiOyAgICAgICAgICAgICAgICAgICAgICAgICAgLy/DnGJlcnNjaHJpZnQgYmVrb21tdCBtZWhyIFJhdW0gLSBkYXJ1bnRlciB1bmQgZGFyw7xiZXIgLSBaZWxsZW5ow7ZoZQpjb25zdCBMaW5pZVVudGVyVWViZXJzY2hyaWZ0PSIzIjsgICAgICAgICAgICAgICAgICAgLy8gTGluaWUgbnVyIHVudGVyIFNwYWx0ZW7DvGJlcnNjaHJpZnQgLSAKY29uc3QgZmFyYmVMaW5pZVVudGVyVWViZXJzY2hyaWZ0PSJ3aGl0ZSI7CmNvbnN0IGdyb2Vzc2VVZWJlcnNjaHJpZnQ9MTY7CmNvbnN0IFVlYmVyc2NocmlmdFN0eWxlPSJub3JtYWwiICAgICAgICAgICAgICAgICAgICAgLy8gbcO2Z2xpY2ggImJvbGQiCi8vR0FOWkUgVEFCRUxMRQpsZXQgYWJzdGFuZFplbGxlPSIxIjsKbGV0IGZhcmJlVW5nZXJhZGVaZWlsZW49IiMwMDAwMDAiOyAgICAgICAgICAgICAgICAgICAgIC8vRmFyYmUgZsO8ciB1bmdlcmFkZSBaZWlsZW5hbnphaGwgLSBIaW50ZXJncnVuZCBkZXIgU3BhbHRlbsO8YmVyc2NocmlmdCBibGVpYnQgYmVpIGh0bWxGYXJiVGFibGVDb2xvckdyYWRpZW50MS8yCmxldCBmYXJiZUdlcmFkZVplaWxlbj0iIzE1MTUxNSI7ICAgICAgICAgICAgICAgICAgICAgICAgLy9GYXJiZSBmw7xyIGdlcmFkZSBaZWlsZW5hbnphaGwgLSBIaW50ZXJncnVuZCBkZXIgU3BhbHRlbsO8YmVyc2NocmlmdCBibGVpYnQgYmVpIGh0bWxGYXJiVGFibGVDb2xvckdyYWRpZW50MS8yCmxldCB3ZWl0ZT0iMTAwJSI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vV2VpdGUgZGVyIFRhYmVsbGUKbGV0IHplbnRyaWVydD10cnVlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy9nYW56ZSB0YWJlbGxlIHplbnRyaWVydApjb25zdCBiYWNrZ3JvdW5kQWxsPSIjMDAwMDAwIjsgICAgICAgICAgICAgICAgICAgICAgICAvL0hpbnRlcmdydW5kIGbDvHIgZGllIGdhbnplIFNlaXRlIC0gZsO8ciBkaXJla3RlbiBhdWZydWYgb2RlciBpcW9udHJvbCBzaWNodGJlciAtIGtlaW5lIGF1c3dpcmt1bmcgYXVmIHZpcy13aWRnZXQKY29uc3QgaHRtbFNjaHJpZnRhcnQ9IlBsYXktUmVndWxhciI7Ci8vY29uc3QgaHRtbFNjaHJpZnRncm9lc3NlPSIyMnB4IjsKLy9GRUxERVIgVU5EIFJBSE1FTgpsZXQgICBVZWJlcnNjaHJpZnRTcGFsdGVuPWZhbHNlOyAgICAgICAgICAgICAgICAvLyBlaW4tIG9kZXIgYXVzYmxlbmRlbiBkZXIgc3BhdGxlbi3DvGJlcnNjaHJpZnRlbgpjb25zdCBodG1sRmFyYkZlbGRlcnNjaHJpZnQ9IiNCREJEQkQiOyAgICAgICAgICAgICAgICAgIC8vIFNjaHJpZnRGYXJiZSBkZXIgRmVsZGVyCmNvbnN0IGh0bWxGYXJiRmVsZGVyc2NocmlmdDI9IiNEOEQ4RDgiOyAgICAgICAgICAgICAgICAgLy8gU2NocmlmdEZhcmJlIGRlciBGZWxkZXIgZsO8ciBqZWRlIDJ0ZSBUYWJlbGxlCmNvbnN0IGh0bWxGYXJiVGFibGVDb2xvckdyYWRpZW50MT0iI0NERDE2MyI7ICAgICAgICAgIC8vICBHcmFkaWVudCAtIEhpbnRlcmdydW5kIGRlciBUYWJlbGxlIC0gVmVybGF1ZmZhcmJlCmNvbnN0IGh0bWxGYXJiVGFibGVDb2xvckdyYWRpZW50Mj0iI0NERDE2MyI7ICAgICAgICAgIC8vICBHcmFkaWVudCAtIEhpbnRlcmdydW5kIGRlciBUYWJlbGxlIC0gaXN0IGRpZXNlciBXZXJ0IGdsZWljaCBHcmFkaWVudDEgZ2lidCBlcyBrZWluZW4gdmVybGF1Zgpjb25zdCBodG1sRmFyYlRhYmxlQm9yZGVyQ29sb3I9ImFjYWEyMCI7ICAgICAgICAgICAgIC8vIEZhcmJlIGRlcyBSYWhtZW4gLSBpcyB0ZGllc2VyIGdsZWljaCBkZW4gZ3JhZGllbnRlbiwgc2luZCBkaWUgcmFobWVuIHVuc2ljaHRiYXIKbGV0IGh0bWxSYWhtZW5MaW5pZW49ImFsbCI7ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZvcm1hdCBmw7xyIFJhaG1lbjogTcOWR0xJQ0g6ICJub25lIiBvZGVyICJhbGwiIG9kZXIgImNvbHMiIG9kZXIgInJvd3MiCmNvbnN0IGh0bWxTcGFsdGUxV2VpdGU9ImF1dG8iOyAgICAgICAgICAgICAgICAgICAvLyAgV2VpdGUgZGVyIGVyc3RlbiBiZWlkZW4gIFNwYWx0ZW4gb2RlciB6LmIuIDExNXB4CgovLyBISUVSIE5JQ0hUUyAgw4ROREVSTgoKbGV0IGJvcmRlckhlbHBCb3R0dW07CmxldCBib3JkZXJIZWxwUmlnaHQ7CmxldCBodG1sY2VudGVySGVscDsKbGV0IGh0bWxjZW50ZXJIZWxwMjsKCmlmKGh0bWxSYWhtZW5MaW5pZW49PSJyb3dzIikge2JvcmRlckhlbHBCb3R0dW09MTtib3JkZXJIZWxwUmlnaHQ9MDt9CmlmKGh0bWxSYWhtZW5MaW5pZW49PSJjb2xzIikge2JvcmRlckhlbHBCb3R0dW09MDtib3JkZXJIZWxwUmlnaHQ9MTt9CmlmKGh0bWxSYWhtZW5MaW5pZW49PSJub25lIikge2JvcmRlckhlbHBCb3R0dW09MDtib3JkZXJIZWxwUmlnaHQ9MDt9CmlmKGh0bWxSYWhtZW5MaW5pZW49PSJhbGwiKSAge2JvcmRlckhlbHBCb3R0dW09MTtib3JkZXJIZWxwUmlnaHQ9MTt9CnplbnRyaWVydCA/IGh0bWxjZW50ZXJIZWxwPSJhdXRvIiA6IGh0bWxjZW50ZXJIZWxwPSJsZWZ0IjsKemVudHJpZXJ0ID8gaHRtbGNlbnRlckhlbHAyPSJjZW50ZXIiIDogaHRtbGNlbnRlckhlbHAyPSJsZWZ0IjsKCgpjb25zdCBodG1sWmVudHJpZXJ0PScnCmNvbnN0IGh0bWxTdGFydD0gICAgIiI7Ci8vY29uc3QgaHRtbFVlYmVyPSAgICAiPHAgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiVWJlcisiOyBmb250LWZhbWlseToiK2h0bWxTY2hyaWZ0YXJ0KyI7IGZvbnQtd2VpZ2h0OiBib2xkXCI+IitodG1sRmVsZFVlYmVyKyI8L3A+IjsgICAgICAgICAgICAgICAgICAgIApjb25zdCBodG1sVGFiU3R5bGU9ICI8dGFibGUgY2xhc3M9XCIiK3RhYmVsbGVDbGFzcysiXCI+IjsKY29uc3QgaHRtbFRhYlVlYmVyMT0iPHRyIGhlaWdodD1cIiIrVWViZXJTY2hyaWZ0SMO2aGUrIlwiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYlRhYmxlQ29sb3JVYmVyKyI7IGZvbnQtc2l6ZTogIitncm9lc3NlVWViZXJzY2hyaWZ0KyJweDsgZm9udC13ZWlnaHQ6ICIrVWViZXJzY2hyaWZ0U3R5bGUrIiA7ICBib3JkZXItYm90dG9tOiAiK0xpbmllVW50ZXJVZWJlcnNjaHJpZnQrInB4IHNvbGlkICIrZmFyYmVMaW5pZVVudGVyVWViZXJzY2hyaWZ0KyIgXCI+IjsKY29uc3QgaHRtbFRhYlVlYmVyMz0iPC90cj4iOwoKY29uc3QgYnV0dG9uU2NyaXB0ID0gICc8c2NyaXB0PiBmdW5jdGlvbiBzZXRPbkRibENsaWNrQ3VzdG9tKCBteXZhbHVlICkgewl2YXIgU2VsZiA9IHRoaXM7IHZhciBvYmpJRCA9IG15dmFsdWU7CVNlbGYuc2VydkNvbm4uZ2V0U3RhdGVzKG9iaklELCAoZXJyb3IsIHN0YXRlcykgPT4geyAgY29uc29sZS5sb2coc3RhdGVzKTsgIFNlbGYuc2VydkNvbm4uc2V0U3RhdGUob2JqSUQsICFzdGF0ZXNbb2JqSURdLnZhbCk7IH0pOyB9IDwvc2NyaXB0PicKCi8vLy9OSUNIVFMgw4ROREVSTiAgLSBhYmjDpG5naWcgdm9uIGRlbiBvYmVuIGRlZmluaWVydGVuIF9TcGFsdGVuIC0gaW4gZGllc2VtIEJlaXNwaWVsIHNpbmQgZXMgMgoKdmFyIGh0bWxUYWJVZWJlcjI9Ijx0ZCB3aWR0aD0iK2h0bWxTcGFsdGUxV2VpdGUrIiBhbGlnbj0iK0ZlbGQxbEFsaWduKyI+JmVuc3A7IitodG1sRmVsZDErIiZlbnNwOzwvdGQ+PHRkIHdpZHRoPSIraHRtbFNwYWx0ZTFXZWl0ZSsiIGFsaWduPSIrRmVsZDJsQWxpZ24rIj4mZW5zcDsiK2h0bWxGZWxkMisiJmVuc3A7PC90ZD4iOwp2YXIgaHRtbFRhYlVlYmVyMl8xPSI8dGQgd2lkdGg9IitodG1sU3BhbHRlMVdlaXRlKyIgYWxpZ249IitGZWxkMWxBbGlnbisiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYlp3ZWl0ZVRhYmVsbGUrIlwiPiZlbnNwOyIraHRtbEZlbGQxKyImZW5zcDs8L3RkPjx0ZCB3aWR0aD0iK2h0bWxTcGFsdGUxV2VpdGUrIiBhbGlnbj0iK0ZlbGQybEFsaWduKyIgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiWndlaXRlVGFiZWxsZSsiXCI+JmVuc3A7IitodG1sRmVsZDIrCiAgICAgICAgICAgICAgICAgICImZW5zcDs8L3RkPiI7Ci8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKdmFyIGh0bWxPdXQ9IiI7CnZhciBtaXg7CnZhciBjb3VudGVyOwp2YXIgdmFsMTsgIHZhciB2YWwwOwp2YXIgaHRtbFRhYlVlYmVyPSIiOwoKZnVuY3Rpb24gd3JpdGVIVE1MKCl7CgoKCmh0bWxPdXQ9IiI7Cgpjb3VudGVyPS0xOwpodG1sVGFiVWViZXI9IiI7CnN3aXRjaCAobWVocmZhY2hUYWJlbGxlKSB7IAogIGNhc2UgMTogaHRtbFRhYlVlYmVyPWh0bWxUYWJVZWJlcjEraHRtbFRhYlVlYmVyMitodG1sVGFiVWViZXIzOyAgYnJlYWs7CiAgY2FzZSAyOiBodG1sVGFiVWViZXI9aHRtbFRhYlVlYmVyMStodG1sVGFiVWViZXIyK2h0bWxUYWJVZWJlcjJfMStodG1sVGFiVWViZXIzOyBicmVhazsKICBjYXNlIDM6IGh0bWxUYWJVZWJlcj1odG1sVGFiVWViZXIxK2h0bWxUYWJVZWJlcjIraHRtbFRhYlVlYmVyMl8xK2h0bWxUYWJVZWJlcjIraHRtbFRhYlVlYmVyMzsgYnJlYWs7CiAgY2FzZSA0OiBodG1sVGFiVWViZXI9aHRtbFRhYlVlYmVyMStodG1sVGFiVWViZXIyK2h0bWxUYWJVZWJlcjJfMStodG1sVGFiVWViZXIyK2h0bWxUYWJVZWJlcjJfMStodG1sVGFiVWViZXIzOyBicmVhazsKfTsgICAgCmlmICghVWViZXJzY2hyaWZ0U3BhbHRlbikge2h0bWxUYWJVZWJlcj0iIn0KCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8tLS0tLS0tLS1oaWVyIGtvbW10IGV1cmUgc2NobGVpZmUgcmVpbiBjb3VudGVyKyssIHRhYmVsbGVCaW5kKCkgdW5kIHRhYmVsbGVGaW5pc2goKSBtw7xzc2VuIHNvIGludGVncmllcnQgYmxlaWJlbiAhISEtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLy8tLS0tLS0tLS1hbGxlIHZhbHggd2VydGUgbcO8c3NlbiB2b24gZXVjaCBiZXN0aW1tdCB3ZXJkZW4gLSB2YWwwLHZhbDEgISEhLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmZvciAodmFyIHg9MDt4PG15TGlzdC5sZW5ndGg7eCsrKXsKICAgIGNvdW50ZXIrKzsKICAgIGlmKG15TGlzdFt4XVsxXSE9bnVsbCl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsMCAgPSBteUxpc3RbeF1bMF07CiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsMSAgPSBteUxpc3RbeF1bMV0KICAvLyBsb2codmFsMCkKICAgICAgICAgICAgICAgIGxldCB2YWxCdXR0b249bXlMaXN0W3hdWzJdCiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmIChteUxpc3RbeF1bM10pewogICAgICAgICAgICAgICAgdmFsMSA/IHZhbDE9IjxidXR0b24gc3R5bGVcPVwiYm9yZGVyOm5vbmVcOyBiYWNrZ3JvdW5kLWNvbG9yXDp0cmFuc3BhcmVudFw7IHZhbHVlPVwidG9nZ2xlXCIgb25jbGljaz1cInNldE9uRGJsQ2xpY2tDdXN0b21cKFwnIit2YWxCdXR0b24rIlwnKVwiPiIrIjxpbWcgY2xhc3M9XCIiK3RhYmVsbGVDbGFzc0ljb24rIlwiIHNyYz0iK3N5bWJvbFN3aXRjaE9OICsiIGhlaWdodD1cIiIrc3ltYm9sSG9laGUrIlwiIHdpZHRoPVwiIitzeW1ib2xCcmVpdGUrIlwiPiIrIjwvYnV0dG9uPiI6CiAgICAgICAgICAgICAgICAgICAgICAgICB2YWwxPSI8YnV0dG9uIHN0eWxlXD1cImJvcmRlcjpub25lXDsgYmFja2dyb3VuZC1jb2xvclw6dHJhbnNwYXJlbnRcOyB2YWx1ZT1cInRvZ2dsZVwiIG9uY2xpY2s9XCJzZXRPbkRibENsaWNrQ3VzdG9tXChcJyIrdmFsQnV0dG9uKyJcJylcIj4iKyI8aW1nIGNsYXNzPVwiIit0YWJlbGxlQ2xhc3NJY29uKyJcIiBzcmM9IitzeW1ib2xTd2l0Y2hPRkYgKyIgaGVpZ2h0PVwiIitzeW1ib2xIb2VoZSsiXCIgd2lkdGg9XCIiK3N5bWJvbEJyZWl0ZSsiXCI+IisiPC9idXR0b24+IjsKICAgICAgICAgICAgICAgIH0gZWxzZXsKICAgICAgICAgICAgICAgICAgIHZhbDEgPyB2YWwxPSI8aW1nIGNsYXNzPVwiIit0YWJlbGxlQ2xhc3NJY29uKyJcIiBzcmM9IitzeW1ib2xTd2l0Y2hPTiArIiBoZWlnaHQ9XCIiK3N5bWJvbEhvZWhlKyJcIiB3aWR0aD1cIiIrc3ltYm9sQnJlaXRlKyJcIj4iICA6IAogICAgICAgICAgICAgICAgICAgICAgICAgIHZhbDE9IjxpbWcgY2xhc3M9XCIiK3RhYmVsbGVDbGFzc0ljb24rIlwiIHNyYz0iK3N5bWJvbFN3aXRjaE9GRiArIiBoZWlnaHQ9XCIiK3N5bWJvbEhvZWhlKyJcIiB3aWR0aD1cIiIrc3ltYm9sQnJlaXRlKyJcIj4iIAogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgLy8gICBpZiAodmFsMT09ZmFsc2UpIHt2YWwxPSLinYwifSBlbHNle3ZhbDE9IuKchSJ9ICAKICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmVsbGVCaW5kKCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgfTsgLy9TY2hsZWlmZW4gRW5kZSAtIGplIG5hY2ggc2NobGVpZmVuYXJ0IG11c3MgaGllciBldHdhcyBnZcOkbmRlcnQgd2VyZGVuICEhISEhISEhIQoKfSB0YWJlbGxlRmluaXNoKCk7Ci8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICAgCgogICAgLy8gQUIgSElFUiBOSUNIVFMgw4ROREVSTiAtIHRhYmVsbGUgZmVydGlnc3RlbGxlbgogICAgCn0gLy8gZnVuY3Rpb24gZW5kZQoKLy9NQUlOOgoKCndyaXRlSFRNTCgpOwoKZnVuY3Rpb24gdGFiZWxsZUJpbmQoKXsKICAgICAgc3dpdGNoIChtZWhyZmFjaFRhYmVsbGUpIHsgIAogICAgICAgIGNhc2UgMTogIGlmKGNvdW50ZXIlMj09MCkgICAgICAgICB7ICAgaHRtbE91dD1odG1sT3V0KyI8dHIgY2xhc3M9XCIiK3RhYmVsbGVDbGFzc1plaWxlMSsiXCI+PHRkIGNsYXNzPVwiIit0YWJlbGxlQ2xhc3NTcGFsdGUxKyJcIiBhbGlnbj0iK0ZlbGQxbEFsaWduKyI+Iit2YWwwKyI8L3RkPjx0ZCBhbGlnbj0iK0ZlbGQybEFsaWduKyI+Iit2YWwxKyI8L3RkPjwvdHI+IjsgYnJlYWs7ICB9IGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgIGh0bWxPdXQ9aHRtbE91dCsiPHRyIGNsYXNzPVwiIit0YWJlbGxlQ2xhc3NaZWlsZTIrIlwiPjx0ZCBjbGFzcz1cIiIrdGFiZWxsZUNsYXNzU3BhbHRlMSsiXCIgYWxpZ249IitGZWxkMWxBbGlnbisiPiIrdmFsMCsiPC90ZD48dGQgYWxpZ249IitGZWxkMmxBbGlnbisiPiIrdmFsMSsiPC90ZD48L3RyPiI7IGJyZWFrOyAgfQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAgICBjYXNlIDI6ICBpZihjb3VudGVyJTQ9PTApewogICAgICAgICAgICAgICAgIGlmKGNvdW50ZXIlMj09MCkgIHtodG1sT3V0ID0gaHRtbE91dCsiPHRyIGJnY29sb3I9XCIiK2ZhcmJlR2VyYWRlWmVpbGVuKyJcIiA+PHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIj4iK3ZhbDArIjwvdGQ+PHRkIHN0eWxlPVwiIGJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsicHggc29saWQgIitmYXJiZXRyZW5udW5nc0xpbmllKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7XCJhbGlnbj0iK0ZlbGQybEFsaWduKyI+Iit2YWwxKyI8L3RkPiI7IH0gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge2h0bWxPdXQgPSBodG1sT3V0KyI8dGQgYWxpZ249IitGZWxkMWxBbGlnbisiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4iK3ZhbDArIjwvdGQ+PHRkICBhbGlnbj0iK0ZlbGQybEFsaWduKyIgc3R5bGU9XCJjb2xvcjoiKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4iK3ZhbDErIjwvdGQ+PC90cj4iO30gYnJlYWs7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgaWYoY291bnRlciUyPT0wKSAge2h0bWxPdXQgPSBodG1sT3V0KyI8dHIgYmdjb2xvcj1cIiIrZmFyYmVVbmdlcmFkZVplaWxlbisiXCI+PHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIj4iK3ZhbDArIjwvdGQ+PHRkIHN0eWxlPVwiIGJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicHggc29saWQgIitmYXJiZXRyZW5udW5nc0xpbmllKyI7XCIgYWxpZ249IitGZWxkMmxBbGlnbisiPiIrdmFsMSsiPC90ZD4iOyB9IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtodG1sT3V0ID0gaHRtbE91dCsiPHRkICBhbGlnbj0iK0ZlbGQxbEFsaWduKyIgc3R5bGU9XCIgY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4iK3ZhbDArIjwvdGQ+PHRkICBhbGlnbj0iK0ZlbGQybEFsaWduKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4iK3ZhbDErIjwvdGQ+PC90cj4iO30gYnJlYWs7fQovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgICAgICAKICAgICAgICBjYXNlIDM6IGlmKGNvdW50ZXIlMj09MCkgICB7CiAgICAgICAgCiAgICAgICAgICAgICAgICBpZihjb3VudGVyJTM9PTAgKSAge2h0bWxPdXQgPSBodG1sT3V0KyI8dHIgYmdjb2xvcj1cIiIrZmFyYmVHZXJhZGVaZWlsZW4rIlwiPjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyI+Iit2YWwwKyI8L3RkPjx0ZCBzdHlsZT1cIiBib3JkZXItcmlnaHQ6ICIrdHJlbm51bmdzTGluaWUrInB4IHNvbGlkICIrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFyYmV0cmVubnVuZ3NMaW5pZSsiO1wiIGFsaWduPSIrRmVsZDJsQWxpZ24rIj4iK3ZhbDErIjwvdGQ+IjsgfSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7IGlmKGNvdW50ZXIlMz09MSApICB7IGh0bWxPdXQgPSBodG1sT3V0KyI8dGQgYWxpZ249IitGZWxkMWxBbGlnbisiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4iK3ZhbDArIjwvdGQ+PHRkICBhbGlnbj0iK0ZlbGQybEFsaWduKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgc3R5bGU9XCJib3JkZXItcmlnaHQ6ICIrdHJlbm51bmdzTGluaWUrInB4IHNvbGlkICIrZmFyYmV0cmVubnVuZ3NMaW5pZSsiO2NvbG9yOiIraHRtbEZhcmJGZWxkZXJzY2hyaWZ0MisiXCI+Iit2YWwxKyI8L3RkPiI7fSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlICAgIHtodG1sT3V0ID0gaHRtbE91dCsiPHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIj4iK3ZhbDArIjwvdGQ+PHRkIGFsaWduPSIrRmVsZDJsQWxpZ24rIj4iK3ZhbDErIjwvdGQ+PC90cj4iO30KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGJyZWFrOyB9ZWxzZXsKICAgICAgICAgICAgICAgIGlmKGNvdW50ZXIlMz09MCApICB7aHRtbE91dCA9IGh0bWxPdXQrIjx0ciBiZ2NvbG9yPVwiIitmYXJiZVVuZ2VyYWRlWmVpbGVuKyJcIj48dGQgYWxpZ249IitGZWxkMWxBbGlnbisiPiIrdmFsMCsiPC90ZD48dGQgc3R5bGU9XCIgYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhcmJldHJlbm51bmdzTGluaWUrIjtcIiBhbGlnbj0iK0ZlbGQybEFsaWduKyI+Iit2YWwxKyI8L3RkPiI7IH0gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeyBpZihjb3VudGVyJTM9PTEgKSAgeyBodG1sT3V0ID0gaHRtbE91dCsiPHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIiBzdHlsZT1cImNvbG9yOiIraHRtbEZhcmJGZWxkZXJzY2hyaWZ0MisiXCI+Iit2YWwwKyI8L3RkPjx0ZCAgYWxpZ249IitGZWxkMmxBbGlnbisKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHN0eWxlPVwiYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiK2ZhcmJldHJlbm51bmdzTGluaWUrIjtjb2xvcjoiK2h0bWxGYXJiRmVsZGVyc2NocmlmdDIrIlwiPiIrdmFsMSsiPC90ZD4iO30gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAgICB7aHRtbE91dCA9IGh0bWxPdXQrIjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyI+Iit2YWwwKyI8L3RkPjx0ZCBhbGlnbj0iK0ZlbGQybEFsaWduKyI+Iit2YWwxKyI8L3RkPjwvdHI+Ijt9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBicmVhazsgIH0gICAgICAgICAgICAgICAgICAgICAgIAovLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gCiAgICAgICAgY2FzZSA0OiAvL2NvdW50ZXI9Y291bnRlcis4IAogICAgICAgIGlmKGNvdW50ZXIlOD09MCkgICB7CiAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYoY291bnRlciU0PT0wKSAge2h0bWxPdXQgPSBodG1sT3V0KyI8dHIgYmdjb2xvcj1cIiIrZmFyYmVHZXJhZGVaZWlsZW4rIlwiPjx0ZCBhbGlnbj0iK0ZlbGQxbEFsaWduKyI+Iit2YWwwKyI8L3RkPjx0ZCBzdHlsZT1cIiBib3JkZXItcmlnaHQ6ICIrdHJlbm51bmdzTGluaWUrInB4IHNvbGlkICIrCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFyYmV0cmVubnVuZ3NMaW5pZSsiO1wiIGFsaWduPSIrRmVsZDJsQWxpZ24rIj4iK3ZhbDErIjwvdGQ+IjsgfSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Uge2lmKGNvdW50ZXIlND09MSApICB7IGh0bWxPdXQgPSBodG1sT3V0KyI8dGQgYWxpZ249IitGZWxkMWxBbGlnbisiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4iK3ZhbDArIjwvdGQ+PHRkICBhbGlnbj0iK0ZlbGQybEFsaWduKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiRmVsZGVyc2NocmlmdDIrIlwiPiIrdmFsMSsiPC90ZD4iO30gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAgICB7aWYoY291bnRlciU0PT0zKSAgeyBodG1sT3V0PSBodG1sT3V0KyI8dGQgYWxpZ249IitGZWxkMWxBbGlnbisiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4iK3ZhbDArIjwvdGQ+PHRkICBhbGlnbj0iKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGZWxkMmxBbGlnbisiIHN0eWxlPVwiYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiK2ZhcmJldHJlbm51bmdzTGluaWUrIjsgY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiXCI+Iit2YWwxKyI8L3RkPjwvdHI+Ijt9IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgICAge2h0bWxPdXQgPSBodG1sT3V0ID0gaHRtbE91dCsiPHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIj4iK3ZhbDArIjwvdGQ+PHRkIHN0eWxlPVwiIGJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsicHggc29saWQgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICtmYXJiZXRyZW5udW5nc0xpbmllKyI7XCIgYWxpZ249IitGZWxkMmxBbGlnbisiPiIrdmFsMSsiPC90ZD4iO319CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBicmVhazt9ZWxzZXsKICAgICAgICAgICAgICAgICBpZihjb3VudGVyJTQ9PTApICB7aHRtbE91dCA9IGh0bWxPdXQrIjx0ciBiZ2NvbG9yPVwiIitmYXJiZVVuZ2VyYWRlWmVpbGVuKyJcIj48dGQgYWxpZ249IitGZWxkMWxBbGlnbisiPiIrdmFsMCsiPC90ZD48dGQgc3R5bGU9XCIgYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiKwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhcmJldHJlbm51bmdzTGluaWUrIjtcIiBhbGlnbj0iK0ZlbGQybEFsaWduKyI+Iit2YWwxKyI8L3RkPiI7IH0gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIHtpZihjb3VudGVyJTQ9PTEgKSAgeyBodG1sT3V0ID0gaHRtbE91dCsiPHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIiBzdHlsZT1cImNvbG9yOiIraHRtbEZhcmJGZWxkZXJzY2hyaWZ0MisiXCI+Iit2YWwwKyI8L3RkPjx0ZCAgYWxpZ249IitGZWxkMmxBbGlnbisKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIHN0eWxlPVwiYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiK2ZhcmJldHJlbm51bmdzTGluaWUrIjtjb2xvcjoiK2h0bWxGYXJiRmVsZGVyc2NocmlmdDIrIlwiPiIrdmFsMSsiPC90ZD4iO30gCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSAgICB7aWYoY291bnRlciU0PT0zKSAgeyBodG1sT3V0PSBodG1sT3V0KyI8dGQgYWxpZ249IitGZWxkMWxBbGlnbisiIHN0eWxlPVwiY29sb3I6IitodG1sRmFyYkZlbGRlcnNjaHJpZnQyKyJcIj4iK3ZhbDArIjwvdGQ+PHRkICBhbGlnbj0iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICtGZWxkMmxBbGlnbisiIHN0eWxlPVwiIGNvbG9yOiIraHRtbEZhcmJGZWxkZXJzY2hyaWZ0MisiXCI+Iit2YWwxKyI8L3RkPjwvdHI+Ijt9IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgICAge2h0bWxPdXQgPSBodG1sT3V0ID0gaHRtbE91dCsiPHRkIGFsaWduPSIrRmVsZDFsQWxpZ24rIj4iK3ZhbDArIjwvdGQ+PHRkIHN0eWxlPVwiIGJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsicHggc29saWQgIisKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXJiZXRyZW5udW5nc0xpbmllKyI7XCIgYWxpZ249IitGZWxkMmxBbGlnbisiPiIrdmFsMSsiPC90ZD4iO319CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSAgYnJlYWs7ICAgfSAgICAgICAgICAgICAgICAgICAgIAoKICAgIH0gLy9zd2l0Y2ggZW5kZQoKfQoKZnVuY3Rpb24gdGFiZWxsZUZpbmlzaCgpIHsKCiAgICAgIHN3aXRjaCAobWVocmZhY2hUYWJlbGxlKSB7ICAKICAgICAgICBjYXNlIDE6ICAgIGJyZWFrOwogICAgICAgIGNhc2UgMjogICAgaWYoY291bnRlciUyPT0wKSAgaHRtbE91dCA9IGh0bWxPdXQucmVwbGFjZSgvPFwvdGQ+JC8sICc8L3RkPjx0ZD4mZW5zcDs8L3RkPjx0ZD4mZW5zcDs8L3RkPjwvdHI+Jyk7IAogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgMzogICAgaWYoY291bnRlciUzPT0yKSAgaHRtbE91dCA9IGh0bWxPdXQucmVwbGFjZSgvPFwvdGQ+JC8sICI8L3RkPjwvdHI+Iik7CiAgICAgICAgICAgICAgICAgICBpZihjb3VudGVyJTM9PTEpICBodG1sT3V0ID0gaHRtbE91dC5yZXBsYWNlKC88XC90ZD4kLywgICc8L3RkPjx0ZD50ZXN0JmVuc3A7PC90ZD48dGQ+JmVuc3A7PC90ZD48L3RyPicpOyAgICAgICAKICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ZXIlMz09MCkgIGh0bWxPdXQgPSBodG1sT3V0LnJlcGxhY2UoLzxcL3RkPiQvLCAiPC90ZD48dGQ+JmVuc3A7PC90ZD48dGQgc3R5bGU9XCIgYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiK2ZhcmJldHJlbm51bmdzTGluaWUrIlwiPiZlbnNwOzwvdGQ+PHRkPiZlbnNwOzwvdGQ+PHRkPiZlbnNwOzwvdGQ+PC90cj4iKTsKICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGNhc2UgNDogICAgaWYoY291bnRlciU0PT0zKSAgaHRtbE91dCA9IGh0bWxPdXQucmVwbGFjZSgvPFwvdGQ+JC8sICI8L3RkPjwvdHI+Iik7CiAgICAgICAgICAgICAgICAgICBpZihjb3VudGVyJTQ9PTIpICBodG1sT3V0ID0gaHRtbE91dC5yZXBsYWNlKC88XC90ZD4kLywgIjwvdGQ+PHRkPiZlbnNwOzwvdGQ+PHRkPiZlbnNwOzwvdGQ+PC90cj4iKTsKICAgICAgICAgICAgICAgICAgIGlmKGNvdW50ZXIlND09MSkgIGh0bWxPdXQgPSBodG1sT3V0LnJlcGxhY2UoLzxcL3RkPiQvLCAiPC90ZD48dGQ+JmVuc3A7PC90ZD48dGQgc3R5bGU9XCIgYm9yZGVyLXJpZ2h0OiAiK3RyZW5udW5nc0xpbmllKyJweCBzb2xpZCAiK2ZhcmJldHJlbm51bmdzTGluaWUrIlwiPiZlbnNwOzwvdGQ+PHRkPiZlbnNwOzwvdGQ+PHRkPiZlbnNwOzwvdGQ+PC90cj4iKTsgICAgCiAgICAgICAgICAgICAgICAgICBpZihjb3VudGVyJTQ9PTApICBodG1sT3V0ID0gaHRtbE91dC5yZXBsYWNlKC88XC90ZD4kLywgIjwvdGQ+PHRkPiZlbnNwOzwvdGQ+PHRkIHN0eWxlPVwiIGJvcmRlci1yaWdodDogIit0cmVubnVuZ3NMaW5pZSsicHggc29saWQgIitmYXJiZXRyZW5udW5nc0xpbmllKyJcIj4mZW5zcDs8L3RkPjx0ZD4mZW5zcDs8L3RkPjx0ZCBzdHlsZT1cIiBib3JkZXItcmlnaHQ6ICIrdHJlbm51bmdzTGluaWUrInB4IHNvbGlkICIrZmFyYmV0cmVubnVuZ3NMaW5pZSsiXCI+JmVuc3A7PC90ZD48dGQ+JmVuc3A7PC90ZD48dGQ+JmVuc3A7PC90ZD48L3RyPiIpOyAgIAogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgIGJyZWFrOyB9CiAgICAgICAgIHZhciBodG1sVWViZXI9ICAgICI8cCBzdHlsZT1cImNvbG9yOiIraHRtbEZhcmJVYmVyKyI7IGZvbnQtZmFtaWx5OiIraHRtbFNjaHJpZnRhcnQrIjsgZm9udC1zaXplOiAiK2h0bWzDnGJlckZvbnRHcm9lc3NlKyI7IGZvbnQtd2VpZ2h0OiIraHRtbFNjaHJpZnRXZWl0ZSsgIlwiPiIraHRtbEZlbGRVZWJlcisiJmVuc3A7JmVuc3A7TGFzdCBVcGRhdGU6ICIrZm9ybWF0RGF0ZShnZXREYXRlT2JqZWN0KChwYXJzZUZsb2F0KChuZXcgRGF0ZSgpLmdldFRpbWUoKSkpKSksICJTUzptbTpzcyIpOysiPC9wPiI7IAogICAgICB2YXIgaHRtbFVudGVyPSAiPGRpdiAgc3R5bGU9XCJjb2xvcjoiK2h0bWxGYXJiVWJlcisiOyBmb250LWZhbWlseToiK2h0bWxTY2hyaWZ0YXJ0KyI7IGZvbnQtc2l6ZTogNzAlOyB0ZXh0LWFsaWduOiByaWdodDtcIiA+IitodG1sRmVsZFVlYmVyKyImZW5zcDsmZW5zcDtMYXN0IFVwZGF0ZTogIitmb3JtYXREYXRlKGdldERhdGVPYmplY3QoKHBhcnNlRmxvYXQoKG5ldyBEYXRlKCkuZ2V0VGltZSgpKSkpKSwgIlNTOm1tOnNzIik7KyI8L2Rpdj4iCiAgICAgICAKICAgICAgIGlmICghaHRtbFNpZ25hdHVyZSkgaHRtbFVudGVyPSIiOwogICAgICAgICAvL0F1c2dhYmUgw7xiZXIgVklTIGh0bWwgd2lkZ2V0IC0gdGFiZWxsZSBpbiBkYXRlbnB1bmt0IHNjaHJlaWJlbiAtIGh0bWwgdGFiZWxsZSBvaG5lIGh0bWwgaGVhZGVyIHVuZCBib2R5CiAgICAgICAgICB2YXIgaHRtbE91dFZJUz0iIjsKICAgICAgICAvLyAgaHRtbFViZXJzY2hyaWZ0ID8gaHRtbE91dFZJUz1odG1sVWViZXIraHRtbFRhYlN0eWxlK2h0bWxUYWJVZWJlcitodG1sT3V0KyI8L3RhYmxlPiIgOiBodG1sT3V0VklTPWh0bWxUYWJTdHlsZStodG1sVGFiVWViZXIraHRtbE91dCsiPC90YWJsZT4iOwogICAgICAgICAgIGlmIChodG1sVWJlcnNjaHJpZnQpIAogICAgICAgICAgICAgICB7IHplbnRyaWVydCA/IGh0bWxPdXRWSVM9aHRtbFplbnRyaWVydCtodG1sVWViZXIraHRtbFRhYlN0eWxlK2h0bWxUYWJVZWJlcitodG1sT3V0KyI8L3RhYmxlPiIraHRtbFVudGVyKyBidXR0b25TY3JpcHQgOiBodG1sT3V0VklTPWh0bWxVZWJlcitodG1sVGFiU3R5bGUraHRtbFRhYlVlYmVyK2h0bWxPdXQrIjwvdGFibGU+IitodG1sVW50ZXIrIGJ1dHRvblNjcmlwdCA7CgogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICB6ZW50cmllcnQgPyAgaHRtbE91dFZJUz1odG1sWmVudHJpZXJ0K2h0bWxUYWJTdHlsZStodG1sVGFiVWViZXIraHRtbE91dCsiPC90YWJsZT4iK2h0bWxVbnRlcisgYnV0dG9uU2NyaXB0IDogIGh0bWxPdXRWSVM9aHRtbFRhYlN0eWxlK2h0bWxUYWJVZWJlcitodG1sT3V0KyI8L3RhYmxlPiIraHRtbFVudGVyKyBidXR0b25TY3JpcHQ7CgogICAgICAgICAgICAgICAgfQoKIC8vIGxvZygiYmluIHJhdXMgYXVzIHRhYmVsbGVCaW5kIik7CiAgICAgICAgICBpZiAoYnJhdWNoZUVpblZJU1dpZGdldCkgc2V0U3RhdGUoZHBWSVMsIGh0bWxPdXRWSVMgKTsKCnZhciBodG1sVW50ZXI9ICI8ZGl2ICBzdHlsZT1cImNvbG9yOiIraHRtbEZhcmJVYmVyKyI7IGZvbnQtZmFtaWx5OiIraHRtbFNjaHJpZnRhcnQrIjsgZm9udC1zaXplOiA4MCU7ICB0ZXh0LWFsaWduOiBjZW50ZXI7IFwiID4iK2h0bWxGZWxkVWViZXIrIiZlbnNwOyZlbnNwO0xhc3QgVXBkYXRlOiAiK2Zvcm1hdERhdGUoZ2V0RGF0ZU9iamVjdCgocGFyc2VGbG9hdCgobmV3IERhdGUoKS5nZXRUaW1lKCkpKSkpLCAiU1M6bW06c3MiKTsrIjwvZGl2PiIKCmlmICghaHRtbFNpZ25hdHVyZSkgaHRtbFVudGVyPSIiOwp2YXIgaHRtbEVuZD0iPC90YWJsZT4iK2h0bWxVbnRlcisiPC9kaXY+PC9ib2R5PiI7Ci8vbWl0IG9kZXIgb2huZSDDvGJlcnNjaHJpZnQgLSB6ZW50cmllcnQgb2RlciBsaW5rcwpodG1sVWJlcnNjaHJpZnQgPyBodG1sT3V0PWh0bWxTdGFydCtodG1sVWViZXIraHRtbFRhYlN0eWxlK2h0bWxUYWJVZWJlcitodG1sT3V0K2h0bWxFbmQgKyBidXR0b25TY3JpcHQ6IGh0bWxPdXQ9aHRtbFN0YXJ0K2h0bWxUYWJTdHlsZStodG1sVGFiVWViZXIraHRtbE91dCtodG1sRW5kKyBidXR0b25TY3JpcHQ7Ci8vbG9nKGh0bWxPdXQpOwoKCn0KCg==</field>
                                   <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                                 </block>
                                 <block type="variables_set" id="q.Wv.Mg#DuGWoRHZKg6B" x="37" y="-262">
                                   <field name="VAR" id="2GY!!q}efSWeJut|}*g?">tabelleClass</field>
                                   <value name="VALUE">
                                     <block type="text" id="{3,N1cRWmzqXfkY)j#3~">
                                       <field name="TEXT">ws_tabelle_lampen</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="variables_set" id="^-ql]EH.:?,JtTZ*EJEQ">
                                       <field name="VAR" id="zc}]z)HcoRF!Stu%L,1O">tabelleClassSpalte1</field>
                                       <value name="VALUE">
                                         <block type="text" id="mBlW|GZOtd%B+B9FC3VY">
                                           <field name="TEXT">ws_tabelle_lampen_name</field>
                                         </block>
                                       </value>
                                       <next>
                                         <block type="variables_set" id="CU#j/],[Z-liJ8Dki:IS">
                                           <field name="VAR" id="$SQ+1P}hh0i}dM)i!l8Y">tabelleClassZeile1</field>
                                           <value name="VALUE">
                                             <block type="text" id="|1*x$5KGnPCOpEw%g2_=">
                                               <field name="TEXT">ws_tabelle_zeile1</field>
                                             </block>
                                           </value>
                                           <next>
                                             <block type="variables_set" id="Bl?JT_QPz{MPE/.f*Y#V">
                                               <field name="VAR" id="0$3)d1XO~32nM)5=R_{E">tabelleClassZeile2</field>
                                               <value name="VALUE">
                                                 <block type="text" id="F#^twe+8_N=7,p1v0Fwu">
                                                   <field name="TEXT">ws_tabelle_zeile2</field>
                                                 </block>
                                               </value>
                                               <next>
                                                 <block type="variables_set" id="6M0l#R(W?S~DV%3pIWF)">
                                                   <field name="VAR" id="@XCmXlbJ|}uQfG*Yj}BT">tabelleClassIcon</field>
                                                   <value name="VALUE">
                                                     <block type="text" id="R=A,kBgJ`qPak{V0lUMk">
                                                       <field name="TEXT">ws_tabelle_icon</field>
                                                     </block>
                                                   </value>
                                                   <next>
                                                     <block type="variables_set" id="y5W4f8slFT+@4+/T?d=A">
                                                       <field name="VAR" id="[+@foafRz`m~/)FhPq0`">symbolSwitchOFF</field>
                                                       <value name="VALUE">
                                                         <block type="text" id="UfmI|9f%z43Z%c6B.qz_">
                                                           <field name="TEXT">/vis.0/WS-Icons/Lampen/bulb-off.png</field>
                                                         </block>
                                                       </value>
                                                       <next>
                                                         <block type="variables_set" id="`(bYDvCf@Hp9C+ZCb:ab">
                                                           <field name="VAR" id="f`-]]z,}lIr/=i8^XP#h">symbolSwitchON</field>
                                                           <value name="VALUE">
                                                             <block type="text" id="h4JJKGiY(hcotD(Yl3i%">
                                                               <field name="TEXT">/vis.0/WS-Icons/Lampen/bulb-on.png</field>
                                                             </block>
                                                           </value>
                                                           <next>
                                                             <block type="variables_set" id="o49kS_e$fcW9;rA(aT5$">
                                                               <field name="VAR" id="N8]TG{K`UGkh#8BWL|E)">symbolBreite</field>
                                                               <value name="VALUE">
                                                                 <block type="math_number" id="eKi.X5,+wui1bvHQvHHl">
                                                                   <field name="NUM">35</field>
                                                                 </block>
                                                               </value>
                                                               <next>
                                                                 <block type="variables_set" id="Hv[c4#O+gucBahk)X.l*">
                                                                   <field name="VAR" id="u,X-cS9u7+2)_f!kviiD">symbolHoehe</field>
                                                                   <value name="VALUE">
                                                                     <block type="math_number" id="o,Sj,y{+**.O6wZ/M/KK">
                                                                       <field name="NUM">35</field>
                                                                     </block>
                                                                   </value>
                                                                   <next>
                                                                     <block type="variables_set" id="S;%s,:Tt/KOgz{W,:lTc">
                                                                       <field name="VAR" id="QZuXR_Vj:|w~;Y^wh/80">dpVIS</field>
                                                                       <value name="VALUE">
                                                                         <block type="text" id="6sN0p?[P0:$-Jm]cFPVG">
                                                                           <field name="TEXT">0_userdata.0.002_nurVIS.03_Tabellen.Tabelle-Lampen</field>
                                                                         </block>
                                                                       </value>
                                                                     </block>
                                                                   </next>
                                                                 </block>
                                                               </next>
                                                             </block>
                                                           </next>
                                                         </block>
                                                       </next>
                                                     </block>
                                                   </next>
                                                 </block>
                                               </next>
                                             </block>
                                           </next>
                                         </block>
                                       </next>
                                     </block>
                                   </next>
                                 </block>
                                </xml>
                                

                                table.ws_tabelle_lampen {
                                  width: 100%;
                                  border-collapse: collapse;
                                  border-width: 1px;
                                  border-color: #ACAA20;
                                  border-style: solid;
                                  color: #C2C2C2;
                                }
                                table.ws_tabelle_lampen td {
                                  border-width: 1px;
                                  border-color: #ACAA20;
                                  border-style: solid;
                                  padding: 1px;
                                }
                                table.ws_tabelle_lampen .ws_tabelle_lampen_name {
                                    width: 85%;
                                }
                                table.ws_tabelle_lampen .ws_tabelle_zeile1 {
                                    background-color: #ff0000;
                                }
                                table.ws_tabelle_lampen .ws_tabelle_zeile2 {
                                    background-color: blue;
                                }
                                table.ws_tabelle_lampen .ws_tabelle_icon {
                                    width: 35px;
                                    height: 35px;
                                }
                                

                                Meine Hard- & Software:

                                • MSI Cubi 5 10M-049DE mit Proxmox
                                • CC2652P Zigbee Stick
                                • Steckdosen mit Tasmota und Zigbee
                                • Lichtschalter mit Tasmota
                                • IKEA TRÅDFRI Glühbirnen
                                • Aqara Sensoren
                                1 Antwort Letzte Antwort
                                0
                                Antworten
                                • In einem neuen Thema antworten
                                Anmelden zum Antworten
                                • Älteste zuerst
                                • Neuste zuerst
                                • Meiste Stimmen


                                Support us

                                ioBroker
                                Community Adapters
                                Donate

                                807

                                Online

                                32.4k

                                Benutzer

                                81.6k

                                Themen

                                1.3m

                                Beiträge
                                Community
                                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                ioBroker Community 2014-2025
                                logo
                                • Anmelden

                                • Du hast noch kein Konto? Registrieren

                                • Anmelden oder registrieren, um zu suchen
                                • Erster Beitrag
                                  Letzter Beitrag
                                0
                                • Home
                                • Aktuell
                                • Tags
                                • Ungelesen 0
                                • Kategorien
                                • Unreplied
                                • Beliebt
                                • GitHub
                                • Docu
                                • Hilfe