{"format":"murdoku-puzzle/1","id":"closing-time","iconSet":"catalogue","version":1,"difficulty":"easy","level":3,"size":{"rows":6,"cols":6},"languages":["en","hu","de","fr","es","it","nl","pl","pt","ro","ca","cs","fi","vi","tr","el","ru","uk","ar","ko","ja","zh-Hans","zh-Hant"],"defaultLanguage":"en","title":"Closing Time","tagline":"Galway, a rainy Thursday · the town library at a quarter to eight · an old parish map and an empty chair","author":"mathace","concept":"Murdoku – Manuel Garand (murdoku.com); unofficial fan-made case","created":"2026-10-19","story":"Galway, the city library, a rainy Thursday evening. Vincent, a retired teacher and local historian, was copying old maps in the Local History Room and noticed that one map was missing from his folder. Six people were in the library before closing. Vincent was found dead. The map never turned up.","rules":{"standard":["Every <b>row</b> and every <b>column</b> holds exactly <b>one person</b>. As soon as you place someone, cross out their whole row and column.","<b>“Beside”</b> = directly left, right, above or below, and <b>in the same area</b>. Squares with objects (the counter, the table, the lamp, the bookcases, the globe, the dollhouse and the desk) cannot be occupied; the armchair, the chairs and the beanbag can.","Directions refer to rows and columns, not to the same line: <i>“exactly one row north of him was a woman”</i> = the person in the row directly above was a woman, in any column; <i>“the northernmost person in her area”</i> = nobody else in her area was in a row further up.","The murderer was <b>alone with the victim</b>: nobody else was in that area. The victim made no statement – his square, too, follows from the others’."],"special":[],"notes":[],"example":{}},"roleNames":{"staff":"member of staff","reader":"reader","victim":"victim"},"personGroups":[{"id":"staff","name":"The library staff","persons":["A","B","C"]},{"id":"readers","name":"The readers","persons":["D","E","V"]}],"map":{"groups":[],"gaps":[],"areas":[{"id":"Entrance Hall","cells":[[1,1],[1,2],[2,1]],"fill":"#dfe9ee","pattern":"tiles","labelAt":[1,1],"name":"Entrance Hall"},{"id":"Reading Room","cells":[[1,3],[1,4],[1,5],[2,4],[3,4],[3,5]],"fill":"#e6dcc8","pattern":"boards","labelAt":[1,4],"name":"Reading Room"},{"id":"Local History Room","cells":[[1,6],[2,5],[2,6],[3,6],[4,6]],"fill":"#efd9c9","pattern":"marble","labelAt":[1,6],"name":"Local History Room"},{"id":"Stacks","cells":[[2,2],[2,3],[3,1],[3,2],[3,3],[4,1]],"fill":"#f2e6c8","pattern":"planks","labelAt":[2,2.5],"name":"Stacks"},{"id":"Children's Corner","cells":[[4,2],[4,3],[4,4],[5,1],[5,2],[6,1],[6,2]],"fill":"#d5e6d8","pattern":"tiles","labelAt":[4,2],"name":"Children's Corner"},{"id":"Study Room","cells":[[4,5],[5,3],[5,4],[5,5],[5,6],[6,3],[6,4],[6,5],[6,6]],"fill":"#d9d6e0","pattern":"tiles","labelAt":[4,5],"name":"Study Room"}],"objectTypes":{"counter":{"occupiable":false,"name":"counter","icon":"<rect x=\"0\" y=\"10\" width=\"46\" height=\"26\" fill=\"#a97c50\" stroke=\"#5e4127\" stroke-width=\"1.5\"/><rect x=\"0\" y=\"10\" width=\"46\" height=\"7\" fill=\"#c9a06f\"/>"},"table":{"occupiable":false,"name":"table","icon":"<rect x=\"7\" y=\"7\" width=\"32\" height=\"32\" rx=\"5\" fill=\"#b98a5a\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><rect x=\"12\" y=\"12\" width=\"22\" height=\"22\" rx=\"3\" fill=\"#d1a675\"/>","iconTall":"<rect x=\"7\" y=\"7\" width=\"32\" height=\"78\" rx=\"5\" fill=\"#b98a5a\" stroke=\"#6e4d2c\" stroke-width=\"1.5\"/><rect x=\"12\" y=\"12\" width=\"22\" height=\"68\" rx=\"3\" fill=\"#d1a675\"/>"},"armchair":{"occupiable":true,"name":"armchair","icon":"<rect x=\"6\" y=\"14\" width=\"34\" height=\"24\" rx=\"6\" fill=\"#b3252f\" stroke=\"#6b1218\" stroke-width=\"1.5\"/><rect x=\"11\" y=\"8\" width=\"24\" height=\"14\" rx=\"5\" fill=\"#d0333f\" stroke=\"#6b1218\" stroke-width=\"1.5\"/><rect x=\"6\" y=\"20\" width=\"7\" height=\"14\" rx=\"3\" fill=\"#8a1a22\"/><rect x=\"33\" y=\"20\" width=\"7\" height=\"14\" rx=\"3\" fill=\"#8a1a22\"/>"},"lamp":{"occupiable":false,"name":"lamp","icon":"<circle cx=\"23\" cy=\"12\" r=\"9\" fill=\"#f7e9a8\" opacity=\".5\"/><rect x=\"21\" y=\"16\" width=\"4\" height=\"24\" fill=\"#2f3b4a\"/><rect x=\"14\" y=\"39\" width=\"18\" height=\"4\" rx=\"1.5\" fill=\"#2f3b4a\"/><circle cx=\"23\" cy=\"12\" r=\"5\" fill=\"#f2c94c\" stroke=\"#2f3b4a\" stroke-width=\"1.4\"/>"},"bookcase":{"occupiable":false,"name":"bookcase","icon":"<rect x=\"7\" y=\"4\" width=\"32\" height=\"38\" fill=\"#6e4a2a\" stroke=\"#3f2d1d\" stroke-width=\"1.5\"/><g><rect x=\"10\" y=\"8\" width=\"4\" height=\"10\" fill=\"#b3252f\"/><rect x=\"15\" y=\"8\" width=\"3\" height=\"10\" fill=\"#2f6f5a\"/><rect x=\"19\" y=\"8\" width=\"5\" height=\"10\" fill=\"#c9a03a\"/><rect x=\"25\" y=\"8\" width=\"4\" height=\"10\" fill=\"#3a6fb0\"/><rect x=\"30\" y=\"8\" width=\"6\" height=\"10\" fill=\"#7a5a9a\"/><rect x=\"10\" y=\"21\" width=\"6\" height=\"10\" fill=\"#3a6fb0\"/><rect x=\"17\" y=\"21\" width=\"4\" height=\"10\" fill=\"#b3252f\"/><rect x=\"22\" y=\"21\" width=\"5\" height=\"10\" fill=\"#2f6f5a\"/><rect x=\"28\" y=\"21\" width=\"3\" height=\"10\" fill=\"#c9a03a\"/><rect x=\"32\" y=\"21\" width=\"4\" height=\"10\" fill=\"#b3252f\"/><rect x=\"10\" y=\"34\" width=\"26\" height=\"5\" fill=\"#8a6a3a\"/></g>"},"globe":{"occupiable":false,"name":"globe","icon":"<circle cx=\"23\" cy=\"19\" r=\"12\" fill=\"#7fb8d0\" stroke=\"#3a4148\" stroke-width=\"1.5\"/><path d=\"M14 14 q9 -4 18 2 M13 22 q10 4 20 -1 M23 7 v24\" fill=\"none\" stroke=\"#3f8a4a\" stroke-width=\"2\"/><path d=\"M11 12 q-6 10 4 20\" fill=\"none\" stroke=\"#3a4148\" stroke-width=\"2\"/><rect x=\"18\" y=\"33\" width=\"10\" height=\"4\" fill=\"#8a6a3a\"/><rect x=\"14\" y=\"37\" width=\"18\" height=\"4\" rx=\"1\" fill=\"#5b5852\"/>"},"chair":{"occupiable":true,"name":"chair","icon":"<rect x=\"9\" y=\"7\" width=\"28\" height=\"32\" rx=\"6\" fill=\"#fbfaf6\" stroke=\"#8c8a82\" stroke-width=\"1.5\"/><rect x=\"9\" y=\"7\" width=\"28\" height=\"9\" rx=\"4\" fill=\"#d9d5cc\" stroke=\"#8c8a82\" stroke-width=\"1.5\"/>"},"beanbag":{"occupiable":true,"name":"beanbag","icon":"<ellipse cx=\"23\" cy=\"28\" rx=\"17\" ry=\"13\" fill=\"#e67e22\" stroke=\"#9c4a0f\" stroke-width=\"1.5\"/><ellipse cx=\"23\" cy=\"21\" rx=\"12\" ry=\"8\" fill=\"#f39c4c\" stroke=\"#9c4a0f\" stroke-width=\"1\"/><ellipse cx=\"23\" cy=\"19\" rx=\"6\" ry=\"3\" fill=\"#f8b676\"/>"},"dollhouse":{"occupiable":false,"name":"dollhouse","icon":"<rect x=\"31\" y=\"8\" width=\"4\" height=\"8\" fill=\"#b0603c\" stroke=\"#8a3a52\" stroke-width=\".8\"/><path d=\"M5 21 L23 6 L41 21 Z\" fill=\"#d86a8a\" stroke=\"#8a3a52\" stroke-width=\"1.4\" stroke-linejoin=\"round\"/><rect x=\"9\" y=\"21\" width=\"28\" height=\"21\" fill=\"#fbe7c6\" stroke=\"#8a6a4a\" stroke-width=\"1.4\"/><line x1=\"9\" y1=\"31.5\" x2=\"37\" y2=\"31.5\" stroke=\"#8a6a4a\" stroke-width=\"1.1\"/><rect x=\"12\" y=\"24\" width=\"8\" height=\"5.5\" fill=\"#fff3b0\" stroke=\"#8a6a4a\"/><rect x=\"26\" y=\"24\" width=\"8\" height=\"5.5\" fill=\"#9fd3e6\" stroke=\"#8a6a4a\"/><rect x=\"12\" y=\"34\" width=\"8\" height=\"5.5\" fill=\"#9fd3e6\" stroke=\"#8a6a4a\"/><rect x=\"26\" y=\"34\" width=\"7\" height=\"8\" fill=\"#b0603c\" stroke=\"#8a6a4a\"/><circle cx=\"23\" cy=\"15\" r=\"2.6\" fill=\"#fff4c8\" stroke=\"#8a3a52\"/>"},"desk":{"occupiable":false,"name":"desk","icon":"<rect x=\"5\" y=\"12\" width=\"36\" height=\"22\" rx=\"3\" fill=\"#8f6a44\" stroke=\"#5e4127\" stroke-width=\"1.5\"/><rect x=\"9\" y=\"16\" width=\"14\" height=\"10\" fill=\"#f4efe6\" stroke=\"#8c8a82\"/><rect x=\"27\" y=\"17\" width=\"10\" height=\"4\" fill=\"#3d444b\"/>"}},"wallTypes":{},"objects":[{"cell":[1,1],"type":"counter"},{"cell":[1,4],"type":"table"},{"cell":[1,5],"type":"armchair"},{"cell":[2,3],"type":"bookcase"},{"cell":[2,6],"type":"globe"},{"cell":[3,1],"type":"bookcase"},{"cell":[3,5],"type":"lamp"},{"cell":[4,6],"type":"chair"},{"cell":[5,2],"type":"beanbag"},{"cell":[5,4],"type":"desk"},{"cell":[5,5],"type":"desk"},{"cell":[6,1],"type":"dollhouse"},{"cell":[6,4],"type":"chair"}],"wallFeatures":[],"extras":[],"cellSize":46},"persons":[{"id":"A","name":"Ailbhe","gender":"F","role":"staff","color":"#c62828","avatar":{"bg":"#5b2c6f","skin":"#f0cdb0","hair":"#2a1c14","style":"ponytail","headband":"#ffffff","shirt":"#c62828"},"clue":"She was beside a <b>bookcase</b>.","job":"head librarian","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Ailbhe\"><rect width=\"80\" height=\"80\" fill=\"#5b2c6f\"/><path d=\"M50 30 Q64 34 60 62 L54 62 Q56 40 48 36 Z\" fill=\"#2a1c14\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#c62828\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#f0cdb0\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#f0cdb0\"/><path d=\"M26 33 Q26 16 40 16 Q54 16 54 33 Q50 24 40 24 Q30 24 26 33 Z\" fill=\"#2a1c14\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><rect x=\"26\" y=\"23\" width=\"28\" height=\"5\" rx=\"2\" fill=\"#ffffff\"/></svg>","solverRole":"staff","constraints":[{"type":"beside","obj":"bookcase"}]},{"id":"B","name":"Bronagh","gender":"F","role":"staff","color":"#1565c0","avatar":{"bg":"#6e2c4b","skin":"#e7b98f","hair":"#1c1a1a","style":"bun","earrings":true,"shirt":"#1565c0"},"clue":"She was beside the <b>lamp</b>. She was <b>alone in her area</b>.","job":"librarian","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Bronagh\"><rect width=\"80\" height=\"80\" fill=\"#6e2c4b\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#1565c0\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#e7b98f\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#e7b98f\"/><circle cx=\"40\" cy=\"15\" r=\"7\" fill=\"#1c1a1a\"/><path d=\"M26 32 Q26 16 40 16 Q54 16 54 32 Q50 24 40 24 Q30 24 26 32 Z\" fill=\"#1c1a1a\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><circle cx=\"26\" cy=\"41\" r=\"1.8\" fill=\"#f0c95a\"/><circle cx=\"54\" cy=\"41\" r=\"1.8\" fill=\"#f0c95a\"/></svg>","solverRole":"staff","constraints":[{"type":"beside","obj":"lamp"},{"type":"alone"}]},{"id":"C","name":"Cillian","gender":"M","role":"staff","color":"#2e7d32","avatar":{"bg":"#2f4858","skin":"#c98d62","hair":"#1c1a1a","style":"short","beard":true,"shirt":"#2e7d32"},"clue":"<b>Exactly one row north</b> of him was a <b>female reader</b>. The <b>beanbag</b> was somewhere in his <b>column</b>.","job":"caretaker","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Cillian\"><rect width=\"80\" height=\"80\" fill=\"#2f4858\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#2e7d32\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#c98d62\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#c98d62\"/><path d=\"M26 32 Q26 15 40 15 Q54 15 54 32 Q50 24 40 24 Q30 24 26 32 Z\" fill=\"#1c1a1a\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><path d=\"M27 38 Q30 52 40 53 Q50 52 53 38 Q50 47 40 48 Q30 47 27 38 Z\" fill=\"#1c1a1a\"/></svg>","solverRole":"staff","constraints":[{"type":"rel_any","dir":"N","exact":1,"gender":"F","role":"reader"},{"type":"col_has","obj":"beanbag"}]},{"id":"D","name":"Declan","gender":"M","role":"reader","color":"#6a1b9a","avatar":{"bg":"#1b2a33","skin":"#f1c8a5","hair":"#5a5a5a","style":"slick","mustache":true,"mustacheColor":"#5a5a5a","shirt":"#6a1b9a"},"clue":"The <b>globe</b> was somewhere in his <b>row</b>.","job":"reader","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Declan\"><rect width=\"80\" height=\"80\" fill=\"#1b2a33\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#6a1b9a\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#f1c8a5\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#f1c8a5\"/><path d=\"M26 30 Q27 16 44 15 Q56 15 55 26 Q48 22 40 23 Q30 24 26 30 Z\" fill=\"#5a5a5a\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><path d=\"M33 41 Q40 37 47 41 Q40 43 33 41 Z\" fill=\"#5a5a5a\"/></svg>","solverRole":"reader","constraints":[{"type":"row_has","obj":"globe"}]},{"id":"E","name":"Eimear","gender":"F","role":"reader","color":"#e65100","avatar":{"bg":"#35607a","skin":"#f3d3b5","hair":"#d9b464","style":"long","necklace":true,"shirt":"#e65100"},"clue":"The <b>desk</b> was somewhere in her area.","job":"student","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Eimear\"><rect width=\"80\" height=\"80\" fill=\"#35607a\"/><path d=\"M22 42 Q20 14 40 14 Q60 14 58 42 L62 72 L18 72 Z\" fill=\"#d9b464\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#e65100\"/><path d=\"M31 58 Q40 66 49 58\" fill=\"none\" stroke=\"#f3e2b3\" stroke-width=\"2\" stroke-dasharray=\"2 2\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#f3d3b5\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#f3d3b5\"/><path d=\"M26 36 Q26 16 40 16 Q54 16 54 36 Q52 24 40 24 Q28 24 26 36 Z\" fill=\"#d9b464\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/></svg>","solverRole":"reader","constraints":[{"type":"area_has","obj":"desk"}]},{"id":"V","name":"Vincent","gender":"M","role":"victim","color":"#1b1b1b","avatar":{"bg":"#3d5a6e","skin":"#e9bf9b","hair":"#2a1c14","style":"short","cap":true,"beard":true,"shirt":"#1b1b1b"},"clue":"<b>The victim.</b> He was alone with the murderer.","job":"local historian","avatarSvg":"<svg viewBox=\"0 0 80 80\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Vincent\"><rect width=\"80\" height=\"80\" fill=\"#3d5a6e\"/><path d=\"M10 80 Q12 56 40 54 Q68 56 70 80 Z\" fill=\"#1b1b1b\"/><rect x=\"34\" y=\"44\" width=\"12\" height=\"13\" fill=\"#e9bf9b\"/><ellipse cx=\"40\" cy=\"34\" rx=\"14\" ry=\"16\" fill=\"#e9bf9b\"/><path d=\"M26 32 Q26 15 40 15 Q54 15 54 32 Q50 24 40 24 Q30 24 26 32 Z\" fill=\"#2a1c14\"/><circle cx=\"34\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><circle cx=\"46\" cy=\"35\" r=\"1.6\" fill=\"#2b2b2b\"/><path d=\"M36 43 Q40 46 44 43\" fill=\"none\" stroke=\"#a5735a\" stroke-width=\"1.4\"/><path d=\"M27 38 Q30 52 40 53 Q50 52 53 38 Q50 47 40 48 Q30 47 27 38 Z\" fill=\"#2a1c14\"/><path d=\"M24 24 Q24 11 40 11 Q56 11 56 24 Z\" fill=\"#22406f\"/><rect x=\"22\" y=\"22\" width=\"36\" height=\"5\" rx=\"2\" fill=\"#12213a\"/><circle cx=\"40\" cy=\"18\" r=\"2.6\" fill=\"#f0b429\"/><path d=\"M12 12 L68 68 M68 12 L12 68\" stroke=\"#e0362e\" stroke-width=\"5\" stroke-linecap=\"round\" opacity=\".9\"/></svg>","solverRole":"reader","constraints":[]}],"victim":"V","solver":{"rules":[],"occupiable":["armchair","chair","beanbag"]},"score":2.0117,"seal":{"board":"a6b595e59e87b10a8cfd6d93b9edc0f28979124b638ed350395d532ca1a77796","murderer":"62879f04afcf0a5ab773272cf636b32692d684345774b9b12ac61ca975701494"}}