Problem Display
PID: 83098 (6bK/8/8/3p2RQ/8/5p1p/R3p3/2kN4 w - - 0 1)

Havel, Miroslav

Prace, 1955

6bK/8/8/3p2RQ/8/5p1p/R3p3/2kN4

#3

5 + 6


6490 yacpdb 2009

SOLUTION


  • SOUND
  • Tries
    • 1.Sc3?
      • threat
        • 2.Rg1+
          • 2...e1Q
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1S
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1B
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1R
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
        • 2.Rg2
          • threat
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1Q
            • 3.Ra1#
            • 3.Rac2#
            • 3.Rgc2#
          • 2...e1B
            • 3.Ra1#
            • 3.Rac2#
            • 3.Rgc2#
          • 2...e1R
            • 3.Ra1#
            • 3.Rac2#
            • 3.Rgc2#
        • 2.Re5
          • threat
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1Q
            • 3.Rxe1#
          • 2...e1B
            • 3.Rxe1#
          • 2...e1R
            • 3.Rxe1#
        • 2.Qg6
          • threat
            • 3.Rc2#
            • 3.Qb1#
            • 3.Qc2#
        • 2.Qh4
          • threat
            • 3.Qe1#
            • 3.Qf4#
          • 2...e1Q
            • 3.Qxe1#
          • 2...e1B
            • 3.Qxe1#
          • 2...e1R
            • 3.Qxe1#
        • 2.Qh6
          • threat
            • 3.Rg1#
            • 3.Rg2#
            • 3.Rg3#
            • 3.Rg4#
            • 3.Rxd5#
            • 3.Re5#
            • 3.Rf5#
            • 3.Rh5#
            • 3.Rg6#
            • 3.Rg7#
            • 3.Rxg8#
      • 1...e1S
        • 2.Rg1
          • threat
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
        • 2.Qh6
          • threat
            • 3.Rg1#
            • 3.Rgg2#
            • 3.Rg3#
            • 3.Rg4#
            • 3.Rxd5#
            • 3.Re5#
            • 3.Rf5#
            • 3.Rh5#
            • 3.Rg6#
            • 3.Rg7#
            • 3.Rxg8#
          • 2...Sg2
            • 3.Rgxg2#
      • 1...e1B
        • 2.Rg1
          • threat
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
      • 1...e1R
        • 2.Qh6
          • threat
            • 3.Rg1#
          • 2...Rg1
            • 3.Rxg1#
            • 3.Rgg2#
            • 3.Rg3#
            • 3.Rg4#
      • 1...Be6
        • 2.Rg1+
          • 2...e1Q
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1S
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1B
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1R
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
        • 2.Rg2
          • threat
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1Q
            • 3.Ra1#
            • 3.Rac2#
            • 3.Rgc2#
          • 2...e1B
            • 3.Ra1#
            • 3.Rac2#
            • 3.Rgc2#
          • 2...e1R
            • 3.Ra1#
            • 3.Rac2#
            • 3.Rgc2#
        • 2.Re5
          • threat
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1Q
            • 3.Rxe1#
          • 2...e1B
            • 3.Rxe1#
          • 2...e1R
            • 3.Rxe1#
        • 2.Qh4
          • threat
            • 3.Qe1#
            • 3.Qf4#
          • 2...e1Q
            • 3.Qxe1#
          • 2...e1B
            • 3.Qxe1#
          • 2...e1R
            • 3.Qxe1#
        • 2.Qh6
          • threat
            • 3.Rg1#
            • 3.Rg2#
            • 3.Rg3#
            • 3.Rg4#
            • 3.Rxd5#
            • 3.Re5#
            • 3.Rf5#
            • 3.Rh5#
            • 3.Rg6#
            • 3.Rg7#
            • 3.Rg8#
      • 1...Bf7
        • 2.Rg1+
          • 2...e1Q
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1S
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1B
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1R
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
        • 2.Qh4
          • threat
            • 3.Qe1#
            • 3.Qf4#
          • 2...e1Q
            • 3.Qxe1#
          • 2...e1B
            • 3.Qxe1#
          • 2...e1R
            • 3.Qxe1#
        • 2.Qh6
          • threat
            • 3.Rg1#
            • 3.Rg2#
            • 3.Rg3#
            • 3.Rg4#
            • 3.Rxd5#
            • 3.Re5#
            • 3.Rf5#
            • 3.Rh5#
            • 3.Rg6#
            • 3.Rg7#
            • 3.Rg8#
      • 1...Bh7
        • 2.Rg1+
          • 2...e1Q
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1S
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1B
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1R
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
        • 2.Re5
          • threat
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1Q
            • 3.Rxe1#
          • 2...e1B
            • 3.Rxe1#
          • 2...e1R
            • 3.Rxe1#
        • 2.Qh4
          • threat
            • 3.Qe1#
            • 3.Qf4#
          • 2...e1Q
            • 3.Qxe1#
          • 2...e1B
            • 3.Qxe1#
          • 2...e1R
            • 3.Qxe1#
        • 2.Qh6
          • threat
            • 3.Rg1#
            • 3.Rg2#
            • 3.Rg3#
            • 3.Rg4#
            • 3.Rxd5#
            • 3.Re5#
            • 3.Rf5#
            • 3.Rh5#
            • 3.Rg6#
            • 3.Rg7#
            • 3.Rg8#
        • 2.Qxh7
          • threat
            • 3.Rc2#
            • 3.Qb1#
            • 3.Qc2#
      • 1...f2
        • 2.Qxe2
          • threat
            • 3.Ra1#
            • 3.Rc2#
            • 3.Qd1#
            • 3.Qf1#
            • 3.Qb2#
            • 3.Qc2#
            • 3.Qd2#
            • 3.Qe3#
        • 2.Qg6
          • threat
            • 3.Rc2#
            • 3.Qb1#
            • 3.Qc2#
        • 2.Qh6
          • threat
            • 3.Rg1#
            • 3.Rg2#
            • 3.Rg3#
            • 3.Rg4#
            • 3.Rxd5#
            • 3.Re5#
            • 3.Rf5#
            • 3.Rh5#
            • 3.Rg6#
            • 3.Rg7#
            • 3.Rxg8#
      • 1...h2
        • 2.Qxh2
          • threat
            • 3.Qf4#
          • 2...e1Q
            • 3.Ra1#
            • 3.Rc2#
            • 3.Qb2#
            • 3.Qc2#
          • 2...e1B
            • 3.Ra1#
            • 3.Rc2#
            • 3.Qb2#
            • 3.Qc2#
          • 2...e1R
            • 3.Ra1#
            • 3.Rc2#
            • 3.Qb2#
            • 3.Qc2#
            • 3.Qd2#
        • 2.Qh6
          • threat
            • 3.Rg1#
            • 3.Rg2#
            • 3.Rg3#
            • 3.Rg4#
            • 3.Rxd5#
            • 3.Re5#
            • 3.Rf5#
            • 3.Rh5#
            • 3.Rg6#
            • 3.Rg7#
            • 3.Rxg8#
      • 1...d4
        • 2.Rg1+
          • 2...e1Q
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1S
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1B
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1R
            • 3.Rxe1#
            • 3.Qg5#
            • 3.Qh6#
      • 1...e1Q!
    • 1.Rg2?
      • threat
        • 2.Sc3
          • threat
            • 3.Qg5#
            • 3.Qh6#
          • 2...e1Q
            • 3.Ra1#
            • 3.Rac2#
            • 3.Rgc2#
          • 2...e1B
            • 3.Ra1#
            • 3.Rac2#
            • 3.Rgc2#
          • 2...e1R
            • 3.Ra1#
            • 3.Rac2#
            • 3.Rgc2#
        • 2.Qg5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Qh6+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
      • 1...Kb1
        • 2.Sc3+
          • 2...Kc1
            • 3.Qg5#
            • 3.Qh6#
      • 1...Kxd1
        • 2.Qg5
          • threat
            • 3.Qd2#
          • 2...Ke1
            • 3.Ra1#
            • 3.Qc1#
          • 2...e1Q
            • 3.Ra1#
          • 2...e1B
            • 3.Ra1#
        • 2.Qh6
          • threat
            • 3.Qd2#
          • 2...Ke1
            • 3.Ra1#
            • 3.Qc1#
          • 2...e1Q
            • 3.Ra1#
          • 2...e1B
            • 3.Ra1#
      • 1...fxg2
        • 2.Qg5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Qh6+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
      • 1...hxg2
        • 2.Qg5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Qh6+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
      • 1...Bf7
        • 2.Qg5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Qh6+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
      • 1...Bh7
        • 2.Qg5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Qh6+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Qxh7
          • threat
            • 3.Qc2#
          • 2...Kxd1
            • 3.Qb1#
          • 2...exd1Q
            • 3.Ra1#
          • 2...exd1B
            • 3.Ra1#
          • 2...e1S
            • 3.Ra1#
      • 1...f2
        • 2.Qg5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Qh6+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
      • 1...h2
        • 2.Qg5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Qh6+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
      • 1...d4!
  • Keys
    • 1.Qh6!
      • threat
        • 2.Sc3
          • threat
            • 3.Rg1#
            • 3.Rg2#
            • 3.Rg3#
            • 3.Rg4#
            • 3.Rxd5#
            • 3.Re5#
            • 3.Rf5#
            • 3.Rh5#
            • 3.Rg6#
            • 3.Rg7#
            • 3.Rxg8#
        • 2.Rg1+
          • 2...Kb1
            • 3.Sc3#
        • 2.Rg2+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg3+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg4+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rxd5+
          • 2...Kb1
            • 3.Sc3#
        • 2.Re5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rf5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rh5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg6+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg7+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rxg8+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
      • 1...Kb1
        • 2.Sc3+
          • 2...Kc1
            • 3.Rg1#
            • 3.Rg2#
            • 3.Rg3#
            • 3.Rg4#
            • 3.Rxd5#
            • 3.Re5#
            • 3.Rf5#
            • 3.Rh5#
            • 3.Rg6#
            • 3.Rg7#
            • 3.Rxg8#
        • 2.Rb2+
          • 2...Ka1
            • 3.Qa6#
          • 2...Kc1
            • 3.Rg1#
            • 3.Rxd5#
      • 1...Kxd1
        • 2.Rg1+
          • 2...e1Q
            • 3.Qd2#
          • 2...e1S
            • 3.Qd2#
          • 2...e1B
            • 3.Qd2#
          • 2...e1R
            • 3.Qd2#
        • 2.Rg2
          • threat
            • 3.Qd2#
          • 2...Ke1
            • 3.Ra1#
            • 3.Qc1#
          • 2...e1Q
            • 3.Ra1#
          • 2...e1B
            • 3.Ra1#
      • 1...exd1Q
        • 2.Rgg2+
          • 2...Kb1
            • 3.Rgb2#
          • 2...Qd2
            • 3.Rg1#
      • 1...exd1S
        • 2.Qc6+
          • 2...Kb1
            • 3.Qc2#
          • 2...Sc3
            • 3.Rg1#
      • 1...exd1B
        • 2.Rgg2+
          • 2...Kb1
            • 3.Rgb2#
      • 1...exd1R
        • 2.Rgg2+
          • 2...Kb1
            • 3.Rgb2#
          • 2...Rd2
            • 3.Rg1#
        • 2.Qc6+
          • 2...Kb1
            • 3.Qc2#
      • 1...e1Q
        • 2.Rg1+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
          • 2...Qd2
            • 3.Sf2#
            • 3.Sc3#
          • 2...Qe3
            • 3.Sf2#
            • 3.Sc3#
            • 3.Sxe3#
      • 1...e1S
        • 2.Sc3
          • threat
            • 3.Rg1#
            • 3.Rgg2#
            • 3.Rg3#
            • 3.Rg4#
            • 3.Rxd5#
            • 3.Re5#
            • 3.Rf5#
            • 3.Rh5#
            • 3.Rg6#
            • 3.Rg7#
            • 3.Rxg8#
          • 2...Sg2
            • 3.Rgxg2#
        • 2.Rg1+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rgg2+
          • 2...Kb1
            • 3.Sc3#
            • 3.Rgb2#
          • 2...Kxd1
            • 3.Ra1#
            • 3.Qd2#
        • 2.Rg3+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg4+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rxd5+
          • 2...Kb1
            • 3.Sc3#
        • 2.Re5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rf5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rh5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg6+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg7+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rxg8+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
      • 1...e1B
        • 2.Rg1+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
          • 2...Bd2
            • 3.Sf2#
            • 3.Sc3#
      • 1...e1R
        • 2.Sc3
          • threat
            • 3.Rg1#
          • 2...Rg1
            • 3.Rxg1#
            • 3.Rgg2#
            • 3.Rg3#
            • 3.Rg4#
        • 2.Rg1+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
          • 2...Re3
            • 3.Sf2#
            • 3.Sc3#
            • 3.Sxe3#
        • 2.Rgg2+
          • 2...Kb1
            • 3.Sc3#
            • 3.Rgb2#
          • 2...Kxd1
            • 3.Ra1#
            • 3.Qd2#
          • 2...Re3
            • 3.Ra1#
        • 2.Qc6+
          • 2...Kb1
            • 3.Qc2#
          • 2...Kxd1
            • 3.Qc2#
      • 1...Be6
        • 2.Sc3
          • threat
            • 3.Rg1#
            • 3.Rg2#
            • 3.Rg3#
            • 3.Rg4#
            • 3.Rxd5#
            • 3.Re5#
            • 3.Rf5#
            • 3.Rh5#
            • 3.Rg6#
            • 3.Rg7#
            • 3.Rg8#
        • 2.Rg1+
          • 2...Kb1
            • 3.Sc3#
        • 2.Rg2+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg3+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg4+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rxd5+
          • 2...Kb1
            • 3.Sc3#
        • 2.Re5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rf5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rh5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg6+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg7+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg8+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
      • 1...Bf7
        • 2.Sc3
          • threat
            • 3.Rg1#
            • 3.Rg2#
            • 3.Rg3#
            • 3.Rg4#
            • 3.Rxd5#
            • 3.Re5#
            • 3.Rf5#
            • 3.Rh5#
            • 3.Rg6#
            • 3.Rg7#
            • 3.Rg8#
        • 2.Rg1+
          • 2...Kb1
            • 3.Sc3#
        • 2.Rg2+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg3+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg4+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rxd5+
          • 2...Kb1
            • 3.Sc3#
        • 2.Re5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rf5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rh5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg6+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg7+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg8+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
      • 1...Bh7
        • 2.Sc3
          • threat
            • 3.Rg1#
            • 3.Rg2#
            • 3.Rg3#
            • 3.Rg4#
            • 3.Rxd5#
            • 3.Re5#
            • 3.Rf5#
            • 3.Rh5#
            • 3.Rg6#
            • 3.Rg7#
            • 3.Rg8#
        • 2.Rg1+
          • 2...Kb1
            • 3.Sc3#
        • 2.Rg2+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg3+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg4+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rxd5+
          • 2...Kb1
            • 3.Sc3#
        • 2.Re5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rf5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rh5+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg6+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg7+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rg8+
          • 2...Kb1
            • 3.Sc3#
          • 2...Kxd1
            • 3.Qd2#
      • 1...d4
        • 2.Rg1+
          • 2...Kb1
            • 3.Sc3#
        • 2.Rga5+
          • 2...Kb1
            • 3.Rb2#
          • 2...Kxd1
            • 3.Qd2#
        • 2.Rb5+
          • 2...Kxd1
            • 3.Rb1#
            • 3.Qd2#

FEATURES


NOT CLASSIFIED


Developed and maintained by Brian Stephenson.
Implemented with HTML5, MySQL, Perl (with, inter alia, CGI::Simple, HTML::Template & XML::LibXML) & CSS/Javascript (jQuery, Bootstrap & DataTables).