From b003a79464c012d22b8584aeb89c9283cb587234 Mon Sep 17 00:00:00 2001
From: Michael Leuschel <leuschel@uni-duesseldorf.de>
Date: Tue, 2 Jan 2024 17:42:05 +0100
Subject: [PATCH] add HTML export

---
 TicTacToe/tictactoe_v2.html | 1395 +++++++++++++++++++++++++++++++++++
 1 file changed, 1395 insertions(+)
 create mode 100644 TicTacToe/tictactoe_v2.html

diff --git a/TicTacToe/tictactoe_v2.html b/TicTacToe/tictactoe_v2.html
new file mode 100644
index 0000000..2326472
--- /dev/null
+++ b/TicTacToe/tictactoe_v2.html
@@ -0,0 +1,1395 @@
+<!DOCTYPE html>
+<html>
+<head>
+     <!-- html file generated by ProB from a VisB visualization -->
+     <meta name="viewport" content="width=device-width, initial-scale=1.0">
+     <meta http-equiv="content-type" content="text/html; charset=utf-8">
+     <script>
+        function setAttr(id, attribute, value){
+			var obj = document.getElementById(id);
+			if (obj == null) {
+			    if (id != "visb_debug_messages") {
+				     console.error("Unknown SVG id " + id + " for attribute " + attribute);
+				}
+			} else if(attribute=="text") {
+				obj.textContent = value;
+			} else if(attribute=="class" && value != "") {
+			   if(value[0]=="+") {
+			      obj.classList.add(value.substr(1));
+			   } else if(value[0]=="-") {
+			      obj.classList.remove(value.substr(1));
+			   } else {
+				  obj.setAttribute(attribute, value);
+			   }
+			} else {
+				obj.setAttribute(attribute, value);
+			}
+        }
+		function sleep(ms) {
+		    return new Promise(resolve => setTimeout(resolve, ms));
+		}
+		var lastSelectedRow = 0;
+		function highlightRow(id) {
+             if (lastSelectedRow>0) {setAttr("row"+lastSelectedRow,"bgcolor","")};
+             setAttr("row"+id,"bgcolor","yellow");
+             lastSelectedRow = id;
+		}
+		function backStep() {
+		     if (lastSelectedRow>1) {
+		       var prev = lastSelectedRow-1;
+		       document.getElementById("row"+prev).click();
+		     }
+		}
+		function forwardStep() {
+		     if (lastSelectedRow>0) {
+		        var nxt = lastSelectedRow+1;
+		        var row = document.getElementById("row"+(nxt));
+		        if (row != null) { row.click() };
+		     }
+		}
+    </script>
+  
+	<style>
+	table {
+	  font-family: arial, sans-serif;
+	  font-size: 11px;
+	  border-collapse: collapse;
+	  width: 100%;
+	}
+	td, th {
+	  border: 1px solid #dddddd;
+	  text-align: left;
+	  padding: 2px;
+	}
+/* 
+	tr:nth-child(even) {
+	  background-color: #dddddd;
+	}
+ */
+	</style> 
+	
+	<style>
+	.collapsible {
+	  cursor: pointer;
+	}
+	.collapsible-style {
+	  background-color: #777;
+	  color: white;
+	  padding: 6px;
+	  width: 100%;
+	  border: none;
+	  text-align: left;
+	  outline: none;
+	  font-size: 12px;
+	}
+
+	.active, .collapsible:hover {
+	  background-color: #555;
+	}
+	
+	.collapsible:after {
+	  content: '\002B';
+	  color: white;
+	  font-weight: bold;
+	  float: right;
+	  margin-left: 5px;
+	}
+
+	.active:after {
+	  content: "\2212";
+	}
+
+	.coll-content-hid {
+	  padding: 0 12px;
+	  display: none;
+	  overflow: hidden;
+	  background-color: #f1f1f1;
+	}
+	.coll-content-vis {
+	  padding: 0 12px;
+	  display: block;
+	  overflow: hidden;
+	  background-color: #f1f1f1;
+	}
+	.visb-messages {
+	  text-align: left;
+	  outline: none;
+	  font-size: 12px;
+	  font-family: arial, sans-serif;
+	}
+  </style>
+
+        
+
+ <script>
+   function visualise0(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/10, State ID: 0");
+       setAttr("pieceO1_1","visibility","hidden");
+       setAttr("pieceO1_2","visibility","hidden");
+       setAttr("pieceO1_3","visibility","hidden");
+       setAttr("pieceO2_1","visibility","hidden");
+       setAttr("pieceO2_2","visibility","hidden");
+       setAttr("pieceO2_3","visibility","hidden");
+       setAttr("pieceO3_1","visibility","hidden");
+       setAttr("pieceO3_2","visibility","hidden");
+       setAttr("pieceO3_3","visibility","hidden");
+       setAttr("pieceX1_1_a","visibility","hidden");
+       setAttr("pieceX1_1_b","visibility","hidden");
+       setAttr("pieceX1_2_a","visibility","hidden");
+       setAttr("pieceX1_2_b","visibility","hidden");
+       setAttr("pieceX1_3_a","visibility","hidden");
+       setAttr("pieceX1_3_b","visibility","hidden");
+       setAttr("pieceX2_1_a","visibility","hidden");
+       setAttr("pieceX2_1_b","visibility","hidden");
+       setAttr("pieceX2_2_a","visibility","hidden");
+       setAttr("pieceX2_2_b","visibility","hidden");
+       setAttr("pieceX2_3_a","visibility","hidden");
+       setAttr("pieceX2_3_b","visibility","hidden");
+       setAttr("pieceX3_1_a","visibility","hidden");
+       setAttr("pieceX3_1_b","visibility","hidden");
+       setAttr("pieceX3_2_a","visibility","hidden");
+       setAttr("pieceX3_2_b","visibility","hidden");
+       setAttr("pieceX3_3_a","visibility","hidden");
+       setAttr("pieceX3_3_b","visibility","hidden");
+       setAttr("winnerO","visibility","hidden");
+       setAttr("winnerX_a","visibility","hidden");
+       setAttr("winnerX_b","visibility","hidden");
+       setAttr("winnerTxt","text","Winner:");
+       setAttr("pieceX1_1_a","points","9 1 1 9");
+       setAttr("pieceX1_2_a","points","9 11 1 19");
+       setAttr("pieceX1_3_a","points","9 21 1 29");
+       setAttr("pieceX2_1_a","points","19 1 11 9");
+       setAttr("pieceX2_2_a","points","19 11 11 19");
+       setAttr("pieceX2_3_a","points","19 21 11 29");
+       setAttr("pieceX3_1_a","points","29 1 21 9");
+       setAttr("pieceX3_2_a","points","29 11 21 19");
+       setAttr("pieceX3_3_a","points","29 21 21 29");
+       setAttr("pieceX1_1_b","points","9 9 1 1");
+       setAttr("pieceX1_2_b","points","9 19 1 11");
+       setAttr("pieceX1_3_b","points","9 29 1 21");
+       setAttr("pieceX2_1_b","points","19 9 11 1");
+       setAttr("pieceX2_2_b","points","19 19 11 11");
+       setAttr("pieceX2_3_b","points","19 29 11 21");
+       setAttr("pieceX3_1_b","points","29 9 21 1");
+       setAttr("pieceX3_2_b","points","29 19 21 11");
+       setAttr("pieceX3_3_b","points","29 29 21 21");
+       setAttr("winnerX_a","points","49 11 41 19");
+       setAttr("winnerX_b","points","49 19 41 11");
+       setAttr("bVar_board","text","{(1|->{(1|->\"_\"),(2|->\"_\"),(3|->\"_\")}),(2|->{(1|->\"_\"),(2|->\"_\"),(3|->\"_\")}),(3|->{(1|->\"_\"),(2|->\"_\"),(3|->\"_\")})}");
+       setAttr("bVar_nextTurn","text","\"X\"");
+       highlightRow(stepNr);
+     }
+   function visualise5(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/10, State ID: 5");
+       setAttr("pieceO1_1","visibility","hidden");
+       setAttr("pieceO1_2","visibility","hidden");
+       setAttr("pieceO1_3","visibility","hidden");
+       setAttr("pieceO2_1","visibility","hidden");
+       setAttr("pieceO2_2","visibility","hidden");
+       setAttr("pieceO2_3","visibility","hidden");
+       setAttr("pieceO3_1","visibility","hidden");
+       setAttr("pieceO3_2","visibility","hidden");
+       setAttr("pieceO3_3","visibility","hidden");
+       setAttr("pieceX1_1_a","visibility","hidden");
+       setAttr("pieceX1_1_b","visibility","hidden");
+       setAttr("pieceX1_2_a","visibility","hidden");
+       setAttr("pieceX1_2_b","visibility","hidden");
+       setAttr("pieceX1_3_a","visibility","hidden");
+       setAttr("pieceX1_3_b","visibility","hidden");
+       setAttr("pieceX2_1_a","visibility","hidden");
+       setAttr("pieceX2_1_b","visibility","hidden");
+       setAttr("pieceX2_2_a","visibility","visible");
+       setAttr("pieceX2_2_b","visibility","visible");
+       setAttr("pieceX2_3_a","visibility","hidden");
+       setAttr("pieceX2_3_b","visibility","hidden");
+       setAttr("pieceX3_1_a","visibility","hidden");
+       setAttr("pieceX3_1_b","visibility","hidden");
+       setAttr("pieceX3_2_a","visibility","hidden");
+       setAttr("pieceX3_2_b","visibility","hidden");
+       setAttr("pieceX3_3_a","visibility","hidden");
+       setAttr("pieceX3_3_b","visibility","hidden");
+       setAttr("winnerO","visibility","hidden");
+       setAttr("winnerX_a","visibility","hidden");
+       setAttr("winnerX_b","visibility","hidden");
+       setAttr("winnerTxt","text","Winner:");
+       setAttr("pieceX1_1_a","points","9 1 1 9");
+       setAttr("pieceX1_2_a","points","9 11 1 19");
+       setAttr("pieceX1_3_a","points","9 21 1 29");
+       setAttr("pieceX2_1_a","points","19 1 11 9");
+       setAttr("pieceX2_2_a","points","19 11 11 19");
+       setAttr("pieceX2_3_a","points","19 21 11 29");
+       setAttr("pieceX3_1_a","points","29 1 21 9");
+       setAttr("pieceX3_2_a","points","29 11 21 19");
+       setAttr("pieceX3_3_a","points","29 21 21 29");
+       setAttr("pieceX1_1_b","points","9 9 1 1");
+       setAttr("pieceX1_2_b","points","9 19 1 11");
+       setAttr("pieceX1_3_b","points","9 29 1 21");
+       setAttr("pieceX2_1_b","points","19 9 11 1");
+       setAttr("pieceX2_2_b","points","19 19 11 11");
+       setAttr("pieceX2_3_b","points","19 29 11 21");
+       setAttr("pieceX3_1_b","points","29 9 21 1");
+       setAttr("pieceX3_2_b","points","29 19 21 11");
+       setAttr("pieceX3_3_b","points","29 29 21 21");
+       setAttr("winnerX_a","points","49 11 41 19");
+       setAttr("winnerX_b","points","49 19 41 11");
+       setAttr("bVar_board","text","{(1|->{(1|->\"_\"),(2|->\"_\"),(3|->\"_\")}),(2|->{(1|->\"_\"),(2|->\"X\"),(3|->\"_\")}),(3|->{(1|->\"_\"),(2|->\"_\"),(3|->\"_\")})}");
+       setAttr("bVar_nextTurn","text","\"O\"");
+       highlightRow(stepNr);
+     }
+   function visualise246(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/10, State ID: 246");
+       setAttr("pieceO1_1","visibility","visible");
+       setAttr("pieceO1_2","visibility","hidden");
+       setAttr("pieceO1_3","visibility","hidden");
+       setAttr("pieceO2_1","visibility","hidden");
+       setAttr("pieceO2_2","visibility","hidden");
+       setAttr("pieceO2_3","visibility","hidden");
+       setAttr("pieceO3_1","visibility","hidden");
+       setAttr("pieceO3_2","visibility","hidden");
+       setAttr("pieceO3_3","visibility","hidden");
+       setAttr("pieceX1_1_a","visibility","hidden");
+       setAttr("pieceX1_1_b","visibility","hidden");
+       setAttr("pieceX1_2_a","visibility","hidden");
+       setAttr("pieceX1_2_b","visibility","hidden");
+       setAttr("pieceX1_3_a","visibility","hidden");
+       setAttr("pieceX1_3_b","visibility","hidden");
+       setAttr("pieceX2_1_a","visibility","hidden");
+       setAttr("pieceX2_1_b","visibility","hidden");
+       setAttr("pieceX2_2_a","visibility","visible");
+       setAttr("pieceX2_2_b","visibility","visible");
+       setAttr("pieceX2_3_a","visibility","hidden");
+       setAttr("pieceX2_3_b","visibility","hidden");
+       setAttr("pieceX3_1_a","visibility","hidden");
+       setAttr("pieceX3_1_b","visibility","hidden");
+       setAttr("pieceX3_2_a","visibility","hidden");
+       setAttr("pieceX3_2_b","visibility","hidden");
+       setAttr("pieceX3_3_a","visibility","hidden");
+       setAttr("pieceX3_3_b","visibility","hidden");
+       setAttr("winnerO","visibility","hidden");
+       setAttr("winnerX_a","visibility","hidden");
+       setAttr("winnerX_b","visibility","hidden");
+       setAttr("winnerTxt","text","Winner:");
+       setAttr("pieceX1_1_a","points","9 1 1 9");
+       setAttr("pieceX1_2_a","points","9 11 1 19");
+       setAttr("pieceX1_3_a","points","9 21 1 29");
+       setAttr("pieceX2_1_a","points","19 1 11 9");
+       setAttr("pieceX2_2_a","points","19 11 11 19");
+       setAttr("pieceX2_3_a","points","19 21 11 29");
+       setAttr("pieceX3_1_a","points","29 1 21 9");
+       setAttr("pieceX3_2_a","points","29 11 21 19");
+       setAttr("pieceX3_3_a","points","29 21 21 29");
+       setAttr("pieceX1_1_b","points","9 9 1 1");
+       setAttr("pieceX1_2_b","points","9 19 1 11");
+       setAttr("pieceX1_3_b","points","9 29 1 21");
+       setAttr("pieceX2_1_b","points","19 9 11 1");
+       setAttr("pieceX2_2_b","points","19 19 11 11");
+       setAttr("pieceX2_3_b","points","19 29 11 21");
+       setAttr("pieceX3_1_b","points","29 9 21 1");
+       setAttr("pieceX3_2_b","points","29 19 21 11");
+       setAttr("pieceX3_3_b","points","29 29 21 21");
+       setAttr("winnerX_a","points","49 11 41 19");
+       setAttr("winnerX_b","points","49 19 41 11");
+       setAttr("bVar_board","text","{(1|->{(1|->\"O\"),(2|->\"_\"),(3|->\"_\")}),(2|->{(1|->\"_\"),(2|->\"X\"),(3|->\"_\")}),(3|->{(1|->\"_\"),(2|->\"_\"),(3|->\"_\")})}");
+       setAttr("bVar_nextTurn","text","\"X\"");
+       highlightRow(stepNr);
+     }
+   function visualise204(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/10, State ID: 204");
+       setAttr("pieceO1_1","visibility","visible");
+       setAttr("pieceO1_2","visibility","hidden");
+       setAttr("pieceO1_3","visibility","hidden");
+       setAttr("pieceO2_1","visibility","hidden");
+       setAttr("pieceO2_2","visibility","hidden");
+       setAttr("pieceO2_3","visibility","hidden");
+       setAttr("pieceO3_1","visibility","hidden");
+       setAttr("pieceO3_2","visibility","hidden");
+       setAttr("pieceO3_3","visibility","hidden");
+       setAttr("pieceX1_1_a","visibility","hidden");
+       setAttr("pieceX1_1_b","visibility","hidden");
+       setAttr("pieceX1_2_a","visibility","visible");
+       setAttr("pieceX1_2_b","visibility","visible");
+       setAttr("pieceX1_3_a","visibility","hidden");
+       setAttr("pieceX1_3_b","visibility","hidden");
+       setAttr("pieceX2_1_a","visibility","hidden");
+       setAttr("pieceX2_1_b","visibility","hidden");
+       setAttr("pieceX2_2_a","visibility","visible");
+       setAttr("pieceX2_2_b","visibility","visible");
+       setAttr("pieceX2_3_a","visibility","hidden");
+       setAttr("pieceX2_3_b","visibility","hidden");
+       setAttr("pieceX3_1_a","visibility","hidden");
+       setAttr("pieceX3_1_b","visibility","hidden");
+       setAttr("pieceX3_2_a","visibility","hidden");
+       setAttr("pieceX3_2_b","visibility","hidden");
+       setAttr("pieceX3_3_a","visibility","hidden");
+       setAttr("pieceX3_3_b","visibility","hidden");
+       setAttr("winnerO","visibility","hidden");
+       setAttr("winnerX_a","visibility","hidden");
+       setAttr("winnerX_b","visibility","hidden");
+       setAttr("winnerTxt","text","Winner:");
+       setAttr("pieceX1_1_a","points","9 1 1 9");
+       setAttr("pieceX1_2_a","points","9 11 1 19");
+       setAttr("pieceX1_3_a","points","9 21 1 29");
+       setAttr("pieceX2_1_a","points","19 1 11 9");
+       setAttr("pieceX2_2_a","points","19 11 11 19");
+       setAttr("pieceX2_3_a","points","19 21 11 29");
+       setAttr("pieceX3_1_a","points","29 1 21 9");
+       setAttr("pieceX3_2_a","points","29 11 21 19");
+       setAttr("pieceX3_3_a","points","29 21 21 29");
+       setAttr("pieceX1_1_b","points","9 9 1 1");
+       setAttr("pieceX1_2_b","points","9 19 1 11");
+       setAttr("pieceX1_3_b","points","9 29 1 21");
+       setAttr("pieceX2_1_b","points","19 9 11 1");
+       setAttr("pieceX2_2_b","points","19 19 11 11");
+       setAttr("pieceX2_3_b","points","19 29 11 21");
+       setAttr("pieceX3_1_b","points","29 9 21 1");
+       setAttr("pieceX3_2_b","points","29 19 21 11");
+       setAttr("pieceX3_3_b","points","29 29 21 21");
+       setAttr("winnerX_a","points","49 11 41 19");
+       setAttr("winnerX_b","points","49 19 41 11");
+       setAttr("bVar_board","text","{(1|->{(1|->\"O\"),(2|->\"X\"),(3|->\"_\")}),(2|->{(1|->\"_\"),(2|->\"X\"),(3|->\"_\")}),(3|->{(1|->\"_\"),(2|->\"_\"),(3|->\"_\")})}");
+       setAttr("bVar_nextTurn","text","\"O\"");
+       highlightRow(stepNr);
+     }
+   function visualise1725(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/10, State ID: 1725");
+       setAttr("pieceO1_1","visibility","visible");
+       setAttr("pieceO1_2","visibility","hidden");
+       setAttr("pieceO1_3","visibility","hidden");
+       setAttr("pieceO2_1","visibility","hidden");
+       setAttr("pieceO2_2","visibility","hidden");
+       setAttr("pieceO2_3","visibility","hidden");
+       setAttr("pieceO3_1","visibility","hidden");
+       setAttr("pieceO3_2","visibility","visible");
+       setAttr("pieceO3_3","visibility","hidden");
+       setAttr("pieceX1_1_a","visibility","hidden");
+       setAttr("pieceX1_1_b","visibility","hidden");
+       setAttr("pieceX1_2_a","visibility","visible");
+       setAttr("pieceX1_2_b","visibility","visible");
+       setAttr("pieceX1_3_a","visibility","hidden");
+       setAttr("pieceX1_3_b","visibility","hidden");
+       setAttr("pieceX2_1_a","visibility","hidden");
+       setAttr("pieceX2_1_b","visibility","hidden");
+       setAttr("pieceX2_2_a","visibility","visible");
+       setAttr("pieceX2_2_b","visibility","visible");
+       setAttr("pieceX2_3_a","visibility","hidden");
+       setAttr("pieceX2_3_b","visibility","hidden");
+       setAttr("pieceX3_1_a","visibility","hidden");
+       setAttr("pieceX3_1_b","visibility","hidden");
+       setAttr("pieceX3_2_a","visibility","hidden");
+       setAttr("pieceX3_2_b","visibility","hidden");
+       setAttr("pieceX3_3_a","visibility","hidden");
+       setAttr("pieceX3_3_b","visibility","hidden");
+       setAttr("winnerO","visibility","hidden");
+       setAttr("winnerX_a","visibility","hidden");
+       setAttr("winnerX_b","visibility","hidden");
+       setAttr("winnerTxt","text","Winner:");
+       setAttr("pieceX1_1_a","points","9 1 1 9");
+       setAttr("pieceX1_2_a","points","9 11 1 19");
+       setAttr("pieceX1_3_a","points","9 21 1 29");
+       setAttr("pieceX2_1_a","points","19 1 11 9");
+       setAttr("pieceX2_2_a","points","19 11 11 19");
+       setAttr("pieceX2_3_a","points","19 21 11 29");
+       setAttr("pieceX3_1_a","points","29 1 21 9");
+       setAttr("pieceX3_2_a","points","29 11 21 19");
+       setAttr("pieceX3_3_a","points","29 21 21 29");
+       setAttr("pieceX1_1_b","points","9 9 1 1");
+       setAttr("pieceX1_2_b","points","9 19 1 11");
+       setAttr("pieceX1_3_b","points","9 29 1 21");
+       setAttr("pieceX2_1_b","points","19 9 11 1");
+       setAttr("pieceX2_2_b","points","19 19 11 11");
+       setAttr("pieceX2_3_b","points","19 29 11 21");
+       setAttr("pieceX3_1_b","points","29 9 21 1");
+       setAttr("pieceX3_2_b","points","29 19 21 11");
+       setAttr("pieceX3_3_b","points","29 29 21 21");
+       setAttr("winnerX_a","points","49 11 41 19");
+       setAttr("winnerX_b","points","49 19 41 11");
+       setAttr("bVar_board","text","{(1|->{(1|->\"O\"),(2|->\"X\"),(3|->\"_\")}),(2|->{(1|->\"_\"),(2|->\"X\"),(3|->\"_\")}),(3|->{(1|->\"_\"),(2|->\"O\"),(3|->\"_\")})}");
+       setAttr("bVar_nextTurn","text","\"X\"");
+       highlightRow(stepNr);
+     }
+   function visualise1671(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/10, State ID: 1671");
+       setAttr("pieceO1_1","visibility","visible");
+       setAttr("pieceO1_2","visibility","hidden");
+       setAttr("pieceO1_3","visibility","hidden");
+       setAttr("pieceO2_1","visibility","hidden");
+       setAttr("pieceO2_2","visibility","hidden");
+       setAttr("pieceO2_3","visibility","hidden");
+       setAttr("pieceO3_1","visibility","hidden");
+       setAttr("pieceO3_2","visibility","visible");
+       setAttr("pieceO3_3","visibility","hidden");
+       setAttr("pieceX1_1_a","visibility","hidden");
+       setAttr("pieceX1_1_b","visibility","hidden");
+       setAttr("pieceX1_2_a","visibility","visible");
+       setAttr("pieceX1_2_b","visibility","visible");
+       setAttr("pieceX1_3_a","visibility","hidden");
+       setAttr("pieceX1_3_b","visibility","hidden");
+       setAttr("pieceX2_1_a","visibility","visible");
+       setAttr("pieceX2_1_b","visibility","visible");
+       setAttr("pieceX2_2_a","visibility","visible");
+       setAttr("pieceX2_2_b","visibility","visible");
+       setAttr("pieceX2_3_a","visibility","hidden");
+       setAttr("pieceX2_3_b","visibility","hidden");
+       setAttr("pieceX3_1_a","visibility","hidden");
+       setAttr("pieceX3_1_b","visibility","hidden");
+       setAttr("pieceX3_2_a","visibility","hidden");
+       setAttr("pieceX3_2_b","visibility","hidden");
+       setAttr("pieceX3_3_a","visibility","hidden");
+       setAttr("pieceX3_3_b","visibility","hidden");
+       setAttr("winnerO","visibility","hidden");
+       setAttr("winnerX_a","visibility","hidden");
+       setAttr("winnerX_b","visibility","hidden");
+       setAttr("winnerTxt","text","Winner:");
+       setAttr("pieceX1_1_a","points","9 1 1 9");
+       setAttr("pieceX1_2_a","points","9 11 1 19");
+       setAttr("pieceX1_3_a","points","9 21 1 29");
+       setAttr("pieceX2_1_a","points","19 1 11 9");
+       setAttr("pieceX2_2_a","points","19 11 11 19");
+       setAttr("pieceX2_3_a","points","19 21 11 29");
+       setAttr("pieceX3_1_a","points","29 1 21 9");
+       setAttr("pieceX3_2_a","points","29 11 21 19");
+       setAttr("pieceX3_3_a","points","29 21 21 29");
+       setAttr("pieceX1_1_b","points","9 9 1 1");
+       setAttr("pieceX1_2_b","points","9 19 1 11");
+       setAttr("pieceX1_3_b","points","9 29 1 21");
+       setAttr("pieceX2_1_b","points","19 9 11 1");
+       setAttr("pieceX2_2_b","points","19 19 11 11");
+       setAttr("pieceX2_3_b","points","19 29 11 21");
+       setAttr("pieceX3_1_b","points","29 9 21 1");
+       setAttr("pieceX3_2_b","points","29 19 21 11");
+       setAttr("pieceX3_3_b","points","29 29 21 21");
+       setAttr("winnerX_a","points","49 11 41 19");
+       setAttr("winnerX_b","points","49 19 41 11");
+       setAttr("bVar_board","text","{(1|->{(1|->\"O\"),(2|->\"X\"),(3|->\"_\")}),(2|->{(1|->\"X\"),(2|->\"X\"),(3|->\"_\")}),(3|->{(1|->\"_\"),(2|->\"O\"),(3|->\"_\")})}");
+       setAttr("bVar_nextTurn","text","\"O\"");
+       highlightRow(stepNr);
+     }
+   function visualise1927(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/10, State ID: 1927");
+       setAttr("pieceO1_1","visibility","visible");
+       setAttr("pieceO1_2","visibility","hidden");
+       setAttr("pieceO1_3","visibility","hidden");
+       setAttr("pieceO2_1","visibility","hidden");
+       setAttr("pieceO2_2","visibility","hidden");
+       setAttr("pieceO2_3","visibility","visible");
+       setAttr("pieceO3_1","visibility","hidden");
+       setAttr("pieceO3_2","visibility","visible");
+       setAttr("pieceO3_3","visibility","hidden");
+       setAttr("pieceX1_1_a","visibility","hidden");
+       setAttr("pieceX1_1_b","visibility","hidden");
+       setAttr("pieceX1_2_a","visibility","visible");
+       setAttr("pieceX1_2_b","visibility","visible");
+       setAttr("pieceX1_3_a","visibility","hidden");
+       setAttr("pieceX1_3_b","visibility","hidden");
+       setAttr("pieceX2_1_a","visibility","visible");
+       setAttr("pieceX2_1_b","visibility","visible");
+       setAttr("pieceX2_2_a","visibility","visible");
+       setAttr("pieceX2_2_b","visibility","visible");
+       setAttr("pieceX2_3_a","visibility","hidden");
+       setAttr("pieceX2_3_b","visibility","hidden");
+       setAttr("pieceX3_1_a","visibility","hidden");
+       setAttr("pieceX3_1_b","visibility","hidden");
+       setAttr("pieceX3_2_a","visibility","hidden");
+       setAttr("pieceX3_2_b","visibility","hidden");
+       setAttr("pieceX3_3_a","visibility","hidden");
+       setAttr("pieceX3_3_b","visibility","hidden");
+       setAttr("winnerO","visibility","hidden");
+       setAttr("winnerX_a","visibility","hidden");
+       setAttr("winnerX_b","visibility","hidden");
+       setAttr("winnerTxt","text","Winner:");
+       setAttr("pieceX1_1_a","points","9 1 1 9");
+       setAttr("pieceX1_2_a","points","9 11 1 19");
+       setAttr("pieceX1_3_a","points","9 21 1 29");
+       setAttr("pieceX2_1_a","points","19 1 11 9");
+       setAttr("pieceX2_2_a","points","19 11 11 19");
+       setAttr("pieceX2_3_a","points","19 21 11 29");
+       setAttr("pieceX3_1_a","points","29 1 21 9");
+       setAttr("pieceX3_2_a","points","29 11 21 19");
+       setAttr("pieceX3_3_a","points","29 21 21 29");
+       setAttr("pieceX1_1_b","points","9 9 1 1");
+       setAttr("pieceX1_2_b","points","9 19 1 11");
+       setAttr("pieceX1_3_b","points","9 29 1 21");
+       setAttr("pieceX2_1_b","points","19 9 11 1");
+       setAttr("pieceX2_2_b","points","19 19 11 11");
+       setAttr("pieceX2_3_b","points","19 29 11 21");
+       setAttr("pieceX3_1_b","points","29 9 21 1");
+       setAttr("pieceX3_2_b","points","29 19 21 11");
+       setAttr("pieceX3_3_b","points","29 29 21 21");
+       setAttr("winnerX_a","points","49 11 41 19");
+       setAttr("winnerX_b","points","49 19 41 11");
+       setAttr("bVar_board","text","{(1|->{(1|->\"O\"),(2|->\"X\"),(3|->\"_\")}),(2|->{(1|->\"X\"),(2|->\"X\"),(3|->\"O\")}),(3|->{(1|->\"_\"),(2|->\"O\"),(3|->\"_\")})}");
+       setAttr("bVar_nextTurn","text","\"X\"");
+       highlightRow(stepNr);
+     }
+   function visualise2049(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/10, State ID: 2049");
+       setAttr("pieceO1_1","visibility","visible");
+       setAttr("pieceO1_2","visibility","hidden");
+       setAttr("pieceO1_3","visibility","hidden");
+       setAttr("pieceO2_1","visibility","hidden");
+       setAttr("pieceO2_2","visibility","hidden");
+       setAttr("pieceO2_3","visibility","visible");
+       setAttr("pieceO3_1","visibility","hidden");
+       setAttr("pieceO3_2","visibility","visible");
+       setAttr("pieceO3_3","visibility","hidden");
+       setAttr("pieceX1_1_a","visibility","hidden");
+       setAttr("pieceX1_1_b","visibility","hidden");
+       setAttr("pieceX1_2_a","visibility","visible");
+       setAttr("pieceX1_2_b","visibility","visible");
+       setAttr("pieceX1_3_a","visibility","hidden");
+       setAttr("pieceX1_3_b","visibility","hidden");
+       setAttr("pieceX2_1_a","visibility","visible");
+       setAttr("pieceX2_1_b","visibility","visible");
+       setAttr("pieceX2_2_a","visibility","visible");
+       setAttr("pieceX2_2_b","visibility","visible");
+       setAttr("pieceX2_3_a","visibility","hidden");
+       setAttr("pieceX2_3_b","visibility","hidden");
+       setAttr("pieceX3_1_a","visibility","visible");
+       setAttr("pieceX3_1_b","visibility","visible");
+       setAttr("pieceX3_2_a","visibility","hidden");
+       setAttr("pieceX3_2_b","visibility","hidden");
+       setAttr("pieceX3_3_a","visibility","hidden");
+       setAttr("pieceX3_3_b","visibility","hidden");
+       setAttr("winnerO","visibility","hidden");
+       setAttr("winnerX_a","visibility","hidden");
+       setAttr("winnerX_b","visibility","hidden");
+       setAttr("winnerTxt","text","Winner:");
+       setAttr("pieceX1_1_a","points","9 1 1 9");
+       setAttr("pieceX1_2_a","points","9 11 1 19");
+       setAttr("pieceX1_3_a","points","9 21 1 29");
+       setAttr("pieceX2_1_a","points","19 1 11 9");
+       setAttr("pieceX2_2_a","points","19 11 11 19");
+       setAttr("pieceX2_3_a","points","19 21 11 29");
+       setAttr("pieceX3_1_a","points","29 1 21 9");
+       setAttr("pieceX3_2_a","points","29 11 21 19");
+       setAttr("pieceX3_3_a","points","29 21 21 29");
+       setAttr("pieceX1_1_b","points","9 9 1 1");
+       setAttr("pieceX1_2_b","points","9 19 1 11");
+       setAttr("pieceX1_3_b","points","9 29 1 21");
+       setAttr("pieceX2_1_b","points","19 9 11 1");
+       setAttr("pieceX2_2_b","points","19 19 11 11");
+       setAttr("pieceX2_3_b","points","19 29 11 21");
+       setAttr("pieceX3_1_b","points","29 9 21 1");
+       setAttr("pieceX3_2_b","points","29 19 21 11");
+       setAttr("pieceX3_3_b","points","29 29 21 21");
+       setAttr("winnerX_a","points","49 11 41 19");
+       setAttr("winnerX_b","points","49 19 41 11");
+       setAttr("bVar_board","text","{(1|->{(1|->\"O\"),(2|->\"X\"),(3|->\"_\")}),(2|->{(1|->\"X\"),(2|->\"X\"),(3|->\"O\")}),(3|->{(1|->\"X\"),(2|->\"O\"),(3|->\"_\")})}");
+       setAttr("bVar_nextTurn","text","\"O\"");
+       highlightRow(stepNr);
+     }
+   function visualise1995(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/10, State ID: 1995");
+       setAttr("pieceO1_1","visibility","visible");
+       setAttr("pieceO1_2","visibility","hidden");
+       setAttr("pieceO1_3","visibility","visible");
+       setAttr("pieceO2_1","visibility","hidden");
+       setAttr("pieceO2_2","visibility","hidden");
+       setAttr("pieceO2_3","visibility","visible");
+       setAttr("pieceO3_1","visibility","hidden");
+       setAttr("pieceO3_2","visibility","visible");
+       setAttr("pieceO3_3","visibility","hidden");
+       setAttr("pieceX1_1_a","visibility","hidden");
+       setAttr("pieceX1_1_b","visibility","hidden");
+       setAttr("pieceX1_2_a","visibility","visible");
+       setAttr("pieceX1_2_b","visibility","visible");
+       setAttr("pieceX1_3_a","visibility","hidden");
+       setAttr("pieceX1_3_b","visibility","hidden");
+       setAttr("pieceX2_1_a","visibility","visible");
+       setAttr("pieceX2_1_b","visibility","visible");
+       setAttr("pieceX2_2_a","visibility","visible");
+       setAttr("pieceX2_2_b","visibility","visible");
+       setAttr("pieceX2_3_a","visibility","hidden");
+       setAttr("pieceX2_3_b","visibility","hidden");
+       setAttr("pieceX3_1_a","visibility","visible");
+       setAttr("pieceX3_1_b","visibility","visible");
+       setAttr("pieceX3_2_a","visibility","hidden");
+       setAttr("pieceX3_2_b","visibility","hidden");
+       setAttr("pieceX3_3_a","visibility","hidden");
+       setAttr("pieceX3_3_b","visibility","hidden");
+       setAttr("winnerO","visibility","hidden");
+       setAttr("winnerX_a","visibility","hidden");
+       setAttr("winnerX_b","visibility","hidden");
+       setAttr("winnerTxt","text","Winner:");
+       setAttr("pieceX1_1_a","points","9 1 1 9");
+       setAttr("pieceX1_2_a","points","9 11 1 19");
+       setAttr("pieceX1_3_a","points","9 21 1 29");
+       setAttr("pieceX2_1_a","points","19 1 11 9");
+       setAttr("pieceX2_2_a","points","19 11 11 19");
+       setAttr("pieceX2_3_a","points","19 21 11 29");
+       setAttr("pieceX3_1_a","points","29 1 21 9");
+       setAttr("pieceX3_2_a","points","29 11 21 19");
+       setAttr("pieceX3_3_a","points","29 21 21 29");
+       setAttr("pieceX1_1_b","points","9 9 1 1");
+       setAttr("pieceX1_2_b","points","9 19 1 11");
+       setAttr("pieceX1_3_b","points","9 29 1 21");
+       setAttr("pieceX2_1_b","points","19 9 11 1");
+       setAttr("pieceX2_2_b","points","19 19 11 11");
+       setAttr("pieceX2_3_b","points","19 29 11 21");
+       setAttr("pieceX3_1_b","points","29 9 21 1");
+       setAttr("pieceX3_2_b","points","29 19 21 11");
+       setAttr("pieceX3_3_b","points","29 29 21 21");
+       setAttr("winnerX_a","points","49 11 41 19");
+       setAttr("winnerX_b","points","49 19 41 11");
+       setAttr("bVar_board","text","{(1|->{(1|->\"O\"),(2|->\"X\"),(3|->\"O\")}),(2|->{(1|->\"X\"),(2|->\"X\"),(3|->\"O\")}),(3|->{(1|->\"X\"),(2|->\"O\"),(3|->\"_\")})}");
+       setAttr("bVar_nextTurn","text","\"X\"");
+       highlightRow(stepNr);
+     }
+   function visualise1900(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/10, State ID: 1900");
+       setAttr("pieceO1_1","visibility","visible");
+       setAttr("pieceO1_2","visibility","hidden");
+       setAttr("pieceO1_3","visibility","visible");
+       setAttr("pieceO2_1","visibility","hidden");
+       setAttr("pieceO2_2","visibility","hidden");
+       setAttr("pieceO2_3","visibility","visible");
+       setAttr("pieceO3_1","visibility","hidden");
+       setAttr("pieceO3_2","visibility","visible");
+       setAttr("pieceO3_3","visibility","hidden");
+       setAttr("pieceX1_1_a","visibility","hidden");
+       setAttr("pieceX1_1_b","visibility","hidden");
+       setAttr("pieceX1_2_a","visibility","visible");
+       setAttr("pieceX1_2_b","visibility","visible");
+       setAttr("pieceX1_3_a","visibility","hidden");
+       setAttr("pieceX1_3_b","visibility","hidden");
+       setAttr("pieceX2_1_a","visibility","visible");
+       setAttr("pieceX2_1_b","visibility","visible");
+       setAttr("pieceX2_2_a","visibility","visible");
+       setAttr("pieceX2_2_b","visibility","visible");
+       setAttr("pieceX2_3_a","visibility","hidden");
+       setAttr("pieceX2_3_b","visibility","hidden");
+       setAttr("pieceX3_1_a","visibility","visible");
+       setAttr("pieceX3_1_b","visibility","visible");
+       setAttr("pieceX3_2_a","visibility","hidden");
+       setAttr("pieceX3_2_b","visibility","hidden");
+       setAttr("pieceX3_3_a","visibility","visible");
+       setAttr("pieceX3_3_b","visibility","visible");
+       setAttr("winnerO","visibility","hidden");
+       setAttr("winnerX_a","visibility","hidden");
+       setAttr("winnerX_b","visibility","hidden");
+       setAttr("winnerTxt","text","Draw !");
+       setAttr("pieceX1_1_a","points","9 1 1 9");
+       setAttr("pieceX1_2_a","points","9 11 1 19");
+       setAttr("pieceX1_3_a","points","9 21 1 29");
+       setAttr("pieceX2_1_a","points","19 1 11 9");
+       setAttr("pieceX2_2_a","points","19 11 11 19");
+       setAttr("pieceX2_3_a","points","19 21 11 29");
+       setAttr("pieceX3_1_a","points","29 1 21 9");
+       setAttr("pieceX3_2_a","points","29 11 21 19");
+       setAttr("pieceX3_3_a","points","29 21 21 29");
+       setAttr("pieceX1_1_b","points","9 9 1 1");
+       setAttr("pieceX1_2_b","points","9 19 1 11");
+       setAttr("pieceX1_3_b","points","9 29 1 21");
+       setAttr("pieceX2_1_b","points","19 9 11 1");
+       setAttr("pieceX2_2_b","points","19 19 11 11");
+       setAttr("pieceX2_3_b","points","19 29 11 21");
+       setAttr("pieceX3_1_b","points","29 9 21 1");
+       setAttr("pieceX3_2_b","points","29 19 21 11");
+       setAttr("pieceX3_3_b","points","29 29 21 21");
+       setAttr("winnerX_a","points","49 11 41 19");
+       setAttr("winnerX_b","points","49 19 41 11");
+       setAttr("bVar_board","text","{(1|->{(1|->\"O\"),(2|->\"X\"),(3|->\"O\")}),(2|->{(1|->\"X\"),(2|->\"X\"),(3|->\"O\")}),(3|->{(1|->\"X\"),(2|->\"O\"),(3|->\"X\")})}");
+       setAttr("bVar_nextTurn","text","\"O\"");
+       highlightRow(stepNr);
+     }
+   async function runAll(delay) {
+   visualise0(1);
+   setAttr("visb_debug_messages","text","Step: 1/10,  State ID: 0,  Event: INITIALISATION(board=\{(1\|-\>\{(1\|-\>\"_\"),(2\|-\>\"_\"),(3\|-\>\"_\")\}),(2\|-\>\{(1\|-\>\"_\"),(2\|-\>\"_\"),(3\|-\>\"_\")\}),(3\|-\>\{(1\|-\>\"_\"),(2\|-\>\"...");
+   await sleep(delay);
+   visualise5(2);
+   setAttr("visb_debug_messages","text","Step: 2/10,  State ID: 5,  Event: MoveX(2,2)");
+   await sleep(delay);
+   visualise246(3);
+   setAttr("visb_debug_messages","text","Step: 3/10,  State ID: 246,  Event: MoveO(1,1)");
+   await sleep(delay);
+   visualise204(4);
+   setAttr("visb_debug_messages","text","Step: 4/10,  State ID: 204,  Event: MoveX(1,2)");
+   await sleep(delay);
+   visualise1725(5);
+   setAttr("visb_debug_messages","text","Step: 5/10,  State ID: 1725,  Event: MoveO(3,2)");
+   await sleep(delay);
+   visualise1671(6);
+   setAttr("visb_debug_messages","text","Step: 6/10,  State ID: 1671,  Event: MoveX(2,1)");
+   await sleep(delay);
+   visualise1927(7);
+   setAttr("visb_debug_messages","text","Step: 7/10,  State ID: 1927,  Event: MoveO(2,3)");
+   await sleep(delay);
+   visualise2049(8);
+   setAttr("visb_debug_messages","text","Step: 8/10,  State ID: 2049,  Event: MoveX(3,1)");
+   await sleep(delay);
+   visualise1995(9);
+   setAttr("visb_debug_messages","text","Step: 9/10,  State ID: 1995,  Event: MoveO(1,3)");
+   await sleep(delay);
+   visualise1900(10);
+   setAttr("visb_debug_messages","text","Step: 10/10,  State ID: 1900,  Event: MoveX(3,3)");
+   await sleep(delay);
+   }
+ </script>
+
+   <script>
+   function registerHovers() {
+     var obj;
+   obj = document.getElementById("grid1_1");
+   obj.onmouseover = function(ev){
+       setAttr("grid1_1","fill","gray")
+     };
+   obj.onmouseout = function(){
+       setAttr("grid1_1","fill","white")
+     };
+   obj = document.getElementById("grid1_2");
+   obj.onmouseover = function(ev){
+       setAttr("grid1_2","fill","gray")
+     };
+   obj.onmouseout = function(){
+       setAttr("grid1_2","fill","white")
+     };
+   obj = document.getElementById("grid1_3");
+   obj.onmouseover = function(ev){
+       setAttr("grid1_3","fill","gray")
+     };
+   obj.onmouseout = function(){
+       setAttr("grid1_3","fill","white")
+     };
+   obj = document.getElementById("grid2_1");
+   obj.onmouseover = function(ev){
+       setAttr("grid2_1","fill","gray")
+     };
+   obj.onmouseout = function(){
+       setAttr("grid2_1","fill","white")
+     };
+   obj = document.getElementById("grid2_2");
+   obj.onmouseover = function(ev){
+       setAttr("grid2_2","fill","gray")
+     };
+   obj.onmouseout = function(){
+       setAttr("grid2_2","fill","white")
+     };
+   obj = document.getElementById("grid2_3");
+   obj.onmouseover = function(ev){
+       setAttr("grid2_3","fill","gray")
+     };
+   obj.onmouseout = function(){
+       setAttr("grid2_3","fill","white")
+     };
+   obj = document.getElementById("grid3_1");
+   obj.onmouseover = function(ev){
+       setAttr("grid3_1","fill","gray")
+     };
+   obj.onmouseout = function(){
+       setAttr("grid3_1","fill","white")
+     };
+   obj = document.getElementById("grid3_2");
+   obj.onmouseover = function(ev){
+       setAttr("grid3_2","fill","gray")
+     };
+   obj.onmouseout = function(){
+       setAttr("grid3_2","fill","white")
+     };
+   obj = document.getElementById("grid3_3");
+   obj.onmouseover = function(ev){
+       setAttr("grid3_3","fill","gray")
+     };
+   obj.onmouseout = function(){
+       setAttr("grid3_3","fill","white")
+     };
+   obj = document.getElementById("mctsRect");
+   obj.onmouseover = function(ev){
+       setAttr("mctsRect","fill","green")
+     };
+   obj.onmouseout = function(){
+       setAttr("mctsRect","fill","lightgray")
+     };
+   obj = document.getElementById("mctsRectTxt");
+   obj.onmouseover = function(ev){
+       setAttr("mctsRect","fill","green")
+     };
+   obj.onmouseout = function(){
+       setAttr("mctsRect","fill","lightgray")
+     };
+   }
+  </script>
+    </head>
+<body>
+
+
+ <button type="button" class="collapsible collapsible-style">SVG Visualisation</button>
+ <div text-align="left">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   height="400" width="400"
+   viewBox="-2 -2 55 40"
+   >
+       <text  text-align="left"  x="0"  y="35" font-size="2"
+        font-family="sans-serif">
+       <tspan id="visb_debug_messages_opt"> </tspan>
+
+    
+  <filter id="displacementFilter">
+    <feTurbulence type="turbulence" baseFrequency="0.05"
+        numOctaves="2" result="turbulence"/>
+    <feDisplacementMap in2="turbulence" in="SourceGraphic"
+        scale="1.2" xChannelSelector="R" yChannelSelector="G"/>
+  </filter>
+</svg>
+<script>
+  const svg = document.querySelector("svg");
+  const svgns = "http://www.w3.org/2000/svg";
+  if(document.getElementById("grid1_1") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid1_1");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","0");
+        new___obj.setAttribute("y","0");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid1_2") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid1_2");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","0");
+        new___obj.setAttribute("y","10");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid1_3") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid1_3");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","0");
+        new___obj.setAttribute("y","20");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid2_1") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid2_1");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","10");
+        new___obj.setAttribute("y","0");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid2_2") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid2_2");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","10");
+        new___obj.setAttribute("y","10");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid2_3") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid2_3");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","10");
+        new___obj.setAttribute("y","20");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid3_1") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid3_1");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","20");
+        new___obj.setAttribute("y","0");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid3_2") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid3_2");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","20");
+        new___obj.setAttribute("y","10");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid3_3") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid3_3");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","20");
+        new___obj.setAttribute("y","20");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceO1_1") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","pieceO1_1");
+        new___obj.setAttribute("cx","5");
+        new___obj.setAttribute("cy","5");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","red");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceO1_2") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","pieceO1_2");
+        new___obj.setAttribute("cx","5");
+        new___obj.setAttribute("cy","15");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","red");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceO1_3") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","pieceO1_3");
+        new___obj.setAttribute("cx","5");
+        new___obj.setAttribute("cy","25");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","red");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceO2_1") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","pieceO2_1");
+        new___obj.setAttribute("cx","15");
+        new___obj.setAttribute("cy","5");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","red");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceO2_2") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","pieceO2_2");
+        new___obj.setAttribute("cx","15");
+        new___obj.setAttribute("cy","15");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","red");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceO2_3") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","pieceO2_3");
+        new___obj.setAttribute("cx","15");
+        new___obj.setAttribute("cy","25");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","red");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceO3_1") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","pieceO3_1");
+        new___obj.setAttribute("cx","25");
+        new___obj.setAttribute("cy","5");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","red");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceO3_2") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","pieceO3_2");
+        new___obj.setAttribute("cx","25");
+        new___obj.setAttribute("cy","15");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","red");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceO3_3") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","pieceO3_3");
+        new___obj.setAttribute("cx","25");
+        new___obj.setAttribute("cy","25");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","red");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX1_1_a") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX1_1_a");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX1_1_b") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX1_1_b");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX1_2_a") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX1_2_a");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX1_2_b") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX1_2_b");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX1_3_a") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX1_3_a");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX1_3_b") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX1_3_b");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX2_1_a") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX2_1_a");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX2_1_b") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX2_1_b");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX2_2_a") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX2_2_a");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX2_2_b") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX2_2_b");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX2_3_a") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX2_3_a");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX2_3_b") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX2_3_b");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX3_1_a") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX3_1_a");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX3_1_b") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX3_1_b");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX3_2_a") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX3_2_a");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX3_2_b") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX3_2_b");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX3_3_a") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX3_3_a");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("pieceX3_3_b") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","pieceX3_3_b");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("winnerRect") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","winnerRect");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","40");
+        new___obj.setAttribute("y","10");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("mctsRect") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","mctsRect");
+        new___obj.setAttribute("fill","lightgray");
+        new___obj.setAttribute("height","5");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","40");
+        new___obj.setAttribute("y","22.5");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("winnerTxt") == null) {
+    var new___obj = document.createElementNS(svgns,"text");
+        new___obj.setAttribute("id","winnerTxt");
+        new___obj.setAttribute("font-family","sans-serif");
+        new___obj.setAttribute("font-size","3.0");
+        new___obj.textContent = "Winner: ";
+        new___obj.setAttribute("x","40");
+        new___obj.setAttribute("y","8");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("winnerO") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","winnerO");
+        new___obj.setAttribute("cx","45");
+        new___obj.setAttribute("cy","15");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","red");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("winnerX_a") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","winnerX_a");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("winnerX_b") == null) {
+    var new___obj = document.createElementNS(svgns,"polyline");
+        new___obj.setAttribute("id","winnerX_b");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("points","0 0 10 10");
+        new___obj.setAttribute("stroke","blue");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("style","");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("mctsRectTxt") == null) {
+    var new___obj = document.createElementNS(svgns,"text");
+        new___obj.setAttribute("id","mctsRectTxt");
+        new___obj.setAttribute("font-family","sans-serif");
+        new___obj.setAttribute("font-size","2.5");
+        new___obj.textContent = "MCTS";
+        new___obj.setAttribute("x","41.6");
+        new___obj.setAttribute("y","25.9");
+    svg.appendChild(new___obj);
+  }
+</script>
+ </div>
+ <button type="button" class="collapsible-style">Replay Trace</button>
+ <div class="coll-content-vis">
+  <button onclick="backStep()">&laquo; Back</button>
+  <button onclick="forwardStep()">Forward &raquo;</button>
+  <button onclick="runAll(10)">Run Trace (10 ms delay)</button>
+  <button onclick="runAll(500)">Run Trace (500 ms delay)</button>
+  <br><text id="visb_debug_messages" class="visb-messages"> </text>
+ </div>
+ <progress id="trace_meter" min="0" max="10" value="0"></progress>
+ <button type="button" class="collapsible collapsible-style">Variables (2/2)</button>
+<div class="coll-content-hid">
+ <table> <tr> <th>Nr</th> <th>Name</th> <th>Value</th> </tr>
+
+ <tr id="var_rowboard"> <td>1</td> <td>board</td> <td id="bVar_board">?</td></tr>
+
+ <tr id="var_rownextTurn"> <td>2</td> <td>nextTurn</td> <td id="bVar_nextTurn">?</td></tr>
+ </table>
+ </div>
+ <button type="button" class="collapsible-style">Trace (length=10)</button>
+<div class="coll-content-vis">
+ <table> <tr> <th>Nr</th> <th>Event</th> <th>Target State ID</th> </tr>
+
+  <tr id="row1" onclick="visualise0(1)"><td>1</td><td style="cursor:pointer">INITIALISATION(board={(1|->{(1|->"_"),(2|->"_"),(3|->"_")}),(2|->{(1|->"_"),(2|->"_"),(3|->"_")}),(3|->{(1|->"_"),(2|->"...</td><td><button onclick="visualise0(1);">State 0</button></td></tr>
+
+  <tr id="row2" onclick="visualise5(2)"><td>2</td><td style="cursor:pointer">MoveX(2,2)</td><td><button onclick="visualise5(2);">State 5</button></td></tr>
+
+  <tr id="row3" onclick="visualise246(3)"><td>3</td><td style="cursor:pointer">MoveO(1,1)</td><td><button onclick="visualise246(3);">State 246</button></td></tr>
+
+  <tr id="row4" onclick="visualise204(4)"><td>4</td><td style="cursor:pointer">MoveX(1,2)</td><td><button onclick="visualise204(4);">State 204</button></td></tr>
+
+  <tr id="row5" onclick="visualise1725(5)"><td>5</td><td style="cursor:pointer">MoveO(3,2)</td><td><button onclick="visualise1725(5);">State 1725</button></td></tr>
+
+  <tr id="row6" onclick="visualise1671(6)"><td>6</td><td style="cursor:pointer">MoveX(2,1)</td><td><button onclick="visualise1671(6);">State 1671</button></td></tr>
+
+  <tr id="row7" onclick="visualise1927(7)"><td>7</td><td style="cursor:pointer">MoveO(2,3)</td><td><button onclick="visualise1927(7);">State 1927</button></td></tr>
+
+  <tr id="row8" onclick="visualise2049(8)"><td>8</td><td style="cursor:pointer">MoveX(3,1)</td><td><button onclick="visualise2049(8);">State 2049</button></td></tr>
+
+  <tr id="row9" onclick="visualise1995(9)"><td>9</td><td style="cursor:pointer">MoveO(1,3)</td><td><button onclick="visualise1995(9);">State 1995</button></td></tr>
+
+  <tr id="row10" onclick="visualise1900(10)"><td>10</td><td style="cursor:pointer">MoveX(3,3)</td><td><button onclick="visualise1900(10);">State 1900</button></td></tr>
+ </table>
+ </div>
+ <button type="button" class="collapsible-style">Info</button>
+<div class="coll-content-vis visb-messages">
+Generated on 2/1/2024 at 17:41 using ProB version 1.12.3-nightly
+<br>Main specification file: tictactoe_v2.tla (modified on 2/1/2024 at 17:37)
+<br>Main specification name: tictactoe_v2
+<br>Main VisB JSON file: tictactoe_visb.json (modified on 2/1/2024 at 17:35)
+<br>VisB SVG file: tictactoe_grid.svg (modified on 2/1/2024 at 13:46)
+ <script> visualise1900(10); </script>
+ </div>
+ <script> registerHovers() </script>
+ 
+<script>
+var collapsibles = document.getElementsByClassName("collapsible");
+var ii;
+
+for (ii = 0; ii < collapsibles.length; ii++) {
+  collapsibles[ii].addEventListener("click", function() {
+    this.classList.toggle("active");
+    var content = this.nextElementSibling;
+    if (content.style.display === "block") {
+      content.style.display = "none";
+    } else {
+      content.style.display = "block";
+    }
+  });
+}
+</script>
+
+</body>
+</html>
+
-- 
GitLab