diff --git a/savegame.json b/savegame.json new file mode 100644 index 0000000..bb49dcc --- /dev/null +++ b/savegame.json @@ -0,0 +1 @@ +[{"marker":[0],"components":[{"x":14,"y":15}]},{"marker":[69],"components":[{"x":66,"y":39}]},{"marker":[68],"components":[null]},{"marker":[71],"components":[{"x":62,"y":10}]},{"marker":[67],"components":[null]},{"marker":[61],"components":[{"x":47,"y":20}]},{"marker":[65],"components":[null]},{"marker":[7],"components":[null]},{"marker":[44],"components":[null]},{"marker":[9],"components":[null]},{"marker":[60],"components":[{"x":49,"y":17}]},{"marker":[59],"components":[{"x":39,"y":27}]},{"marker":[58],"components":[{"x":4,"y":13}]},{"marker":[13],"components":[null]},{"marker":[57],"components":[{"x":57,"y":31}]},{"marker":[15],"components":[null]},{"marker":[42],"components":[null]},{"marker":[41],"components":[null]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[null]},{"marker":[70],"components":[{"x":71,"y":24}]},{"marker":[66],"components":[{"x":38,"y":12}]},{"marker":[56],"components":[{"x":29,"y":11}]},{"marker":[55],"components":[{"x":23,"y":1}]},{"marker":[50],"components":[null]},{"marker":[73],"components":[null]},{"marker":[62],"components":[{"x":47,"y":14}]},{"marker":[53],"components":[null]},{"marker":[64],"components":[null]},{"marker":[72],"components":[{"x":60,"y":5}]}][{"marker":[0],"components":[{"glyph":64,"fg":{"r":1.0,"g":1.0,"b":0.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":0}]},{"marker":[69],"components":[{"glyph":105,"fg":{"r":1.0,"g":0.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[68],"components":[{"glyph":105,"fg":{"r":1.0,"g":0.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[71],"components":[{"glyph":105,"fg":{"r":1.0,"g":0.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[67],"components":[{"glyph":41,"fg":{"r":1.0,"g":0.7529412,"b":0.79607844},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[61],"components":[{"glyph":41,"fg":{"r":0.0,"g":1.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[65],"components":[{"glyph":105,"fg":{"r":1.0,"g":0.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[7],"components":[{"glyph":41,"fg":{"r":0.0,"g":1.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[44],"components":[{"glyph":105,"fg":{"r":1.0,"g":0.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[9],"components":[{"glyph":41,"fg":{"r":1.0,"g":0.64705884,"b":0.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[60],"components":[{"glyph":41,"fg":{"r":0.0,"g":1.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[59],"components":[{"glyph":103,"fg":{"r":1.0,"g":0.0,"b":0.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":1}]},{"marker":[58],"components":[{"glyph":105,"fg":{"r":1.0,"g":0.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[13],"components":[{"glyph":41,"fg":{"r":0.0,"g":1.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[57],"components":[{"glyph":41,"fg":{"r":0.0,"g":1.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[15],"components":[{"glyph":105,"fg":{"r":1.0,"g":0.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[42],"components":[{"glyph":41,"fg":{"r":0.0,"g":1.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[41],"components":[{"glyph":41,"fg":{"r":1.0,"g":0.7529412,"b":0.79607844},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[31],"components":[{"glyph":105,"fg":{"r":1.0,"g":0.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[25],"components":[{"glyph":105,"fg":{"r":1.0,"g":0.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[26],"components":[{"glyph":105,"fg":{"r":1.0,"g":0.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[27],"components":[{"glyph":41,"fg":{"r":0.0,"g":1.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[70],"components":[{"glyph":103,"fg":{"r":1.0,"g":0.0,"b":0.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":1}]},{"marker":[66],"components":[{"glyph":105,"fg":{"r":1.0,"g":0.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[56],"components":[{"glyph":103,"fg":{"r":1.0,"g":0.0,"b":0.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":1}]},{"marker":[55],"components":[{"glyph":41,"fg":{"r":0.0,"g":1.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[50],"components":[{"glyph":105,"fg":{"r":1.0,"g":0.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[73],"components":[null]},{"marker":[62],"components":[{"glyph":105,"fg":{"r":1.0,"g":0.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[53],"components":[{"glyph":41,"fg":{"r":1.0,"g":0.64705884,"b":0.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[64],"components":[{"glyph":41,"fg":{"r":1.0,"g":0.64705884,"b":0.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]},{"marker":[72],"components":[{"glyph":105,"fg":{"r":1.0,"g":0.0,"b":1.0},"bg":{"r":0.0,"g":0.0,"b":0.0},"render_order":2}]}][{"marker":[0],"components":[{}]},{"marker":[69],"components":[null]},{"marker":[68],"components":[null]},{"marker":[71],"components":[null]},{"marker":[67],"components":[null]},{"marker":[61],"components":[null]},{"marker":[65],"components":[null]},{"marker":[7],"components":[null]},{"marker":[44],"components":[null]},{"marker":[9],"components":[null]},{"marker":[60],"components":[null]},{"marker":[59],"components":[null]},{"marker":[58],"components":[null]},{"marker":[13],"components":[null]},{"marker":[57],"components":[null]},{"marker":[15],"components":[null]},{"marker":[42],"components":[null]},{"marker":[41],"components":[null]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[null]},{"marker":[70],"components":[null]},{"marker":[66],"components":[null]},{"marker":[56],"components":[null]},{"marker":[55],"components":[null]},{"marker":[50],"components":[null]},{"marker":[73],"components":[null]},{"marker":[62],"components":[null]},{"marker":[53],"components":[null]},{"marker":[64],"components":[null]},{"marker":[72],"components":[null]}][{"marker":[0],"components":[{"visible_tiles":[{"x":21,"y":15},{"x":12,"y":13},{"x":12,"y":11},{"x":14,"y":14},{"x":10,"y":12},{"x":17,"y":15},{"x":10,"y":14},{"x":10,"y":19},{"x":13,"y":19},{"x":16,"y":15},{"x":13,"y":20},{"x":16,"y":14},{"x":20,"y":14},{"x":19,"y":17},{"x":15,"y":15},{"x":20,"y":19},{"x":16,"y":12},{"x":15,"y":19},{"x":10,"y":13},{"x":15,"y":20},{"x":14,"y":22},{"x":14,"y":15},{"x":19,"y":15},{"x":19,"y":18},{"x":18,"y":19},{"x":16,"y":19},{"x":13,"y":23},{"x":22,"y":16},{"x":16,"y":18},{"x":15,"y":17},{"x":14,"y":21},{"x":14,"y":18},{"x":17,"y":19},{"x":10,"y":17},{"x":15,"y":13},{"x":12,"y":20},{"x":15,"y":16},{"x":19,"y":13},{"x":18,"y":18},{"x":11,"y":12},{"x":14,"y":19},{"x":18,"y":14},{"x":19,"y":14},{"x":11,"y":19},{"x":11,"y":13},{"x":20,"y":13},{"x":10,"y":18},{"x":11,"y":15},{"x":12,"y":12},{"x":13,"y":15},{"x":19,"y":19},{"x":17,"y":18},{"x":12,"y":16},{"x":11,"y":11},{"x":15,"y":23},{"x":14,"y":12},{"x":18,"y":15},{"x":17,"y":16},{"x":21,"y":16},{"x":11,"y":18},{"x":20,"y":15},{"x":15,"y":21},{"x":11,"y":20},{"x":15,"y":12},{"x":14,"y":23},{"x":22,"y":15},{"x":13,"y":21},{"x":12,"y":15},{"x":16,"y":17},{"x":15,"y":14},{"x":20,"y":12},{"x":18,"y":12},{"x":17,"y":17},{"x":14,"y":17},{"x":14,"y":20},{"x":12,"y":18},{"x":13,"y":16},{"x":12,"y":17},{"x":11,"y":21},{"x":10,"y":15},{"x":18,"y":16},{"x":11,"y":14},{"x":10,"y":16},{"x":11,"y":17},{"x":13,"y":18},{"x":18,"y":17},{"x":11,"y":16},{"x":20,"y":17},{"x":17,"y":14},{"x":13,"y":12},{"x":15,"y":18},{"x":12,"y":19},{"x":14,"y":13},{"x":22,"y":14},{"x":20,"y":18},{"x":16,"y":13},{"x":12,"y":14},{"x":14,"y":16},{"x":13,"y":17},{"x":17,"y":13},{"x":15,"y":22},{"x":19,"y":16},{"x":21,"y":14},{"x":13,"y":22},{"x":13,"y":13},{"x":18,"y":13},{"x":13,"y":14},{"x":17,"y":12},{"x":16,"y":16},{"x":11,"y":10},{"x":20,"y":16},{"x":19,"y":12}],"range":8,"dirty":false}]},{"marker":[69],"components":[null]},{"marker":[68],"components":[null]},{"marker":[71],"components":[null]},{"marker":[67],"components":[null]},{"marker":[61],"components":[null]},{"marker":[65],"components":[null]},{"marker":[7],"components":[null]},{"marker":[44],"components":[null]},{"marker":[9],"components":[null]},{"marker":[60],"components":[null]},{"marker":[59],"components":[{"visible_tiles":[{"x":32,"y":27},{"x":38,"y":25},{"x":39,"y":27},{"x":38,"y":22},{"x":35,"y":21},{"x":37,"y":25},{"x":35,"y":24},{"x":31,"y":25},{"x":36,"y":27},{"x":37,"y":24},{"x":32,"y":28},{"x":36,"y":28},{"x":33,"y":25},{"x":39,"y":22},{"x":34,"y":23},{"x":37,"y":23},{"x":36,"y":21},{"x":35,"y":27},{"x":33,"y":26},{"x":34,"y":27},{"x":35,"y":28},{"x":33,"y":27},{"x":35,"y":22},{"x":40,"y":21},{"x":33,"y":21},{"x":38,"y":27},{"x":39,"y":20},{"x":35,"y":23},{"x":40,"y":25},{"x":40,"y":19},{"x":38,"y":20},{"x":38,"y":23},{"x":32,"y":26},{"x":35,"y":26},{"x":36,"y":25},{"x":39,"y":25},{"x":38,"y":21},{"x":39,"y":24},{"x":34,"y":21},{"x":31,"y":28},{"x":31,"y":26},{"x":40,"y":26},{"x":33,"y":23},{"x":39,"y":21},{"x":37,"y":28},{"x":40,"y":28},{"x":37,"y":26},{"x":36,"y":24},{"x":32,"y":24},{"x":38,"y":28},{"x":31,"y":27},{"x":33,"y":22},{"x":34,"y":22},{"x":40,"y":23},{"x":37,"y":20},{"x":33,"y":28},{"x":38,"y":19},{"x":31,"y":24},{"x":34,"y":20},{"x":40,"y":27},{"x":33,"y":24},{"x":32,"y":22},{"x":34,"y":24},{"x":36,"y":26},{"x":39,"y":23},{"x":36,"y":23},{"x":39,"y":26},{"x":38,"y":26},{"x":37,"y":21},{"x":37,"y":22},{"x":36,"y":22},{"x":37,"y":27},{"x":36,"y":20},{"x":34,"y":25},{"x":40,"y":24},{"x":32,"y":23},{"x":38,"y":24},{"x":39,"y":28},{"x":34,"y":26},{"x":34,"y":28},{"x":32,"y":25},{"x":35,"y":25},{"x":39,"y":19},{"x":35,"y":20},{"x":40,"y":22},{"x":40,"y":20}],"range":8,"dirty":false}]},{"marker":[58],"components":[null]},{"marker":[13],"components":[null]},{"marker":[57],"components":[null]},{"marker":[15],"components":[null]},{"marker":[42],"components":[null]},{"marker":[41],"components":[null]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[null]},{"marker":[70],"components":[{"visible_tiles":[{"x":72,"y":20},{"x":75,"y":23},{"x":66,"y":20},{"x":66,"y":23},{"x":65,"y":18},{"x":70,"y":21},{"x":68,"y":21},{"x":72,"y":19},{"x":67,"y":21},{"x":72,"y":22},{"x":73,"y":22},{"x":71,"y":23},{"x":73,"y":25},{"x":74,"y":25},{"x":64,"y":20},{"x":73,"y":20},{"x":75,"y":25},{"x":74,"y":16},{"x":69,"y":20},{"x":67,"y":25},{"x":67,"y":17},{"x":71,"y":24},{"x":75,"y":22},{"x":70,"y":20},{"x":68,"y":23},{"x":71,"y":20},{"x":68,"y":18},{"x":67,"y":19},{"x":68,"y":22},{"x":72,"y":21},{"x":74,"y":18},{"x":74,"y":21},{"x":74,"y":23},{"x":73,"y":17},{"x":75,"y":20},{"x":69,"y":21},{"x":72,"y":23},{"x":71,"y":22},{"x":75,"y":24},{"x":71,"y":21},{"x":74,"y":17},{"x":68,"y":24},{"x":71,"y":25},{"x":73,"y":16},{"x":72,"y":25},{"x":72,"y":16},{"x":67,"y":22},{"x":73,"y":24},{"x":74,"y":24},{"x":66,"y":18},{"x":75,"y":18},{"x":68,"y":25},{"x":65,"y":25},{"x":69,"y":25},{"x":72,"y":17},{"x":68,"y":19},{"x":70,"y":23},{"x":65,"y":20},{"x":67,"y":20},{"x":71,"y":18},{"x":70,"y":22},{"x":69,"y":22},{"x":73,"y":19},{"x":75,"y":19},{"x":66,"y":21},{"x":66,"y":19},{"x":65,"y":19},{"x":71,"y":16},{"x":73,"y":18},{"x":65,"y":24},{"x":75,"y":17},{"x":74,"y":22},{"x":66,"y":24},{"x":70,"y":16},{"x":74,"y":19},{"x":70,"y":17},{"x":69,"y":19},{"x":69,"y":17},{"x":73,"y":23},{"x":70,"y":24},{"x":69,"y":16},{"x":70,"y":18},{"x":68,"y":17},{"x":67,"y":23},{"x":74,"y":20},{"x":68,"y":20},{"x":71,"y":19},{"x":72,"y":24},{"x":69,"y":24},{"x":71,"y":17},{"x":72,"y":18},{"x":65,"y":22},{"x":75,"y":21},{"x":64,"y":21},{"x":67,"y":18},{"x":70,"y":19},{"x":66,"y":17},{"x":70,"y":25},{"x":65,"y":21},{"x":65,"y":23},{"x":68,"y":16},{"x":66,"y":22},{"x":69,"y":23},{"x":67,"y":24},{"x":66,"y":25},{"x":73,"y":21},{"x":69,"y":18}],"range":8,"dirty":false}]},{"marker":[66],"components":[null]},{"marker":[56],"components":[{"visible_tiles":[{"x":33,"y":18},{"x":33,"y":12},{"x":27,"y":7},{"x":34,"y":14},{"x":33,"y":16},{"x":27,"y":8},{"x":28,"y":16},{"x":33,"y":11},{"x":34,"y":15},{"x":34,"y":16},{"x":26,"y":3},{"x":30,"y":12},{"x":28,"y":17},{"x":36,"y":11},{"x":32,"y":12},{"x":29,"y":10},{"x":30,"y":11},{"x":28,"y":10},{"x":30,"y":17},{"x":26,"y":6},{"x":26,"y":5},{"x":25,"y":4},{"x":35,"y":14},{"x":37,"y":10},{"x":30,"y":15},{"x":31,"y":10},{"x":35,"y":13},{"x":23,"y":5},{"x":30,"y":16},{"x":35,"y":11},{"x":29,"y":12},{"x":33,"y":17},{"x":31,"y":9},{"x":33,"y":13},{"x":26,"y":4},{"x":32,"y":18},{"x":26,"y":8},{"x":32,"y":9},{"x":32,"y":17},{"x":28,"y":7},{"x":30,"y":18},{"x":29,"y":16},{"x":31,"y":19},{"x":28,"y":9},{"x":35,"y":12},{"x":35,"y":17},{"x":28,"y":18},{"x":32,"y":15},{"x":35,"y":10},{"x":34,"y":11},{"x":32,"y":13},{"x":36,"y":9},{"x":31,"y":15},{"x":28,"y":8},{"x":30,"y":14},{"x":28,"y":11},{"x":34,"y":13},{"x":32,"y":10},{"x":36,"y":16},{"x":28,"y":15},{"x":34,"y":17},{"x":33,"y":10},{"x":31,"y":16},{"x":26,"y":7},{"x":30,"y":10},{"x":32,"y":14},{"x":31,"y":18},{"x":31,"y":14},{"x":33,"y":15},{"x":28,"y":13},{"x":36,"y":13},{"x":34,"y":12},{"x":31,"y":13},{"x":25,"y":5},{"x":36,"y":12},{"x":29,"y":17},{"x":35,"y":9},{"x":29,"y":9},{"x":32,"y":11},{"x":28,"y":12},{"x":37,"y":9},{"x":34,"y":9},{"x":31,"y":17},{"x":36,"y":15},{"x":35,"y":15},{"x":27,"y":4},{"x":32,"y":16},{"x":27,"y":5},{"x":34,"y":18},{"x":34,"y":10},{"x":29,"y":13},{"x":35,"y":16},{"x":24,"y":6},{"x":25,"y":6},{"x":33,"y":9},{"x":33,"y":14},{"x":28,"y":14},{"x":36,"y":14},{"x":27,"y":9},{"x":24,"y":5},{"x":27,"y":6},{"x":31,"y":11},{"x":32,"y":19},{"x":29,"y":11},{"x":30,"y":13},{"x":30,"y":9},{"x":31,"y":12},{"x":29,"y":18},{"x":29,"y":15},{"x":29,"y":14},{"x":36,"y":10},{"x":25,"y":7},{"x":24,"y":4}],"range":8,"dirty":false}]},{"marker":[55],"components":[null]},{"marker":[50],"components":[null]},{"marker":[73],"components":[null]},{"marker":[62],"components":[null]},{"marker":[53],"components":[null]},{"marker":[64],"components":[null]},{"marker":[72],"components":[null]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[null]},{"marker":[68],"components":[null]},{"marker":[71],"components":[null]},{"marker":[67],"components":[null]},{"marker":[61],"components":[null]},{"marker":[65],"components":[null]},{"marker":[7],"components":[null]},{"marker":[44],"components":[null]},{"marker":[9],"components":[null]},{"marker":[60],"components":[null]},{"marker":[59],"components":[{}]},{"marker":[58],"components":[null]},{"marker":[13],"components":[null]},{"marker":[57],"components":[null]},{"marker":[15],"components":[null]},{"marker":[42],"components":[null]},{"marker":[41],"components":[null]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[null]},{"marker":[70],"components":[{}]},{"marker":[66],"components":[null]},{"marker":[56],"components":[{}]},{"marker":[55],"components":[null]},{"marker":[50],"components":[null]},{"marker":[73],"components":[null]},{"marker":[62],"components":[null]},{"marker":[53],"components":[null]},{"marker":[64],"components":[null]},{"marker":[72],"components":[null]}][{"marker":[0],"components":[{"name":"Player"}]},{"marker":[69],"components":[{"name":"Health Potion"}]},{"marker":[68],"components":[{"name":"Health Potion"}]},{"marker":[71],"components":[{"name":"Health Potion"}]},{"marker":[67],"components":[{"name":"Confusion Scroll"}]},{"marker":[61],"components":[{"name":"Magic Missile Scroll"}]},{"marker":[65],"components":[{"name":"Health Potion"}]},{"marker":[7],"components":[{"name":"Magic Missile Scroll"}]},{"marker":[44],"components":[{"name":"Health Potion"}]},{"marker":[9],"components":[{"name":"Fireball Scroll"}]},{"marker":[60],"components":[{"name":"Magic Missile Scroll"}]},{"marker":[59],"components":[{"name":"Goblin"}]},{"marker":[58],"components":[{"name":"Health Potion"}]},{"marker":[13],"components":[{"name":"Magic Missile Scroll"}]},{"marker":[57],"components":[{"name":"Magic Missile Scroll"}]},{"marker":[15],"components":[{"name":"Health Potion"}]},{"marker":[42],"components":[{"name":"Magic Missile Scroll"}]},{"marker":[41],"components":[{"name":"Confusion Scroll"}]},{"marker":[31],"components":[{"name":"Health Potion"}]},{"marker":[25],"components":[{"name":"Health Potion"}]},{"marker":[26],"components":[{"name":"Health Potion"}]},{"marker":[27],"components":[{"name":"Magic Missile Scroll"}]},{"marker":[70],"components":[{"name":"Goblin"}]},{"marker":[66],"components":[{"name":"Health Potion"}]},{"marker":[56],"components":[{"name":"Goblin"}]},{"marker":[55],"components":[{"name":"Magic Missile Scroll"}]},{"marker":[50],"components":[{"name":"Health Potion"}]},{"marker":[73],"components":[null]},{"marker":[62],"components":[{"name":"Health Potion"}]},{"marker":[53],"components":[{"name":"Fireball Scroll"}]},{"marker":[64],"components":[{"name":"Fireball Scroll"}]},{"marker":[72],"components":[{"name":"Health Potion"}]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[null]},{"marker":[68],"components":[null]},{"marker":[71],"components":[null]},{"marker":[67],"components":[null]},{"marker":[61],"components":[null]},{"marker":[65],"components":[null]},{"marker":[7],"components":[null]},{"marker":[44],"components":[null]},{"marker":[9],"components":[null]},{"marker":[60],"components":[null]},{"marker":[59],"components":[{}]},{"marker":[58],"components":[null]},{"marker":[13],"components":[null]},{"marker":[57],"components":[null]},{"marker":[15],"components":[null]},{"marker":[42],"components":[null]},{"marker":[41],"components":[null]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[null]},{"marker":[70],"components":[{}]},{"marker":[66],"components":[null]},{"marker":[56],"components":[{}]},{"marker":[55],"components":[null]},{"marker":[50],"components":[null]},{"marker":[73],"components":[null]},{"marker":[62],"components":[null]},{"marker":[53],"components":[null]},{"marker":[64],"components":[null]},{"marker":[72],"components":[null]}][{"marker":[0],"components":[{"max_hp":30,"hp":12,"defense":2,"power":5}]},{"marker":[69],"components":[null]},{"marker":[68],"components":[null]},{"marker":[71],"components":[null]},{"marker":[67],"components":[null]},{"marker":[61],"components":[null]},{"marker":[65],"components":[null]},{"marker":[7],"components":[null]},{"marker":[44],"components":[null]},{"marker":[9],"components":[null]},{"marker":[60],"components":[null]},{"marker":[59],"components":[{"max_hp":16,"hp":16,"defense":1,"power":4}]},{"marker":[58],"components":[null]},{"marker":[13],"components":[null]},{"marker":[57],"components":[null]},{"marker":[15],"components":[null]},{"marker":[42],"components":[null]},{"marker":[41],"components":[null]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[null]},{"marker":[70],"components":[{"max_hp":16,"hp":16,"defense":1,"power":4}]},{"marker":[66],"components":[null]},{"marker":[56],"components":[{"max_hp":16,"hp":16,"defense":1,"power":4}]},{"marker":[55],"components":[null]},{"marker":[50],"components":[null]},{"marker":[73],"components":[null]},{"marker":[62],"components":[null]},{"marker":[53],"components":[null]},{"marker":[64],"components":[null]},{"marker":[72],"components":[null]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[null]},{"marker":[68],"components":[null]},{"marker":[71],"components":[null]},{"marker":[67],"components":[null]},{"marker":[61],"components":[null]},{"marker":[65],"components":[null]},{"marker":[7],"components":[null]},{"marker":[44],"components":[null]},{"marker":[9],"components":[null]},{"marker":[60],"components":[null]},{"marker":[59],"components":[null]},{"marker":[58],"components":[null]},{"marker":[13],"components":[null]},{"marker":[57],"components":[null]},{"marker":[15],"components":[null]},{"marker":[42],"components":[null]},{"marker":[41],"components":[null]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[null]},{"marker":[70],"components":[null]},{"marker":[66],"components":[null]},{"marker":[56],"components":[null]},{"marker":[55],"components":[null]},{"marker":[50],"components":[null]},{"marker":[73],"components":[null]},{"marker":[62],"components":[null]},{"marker":[53],"components":[null]},{"marker":[64],"components":[null]},{"marker":[72],"components":[null]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[null]},{"marker":[68],"components":[null]},{"marker":[71],"components":[null]},{"marker":[67],"components":[null]},{"marker":[61],"components":[null]},{"marker":[65],"components":[null]},{"marker":[7],"components":[null]},{"marker":[44],"components":[null]},{"marker":[9],"components":[null]},{"marker":[60],"components":[null]},{"marker":[59],"components":[null]},{"marker":[58],"components":[null]},{"marker":[13],"components":[null]},{"marker":[57],"components":[null]},{"marker":[15],"components":[null]},{"marker":[42],"components":[null]},{"marker":[41],"components":[null]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[null]},{"marker":[70],"components":[null]},{"marker":[66],"components":[null]},{"marker":[56],"components":[null]},{"marker":[55],"components":[null]},{"marker":[50],"components":[null]},{"marker":[73],"components":[null]},{"marker":[62],"components":[null]},{"marker":[53],"components":[null]},{"marker":[64],"components":[null]},{"marker":[72],"components":[null]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[{}]},{"marker":[68],"components":[{}]},{"marker":[71],"components":[{}]},{"marker":[67],"components":[{}]},{"marker":[61],"components":[{}]},{"marker":[65],"components":[{}]},{"marker":[7],"components":[{}]},{"marker":[44],"components":[{}]},{"marker":[9],"components":[{}]},{"marker":[60],"components":[{}]},{"marker":[59],"components":[null]},{"marker":[58],"components":[{}]},{"marker":[13],"components":[{}]},{"marker":[57],"components":[{}]},{"marker":[15],"components":[{}]},{"marker":[42],"components":[{}]},{"marker":[41],"components":[{}]},{"marker":[31],"components":[{}]},{"marker":[25],"components":[{}]},{"marker":[26],"components":[{}]},{"marker":[27],"components":[{}]},{"marker":[70],"components":[null]},{"marker":[66],"components":[{}]},{"marker":[56],"components":[null]},{"marker":[55],"components":[{}]},{"marker":[50],"components":[{}]},{"marker":[73],"components":[null]},{"marker":[62],"components":[{}]},{"marker":[53],"components":[{}]},{"marker":[64],"components":[{}]},{"marker":[72],"components":[{}]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[{}]},{"marker":[68],"components":[{}]},{"marker":[71],"components":[{}]},{"marker":[67],"components":[{}]},{"marker":[61],"components":[{}]},{"marker":[65],"components":[{}]},{"marker":[7],"components":[{}]},{"marker":[44],"components":[{}]},{"marker":[9],"components":[{}]},{"marker":[60],"components":[{}]},{"marker":[59],"components":[null]},{"marker":[58],"components":[{}]},{"marker":[13],"components":[{}]},{"marker":[57],"components":[{}]},{"marker":[15],"components":[{}]},{"marker":[42],"components":[{}]},{"marker":[41],"components":[{}]},{"marker":[31],"components":[{}]},{"marker":[25],"components":[{}]},{"marker":[26],"components":[{}]},{"marker":[27],"components":[{}]},{"marker":[70],"components":[null]},{"marker":[66],"components":[{}]},{"marker":[56],"components":[null]},{"marker":[55],"components":[{}]},{"marker":[50],"components":[{}]},{"marker":[73],"components":[null]},{"marker":[62],"components":[{}]},{"marker":[53],"components":[{}]},{"marker":[64],"components":[{}]},{"marker":[72],"components":[{}]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[null]},{"marker":[68],"components":[null]},{"marker":[71],"components":[null]},{"marker":[67],"components":[{"range":6}]},{"marker":[61],"components":[{"range":6}]},{"marker":[65],"components":[null]},{"marker":[7],"components":[{"range":6}]},{"marker":[44],"components":[null]},{"marker":[9],"components":[{"range":6}]},{"marker":[60],"components":[{"range":6}]},{"marker":[59],"components":[null]},{"marker":[58],"components":[null]},{"marker":[13],"components":[{"range":6}]},{"marker":[57],"components":[{"range":6}]},{"marker":[15],"components":[null]},{"marker":[42],"components":[{"range":6}]},{"marker":[41],"components":[{"range":6}]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[{"range":6}]},{"marker":[70],"components":[null]},{"marker":[66],"components":[null]},{"marker":[56],"components":[null]},{"marker":[55],"components":[{"range":6}]},{"marker":[50],"components":[null]},{"marker":[73],"components":[null]},{"marker":[62],"components":[null]},{"marker":[53],"components":[{"range":6}]},{"marker":[64],"components":[{"range":6}]},{"marker":[72],"components":[null]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[null]},{"marker":[68],"components":[null]},{"marker":[71],"components":[null]},{"marker":[67],"components":[null]},{"marker":[61],"components":[{"damage":20}]},{"marker":[65],"components":[null]},{"marker":[7],"components":[{"damage":20}]},{"marker":[44],"components":[null]},{"marker":[9],"components":[{"damage":20}]},{"marker":[60],"components":[{"damage":20}]},{"marker":[59],"components":[null]},{"marker":[58],"components":[null]},{"marker":[13],"components":[{"damage":20}]},{"marker":[57],"components":[{"damage":20}]},{"marker":[15],"components":[null]},{"marker":[42],"components":[{"damage":20}]},{"marker":[41],"components":[null]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[{"damage":20}]},{"marker":[70],"components":[null]},{"marker":[66],"components":[null]},{"marker":[56],"components":[null]},{"marker":[55],"components":[{"damage":20}]},{"marker":[50],"components":[null]},{"marker":[73],"components":[null]},{"marker":[62],"components":[null]},{"marker":[53],"components":[{"damage":20}]},{"marker":[64],"components":[{"damage":20}]},{"marker":[72],"components":[null]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[null]},{"marker":[68],"components":[null]},{"marker":[71],"components":[null]},{"marker":[67],"components":[null]},{"marker":[61],"components":[null]},{"marker":[65],"components":[null]},{"marker":[7],"components":[null]},{"marker":[44],"components":[null]},{"marker":[9],"components":[{"radius":3}]},{"marker":[60],"components":[null]},{"marker":[59],"components":[null]},{"marker":[58],"components":[null]},{"marker":[13],"components":[null]},{"marker":[57],"components":[null]},{"marker":[15],"components":[null]},{"marker":[42],"components":[null]},{"marker":[41],"components":[null]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[null]},{"marker":[70],"components":[null]},{"marker":[66],"components":[null]},{"marker":[56],"components":[null]},{"marker":[55],"components":[null]},{"marker":[50],"components":[null]},{"marker":[73],"components":[null]},{"marker":[62],"components":[null]},{"marker":[53],"components":[{"radius":3}]},{"marker":[64],"components":[{"radius":3}]},{"marker":[72],"components":[null]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[null]},{"marker":[68],"components":[null]},{"marker":[71],"components":[null]},{"marker":[67],"components":[{"turns":4}]},{"marker":[61],"components":[null]},{"marker":[65],"components":[null]},{"marker":[7],"components":[null]},{"marker":[44],"components":[null]},{"marker":[9],"components":[null]},{"marker":[60],"components":[null]},{"marker":[59],"components":[null]},{"marker":[58],"components":[null]},{"marker":[13],"components":[null]},{"marker":[57],"components":[null]},{"marker":[15],"components":[null]},{"marker":[42],"components":[null]},{"marker":[41],"components":[{"turns":4}]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[null]},{"marker":[70],"components":[null]},{"marker":[66],"components":[null]},{"marker":[56],"components":[null]},{"marker":[55],"components":[null]},{"marker":[50],"components":[null]},{"marker":[73],"components":[null]},{"marker":[62],"components":[null]},{"marker":[53],"components":[null]},{"marker":[64],"components":[null]},{"marker":[72],"components":[null]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[{"heal_amount":8}]},{"marker":[68],"components":[{"heal_amount":8}]},{"marker":[71],"components":[{"heal_amount":8}]},{"marker":[67],"components":[null]},{"marker":[61],"components":[null]},{"marker":[65],"components":[{"heal_amount":8}]},{"marker":[7],"components":[null]},{"marker":[44],"components":[{"heal_amount":8}]},{"marker":[9],"components":[null]},{"marker":[60],"components":[null]},{"marker":[59],"components":[null]},{"marker":[58],"components":[{"heal_amount":8}]},{"marker":[13],"components":[null]},{"marker":[57],"components":[null]},{"marker":[15],"components":[{"heal_amount":8}]},{"marker":[42],"components":[null]},{"marker":[41],"components":[null]},{"marker":[31],"components":[{"heal_amount":8}]},{"marker":[25],"components":[{"heal_amount":8}]},{"marker":[26],"components":[{"heal_amount":8}]},{"marker":[27],"components":[null]},{"marker":[70],"components":[null]},{"marker":[66],"components":[{"heal_amount":8}]},{"marker":[56],"components":[null]},{"marker":[55],"components":[null]},{"marker":[50],"components":[{"heal_amount":8}]},{"marker":[73],"components":[null]},{"marker":[62],"components":[{"heal_amount":8}]},{"marker":[53],"components":[null]},{"marker":[64],"components":[null]},{"marker":[72],"components":[{"heal_amount":8}]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[null]},{"marker":[68],"components":[{"owner":[0]}]},{"marker":[71],"components":[null]},{"marker":[67],"components":[{"owner":[0]}]},{"marker":[61],"components":[null]},{"marker":[65],"components":[{"owner":[0]}]},{"marker":[7],"components":[{"owner":[0]}]},{"marker":[44],"components":[{"owner":[0]}]},{"marker":[9],"components":[{"owner":[0]}]},{"marker":[60],"components":[null]},{"marker":[59],"components":[null]},{"marker":[58],"components":[null]},{"marker":[13],"components":[{"owner":[0]}]},{"marker":[57],"components":[null]},{"marker":[15],"components":[{"owner":[0]}]},{"marker":[42],"components":[{"owner":[0]}]},{"marker":[41],"components":[{"owner":[0]}]},{"marker":[31],"components":[{"owner":[0]}]},{"marker":[25],"components":[{"owner":[0]}]},{"marker":[26],"components":[{"owner":[0]}]},{"marker":[27],"components":[{"owner":[0]}]},{"marker":[70],"components":[null]},{"marker":[66],"components":[null]},{"marker":[56],"components":[null]},{"marker":[55],"components":[null]},{"marker":[50],"components":[{"owner":[0]}]},{"marker":[73],"components":[null]},{"marker":[62],"components":[null]},{"marker":[53],"components":[{"owner":[0]}]},{"marker":[64],"components":[{"owner":[0]}]},{"marker":[72],"components":[null]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[null]},{"marker":[68],"components":[null]},{"marker":[71],"components":[null]},{"marker":[67],"components":[null]},{"marker":[61],"components":[null]},{"marker":[65],"components":[null]},{"marker":[7],"components":[null]},{"marker":[44],"components":[null]},{"marker":[9],"components":[null]},{"marker":[60],"components":[null]},{"marker":[59],"components":[null]},{"marker":[58],"components":[null]},{"marker":[13],"components":[null]},{"marker":[57],"components":[null]},{"marker":[15],"components":[null]},{"marker":[42],"components":[null]},{"marker":[41],"components":[null]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[null]},{"marker":[70],"components":[null]},{"marker":[66],"components":[null]},{"marker":[56],"components":[null]},{"marker":[55],"components":[null]},{"marker":[50],"components":[null]},{"marker":[73],"components":[null]},{"marker":[62],"components":[null]},{"marker":[53],"components":[null]},{"marker":[64],"components":[null]},{"marker":[72],"components":[null]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[null]},{"marker":[68],"components":[null]},{"marker":[71],"components":[null]},{"marker":[67],"components":[null]},{"marker":[61],"components":[null]},{"marker":[65],"components":[null]},{"marker":[7],"components":[null]},{"marker":[44],"components":[null]},{"marker":[9],"components":[null]},{"marker":[60],"components":[null]},{"marker":[59],"components":[null]},{"marker":[58],"components":[null]},{"marker":[13],"components":[null]},{"marker":[57],"components":[null]},{"marker":[15],"components":[null]},{"marker":[42],"components":[null]},{"marker":[41],"components":[null]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[null]},{"marker":[70],"components":[null]},{"marker":[66],"components":[null]},{"marker":[56],"components":[null]},{"marker":[55],"components":[null]},{"marker":[50],"components":[null]},{"marker":[73],"components":[null]},{"marker":[62],"components":[null]},{"marker":[53],"components":[null]},{"marker":[64],"components":[null]},{"marker":[72],"components":[null]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[null]},{"marker":[68],"components":[null]},{"marker":[71],"components":[null]},{"marker":[67],"components":[null]},{"marker":[61],"components":[null]},{"marker":[65],"components":[null]},{"marker":[7],"components":[null]},{"marker":[44],"components":[null]},{"marker":[9],"components":[null]},{"marker":[60],"components":[null]},{"marker":[59],"components":[null]},{"marker":[58],"components":[null]},{"marker":[13],"components":[null]},{"marker":[57],"components":[null]},{"marker":[15],"components":[null]},{"marker":[42],"components":[null]},{"marker":[41],"components":[null]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[null]},{"marker":[70],"components":[null]},{"marker":[66],"components":[null]},{"marker":[56],"components":[null]},{"marker":[55],"components":[null]},{"marker":[50],"components":[null]},{"marker":[73],"components":[null]},{"marker":[62],"components":[null]},{"marker":[53],"components":[null]},{"marker":[64],"components":[null]},{"marker":[72],"components":[null]}][{"marker":[0],"components":[null]},{"marker":[69],"components":[null]},{"marker":[68],"components":[null]},{"marker":[71],"components":[null]},{"marker":[67],"components":[null]},{"marker":[61],"components":[null]},{"marker":[65],"components":[null]},{"marker":[7],"components":[null]},{"marker":[44],"components":[null]},{"marker":[9],"components":[null]},{"marker":[60],"components":[null]},{"marker":[59],"components":[null]},{"marker":[58],"components":[null]},{"marker":[13],"components":[null]},{"marker":[57],"components":[null]},{"marker":[15],"components":[null]},{"marker":[42],"components":[null]},{"marker":[41],"components":[null]},{"marker":[31],"components":[null]},{"marker":[25],"components":[null]},{"marker":[26],"components":[null]},{"marker":[27],"components":[null]},{"marker":[70],"components":[null]},{"marker":[66],"components":[null]},{"marker":[56],"components":[null]},{"marker":[55],"components":[null]},{"marker":[50],"components":[null]},{"marker":[73],"components":[{"map":{"tiles":["Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","DownStairs","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Floor","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall","Wall"],"rooms":[{"x1":20,"x2":27,"y1":31,"y2":38},{"x1":20,"x2":28,"y1":0,"y2":9},{"x1":28,"x2":34,"y1":10,"y2":17},{"x1":56,"x2":62,"y1":29,"y2":36},{"x1":0,"x2":7,"y1":7,"y2":13},{"x1":31,"x2":39,"y1":20,"y2":27},{"x1":44,"x2":52,"y1":13,"y2":21},{"x1":10,"x2":19,"y1":12,"y2":18},{"x1":11,"x2":18,"y1":19,"y2":28},{"x1":36,"x2":42,"y1":5,"y2":12},{"x1":8,"x2":16,"y1":31,"y2":39},{"x1":65,"x2":73,"y1":31,"y2":39},{"x1":65,"x2":74,"y1":16,"y2":24},{"x1":56,"x2":64,"y1":17,"y2":25},{"x1":58,"x2":65,"y1":4,"y2":10}],"width":80,"height":43,"revealed_tiles":[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,false,false,false,false,false,false,false,false,false,false,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false],"visible_tiles":[false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,false,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false],"blocked":[true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,false,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,false,false,false,false,false,false,true,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,false,false,false,false,false,false,false,true,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,false,false,false,false,false,false,false,false,false,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,true,true,true,true,false,true,true,true,true,false,false,false,false,false,false,false,true,true,true,false,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,true,true,true,true,false,true,true,true,true,false,false,false,false,false,false,false,true,true,true,false,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,true,true,true,true,false,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,false,false,true,true,true,true,true,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,true,true,true,true,false,true,true,true,true,true,true,false,true,true,true,false,true,true,true,false,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,false,false,false,false,false,false,false,false,true,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,true,false,true,true,true,false,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,false,false,false,false,false,false,false,false,true,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,true,false,true,true,true,false,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,false,false,false,false,false,false,false,false,true,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,false,false,false,false,false,true,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,false,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,false,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,true,true,true,true,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,false,false,false,false,false,false,false,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,false,false,false,false,false,false,false,false,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true,true],"depth":5}}]},{"marker":[62],"components":[null]},{"marker":[53],"components":[null]},{"marker":[64],"components":[null]},{"marker":[72],"components":[null]}] \ No newline at end of file diff --git a/src/gui.rs b/src/gui.rs index f0fd20e..47da6aa 100644 --- a/src/gui.rs +++ b/src/gui.rs @@ -53,6 +53,16 @@ pub fn draw_ui(ecs: &World, ctx: &mut Rltk) { y += 1; } + let map = ecs.fetch::(); + let depth = format!("Depth: {}", map.depth); + ctx.print_color( + 2, + 43, + RGB::named(rltk::YELLOW), + RGB::named(rltk::BLACK), + &depth, + ); + // Draw mouse let mouse_pos = ctx.mouse_pos(); ctx.set_bg(mouse_pos.0, mouse_pos.1, RGB::named(rltk::MAGENTA)); diff --git a/src/main.rs b/src/main.rs index f7576f6..7886cc1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,6 +13,7 @@ use monster_ai_system::*; use player::*; use visibility_system::*; +use crate::gamelog::GameLog; use crate::inventory_system::{ItemCollectionSystem, ItemDropSystem, ItemUseSystem}; mod components; @@ -25,6 +26,7 @@ mod map_indexing_system; mod melee_combat_system; mod monster_ai_system; mod player; +mod random_table; mod rect; mod save_load_system; mod spawner; @@ -46,12 +48,94 @@ pub enum RunState { menu_selection: gui::MainMenuSelection, }, SaveGame, + NextLevel, } pub struct State { pub ecs: World, } +impl State { + fn entities_to_remove_on_level_change(&mut self) -> Vec { + let entities = self.ecs.entities(); + let player = self.ecs.read_storage::(); + let backpack = self.ecs.read_storage::(); + let player_entity = self.ecs.fetch::(); + + let mut to_delete: Vec = Vec::new(); + for entity in entities.join() { + let mut should_delete = true; + + let p = player.get(entity); + if let Some(p) = p { + should_delete = false; + } + + let bp = backpack.get(entity); + if let Some(bp) = bp { + if bp.owner == *player_entity { + should_delete = false; + } + } + + if should_delete { + to_delete.push(entity); + } + } + + to_delete + } + + fn goto_next_level(&mut self) { + let to_delete = self.entities_to_remove_on_level_change(); + for target in to_delete { + self.ecs + .delete_entity(target) + .expect("Unable to delete entity") + } + + let worldmap; + let current_depth; + { + let mut worldmap_resource = self.ecs.write_resource::(); + current_depth = worldmap_resource.depth; + *worldmap_resource = Map::new_map_rooms_and_corridors(current_depth + 1); + worldmap = worldmap_resource.clone(); + } + + for room in worldmap.rooms.iter().skip(1) { + spawner::spawn_room(&mut self.ecs, room, current_depth + 1); + } + + let (player_x, player_y) = worldmap.rooms[0].center(); + let mut player_position = self.ecs.write_resource::(); + *player_position = Point::new(player_x, player_y); + let mut position_components = self.ecs.write_storage::(); + let player_entity = self.ecs.fetch::(); + let player_pos_comp = position_components.get_mut(*player_entity); + if let Some(player_pos) = player_pos_comp { + player_pos.x = player_x; + player_pos.y = player_y; + } + + let mut viewshed_components = self.ecs.write_storage::(); + let vs = viewshed_components.get_mut(*player_entity); + if let Some(vs) = vs { + vs.dirty = true; + } + + let mut gamelog = self.ecs.fetch_mut::(); + gamelog + .entries + .push("You descend to the next level, and take a moment to heal".to_string()); + let mut player_health_store = self.ecs.write_storage::(); + let player_health = player_health_store.get_mut(*player_entity); + if let Some(player_health) = player_health { + player_health.hp = i32::max(player_health.hp, player_health.max_hp / 2); + } + } +} + impl State { fn run_systems(&mut self) { let mut vis = VisibilitySystem {}; @@ -221,6 +305,10 @@ impl GameState for State { menu_selection: gui::MainMenuSelection::Quit, }; } + RunState::NextLevel => { + self.goto_next_level(); + new_run_state = RunState::PreRun; + } } { @@ -269,13 +357,13 @@ fn main() -> rltk::BError { gs.ecs.insert(SimpleMarkerAllocator::::new()); - let map = Map::new_map_rooms_and_corridors(); + let map = Map::new_map_rooms_and_corridors(1); let (player_x, player_y) = map.rooms[0].center(); let player_entity = spawner::player(&mut gs.ecs, player_x, player_y); for room in map.rooms.iter().skip(1) { - spawner::spawn_room(&mut gs.ecs, room); + spawner::spawn_room(&mut gs.ecs, room, 1); } gs.ecs.insert(map); diff --git a/src/map.rs b/src/map.rs index 70e1039..157f79a 100644 --- a/src/map.rs +++ b/src/map.rs @@ -10,6 +10,7 @@ use crate::rect::Rect; pub enum TileType { Wall, Floor, + DownStairs, } pub const MAP_WIDTH: usize = 80; @@ -27,6 +28,7 @@ pub struct Map { pub revealed_tiles: Vec, pub visible_tiles: Vec, pub blocked: Vec, + pub depth: i32, #[serde(skip_serializing)] #[serde(skip_deserializing)] @@ -85,7 +87,7 @@ impl Map { } } - pub fn new_map_rooms_and_corridors() -> Map { + pub fn new_map_rooms_and_corridors(new_depth: i32) -> Map { let mut map = Map { tiles: vec![TileType::Wall; MAP_COUNT], rooms: Vec::new(), @@ -95,6 +97,7 @@ impl Map { visible_tiles: vec![false; MAP_COUNT], blocked: vec![false; MAP_COUNT], tile_content: vec![Vec::new(); MAP_COUNT], + depth: new_depth, }; const MAX_ROOMS: i32 = 30; @@ -134,6 +137,10 @@ impl Map { } } + let stairs_position = map.rooms[map.rooms.len() - 1].center(); + let stairs_idx = map.xy_idx(stairs_position.0, stairs_position.1); + map.tiles[stairs_idx] = TileType::DownStairs; + map } } @@ -211,6 +218,11 @@ pub fn draw_map(ecs: &World, ctx: &mut Rltk) { fg = RGB::from_f32(0., 1.0, 0.); glyph = rltk::to_cp437('#'); } + + TileType::DownStairs => { + glyph = rltk::to_cp437('>'); + fg = RGB::from_f32(0., 1., 1.); + } } if !map.visible_tiles[idx] { fg = fg.to_greyscale() diff --git a/src/player.rs b/src/player.rs index aec6ec2..3f0a3de 100644 --- a/src/player.rs +++ b/src/player.rs @@ -4,10 +4,11 @@ use rltk::{Point, Rltk, VirtualKeyCode}; use specs::prelude::*; use crate::gamelog::GameLog; +use crate::spawner::player; use crate::{ components::{CombatStats, Player, Position, Viewshed, WantsToMelee}, map::Map, - Item, RunState, State, WantsToPickupItem, + Item, Monster, RunState, State, TileType, WantsToPickupItem, }; pub fn try_move_player(delta_x: i32, delta_y: i32, ecs: &mut World) { @@ -99,6 +100,7 @@ pub fn player_input(gs: &mut State, ctx: &mut Rltk) -> RunState { VirtualKeyCode::Right | VirtualKeyCode::L => try_move_player(1, 0, &mut gs.ecs), VirtualKeyCode::Up | VirtualKeyCode::K => try_move_player(0, -1, &mut gs.ecs), VirtualKeyCode::Down | VirtualKeyCode::J => try_move_player(0, 1, &mut gs.ecs), + VirtualKeyCode::Space => return skip_turn(&mut gs.ecs), VirtualKeyCode::Y => try_move_player(1, -1, &mut gs.ecs), VirtualKeyCode::U => try_move_player(-1, -1, &mut gs.ecs), VirtualKeyCode::N => try_move_player(1, 1, &mut gs.ecs), @@ -107,9 +109,56 @@ pub fn player_input(gs: &mut State, ctx: &mut Rltk) -> RunState { VirtualKeyCode::I => return RunState::ShowInventory, VirtualKeyCode::D => return RunState::ShowDropItem, VirtualKeyCode::Escape => return RunState::SaveGame, + VirtualKeyCode::Period => { + if try_next_level(&mut gs.ecs) { + return RunState::NextLevel; + } + } _ => return RunState::AwaitingInput, }, } RunState::PlayerTurn } + +fn skip_turn(ecs: &mut World) -> RunState { + let player_entity = ecs.fetch::(); + let viewshed_components = ecs.read_storage::(); + let monsters = ecs.read_storage::(); + + let worldmap_resource = ecs.fetch::(); + let mut can_heal = true; + let viewshed = viewshed_components.get(*player_entity).unwrap(); + for tile in viewshed.visible_tiles.iter() { + let idx = worldmap_resource.xy_idx(tile.x, tile.y); + for entity_id in worldmap_resource.tile_content[idx].iter() { + if let Some(mob) = monsters.get(*entity_id) { + can_heal = true; + } + } + } + + if can_heal { + let mut health_component = ecs.write_storage::(); + let player_hp = health_component.get_mut(*player_entity).unwrap(); + player_hp.hp = i32::min(player_hp.hp + 1, player_hp.max_hp); + } + + RunState::PlayerTurn +} + +fn try_next_level(ecs: &mut World) -> bool { + let player_pos = ecs.fetch::(); + let map = ecs.fetch::(); + let player_idx = map.xy_idx(player_pos.x, player_pos.y); + + if map.tiles[player_idx] == TileType::DownStairs { + true + } else { + let mut gamelog = ecs.fetch_mut::(); + gamelog + .entries + .push("There is no way down from here".to_string()); + false + } +} diff --git a/src/random_table.rs b/src/random_table.rs new file mode 100644 index 0000000..2c8254b --- /dev/null +++ b/src/random_table.rs @@ -0,0 +1,55 @@ +use rltk::RandomNumberGenerator; + +pub struct RandomEntry { + name: String, + weight: i32, +} + +impl RandomEntry { + pub fn new(name: S, weight: i32) -> RandomEntry { + RandomEntry { + name: name.to_string(), + weight, + } + } +} + +#[derive(Default)] +pub struct RandomTable { + entries: Vec, + total_weight: i32, +} + +impl RandomTable { + pub fn new() -> RandomTable { + RandomTable { + total_weight: 0, + entries: Vec::new(), + } + } + + pub fn add(mut self, name: S, weight: i32) -> RandomTable { + self.total_weight += weight; + self.entries.push(RandomEntry::new(name, weight)); + self + } + + pub fn roll(&self, rng: &mut RandomNumberGenerator) -> String { + if self.total_weight == 0 { + return "None".to_string(); + } + let mut roll = rng.roll_dice(1, self.total_weight) - 1; + let mut index: usize = 0; + + while roll > 0 { + if roll < self.entries[index].weight { + return self.entries[index].name.clone(); + } + + roll -= self.entries[index].weight; + index += 1; + } + + "None".to_string() + } +} diff --git a/src/spawner.rs b/src/spawner.rs index 2947416..a0c343d 100644 --- a/src/spawner.rs +++ b/src/spawner.rs @@ -1,7 +1,10 @@ +use std::collections::HashMap; + use rltk::{FontCharType, RandomNumberGenerator, RGB}; use specs::prelude::*; use specs::saveload::{MarkedBuilder, SimpleMarker}; +use crate::random_table::RandomTable; use crate::rect::Rect; use crate::{ AreaOfEffect, BlocksTile, CombatStats, Confusion, Consumable, InflictsDamage, Item, Monster, @@ -40,18 +43,6 @@ pub fn player(ecs: &mut World, player_x: i32, player_y: i32) -> Entity { .build() } -pub fn random_monster(ecs: &mut World, x: i32, y: i32) { - let roll: i32; - { - let mut rng = ecs.write_resource::(); - roll = rng.roll_dice(1, 2); - } - match roll { - 1 => orc(ecs, x, y), - _ => goblin(ecs, x, y), - } -} - fn orc(ecs: &mut World, x: i32, y: i32) { monster(ecs, x, y, rltk::to_cp437('o'), "Orc") } @@ -89,52 +80,45 @@ fn monster(ecs: &mut World, x: i32, y: i32, glyph: FontCharType, na .build(); } -pub fn spawn_room(ecs: &mut World, room: &Rect) { - let mut monster_spawn_points: Vec = Vec::new(); - let mut item_spawn_points: Vec = Vec::new(); +#[allow(clippy::map_entry)] +pub fn spawn_room(ecs: &mut World, room: &Rect, map_depth: i32) { + let spawn_table = room_table(map_depth); + let mut spawn_points: HashMap = HashMap::new(); { let mut rng = ecs.write_resource::(); - let num_monsters = rng.roll_dice(1, MAX_MONSTER + 2) - 3; - let num_items = rng.roll_dice(1, MAX_ITEMS + 2) - 3; + let num_spawns = rng.roll_dice(1, MAX_MONSTER + 3) + (map_depth - 1) - 3; - for _i in 0..num_monsters { + for _i in 0..num_spawns { let mut added = false; - while !added { + let mut tried = 0; + while !added && tried < 20 { let x = (room.x1 + rng.roll_dice(1, i32::abs(room.x2 - room.x1))) as usize; let y = (room.y1 + rng.roll_dice(1, i32::abs(room.y2 - room.y1))) as usize; let idx = (y * MAP_WIDTH) + x; - if !monster_spawn_points.contains(&idx) { - monster_spawn_points.push(idx); - added = true; - } - } - } - - for _i in 0..num_items { - let mut added = false; - while !added { - let x = (room.x1 + rng.roll_dice(1, i32::abs(room.x2 - room.x1))) as usize; - let y = (room.y1 + rng.roll_dice(1, i32::abs(room.y2 - room.y1))) as usize; - let idx = (y * MAP_WIDTH) + x; - if !item_spawn_points.contains(&idx) { - item_spawn_points.push(idx); + if !spawn_points.contains_key(&idx) { + spawn_points.insert(idx, spawn_table.roll(&mut rng)); added = true; + } else { + tried += 1; } } } } - for idx in monster_spawn_points.iter() { - let x = *idx % MAP_WIDTH; - let y = *idx / MAP_WIDTH; - random_monster(ecs, x as i32, y as i32); - } + for spawn in spawn_points.iter() { + let x = (*spawn.0 % MAP_WIDTH) as i32; + let y = (*spawn.0 / MAP_WIDTH) as i32; - for idx in item_spawn_points.iter() { - let x = *idx % MAP_WIDTH; - let y = *idx / MAP_WIDTH; - random_item(ecs, x as i32, y as i32); + match spawn.1.as_ref() { + "Goblin" => goblin(ecs, x, y), + "Orc" => orc(ecs, x, y), + "Health Potion" => health_potion(ecs, x, y), + "Fireball Scroll" => fireball_scroll(ecs, x, y), + "Confusion Scroll" => confusion_scroll(ecs, x, y), + "Magic Missile Scroll" => magic_missile_scroll(ecs, x, y), + _ => {} + } } } @@ -218,16 +202,12 @@ pub fn confusion_scroll(ecs: &mut World, x: i32, y: i32) { .build(); } -pub fn random_item(ecs: &mut World, x: i32, y: i32) { - let roll: i32; - { - let mut rng = ecs.write_resource::(); - roll = rng.roll_dice(1, 4); - } - match roll { - 1 => health_potion(ecs, x, y), - 2 => fireball_scroll(ecs, x, y), - 3 => confusion_scroll(ecs, x, y), - _ => magic_missile_scroll(ecs, x, y), - } +pub fn room_table(map_depth: i32) -> RandomTable { + RandomTable::new() + .add("Goblin", 10) + .add("Orc", 1 + map_depth) + .add("Health Potion", 7) + .add("Fireball Scroll", 2 + map_depth) + .add("Confusion Scroll", 2 + map_depth) + .add("Magic Missile Scroll", 4) }