BEGIN           {
		    stones["lineStones"] = "?";
		    stones["fillStones"] = "?";
		    stones["blitStones"] = "?";
		    stones["arcStones"] = "?";
		    stones["textStones"] = "?";
		    stones["complexStones"] = "?";
		    stones["xStones"] = "?";
		    nplanes = "?";
		    server = "?";
		    com = "?";
		    s = "?";
		    e["xStones"] = "+";
		}

/server:/        {
		    server = $2
		    if ( $3 != "") {
		      server = server " " $3
		    }
		    if ( $4 != "") {
		      server = server " " $4
		    }
		    if ( $5 != "") {
		      server = server " " $5
		    }
		    if ( $6 != "") {
		      server = server " " $6
		    }
		    if ( $7 != "") {
		      server = server " " $7
		    }
		    if ( $8 != "") {
		      server = server " " $8
		    }
		    if ( $9 != "") {
		      server = server " " $9
		    }
		}

/communication:/{
		    com = $2
		    if ( $3 != "") {
		      com = com " " $3
		    }
		    if ( $4 != "") {
		      com = com " " $4
		    }
		    if ( $5 != "") {
		      com = com " " $5
		    }
		    if ( $6 != "") {
		      com = com " " $6
		    }
		    if ( $7 != "") {
		      com = com " " $7
		    }
		    if ( $8 != "") {
		      com = com " " $8
		    }
		    if ( $9 != "") {
		      com = com " " $9
		    }
		}

/Defaultdepth rootwindow/ { nplanes = $4 }

/TOTAL \? /       { stones[$3] = "?"; e[$3] = "*"; }
/TOTAL expected / { stones[$4] = int($3); e[$4] = "*"; }
/TOTAL [0-9]* /   { stones[$3] = int($2); e[$3] = " " }

END             {
		  if (stones["lineStones"] == 0) {
		      l = "?";
		  } else {
		      l = int(stones["lineStones"] + 0.5);
		  }
		  if (stones["fillStones"] == 0) {
		      f = "?";
		  } else {
		      f = int(stones["fillStones"] + 0.5);
		  }
		  if (stones["blitStones"] == 0) {
		      b = "?";
		  } else {
		      b = int(stones["blitStones"] + 0.5);
		  }
		  if (stones["arcStones"] == 0) {
		      a = "?";
		  } else {
		      a = int(stones["arcStones"] + 0.5);
		  }
		  if (stones["textStones"] == "?") {
		      t = "?";
		  } else {
		      t = int(stones["textStones"] + 0.5);
		  }
		  if (stones["complexStones"] == "?") {
		      c = "?";
		  } else {
		      c = int(stones["complexStones"] + 0.5);
		  }
		  if (stones["xStones"] == "?") {
		      all = "?";
		  } else {
		      all = int(stones["xStones"] + 0.5);
		  }
		  print server "!" nplanes "!" com "!"      \
				   e["lineStones"]    l  "!"    \
				   e["fillStones"]    f  "!"    \
				   e["blitStones"]    b  "!"    \
				   e["textStones"]    t  "!"    \
				   e["arcStones"]     a "!"     \
				   e["complexStones"] c "!" \
				   all ;
		}
