From 75668206cdae4e42caa4f7d9f86f68e6fd75bd19 Mon Sep 17 00:00:00 2001 From: TobenderZephyr Date: Sat, 28 Dec 2024 14:10:00 +0100 Subject: [PATCH] day 25 part 1 done --- 2024/25/example.txt | 39 + 2024/25/index.js | 57 + 2024/25/input.txt | 3999 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 4095 insertions(+) create mode 100644 2024/25/example.txt create mode 100644 2024/25/index.js create mode 100644 2024/25/input.txt diff --git a/2024/25/example.txt b/2024/25/example.txt new file mode 100644 index 0000000..a53fe9b --- /dev/null +++ b/2024/25/example.txt @@ -0,0 +1,39 @@ +##### +.#### +.#### +.#### +.#.#. +.#... +..... + +##### +##.## +.#.## +...## +...#. +...#. +..... + +..... +#.... +#.... +#...# +#.#.# +#.### +##### + +..... +..... +#.#.. +###.. +###.# +###.# +##### + +..... +..... +..... +#.... +#.#.. +#.#.# +##### \ No newline at end of file diff --git a/2024/25/index.js b/2024/25/index.js new file mode 100644 index 0000000..50c5836 --- /dev/null +++ b/2024/25/index.js @@ -0,0 +1,57 @@ +import fs from 'node:fs' + +function init(filename) { + const data = fs.readFileSync(filename, { encoding: 'utf-8' }, data => data) + const reader = new Reader() + data.split('\n\n').forEach(schematic => reader.readSchematics(schematic)) + reader.part1() +} + +class Reader { + constructor() { + this.Keys = [] + this.Locks = [] + } + + getHeights(schematic) { + const lines = schematic.split('\n') + let pins = 0 + let pin = [0, 0, 0, 0, 0] + while (pins < 5) { + let height = 0 + for (let row = 0; row < lines.length; row++) { + if (lines[row][pins] === '#') pin[pins] += 1 + } + pins++ + } + return pin.map(p => p - 1).join(",") + } + fits(key, lock) { + const k = key.split(',').map(k => parseInt(k)) + const l = lock.split(',').map(l => parseInt(l)) + let fits = true + for (let i = 0; i < k.length; i++) { + if (k[i] + l[i] > 5) { fits = false } + } + //console.log(`key ${key} ${fits ? "fits" : "doesn't fit"} into ${lock}`) + return fits + } + readSchematics(schematic) { + const isKey = schematic[0] == '.' ? true : false + if (isKey) { this.Keys.push(this.getHeights(schematic)) } + else { this.Locks.push(this.getHeights(schematic)) } + + } + part1() { + let foundKeys = 0 + this.Keys.forEach((key, index) => { + this.Locks.forEach((lock, index) => { + foundKeys += this.fits(key, lock) ? 1 : 0 + }) + + }) + console.log(foundKeys) + } +} + +init('input.txt') \ No newline at end of file diff --git a/2024/25/input.txt b/2024/25/input.txt new file mode 100644 index 0000000..852288e --- /dev/null +++ b/2024/25/input.txt @@ -0,0 +1,3999 @@ +..... +..#.. +..#.. +..#.# +.##.# +.##.# +##### + +..... +..... +..... +..#.# +..#.# +#.#.# +##### + +##### +.###. +..##. +..#.. +..#.. +..#.. +..... + +##### +####. +##.#. +#..#. +#..#. +#..#. +..... + +##### +###.# +#.#.# +#.#.# +#.... +#.... +..... + +##### +##### +#.### +#.### +#.#.# +..... +..... + +..... +.#... +.#... +##... +##... +##.#. +##### + +..... +..... +..... +#.... +#..#. +#.### +##### + +..... +..... +#.#.. +#.#.. +#.##. +####. +##### + +..... +..#.. +..#.. +#.#.. +#.#.. +#.##. +##### + +..... +..... +..... +.#... +.#.#. +.#.## +##### + +..... +...#. +.#.#. +####. +####. +##### +##### + +..... +#.... +#.#.. +#.#.. +#.##. +##### +##### + +..... +.#.#. +##.#. +####. +####. +####. +##### + +##### +###.# +##..# +##..# +#...# +..... +..... + +..... +..#.. +.##.# +###.# +##### +##### +##### + +..... +..... +.#... +.#... +##.#. +##### +##### + +##### +.#.## +.#.#. +.#.#. +.#... +..... +..... + +..... +..#.. +.##.. +###.# +###.# +###.# +##### + +..... +.#... +.#..# +.#..# +##..# +##.## +##### + +..... +..... +..#.. +#.##. +#.##. +##### +##### + +##### +#.### +..##. +..##. +..#.. +..#.. +..... + +..... +.#... +.#... +.#.#. +.#.## +##.## +##### + +##### +##### +####. +.##.. +.##.. +.#... +..... + +##### +#.### +..### +..#.# +....# +....# +..... + +..... +..... +...#. +...## +.#.## +.#.## +##### + +##### +.##.# +.##.# +.##.# +.#..# +.#... +..... + +##### +##### +.#.## +...## +....# +....# +..... + +##### +##.## +##.#. +##.#. +#..#. +#..#. +..... + +##### +####. +.###. +.##.. +..#.. +..... +..... + +..... +#...# +##.## +##.## +##### +##### +##### + +##### +.###. +.###. +.##.. +..#.. +..... +..... + +##### +##.#. +##... +.#... +.#... +.#... +..... + +##### +##### +##### +##### +.###. +.#.#. +..... + +..... +...#. +#..#. +#..#. +#..#. +#.### +##### + +..... +#.... +#...# +#..## +#..## +#.### +##### + +##### +##### +##### +##### +#.#.# +#.#.. +..... + +..... +..... +..... +#..#. +#..#. +#.### +##### + +##### +#.##. +#.##. +#.##. +...#. +..... +..... + +##### +##### +###.# +.##.. +.#... +..... +..... + +##### +#.### +#.### +#..## +#..## +#..#. +..... + +..... +#..#. +##.#. +##.#. +##.#. +##.#. +##### + +..... +.#... +.#..# +.##.# +###.# +###.# +##### + +##### +##### +.#### +.##.# +.#... +..... +..... + +..... +..... +..... +...#. +...#. +.#.## +##### + +##### +#.#.# +#.#.# +#.#.# +#.#.# +#.#.. +..... + +##### +#.### +#.#.# +#.#.# +#.#.. +..... +..... + +##### +##.## +.#..# +....# +....# +....# +..... + +..... +.#.#. +.#.#. +##.## +##### +##### +##### + +##### +#.#.# +#.#.# +..... +..... +..... +..... + +..... +..... +#..#. +#..## +#.### +##### +##### + +..... +.#..# +##.## +##.## +##.## +##.## +##### + +##### +##.## +#..#. +...#. +...#. +...#. +..... + +##### +##.## +##.#. +.#... +..... +..... +..... + +..... +..... +#.... +##... +##.#. +##.## +##### + +..... +..#.# +.##.# +###.# +###.# +##### +##### + +##### +##### +.#### +.#.## +.#.## +.#..# +..... + +..... +.#... +.#... +.##.. +###.# +##### +##### + +##### +.#.## +...## +...## +...#. +...#. +..... + +..... +..... +.#... +.#.#. +.#.#. +.#.## +##### + +##### +.#### +.#.## +.#.#. +.#.#. +.#.#. +..... + +##### +#.#.# +#.#.. +#.#.. +#.... +#.... +..... + +..... +..... +...#. +.#.#. +.#.#. +.###. +##### + +..... +.#... +.#... +.#.#. +.###. +####. +##### + +..... +.#... +.#.#. +.#.#. +##.#. +##.#. +##### + +##### +###.# +.##.# +..#.. +..#.. +..#.. +..... + +##### +###.# +###.# +#.#.. +#.... +..... +..... + +##### +##### +.#### +.##.# +.#..# +.#... +..... + +##### +##### +.#### +.#### +.#.#. +.#.#. +..... + +##### +#.### +#.#.# +#.#.# +..#.# +....# +..... + +##### +##.#. +#..#. +...#. +..... +..... +..... + +..... +.#.#. +.#.#. +.#.#. +.#.#. +.#### +##### + +##### +#.### +..#.# +....# +....# +....# +..... + +##### +###.# +.##.# +.#..# +.#..# +.#..# +..... + +..... +....# +....# +..#.# +.##.# +###.# +##### + +..... +#.#.. +#.#.. +#.#.. +#.#.. +#.##. +##### + +##### +.#### +..### +..### +...#. +...#. +..... + +##### +##### +##### +#.### +#.#.# +....# +..... + +..... +..... +#.#.# +#.#.# +###.# +###.# +##### + +..... +.#... +.#.#. +##.#. +##.#. +##.#. +##### + +..... +.#..# +.#..# +.#..# +.#..# +###.# +##### + +##### +.###. +..##. +..#.. +..... +..... +..... + +##### +##.## +#..## +...#. +...#. +..... +..... + +..... +..... +#.#.# +#.#.# +#.#.# +##### +##### + +##### +##### +##.## +##.#. +.#.#. +.#.#. +..... + +..... +#.#.. +#.#.# +#.### +#.### +##### +##### + +##### +##### +###.# +#.#.# +#.#.# +....# +..... + +..... +..... +...#. +.#.#. +.#.## +.#### +##### + +..... +..... +....# +.#..# +.#.## +##### +##### + +..... +...#. +..### +..### +#.### +##### +##### + +..... +..#.. +.###. +.#### +.#### +##### +##### + +..... +#..#. +#..#. +#.##. +#.##. +#.##. +##### + +##### +##.## +#..## +#..#. +#..#. +..... +..... + +##### +##### +##### +###.# +.##.# +..#.. +..... + +##### +#.### +..### +..### +..### +..#.# +..... + +..... +..... +...#. +...#. +#..#. +##.## +##### + +##### +##### +##### +##.## +#..## +#..#. +..... + +##### +##### +#.### +..### +...#. +...#. +..... + +##### +##### +#.#.# +#.... +#.... +#.... +..... + +..... +#..#. +#.##. +#.### +#.### +#.### +##### + +##### +####. +##.#. +.#.#. +.#... +..... +..... + +##### +##### +##.## +##.#. +.#.#. +.#... +..... + +..... +..... +..... +..#.. +.##.# +.##.# +##### + +##### +##.## +##.## +#..## +#..#. +#..#. +..... + +..... +....# +.#..# +###.# +##### +##### +##### + +..... +.#... +##... +###.. +####. +####. +##### + +##### +#.### +#.### +#.#.# +#.#.. +..... +..... + +..... +....# +....# +#..## +##.## +##### +##### + +..... +...#. +...## +#..## +#..## +##.## +##### + +..... +..... +..#.. +.###. +.#### +##### +##### + +##### +#.#.# +#.#.# +#...# +#...# +#...# +..... + +..... +..... +#.... +##..# +###.# +##### +##### + +..... +..... +#.... +#.... +##.#. +####. +##### + +##### +##### +.##.# +..#.# +..#.. +..#.. +..... + +##### +##.## +#..## +#..#. +#..#. +#..#. +..... + +##### +##### +###.# +###.# +##... +#.... +..... + +..... +..... +....# +....# +.#..# +.##.# +##### + +..... +..... +#...# +#...# +#.#.# +##### +##### + +##### +####. +.##.. +..#.. +..#.. +..#.. +..... + +##### +#.### +#.### +#..## +#...# +#...# +..... + +##### +####. +####. +#.#.. +..#.. +..#.. +..... + +##### +##.## +##.#. +.#.#. +..... +..... +..... + +..... +#...# +#...# +#..## +#.### +##### +##### + +..... +.#... +.#..# +##..# +##..# +##.## +##### + +##### +###.# +###.# +###.. +##... +#.... +..... + +..... +..... +#.#.. +####. +####. +####. +##### + +..... +.#.#. +##.#. +##.## +##.## +##### +##### + +..... +.#... +.#.#. +.#.## +##.## +##.## +##### + +##### +##.## +#..## +#...# +....# +..... +..... + +..... +.#... +.#..# +##..# +##.## +##.## +##### + +..... +.#... +.#..# +##..# +##..# +###.# +##### + +..... +....# +....# +....# +#..## +##.## +##### + +..... +..... +...#. +...## +...## +.#.## +##### + +##### +##### +#.#.# +..#.# +..#.# +..#.. +..... + +..... +...#. +.#.#. +.#.## +.#.## +##### +##### + +##### +###.# +###.# +#.#.# +#.#.# +#...# +..... + +..... +.#... +.#... +.##.. +.##.. +###.# +##### + +##### +.##.# +.#..# +.#..# +.#... +.#... +..... + +..... +..... +..#.# +..#.# +.##.# +##### +##### + +##### +##.#. +#..#. +#.... +#.... +#.... +..... + +##### +#.### +#..## +...#. +..... +..... +..... + +##### +#.##. +..#.. +..#.. +..... +..... +..... + +..... +..... +..... +#..#. +#..#. +#.##. +##### + +..... +..#.. +..#.# +..#.# +..### +#.### +##### + +##### +##### +##.## +##..# +#...# +#...# +..... + +..... +.#.#. +.#.#. +##### +##### +##### +##### + +##### +###.# +.##.# +.##.# +.##.. +.#... +..... + +..... +#.... +#.... +##.#. +####. +####. +##### + +..... +..#.. +.##.. +###.. +###.# +##### +##### + +..... +..... +..... +.#... +.#..# +##.## +##### + +##### +.###. +.##.. +.#... +.#... +..... +..... + +..... +..... +.#... +##... +###.# +###.# +##### + +##### +#.### +#.### +#.### +...#. +..... +..... + +..... +#..#. +#..## +#..## +#..## +##.## +##### + +##### +#.##. +#.#.. +#.#.. +#.#.. +#.#.. +..... + +##### +##### +##.## +.#.#. +.#... +..... +..... + +..... +..... +#...# +#.#.# +###.# +###.# +##### + +##### +.#### +.##.# +.##.# +.##.# +..#.# +..... + +..... +..#.. +.##.. +.##.. +.##.# +.##.# +##### + +..... +.#... +##... +##.#. +##.#. +####. +##### + +##### +.##.# +..#.# +..#.# +..#.# +....# +..... + +..... +#.#.# +###.# +###.# +###.# +###.# +##### + +..... +.#.#. +.#.#. +##.#. +##.#. +##### +##### + +..... +....# +.#.## +##.## +##.## +##.## +##### + +..... +....# +..#.# +#.#.# +#.#.# +##### +##### + +##### +.#### +.#### +..#.# +..#.# +..... +..... + +..... +..... +#..#. +#..#. +#.##. +#.### +##### + +..... +..#.. +..##. +..##. +.#### +##### +##### + +##### +#.### +#.##. +..##. +..#.. +..#.. +..... + +##### +#.##. +#.##. +..##. +..##. +..#.. +..... + +..... +..... +....# +....# +#.#.# +#.### +##### + +##### +#.### +#.#.# +#.#.. +#.#.. +..#.. +..... + +##### +##### +.##.# +.#..# +.#..# +....# +..... + +##### +.#### +.#### +.#### +..#.# +..#.. +..... + +##### +####. +####. +####. +.#.#. +.#... +..... + +##### +##### +.##.# +.##.# +.#..# +..... +..... + +..... +#.... +#.... +#..#. +##.#. +##### +##### + +..... +....# +....# +#...# +##.## +##### +##### + +##### +##### +##### +.#### +.##.# +.#..# +..... + +..... +...#. +.#.## +##.## +##### +##### +##### + +##### +#.### +..#.# +..#.# +..#.# +..#.. +..... + +##### +####. +####. +#.##. +#..#. +#.... +..... + +##### +.#### +..##. +..#.. +..#.. +..#.. +..... + +..... +..... +.#..# +##..# +###.# +##### +##### + +##### +#.### +...## +...## +....# +....# +..... + +##### +##### +.#### +.#### +.##.# +.#... +..... + +..... +..... +..#.. +#.#.# +#.#.# +##### +##### + +##### +#.##. +#..#. +...#. +...#. +..... +..... + +##### +##### +.###. +.###. +.#.#. +...#. +..... + +##### +#.### +#.### +#.### +#.##. +#..#. +..... + +##### +##### +###.# +.##.. +.#... +.#... +..... + +..... +...#. +...#. +#..#. +#..#. +##.#. +##### + +##### +##### +##### +.##.# +.##.. +.#... +..... + +##### +####. +##.#. +.#.#. +.#.#. +...#. +..... + +##### +###.# +##..# +##..# +##..# +.#... +..... + +..... +..#.. +..#.. +..##. +.###. +.###. +##### + +##### +##.## +##..# +##... +##... +.#... +..... + +##### +####. +.###. +..##. +..#.. +..#.. +..... + +..... +..... +....# +#...# +#..## +#.### +##### + +##### +.#.## +.#.## +...## +....# +..... +..... + +##### +##### +##.## +##.## +##.## +#..#. +..... + +##### +##.## +##..# +#...# +..... +..... +..... + +..... +....# +#.#.# +#.#.# +#.### +#.### +##### + +..... +....# +....# +.#..# +.##.# +.##.# +##### + +##### +##### +###.# +###.# +###.. +#.#.. +..... + +..... +....# +..#.# +#.#.# +#.### +#.### +##### + +##### +##### +##### +.#### +..#.# +....# +..... + +..... +..#.. +.##.# +.##.# +.#### +.#### +##### + +##### +##### +.#.## +.#.## +.#..# +..... +..... + +##### +#.### +#.### +#..## +#...# +....# +..... + +..... +#.... +#..#. +#..#. +##.#. +##.#. +##### + +##### +##### +#.#.# +....# +....# +..... +..... + +..... +..... +..... +.#.#. +.###. +.#### +##### + +##### +##.## +##.## +#...# +#.... +..... +..... + +..... +.#..# +.#..# +.#.## +.#.## +.#.## +##### + +##### +#.### +#.### +...## +...#. +...#. +..... + +##### +####. +#.##. +#..#. +#..#. +#.... +..... + +..... +.#... +.#... +##... +###.# +###.# +##### + +##### +##### +##.## +##.## +#..#. +..... +..... + +..... +..... +.#.#. +.#.#. +####. +####. +##### + +..... +..#.# +..#.# +.##.# +.##.# +.##.# +##### + +##### +##### +.#.#. +...#. +...#. +...#. +..... + +..... +#.... +#..#. +##.#. +##.## +##.## +##### + +##### +##### +##### +##### +.##.# +..#.# +..... + +##### +#.### +...#. +..... +..... +..... +..... + +..... +#..#. +#..#. +##.## +##.## +##.## +##### + +##### +##### +.#### +..#.# +....# +....# +..... + +..... +.#... +.#... +.##.. +.##.. +####. +##### + +..... +.#... +.#... +.#... +.#..# +.#.## +##### + +##### +####. +####. +.###. +..#.. +..#.. +..... + +..... +..... +...#. +.#.#. +##.## +##### +##### + +..... +....# +...## +#.### +##### +##### +##### + +##### +###.# +###.# +#.#.# +#.... +..... +..... + +##### +##### +##.## +##.## +#..## +#..#. +..... + +##### +#.##. +#.##. +#.##. +..##. +..#.. +..... + +##### +#.##. +#.##. +#.##. +..##. +...#. +..... + +##### +##### +##### +#.#.# +#.#.# +#.... +..... + +..... +..... +#.... +#..#. +##.## +##.## +##### + +..... +..... +.#..# +.#..# +##..# +##.## +##### + +##### +#.##. +..##. +...#. +..... +..... +..... + +..... +.#..# +##..# +###.# +###.# +##### +##### + +##### +##### +##### +#.### +#.### +#.#.# +..... + +##### +.#### +.##.# +.#..# +..... +..... +..... + +##### +###.# +#.#.# +#.#.. +#.#.. +#.... +..... + +##### +###.# +###.# +.##.# +..#.# +..#.# +..... + +##### +#.### +#.##. +...#. +...#. +...#. +..... + +..... +#..#. +#..#. +#..#. +#.##. +##### +##### + +##### +###.# +#.#.# +....# +....# +....# +..... + +..... +..... +...#. +.#.#. +.#### +##### +##### + +..... +#...# +#...# +##..# +##.## +##.## +##### + +##### +##.## +#..## +#..#. +#.... +#.... +..... + +..... +#.... +#...# +##.## +##.## +##.## +##### + +##### +.###. +.##.. +..#.. +..#.. +..#.. +..... + +##### +#.### +#.##. +#.#.. +#.#.. +#.#.. +..... + +..... +....# +....# +....# +#.#.# +###.# +##### + +##### +##### +#.### +..##. +...#. +..... +..... + +..... +.#.#. +.#.#. +.###. +.###. +####. +##### + +..... +.#... +.#... +.##.. +.###. +.#### +##### + +..... +#.... +#.... +##... +##.#. +####. +##### + +..... +....# +....# +.#.## +.#.## +##.## +##### + +..... +..... +.#... +.##.. +.###. +##### +##### + +..... +..#.# +..#.# +#.### +##### +##### +##### + +..... +#.... +#.... +##... +##..# +###.# +##### + +##### +##.## +.#.#. +.#.#. +.#.#. +..... +..... + +..... +.#... +.#..# +.#..# +###.# +###.# +##### + +..... +..#.. +#.##. +#.##. +####. +####. +##### + +..... +..#.# +.#### +.#### +.#### +.#### +##### + +##### +###.# +#.#.. +#.#.. +#.#.. +#.... +..... + +##### +##### +.###. +.#.#. +.#.#. +...#. +..... + +..... +...#. +...#. +#..#. +##.## +##.## +##### + +##### +#.#.# +#.#.# +..#.# +..#.# +..#.# +..... + +..... +.#... +###.# +###.# +##### +##### +##### + +..... +#.#.. +#.#.. +#.#.. +####. +##### +##### + +..... +..... +..#.. +..#.# +#.#.# +###.# +##### + +##### +#.### +#.#.# +..#.# +..#.# +....# +..... + +##### +#.### +#..## +#...# +....# +....# +..... + +..... +..... +.#... +.#.#. +.###. +##### +##### + +..... +..... +..#.. +..#.. +..#.# +.##.# +##### + +..... +#.... +#.#.. +#.##. +#.##. +#.### +##### + +##### +####. +#.##. +...#. +...#. +..... +..... + +..... +..... +.#... +.#... +.#.#. +####. +##### + +..... +#.... +##... +##... +###.. +###.# +##### + +##### +##.## +##.#. +##.#. +.#... +.#... +..... + +..... +..#.. +..#.. +..#.. +#.##. +##### +##### + +##### +.#### +.###. +.#.#. +.#.#. +...#. +..... + +##### +##### +.##.# +.##.# +.#..# +....# +..... + +..... +.#..# +.#..# +.#..# +##..# +##.## +##### + +..... +....# +..#.# +#.#.# +###.# +###.# +##### + +..... +#...# +#...# +##.## +##.## +##### +##### + +..... +..... +....# +....# +.#.## +.#### +##### + +..... +#...# +#..## +#..## +##.## +##.## +##### + +..... +..#.. +..#.. +#.#.. +#.#.# +###.# +##### + +..... +..... +..... +#..#. +#.##. +#.##. +##### + +..... +....# +....# +....# +..#.# +#.### +##### + +##### +###.# +###.. +##... +.#... +..... +..... + +##### +###.# +###.# +##..# +##..# +#...# +..... + +##### +##### +.#.#. +.#.#. +.#... +.#... +..... + +##### +##### +.#### +..##. +...#. +...#. +..... + +..... +...#. +.#.#. +.#.## +.#.## +.#### +##### + +..... +..#.# +..#.# +#.#.# +##### +##### +##### + +..... +..... +...#. +...#. +#.##. +#.##. +##### + +..... +..#.# +#.#.# +#.#.# +#.#.# +#.### +##### + +..... +..... +#..#. +#.##. +#.##. +##### +##### + +..... +#.... +#..#. +#..## +#.### +#.### +##### + +..... +..#.. +..#.. +.##.# +.##.# +.##.# +##### + +##### +.#### +.#### +.###. +.###. +..#.. +..... + +..... +#.... +##..# +##.## +##.## +##.## +##### + +..... +..#.. +..##. +.###. +####. +##### +##### + +..... +#.... +#.... +#..#. +#.##. +##### +##### + +..... +..... +.#.#. +.#### +.#### +##### +##### + +..... +...#. +..##. +..##. +.###. +####. +##### + +..... +..... +#.... +#.#.. +#.##. +#.##. +##### + +..... +.#... +###.. +###.# +##### +##### +##### + +..... +#.... +#.#.. +#.#.# +#.#.# +#.### +##### + +##### +##### +.#.## +.#.## +.#..# +.#..# +..... + +##### +.#.#. +.#.#. +...#. +...#. +...#. +..... + +##### +.#### +.#### +..#.# +..#.# +....# +..... + +##### +##### +##.## +.#..# +.#..# +.#... +..... + +##### +##### +#.### +...## +....# +..... +..... + +..... +..... +..... +#.... +##.#. +##### +##### + +..... +..#.. +.###. +####. +####. +####. +##### + +..... +...#. +..##. +#.### +#.### +#.### +##### + +##### +##### +##### +####. +#.#.. +#.#.. +..... + +##### +###.# +##... +.#... +.#... +.#... +..... + +##### +#.##. +#.##. +..##. +..##. +...#. +..... + +##### +.#### +.#### +.#### +..##. +...#. +..... + +..... +..... +..... +.#... +.#.#. +.#.#. +##### + +##### +##.## +##.## +##.#. +.#.#. +...#. +..... + +..... +..... +..#.. +#.#.# +#.#.# +#.### +##### + +..... +.#... +.##.. +.##.. +.###. +.###. +##### + +..... +#...# +#..## +#.### +##### +##### +##### + +..... +..... +.#..# +.#.## +.#.## +.#.## +##### + +..... +#..#. +#..## +##.## +##.## +##### +##### + +##### +###.# +#.#.# +..#.# +..#.# +..... +..... + +##### +.#### +.#.## +.#.## +.#..# +.#... +..... + +##### +#.#.# +..#.. +..#.. +..#.. +..... +..... + +..... +..... +#.#.. +#.#.. +#.##. +##### +##### + +..... +..#.. +..##. +..### +#.### +#.### +##### + +..... +....# +.#.## +.#### +.#### +.#### +##### + +##### +##.## +##..# +##..# +#...# +..... +..... + +##### +.##.# +..#.. +..#.. +..#.. +..... +..... + +##### +##### +##### +####. +##.#. +.#.#. +..... + +..... +..... +#...# +#...# +#...# +##.## +##### + +##### +.#### +.###. +.###. +.###. +..#.. +..... + +..... +#.... +#.#.. +###.# +##### +##### +##### + +##### +####. +####. +####. +##.#. +.#.#. +..... + +##### +##### +##.## +#..## +...## +...#. +..... + +##### +##### +#.#.# +#...# +....# +....# +..... + +##### +#.### +#.#.# +#.#.# +#.#.. +..#.. +..... + +..... +..... +..... +..#.. +.##.# +##### +##### + +##### +.#### +.#.## +.#.## +.#.#. +.#... +..... + +##### +.#### +.#.## +.#.## +....# +..... +..... + +##### +##### +###.# +#.#.# +..#.. +..#.. +..... + +..... +..... +.#.#. +.#.#. +.#.## +##.## +##### + +##### +##### +.#### +..#.# +..... +..... +..... + +..... +.#... +##.#. +##.#. +##.## +##.## +##### + +..... +...#. +...## +.#.## +##### +##### +##### + +##### +###.# +.##.# +.##.# +.##.# +..#.# +..... + +..... +.#.#. +.#.#. +####. +####. +####. +##### + +..... +.#... +.#... +###.. +###.. +####. +##### + +##### +##.#. +.#.#. +.#.#. +.#... +.#... +..... + +..... +#.... +#.... +#.#.# +#.#.# +###.# +##### + +##### +.#.## +.#..# +.#... +.#... +.#... +..... + +..... +#.... +#.... +##.#. +##### +##### +##### + +##### +##### +###.# +#.#.. +#.#.. +#.#.. +..... + +##### +#.##. +..##. +..#.. +..#.. +..#.. +..... + +..... +..#.. +..#.. +.###. +####. +##### +##### + +##### +.#### +.###. +..##. +..#.. +..#.. +..... + +##### +.#### +.#.## +.#.#. +..... +..... +..... + +..... +#.... +#..#. +#.##. +#.### +##### +##### + +..... +...#. +.#.## +.#.## +.#.## +.#### +##### + +..... +....# +....# +.#..# +.##.# +###.# +##### + +##### +.###. +.###. +.###. +..##. +...#. +..... + +##### +###.# +###.# +.##.. +.##.. +..#.. +..... + +..... +..#.. +..##. +.###. +.###. +.#### +##### + +##### +.#### +.#### +.##.# +.#..# +.#... +..... + +..... +.#..# +.#..# +##..# +##..# +##.## +##### + +##### +####. +##.#. +##.#. +#..#. +...#. +..... + +##### +#.### +#..## +...## +...## +....# +..... + +##### +##### +###.# +###.. +#.#.. +#.#.. +..... + +..... +.#..# +.#..# +.#..# +.##.# +##### +##### + +..... +.#... +.#.#. +##.#. +##.#. +##### +##### + +..... +.#... +.#... +.##.. +####. +####. +##### + +..... +..... +...#. +.#.## +.#.## +.#.## +##### + +##### +###.# +#.#.. +..... +..... +..... +..... + +##### +##### +###.# +###.# +##..# +.#..# +..... + +##### +##.## +##.## +##..# +.#... +.#... +..... + +..... +..#.. +.##.. +.##.. +####. +##### +##### + +..... +...#. +.#.#. +.#.#. +.#.#. +.###. +##### + +##### +.#.#. +.#... +..... +..... +..... +..... + +##### +#.### +#.### +#..#. +#..#. +...#. +..... + +..... +.#... +.##.. +.##.. +####. +####. +##### + +##### +####. +##.#. +##... +##... +#.... +..... + +..... +#.#.. +###.. +###.# +###.# +###.# +##### + +##### +#.### +#.### +#.#.# +#.#.# +....# +..... + +##### +.##.# +.##.. +.##.. +..#.. +..#.. +..... + +##### +###.# +###.# +.##.# +..#.. +..... +..... + +##### +##.## +#...# +#...# +#.... +..... +..... + +##### +##### +####. +#.##. +#.#.. +..#.. +..... + +..... +..#.. +..##. +..##. +#.### +#.### +##### + +..... +....# +#.#.# +#.### +#.### +##### +##### + +##### +####. +#.#.. +#.... +#.... +..... +..... + +##### +##### +#.### +#..## +#...# +#.... +..... + +##### +.###. +.##.. +.##.. +.#... +..... +..... + +##### +##### +##### +.#### +..#.# +..#.. +..... + +..... +...#. +#..#. +#..#. +##.#. +##.#. +##### + +##### +##### +#.### +#.#.# +#.#.. +#.#.. +..... + +..... +..... +..... +#..#. +##.#. +##.## +##### + +..... +..... +#.... +#.... +#.#.# +###.# +##### + +##### +####. +###.. +.#... +.#... +..... +..... + +..... +.#..# +.##.# +.##.# +###.# +##### +##### + +##### +##### +#.### +#.#.# +#.... +..... +..... + +..... +...#. +.#.#. +.###. +.#### +.#### +##### + +..... +...#. +#.##. +#.### +#.### +##### +##### + +..... +.#... +.#... +.#..# +.##.# +###.# +##### + +##### +###.# +###.. +#.#.. +..#.. +..... +..... + +##### +#.### +#..## +#..## +#...# +....# +..... + +..... +.#... +.#... +###.. +####. +##### +##### + +##### +##### +#.#.# +#.#.. +#.#.. +..... +..... + +..... +....# +#...# +##.## +##.## +##.## +##### + +##### +##### +.#### +..#.# +..#.. +..#.. +..... + +..... +..... +..#.. +#.#.. +###.# +###.# +##### + +..... +#.... +#.... +#..#. +#.### +##### +##### + +..... +..... +.#... +##... +###.# +##### +##### + +##### +##.## +##.## +.#.## +.#..# +..... +..... + +..... +...#. +...#. +...#. +..### +.#### +##### + +##### +##### +#.### +#..## +....# +....# +..... + +..... +...#. +...#. +..##. +..##. +#.### +##### + +##### +###.# +#.#.# +..#.. +..... +..... +..... + +##### +##.## +##..# +##..# +#...# +#.... +..... + +##### +##.## +.#.## +.#.## +.#.## +.#..# +..... + +..... +..... +#.... +#..#. +#.### +#.### +##### + +..... +.#..# +##.## +##### +##### +##### +##### + +##### +##### +##.#. +##.#. +#.... +..... +..... + +..... +..... +..#.. +..#.. +.##.. +###.# +##### + +##### +##### +####. +####. +.#.#. +...#. +..... + +##### +##### +###.# +#.#.# +#.... +#.... +..... + +##### +##.## +##.## +##.## +.#.## +.#..# +..... + +..... +..... +..#.. +#.#.. +#.##. +##### +##### + +..... +#.... +#.... +##... +##.#. +##.## +##### + +##### +##### +.#### +..### +..#.# +....# +..... + +..... +....# +.#..# +.##.# +.#### +.#### +##### + +..... +..#.# +#.### +#.### +#.### +#.### +##### + +##### +###.# +##..# +.#... +.#... +..... +..... + +..... +...#. +...## +#..## +##.## +##.## +##### + +..... +...#. +...#. +..##. +..##. +.#### +##### + +##### +.#### +.###. +.##.. +.#... +.#... +..... + +..... +..... +..... +....# +...## +.#.## +##### + +##### +##### +##.## +.#.## +.#.#. +...#. +..... + +..... +..#.. +..#.. +..#.. +#.#.# +###.# +##### + +##### +####. +####. +#.##. +#..#. +#..#. +..... + +##### +##### +##### +##### +###.# +#.#.. +..... + +..... +.#... +.#... +.#... +.#... +.##.# +##### + +##### +####. +.#.#. +.#... +..... +..... +..... + +..... +....# +#..## +#..## +##.## +##.## +##### + +##### +##### +.#### +.#.## +.#..# +..... +..... + +##### +###.# +.##.. +.##.. +..#.. +..#.. +..... + +##### +##### +####. +####. +#.#.. +..... +..... + +##### +##.## +#...# +#...# +....# +....# +..... + +##### +##### +##### +####. +#.##. +#..#. +..... + +##### +#.##. +#.##. +#.##. +...#. +...#. +..... + +..... +#.... +#...# +#...# +##..# +###.# +##### + +##### +##### +#.### +#..## +#..#. +..... +..... + +..... +.#.#. +.#.## +.#### +.#### +.#### +##### + +..... +#.#.. +#.##. +#.##. +#.### +#.### +##### + +..... +...#. +...#. +#..## +#.### +#.### +##### + +..... +..... +..... +...#. +#..#. +##.#. +##### + +..... +#.... +#.... +#.#.. +#.#.# +#.### +##### + +..... +.#... +.#.#. +.#.#. +.#.## +.#### +##### + +##### +##### +#.### +..### +...## +...#. +..... + +##### +##### +.#### +.##.# +.#..# +.#..# +..... + +..... +..... +..#.. +.##.. +.##.. +###.# +##### + +##### +#.#.# +#...# +..... +..... +..... +..... + +##### +####. +#.#.. +..#.. +..#.. +..... +..... + +##### +##### +#.### +#.##. +..##. +..#.. +..... + +..... +#.... +#.... +#...# +#..## +##.## +##### + +..... +..... +..#.. +..#.. +#.##. +#.### +##### + +##### +##### +.##.# +.##.. +.#... +.#... +..... + +..... +...#. +...#. +.#.#. +.#### +##### +##### + +##### +##.#. +##.#. +.#.#. +.#... +.#... +..... + +..... +.#.#. +##.#. +##### +##### +##### +##### + +##### +##### +##.## +.#.## +...## +...#. +..... + +..... +#.#.# +##### +##### +##### +##### +##### + +##### +##.## +##.## +#...# +....# +....# +..... + +##### +##### +##### +#.##. +#.##. +..#.. +..... + +..... +..... +.#... +.##.# +.##.# +##### +##### + +..... +..... +#..#. +#..#. +#.##. +#.##. +##### + +##### +.#### +.#### +..### +..#.# +..#.. +..... + +##### +#.### +#.### +#.### +#.##. +..#.. +..... + +..... +..... +..... +#.... +#...# +#.#.# +##### + +##### +##.## +#..## +...#. +..... +..... +..... + +##### +##### +####. +####. +.##.. +..#.. +..... + +..... +...#. +...## +...## +..### +.#### +##### + +..... +..... +.#... +##.#. +##.#. +##.## +##### + +##### +##### +##### +##### +#.#.# +#.#.# +..... + +##### +#.### +#.##. +..##. +..##. +..#.. +..... + +..... +..... +..... +.#... +.#... +##.#. +##### + +..... +....# +..#.# +..#.# +..### +.#### +##### + +..... +..#.. +.##.. +.##.# +###.# +##### +##### + +##### +##### +##.## +##.## +##..# +.#... +..... \ No newline at end of file